(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 op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> 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: <Id.Left_Backtick '`'>
                child: (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: <Id.Left_Backtick '`'>
                child: 
                  (C {<expr>} {($ Id.VSub_DollarName '$num_plus_one')} 
                    {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>)} {<3>}
                  )
              )
            }
          spids: [175]
        )
      ]
    )
    (command.Pipeline
      children: [
        (C {<head>} 
          {<-> 
            (command_sub
              left_token: <Id.Left_Backtick '`'>
              child: 
                (C {<expr>} {($ Id.VSub_DollarName '$lines_minus_one')} {<Id.Lit_Other '+'>} {<1>})
            )
          } {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<which>} {($ Id.VSub_Number '$0')}))}
        )
        (C {<tail>} {<-3>})
        (C {<cut>} {<-b2->})
      ]
      negated: F
    )
  ]
)