(command.CommandList
  children: [
    (C {<Id.KW_Set set>} {<-e>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:BOOT)
          op: assign_op.Equal
          rhs: {</boot/boot>}
          spids: [8]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ROOT)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                command_list: (command.CommandList children:[(C {<printroot>} {<-r>})])
              )
            }
          spids: [11]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-b>} {(DQ ($ Id.VSub_DollarName '$ROOT'))} 
              {<Id.Lit_RBracket ']'>}
            )
          ]
          action: [
            (C {<echo>} {<root>} {<device>} {($ Id.VSub_DollarName '$ROOT')} {<not>} {<found>})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [21 35]
        )
      ]
    )
    (C {<echo>} {<-n>} 
      {
        (DQ <'Install boot as '> ($ Id.VSub_DollarName '$BOOT') <' on current root and patch into '> 
          ($ Id.VSub_DollarName '$ROOT') <'? (y/N) '>
        )
      }
    )
    (C {<read>} {<ans>})
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {(DQ ($ Id.VSub_DollarName '$ans'))} 
              {<Id.Lit_Equals '='>} {<y>} {<Id.Lit_RBracket ']'>}
            )
          ]
          action: [
            (C {<echo>} {<Aborting.>})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [74 90]
        )
      ]
    )
    (command.AndOr ops:[Id.Op_DPipe] children:[(C {<make>} {<install>}) (C {<true>})])
    (C {<echo>} {<Installing>} {<boot>} {<monitor>} {<into>} {($ Id.VSub_DollarName '$BOOT') <.>})
    (C {<cp>} {<boot>} {($ Id.VSub_DollarName '$BOOT')})
    (C {<echo>} {<Patching>} {<position>} {<of>} {($ Id.VSub_DollarName '$BOOT')} {<into>} 
      {($ Id.VSub_DollarName '$ROOT') <.>}
    )
    (C {<installboot>} {<-d>} {(DQ ($ Id.VSub_DollarName '$ROOT'))} {</usr/mdec/bootblock>} 
      {($ Id.VSub_DollarName '$BOOT')}
    )
    (C {<sync>})
  ]
)