(command.CommandList
  children: [
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {<Id.Lit_LBracket '['>} {<-x>} 
                  {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) </bin/> 
                    (${ Id.VSub_Name INSTALLKERNEL)
                  } {<Id.Lit_RBracket ']'>}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.Sentence
              child: 
                (C {<exec>} 
                  {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) </bin/> 
                    (${ Id.VSub_Name INSTALLKERNEL)
                  } {(DQ ($ Id.VSub_At '$@'))}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [65 80]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {<Id.Lit_LBracket '['>} {<-x>} {</sbin/> (${ Id.VSub_Name INSTALLKERNEL)} 
                  {<Id.Lit_RBracket ']'>}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.Sentence
              child: (C {<exec>} {</sbin/> (${ Id.VSub_Name INSTALLKERNEL)} {(DQ ($ Id.VSub_At '$@'))})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [97 111]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {<Id.Lit_LBracket '['>} {<-f>} {($ Id.VSub_Number '$4') </vmlinuz>} 
                  {<Id.Lit_RBracket ']'>}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (C {<mv>} {($ Id.VSub_Number '$4') </vmlinuz>} {($ Id.VSub_Number '$4') </vmlinuz.old>})
          ]
          spids: [132 144]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {<Id.Lit_LBracket '['>} {<-f>} {($ Id.VSub_Number '$4') </System.map>} 
                  {<Id.Lit_RBracket ']'>}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (C {<mv>} {($ Id.VSub_Number '$4') </System.map>} {($ Id.VSub_Number '$4') </System.old>})
          ]
          spids: [158 170]
        )
      ]
    )
    (command.Simple
      words: [{<cat>} {($ Id.VSub_Number '$2')}]
      redirects: [
        (redir.Redir
          op: <Id.Redir_Great '>'>
          fd: -1
          arg_word: {($ Id.VSub_Number '$4') </vmlinuz>}
        )
      ]
    )
    (C {<cp>} {($ Id.VSub_Number '$3')} {($ Id.VSub_Number '$4') </System.map>})
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [(C {<test>} {<-x>} {</usr/sbin/elilo>}) (C {</usr/sbin/elilo>})]
    )
  ]
)