(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:num) op:Equal rhs:{(DQ (20))} spids:[60])]
      spids: [60]
    )
    (FuncDef
      name: usage
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ ('Usage: ') 
                    (CommandSubPart
                      command_list: (CommandList children:[(C {(basename)} {($ VSub_Number '$0')})])
                      left_token: <Left_Backtick '`'>
                      spids: [77 81]
                    ) (' [-nr] [-na] [-n#] [-s] [-r] [path...]')
                  )
                }
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[85])]
            )
            (SimpleCommand
              words: [{(echo)}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[91])]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ('    -nr    do not recurse'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[101])]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ('    -na    ignore files starting with .'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[111])]
            )
            (SimpleCommand
              words: [
                {(echo)}
                {(DQ ('    -n#    list the newest # files (') ($ VSub_Name '$num') (' by default)'))}
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[123])]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ('    -r     reverse to show oldest files'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[133])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [70]
        )
      spids: [66 69]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:num)
          op: Equal
          rhs: {(DQ (-n) ($ VSub_Name '$num'))}
          spids: [144]
        )
      ]
      spids: [144]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:dotfiles) op:Equal rhs:{(DQ (yes))} spids:[150])]
      spids: [150]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:recurse) op:Equal rhs:{(DQ (yes))} spids:[155])]
      spids: [155]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:reverse) op:Equal rhs:{(DQ )} spids:[160])]
      spids: [160]
    )
    (While
      cond: [(C {(Lit_Other ':')})]
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Number '$1'))}
              arms: [
                (case_arm
                  pat_list: [{(--)}]
                  action: [
                    (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
                    (ControlFlow token:<ControlFlow_Break break>)
                  ]
                  spids: [180 181 188 16777215]
                )
                (case_arm
                  pat_list: [{(-na)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:dotfiles)
                          op: Equal
                          rhs: {(DQ (no))}
                          spids: [194]
                        )
                      ]
                      spids: [194]
                    )
                  ]
                  spids: [191 192 199 16777215]
                )
                (case_arm
                  pat_list: [{(-nr)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:recurse)
                          op: Equal
                          rhs: {(DQ (no))}
                          spids: [205]
                        )
                      ]
                      spids: [205]
                    )
                  ]
                  spids: [202 203 210 16777215]
                )
                (case_arm
                  pat_list: [{(-n) (Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:num)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [220]
                        )
                      ]
                      spids: [220]
                    )
                  ]
                  spids: [213 218 223 16777215]
                )
                (case_arm
                  pat_list: [{(-r)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:reverse)
                          op: Equal
                          rhs: {(DQ (r))}
                          spids: [229]
                        )
                      ]
                      spids: [229]
                    )
                  ]
                  spids: [226 227 234 16777215]
                )
                (case_arm
                  pat_list: [{(--help)}]
                  action: [(C {(usage)})]
                  spids: [237 238 242 16777215]
                )
                (case_arm
                  pat_list: [{(--version)}]
                  action: [(AndOr children:[(C {(echo)} {(DQ (1.1))}) (C {(exit)})] op_id:Op_DAmp)]
                  spids: [245 246 258 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(ControlFlow token:<ControlFlow_Break break>)]
                  spids: [261 262 266 16777215]
                )
              ]
              spids: [171 177 269]
            )
            (C {(shift)})
          ]
          spids: [168 274]
        )
    )
    (AndOr
      children: [
        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$dotfiles'))} {(Lit_Other '=')} {(DQ (no))} 
          {(Lit_Other ']')}
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:ignore_hidden)
              op: Equal
              rhs: {(DQ ("-name '.*' -o"))}
              spids: [292]
            )
          ]
          spids: [292]
        )
      ]
      op_id: Op_DAmp
    )
    (AndOr
      children: [
        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$recurse'))} {(Lit_Other '=')} {(DQ (no))} 
          {(Lit_Other ']')}
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:dont_recurse)
              op: Equal
              rhs: {(DQ ('-maxdepth 1'))}
              spids: [313]
            )
          ]
          spids: [313]
        )
      ]
      op_id: Op_DAmp
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-gt)} {(0)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:path_format)
                  op: Equal
                  rhs: {(DQ ('%p'))}
                  spids: [334]
                )
              ]
              spids: [334]
            )
          ]
          spids: [16777215 331]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:path_format) op:Equal rhs:{(DQ ('%P'))} spids:[342])]
          spids: [342]
        )
        (C {(set)} {(--)} {(DQ (./))})
      ]
      spids: [339 356]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ignore_metadata)
          op: Equal
          rhs: 
            {
              (DQ (Lit_Other '\\') ('( -type d -a ') (Lit_Other '\\') 
                ("( -name '.git' -o -name '.svn' -o -name 'CVS' ") (Lit_Other '\\') (') ') (Lit_Other '\\') (') -prune -o')
              )
            }
          spids: [359]
        )
      ]
      spids: [359]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:print_format)
          op: Equal
          rhs: 
            {
              (DQ (Lit_Other '\\') ("( -type f -printf '%T@") (Lit_Other '\\') (t) 
                ($ VSub_Name '$path_format') (Lit_Other '\\') ("n' ") (Lit_Other '\\') (')')
              )
            }
          spids: [371]
        )
      ]
      spids: [371]
    )
    (Pipeline
      children: [
        (C {(eval)} {(find)} {(SQ <'"$@"'>)} {($ VSub_Name '$dont_recurse')} 
          {($ VSub_Name '$ignore_metadata')} {($ VSub_Name '$ignore_hidden')} {($ VSub_Name '$print_format')}
        )
        (C {(sort)} {(-k1) (Lit_Comma ',') (1) (${ VSub_Name reverse) (n)})
        (C {(tail)} {($ VSub_Name '$num')})
        (C {(cut)} {(-f2-)})
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (C {(Lit_Other '[')} {(KW_Bang '!')} {(-p)} {(/proc/self/fd/1)} {(Lit_Other ']')})
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (Pipeline
                  children: [
                    (C {(tr)} {(SQ <'\\n'>)} {(SQ <'\\0'>)})
                    (C {(xargs)} {(-r0)} {(ls)} {(-lUd)} {(--color) (Lit_Other '=') (auto)} {(--)})
                  ]
                  negated: False
                )
              ]
              spids: [16777215 439]
            )
          ]
          else_action: [(C {(cat)})]
          spids: [469 474]
        )
      ]
      negated: False
    )
  ]
)