(CommandList
  children: [
    (Case
      to_match: {($ VSub_Number '$1')}
      arms: [
        (case_arm pat_list:[{(Lit_Other '[') (0-9) (Lit_Other ']')}] spids:[131134136-1])
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [
                    {(echo)}
                    {(DQ ('Usage is ') ($ VSub_Number '$0') (' num, where num is 0 to 9'))}
                  ]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[150])]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(exit)} {(1)})
          ]
          spids: [139 140 157 -1]
        )
      ]
      spids: [124 128 159]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:num_plus_one)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(expr)} {($ VSub_Number '$1')} {(Lit_Other '+')} {(1)})]
                  )
                left_token: <Left_Backtick '`'>
                spids: [163 171]
              )
            }
          spids: [162]
        )
      ]
      spids: [162]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:lines_minus_one)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C {(expr)} {($ VSub_Name '$num_plus_one')} 
                        {(EscapedLiteralPart token:<Lit_EscapedChar '\\*'>)} {(3)}
                      )
                    ]
                  )
                left_token: <Left_Backtick '`'>
                spids: [174 182]
              )
            }
          spids: [173]
        )
      ]
      spids: [173]
    )
    (Pipeline
      children: [
        (C {(head)} 
          {(-) 
            (CommandSubPart
              command_list: 
                (CommandList
                  children: [(C {(expr)} {($ VSub_Name '$lines_minus_one')} {(Lit_Other '+')} {(1)})]
                )
              left_token: <Left_Backtick '`'>
              spids: [187 195]
            )
          } 
          {
            (CommandSubPart
              command_list: (CommandList children:[(C {(which)} {($ VSub_Number '$0')})])
              left_token: <Left_Backtick '`'>
              spids: [197 201]
            )
          }
        )
        (C {(tail)} {(-3)})
        (C {(cut)} {(-b2-)})
      ]
      negated: False
    )
  ]
)