(CommandList
  children: [
    (Case
      to_match: {($ VSub_Pound '$#')}
      arms: [
        (case_arm
          pat_list: [{(0)}]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ("Usage: mkdep 'cpp command' file ..."))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[49])]
            )
            (SimpleCommand
              words: [{(echo)} {(DQ ('       mkdep directory'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[59])]
            )
          ]
          spids: [38 39 62 16777215]
        )
        (case_arm
          pat_list: [{(1)}]
          action: [
            (C {(echo)} {(DQ ('Creating .depend files in ') ($ VSub_Number '$1'))})
            (ForEach
              iter_name: dir
              iter_words: [
                {
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (C {(find)} {($ VSub_Number '$1')} {(-type)} {(d)} {(KW_Bang '!')} {(-name)} 
                            {(CVS)} {(KW_Bang '!')} {(-name)} {(.svn)}
                          )
                        ]
                      )
                    left_token: <Left_Backtick '`'>
                    spids: [86 106]
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [(C {(touch)} {($ VSub_Name '$dir') (/.depend)})]
                  spids: [109 118]
                )
              spids: [85 16777215]
            )
          ]
          spids: [68 69 121 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:cpp)
                      op: Equal
                      rhs: {(DQ ($ VSub_Number '$1'))}
                      spids: [132]
                    )
                  ]
                  spids: [132]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (ForEach
              iter_name: f
              do_arg_iter: T
              body: 
                (DoGroup
                  children: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (SimpleCommand
                          words: [{(Lit_Other ':')}]
                          redirects: [
                            (Redir
                              op_id: Redir_Less
                              fd: 16777215
                              arg_word: {(DQ ($ VSub_Name '$f'))}
                              spids: [152]
                            )
                          ]
                        )
                        (ControlFlow token:<ControlFlow_Exit exit>)
                      ]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:o)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(expr)} {(DQ ($ VSub_Name '$f'))} {(Lit_Other ':')} 
                                        {(SQ <'\\(.*\\)\\..*'>)}
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [165 177]
                              ) (.o)
                            }
                          spids: [164]
                        )
                      ]
                      spids: [164]
                    )
                    (C {(echo)})
                    (Pipeline
                      children: [
                        (C {($ VSub_Name '$cpp')} {(DQ ($ VSub_Name '$f'))})
                        (C {(sed)} {(-e)} 
                          {
                            (SQ <'/^#/!d\n'> <'\t\t\t\ts/.*"\\(.*\\)".*/\\1/\n'> <'\t\t\t\ts:^\\./::'>)
                          } {(-e)} {(DQ ('s:^:') ($ VSub_Name '$o') (Lit_Other '\\') (':\t:'))}
                        )
                        (C {(sort)} {(-u)})
                      ]
                      negated: F
                    )
                  ]
                  spids: [147 226]
                )
              spids: [16777215 16777215]
            )
          ]
          spids: [128 129 16777215 228]
        )
      ]
      spids: [28 32 228]
    )
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
  ]
)