(command.CommandList
  children: [
    (C {<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 '`'> child:(C {<printroot>} {<-r>}))}
          spids: [11]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (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: 
            (condition.Shell
              commands: [
                (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>})
  ]
)