(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:PATH)
          op: Equal
          rhs: 
            {(/bin) (Lit_Other ':') (/usr/bin) (Lit_Other ':') (/usr/ucb) (Lit_Other ':') (/usr/old/bin)}
          spids: [100]
        )
      ]
      spids: [100]
    )
    (C {(export)} {(PATH)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:D) op:Equal rhs:{(.depend)} spids:[114])]
      spids: [114]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:append) op:Equal rhs:{(0)} spids:[120])]
      spids: [120]
    )
    (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:[148])]
                      spids: [148]
                    )
                    (C {(shift)})
                  ]
                  spids: [144 145 154 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: [166]
                        )
                      ]
                      spids: [166]
                    )
                    (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
                    (C {(shift)})
                  ]
                  spids: [162 163 175 16777215]
                )
                (case_arm
                  pat_list: [{(-p)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:SED)
                          op: Equal
                          rhs: {(SQ <'s;\\.o ; ;'>)}
                          spids: [191]
                        )
                      ]
                      spids: [191]
                    )
                    (C {(shift)})
                  ]
                  spids: [187 188 199 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(ControlFlow token:<ControlFlow_Break break>)]
                  spids: [202 203 208 16777215]
                )
              ]
              spids: [131 137 211]
            )
          ]
          spids: [129 213]
        )
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(Lit_Other '=')} {(0)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(SQ <'usage: mkdep [-p] [-f depend_file] [cc_flags] file ...'>)})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 230]
        )
      ]
      spids: [16777215 244]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:TMP)
          op: Equal
          rhs: {(/tmp/mkdep) ($ VSub_Dollar '$$')}
          spids: [247]
        )
      ]
      spids: [247]
    )
    (C {(trap)} {(SQ <'rm -f $TMP ; trap 2 ; kill -2 $$'>)} {(1)} {(2)} {(3)} {(13)} {(15)})
    (Pipeline
      children: [
        (C {(cc)} {(-M)} {($ VSub_Star '$*')})
        (C {(sed)} 
          {
            (DQ ('\n') ('\ts; ') (Lit_Other '\\') ('./; ;g\n') ('\t/') (Lit_Other '\\') ('.c:') 
              (Lit_Other '$') ('/d\n') ('\t') ($ VSub_Name '$SED')
            )
          }
        )
        (SimpleCommand
          words: [
            {(awk)}
            {
              (SQ <'{\n'> <'\tif ($1 != prev) {\n'> <'\t\tif (rec != "")\n'> <'\t\t\tprint rec;\n'> 
                <'\t\trec = $0;\n'> <'\t\tprev = $1;\n'> <'\t}\n'> <'\telse {\n'> <'\t\tif (length(rec $2) > 78) {\n'> <'\t\t\tprint rec;\n'> 
                <'\t\t\trec = $0;\n'> <'\t\t}\n'> <'\t\telse\n'> <'\t\t\trec = rec " " $2\n'> <'\t}\n'> <'}\n'> <'END {\n'> <'\tprint rec\n'> 
                <'}'>
              )
            }
          ]
          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{($ VSub_Name '$TMP')})]
        )
      ]
      negated: F
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(KW_Bang '!') (Lit_Other '=')} {(0)} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(SQ <'mkdep: compile failed.'>)})
            (C {(rm)} {(-f)} {($ VSub_Name '$TMP')})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 338]
        )
      ]
      spids: [16777215 359]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {($ VSub_Name '$append')} {(Lit_Other '=')} {(1)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(cat)} {($ VSub_Name '$TMP')}]
              redirects: [(Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{($ VSub_Name '$D')})]
            )
            (C {(rm)} {(-f)} {($ VSub_Name '$TMP')})
          ]
          spids: [16777215 375]
        )
      ]
      else_action: [(C {(mv)} {($ VSub_Name '$TMP')} {($ VSub_Name '$D')})]
      spids: [393 402]
    )
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
  ]
)