(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USAGE='> name:USAGE)
          op: assign_op.Equal
          rhs: {(DQ <'Usage: '> ($ Id.VSub_Number 0) <' [ -k | archname ]'>)}
          spids: [95]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UNAME='> name:UNAME)
          op: assign_op.Equal
          rhs: {<'/usr/bin/uname'>}
          spids: [102]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ECHO='> name:ECHO)
          op: assign_op.Equal
          rhs: {<'/usr/bin/echo'>}
          spids: [105]
        )
      ]
      redirects: []
    )
    (command.Case
      to_match: {($ Id.VSub_Pound '#')}
      arms: [
        (case_arm
          pat_list: [{<0>}]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OP='> name:OP)
                  op: assign_op.Equal
                  rhs: {<major>}
                  spids: [118]
                )
              ]
              redirects: []
            )
          ]
          spids: [115 116 120 -1]
        )
        (case_arm
          pat_list: [{<1>}]
          action: [
            (command.Case
              to_match: {($ Id.VSub_Number 1)}
              arms: [
                (case_arm
                  pat_list: [{<-k>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OP='> name:OP)
                          op: assign_op.Equal
                          rhs: {<minor>}
                          spids: [135]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [132 133 137 -1]
                )
                (case_arm
                  pat_list: [{<-> <Id.Lit_QMark '?'>}]
                  action: [
                    (command.Sentence
                      child: (C {($ Id.VSub_DollarName ECHO)} {($ Id.VSub_DollarName USAGE)})
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [140 142 153 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OP='> name:OP)
                          op: assign_op.Equal
                          rhs: {<compat>}
                          spids: [159]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [156 157 161 -1]
                )
              ]
              redirects: []
            )
          ]
          spids: [122 123 165 -1]
        )
        (case_arm
          pat_list: [{<Id.Lit_Star '*'>}]
          action: [
            (command.Sentence
              child: (C {($ Id.VSub_DollarName ECHO)} {($ Id.VSub_DollarName USAGE)})
              terminator: <Id.Op_Semi _>
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [167 168 179 -1]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MINOR='> name:MINOR)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: (C {($ Id.VSub_DollarName UNAME)} {<-m>})
                right: <Id.Backtick_Right '`'>
              )
            }
          spids: [184]
        )
      ]
      redirects: []
    )
    (command.Case
      to_match: 
        {
          (command_sub
            left_token: <Id.Left_Backtick '`'>
            child: (C {($ Id.VSub_DollarName UNAME)} {<-p>})
            right: <Id.Backtick_Right '`'>
          )
        }
      arms: [
        (case_arm
          pat_list: [{<sparc>}]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAJOR='> name:MAJOR)
                  op: assign_op.Equal
                  rhs: {<sun4>}
                  spids: [209]
                )
              ]
              redirects: []
            )
          ]
          spids: [206 207 211 -1]
        )
        (case_arm
          pat_list: [{<Id.Lit_Star '*'>}]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAJOR='> name:MAJOR)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName MINOR)}
                  spids: [216]
                )
              ]
              redirects: []
            )
          ]
          spids: [213 214 218 -1]
        )
      ]
      redirects: []
    )
    (command.Case
      to_match: {($ Id.VSub_DollarName OP)}
      arms: [
        (case_arm
          pat_list: [{<major>}]
          action: [(C {($ Id.VSub_DollarName ECHO)} {($ Id.VSub_DollarName MAJOR)})]
          spids: [229 230 235 -1]
        )
        (case_arm
          pat_list: [{<minor>}]
          action: [(C {($ Id.VSub_DollarName ECHO)} {($ Id.VSub_DollarName MINOR)})]
          spids: [237 238 243 -1]
        )
        (case_arm
          pat_list: [{<compat>}]
          action: [
            (command.Sentence
              child: 
                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Number 1)} {<Id.Lit_Equals '='>} 
                  {($ Id.VSub_DollarName MAJOR)} {<Id.Lit_RBracket ']'>}
                )
              terminator: <Id.Op_Semi _>
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit>)
          ]
          spids: [245 246 262 -1]
        )
      ]
      redirects: []
    )
    (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
  ]
)