(command.CommandList
  children: [
    (command.Case
      to_match: {($ Id.VSub_Number '$1')}
      arms: [
        (case_arm
          pat_list: [{(Id.Lit_LBracket '[') (0-9) (Id.Lit_RBracket ']')}]
          spids: [131 134 136 -1]
        )
        (case_arm
          pat_list: [{(Id.Lit_Star '*')}]
          action: [
            (command.Sentence
              child: 
                (command.Simple
                  words: [
                    {(echo)}
                    {(DQ ('Usage is ') ($ Id.VSub_Number '$0') (' num, where num is 0 to 9'))}
                  ]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:150)
                      fd: -1
                      arg_word: {(2)}
                    )
                  ]
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:152)
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:154)
              arg_word: {(1)}
            )
          ]
          spids: [139 140 157 -1]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:num_plus_one)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_Backtick val:'`' span_id:163)
                command_list: 
                  (command.CommandList
                    children: [(C {(expr)} {($ Id.VSub_Number '$1')} {(Id.Lit_Other '+')} {(1)})]
                  )
              )
            }
          spids: [162]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:lines_minus_one)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_Backtick val:'`' span_id:176)
                command_list: 
                  (command.CommandList
                    children: [
                      (C {(expr)} {($ Id.VSub_DollarName '$num_plus_one')} 
                        {
                          (word_part.EscapedLiteral
                            token: (Token id:Id.Lit_EscapedChar val:'\\*' span_id:185)
                          )
                        } {(3)}
                      )
                    ]
                  )
              )
            }
          spids: [175]
        )
      ]
    )
    (command.Pipeline
      children: [
        (C {(head)} 
          {(-) 
            (command_sub
              left_token: (Token id:Id.Left_Backtick val:'`' span_id:193)
              command_list: 
                (command.CommandList
                  children: [
                    (C {(expr)} {($ Id.VSub_DollarName '$lines_minus_one')} {(Id.Lit_Other '+')} {(1)})
                  ]
                )
            )
          } 
          {
            (command_sub
              left_token: (Token id:Id.Left_Backtick val:'`' span_id:205)
              command_list: (command.CommandList children:[(C {(which)} {($ Id.VSub_Number '$0')})])
            )
          }
        )
        (C {(tail)} {(-3)})
        (C {(cut)} {(-b2-)})
      ]
      negated: F
    )
  ]
)