(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:D) op:Equal rhs:{(.depend)} spids:[94])]
      spids: [94]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:append) op:Equal rhs:{(0)} spids:[100])]
      spids: [100]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:pflag) op:Equal rhs:{(EmptyPart)} spids:[103])]
      spids: [103]
    )
    (WhileUntil
      keyword: <KW_While while>
      cond: [(C {(Lit_Other ':')})]
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Number '$1'))}
              arms: [
                (case_arm
                  pat_list: [{(-a)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:append) op:Equal rhs:{(1)} spids:[130])]
                      spids: [130]
                    )
                    (C {(shift)})
                  ]
                  spids: [126 127 136 16777215]
                )
                (case_arm
                  pat_list: [{(-f)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:D)
                          op: Equal
                          rhs: {($ VSub_Number '$2')}
                          spids: [148]
                        )
                      ]
                      spids: [148]
                    )
                    (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
                    (C {(shift)})
                  ]
                  spids: [144 145 157 16777215]
                )
                (case_arm
                  pat_list: [{(-p)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:pflag) op:Equal rhs:{(p)} spids:[173])]
                      spids: [173]
                    )
                    (C {(shift)})
                  ]
                  spids: [169 170 179 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(ControlFlow token:<ControlFlow_Break break>)]
                  spids: [182 183 188 16777215]
                )
              ]
              spids: [113 119 191]
            )
          ]
          spids: [111 193]
        )
    )
    (Case
      to_match: {($ VSub_Pound '$#')}
      arms: [
        (case_arm
          pat_list: [{(0)}]
          action: [
            (SimpleCommand
              words: [{(echo)} {(SQ <'usage: mkdep [-ap] [-f file] [flags] file ...'>)}]
              redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [202 203 220 16777215]
        )
      ]
      spids: [196 200 222]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:TMP)
          op: Equal
          rhs: {(_mkdep) ($ VSub_Dollar '$$')}
          spids: [225]
        )
      ]
      spids: [225]
    )
    (C {(trap)} {(SQ <'rm -f $TMP ; trap 2 ; kill -2 $$'>)} {(1)} {(2)} {(3)} {(13)} {(15)})
    (C {(trap)} {(SQ <'rm -f $TMP'>)} {(0)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:CC)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name CC>
                suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(DQ (cc))})
                spids: [264 270]
              )
            }
          spids: [263]
        )
      ]
      spids: [263]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:MKDEP_CPP)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name MKDEP_CPP>
                suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(DQ (${ VSub_Name CC) (' -E'))})
                spids: [273 282]
              )
            }
          spids: [272]
        )
      ]
      spids: [272]
    )
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:MKDEP_CPP_OPTS)
              op: Equal
              rhs: 
                {
                  (BracedVarSub
                    token: <VSub_Name MKDEP_CPP_OPTS>
                    suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(DQ (-M))})
                    spids: [285 291]
                  )
                }
              spids: [284]
            )
          ]
          spids: [284]
        )
      terminator: <Op_Semi ';'>
    )
    (SimpleCommand
      words: [{(echo)} {(DQ ('# ') ($ VSub_At '$@'))}]
      redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{($ VSub_Name '$TMP')})]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [
                    {($ VSub_Name '$MKDEP_CPP')}
                    {($ VSub_Name '$MKDEP_CPP_OPTS')}
                    {(DQ ($ VSub_At '$@'))}
                  ]
                  redirects: [
                    (Redir
                      op: <Redir_DGreat '>>'>
                      fd: 16777215
                      arg_word: {($ VSub_Name '$TMP')}
                    )
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(Lit_Other ':')})]
          spids: [16777215 325]
        )
      ]
      else_action: [
        (SimpleCommand
          words: [{(echo)} {(SQ <'mkdep: compile failed'>)}]
          redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
        )
        (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
      ]
      spids: [329 346]
    )
    (Case
      to_match: {(x) ($ VSub_Name '$pflag')}
      arms: [
        (case_arm
          pat_list: [{(x)}]
          action: [
            (Case
              to_match: {($ VSub_Name '$append')}
              arms: [
                (case_arm
                  pat_list: [{(0)}]
                  action: [
                    (SimpleCommand
                      words: [{(sed)} {(-e)} {(SQ <'s; \\./; ;g'>)}]
                      redirects: [
                        (Redir
                          op: <Redir_Less '<'>
                          fd: 16777215
                          arg_word: {($ VSub_Name '$TMP')}
                        )
                        (Redir
                          op: <Redir_Great '>'>
                          fd: 16777215
                          arg_word: {($ VSub_Name '$D')}
                        )
                      ]
                    )
                  ]
                  spids: [368 369 386 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (SimpleCommand
                      words: [{(sed)} {(-e)} {(SQ <'s; \\./; ;g'>)}]
                      redirects: [
                        (Redir
                          op: <Redir_Less '<'>
                          fd: 16777215
                          arg_word: {($ VSub_Name '$TMP')}
                        )
                        (Redir
                          op: <Redir_DGreat '>>'>
                          fd: 16777215
                          arg_word: {($ VSub_Name '$D')}
                        )
                      ]
                    )
                  ]
                  spids: [389 390 407 16777215]
                )
              ]
              spids: [360 364 410]
            )
          ]
          spids: [357 358 413 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (Case
              to_match: {($ VSub_Name '$append')}
              arms: [
                (case_arm
                  pat_list: [{(0)}]
                  action: [
                    (SimpleCommand
                      words: [{(sed)} {(-e)} {(SQ <'s;\\.o:;:;'>)} {(-e)} {(SQ <'s; \\./; ;g'>)}]
                      redirects: [
                        (Redir
                          op: <Redir_Less '<'>
                          fd: 16777215
                          arg_word: {($ VSub_Name '$TMP')}
                        )
                        (Redir
                          op: <Redir_Great '>'>
                          fd: 16777215
                          arg_word: {($ VSub_Name '$D')}
                        )
                      ]
                    )
                  ]
                  spids: [428 429 452 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (SimpleCommand
                      words: [{(sed)} {(-e)} {(SQ <'s;\\.o:;:;'>)} {(-e)} {(SQ <'s; \\./; ;g'>)}]
                      redirects: [
                        (Redir
                          op: <Redir_Less '<'>
                          fd: 16777215
                          arg_word: {($ VSub_Name '$TMP')}
                        )
                        (Redir
                          op: <Redir_DGreat '>>'>
                          fd: 16777215
                          arg_word: {($ VSub_Name '$D')}
                        )
                      ]
                    )
                  ]
                  spids: [455 456 479 16777215]
                )
              ]
              spids: [420 424 482]
            )
          ]
          spids: [417 418 485 16777215]
        )
      ]
      spids: [349 354 487]
    )
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_QMark '$?')})
  ]
)