(CommandList
  children: [
    (C {(Lit_Other ":")} {(convert)} {(MAM)} {(dependency)} {(info)} {(to)} {(dag)} {(input)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:COMMAND) op:Equal rhs:{(mamdag)} spids:[74])]
      spids: [74]
    )
    (Case
      to_match: 
        {
          (CommandSubPart
            command_list: 
              (CommandList
                children: [
                  (Subshell
                    child: 
                      (CommandList
                        children: [
                          (Sentence
                            child: (C {(getopts)} {(SQ <"[-][123:xyz]">)} {(opt)} {(--xyz)})
                            terminator: <Op_Semi ";">
                          )
                          (C {(echo)} {(0) ($ VSub_Name "$opt")})
                        ]
                      )
                    redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[98])]
                    spids: [80 96]
                  )
                ]
              )
            left_token: <Left_Backtick "`">
            spids: [79 100]
          )
        }
      arms: [
        (case_arm
          pat_list: [{(0123)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ARGV0)
                  op: Equal
                  rhs: {(DQ ("-a ") ($ VSub_Name "$COMMAND"))}
                  spids: [107]
                )
              ]
              spids: [107]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:USAGE)
                  op: Equal
                  rhs: 
                    {
                      (SQ <"\n"> <"[-?\n"> <"@(#)$Id: mamdag (AT&T Labs Research) 1998-04-01 $\n"> 
                        <"]\n">
                      ) ($ VSub_Name "$USAGE_LICENSE") 
                      (SQ <"\n"> 
                        <
"[+NAME?mamdag - make abstract machine to dag dependency graph conversion filter]\n"
                        > <"[+DESCRIPTION?"> <Lit_EscapedChar "\\b"> <mamdag> <Lit_EscapedChar "\\b"> 
                        <" reads MAM (Make Abstract Machine) target and\n"> <"\tprerequisite file descriptions from the standard input and writes a\n"> <"\t"> 
                        <Lit_EscapedChar "\\b"> <dag> <Lit_EscapedChar "\\b"> <"(1) description of the dependency graph on the standard output.\n"> 
                        <"\tMamfiles are generated by the "> <Lit_EscapedChar "\\b"> <--mam> <Lit_EscapedChar "\\b"> <" option of "> <Lit_EscapedChar "\\b"> <nmake> 
                        <Lit_EscapedChar "\\b"> <"(1) and\n"> <"\t"> <Lit_EscapedChar "\\b"> <gmake> <Lit_EscapedChar "\\b"> <"(1).]\n"> <"[+?"> 
                        <Lit_EscapedChar "\\b"> <dag> <Lit_EscapedChar "\\b"> <"(1) is an obsolete predecessor to "> <Lit_EscapedChar "\\b"> <dot> 
                        <Lit_EscapedChar "\\b"> <"(1); new applications should\n"> <"\tuse "> <Lit_EscapedChar "\\b"> <mamdot> <Lit_EscapedChar "\\b"> 
                        <"(1) and "> <Lit_EscapedChar "\\b"> <dot> <Lit_EscapedChar "\\b"> <"(1).]\n"> <"[+SEE ALSO?"> <Lit_EscapedChar "\\b"> 
                        <dag> <Lit_EscapedChar "\\b"> <"(1), "> <Lit_EscapedChar "\\b"> <dot> <Lit_EscapedChar "\\b"> <"(1), "> 
                        <Lit_EscapedChar "\\b"> <mamdot> <Lit_EscapedChar "\\b"> <"(1), "> <Lit_EscapedChar "\\b"> <gmake> <Lit_EscapedChar "\\b"> 
                        <"(1), "> <Lit_EscapedChar "\\b"> <nmake> <Lit_EscapedChar "\\b"> <"(1)]\n">
                      )
                    }
                  spids: [114]
                )
              ]
              spids: [114]
            )
          ]
          spids: [104 105 192 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other "*")}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ARGV0) op:Equal rhs:{(DQ )} spids:[197])]
              spids: [197]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:USAGE) op:Equal rhs:{(DQ )} spids:[202])]
              spids: [202]
            )
          ]
          spids: [194 195 207 -1]
        )
      ]
      spids: [77 102 209]
    )
    (FuncDef
      name: usage
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:OPTIND) op:Equal rhs:{(0)} spids:[219])]
              spids: [219]
            )
            (C {(getopts)} {($ VSub_Name "$ARGV0")} {(DQ ($ VSub_Name "$USAGE"))} {(OPT)} {(SQ <"-?">)})
            (C {(exit)} {(2)})
          ]
          spids: [216]
        )
      spids: [212 215]
    )
    (While
      cond: [(C {(getopts)} {($ VSub_Name "$ARGV0")} {(DQ ($ VSub_Name "$USAGE"))} {(OPT)})]
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {($ VSub_Name "$OPT")}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other "*")}]
                  action: [(C {(usage)})]
                  spids: [266 267 272 -1]
                )
              ]
              spids: [259 263 275]
            )
          ]
          spids: [257 277]
        )
    )
    (C {(integer)} {(Lit_VarLike "level=") (0)} {(Lit_VarLike "line=") (0)})
    (C {(list) (Lit_Other "[") (0) (Lit_Other "]") (Lit_Other "=") (all)})
    (C {(print)} {(.GR)} {(7.50)} {(10.0)})
    (C {(print)} {(draw)} {(nodes)} {(as)} {(Box)} {(SQ <";">)})
    (While
      cond: [(C {(read)} {(op)} {(arg)} {(arg2)} {(argx)})]
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:line)
                  op: Equal
                  rhs: {(line) (Lit_Other "+") (1)}
                  spids: [331]
                )
              ]
              spids: [331]
            )
            (Case
              to_match: {($ VSub_Name "$op")}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other "[") (0-9) (Lit_Other "]") (Lit_Other "*")}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:op)
                          op: Equal
                          rhs: {($ VSub_Name "$arg")}
                          spids: [350]
                        )
                      ]
                      spids: [350]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:arg)
                          op: Equal
                          rhs: {($ VSub_Name "$arg2")}
                          spids: [354]
                        )
                      ]
                      spids: [354]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:arg2)
                          op: Equal
                          rhs: {($ VSub_Name "$arg3")}
                          spids: [358]
                        )
                      ]
                      spids: [358]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:arg3)
                          op: Equal
                          rhs: {($ VSub_Name "$argx")}
                          spids: [362]
                        )
                      ]
                      spids: [362]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:argx) op:Equal rhs:{(SQ )} spids:[366])]
                      spids: [366]
                    )
                  ]
                  spids: [344 348 369 -1]
                )
              ]
              spids: [337 341 372]
            )
            (Case
              to_match: {($ VSub_Name "$op")}
              arms: [
                (case_arm
                  pat_list: [{(make)}]
                  action: [
                    (Case
                      to_match: 
                        {
                          (DQ (" ") 
                            (BracedVarSub
                              token: <VSub_Name list>
                              bracket_op: (ArrayIndex expr:(ArithVarRef name:level))
                              spids: [389 394]
                            ) (" ")
                          )
                        }
                      arms: [
                        (case_arm
                          pat_list: [
                            {(Lit_Other "*") 
                              (DQ (" ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
                                ($ VSub_Name "$arg") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" ")
                              ) (Lit_Other "*")
                            }
                          ]
                          spids: [401 410 412 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other "*")}]
                          action: [
                            (C 
                              {(list) (Lit_Other "[") (level) (Lit_Other "]") (Lit_Other "=") 
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name list>
                                    bracket_op: (ArrayIndex expr:(ArithVarRef name:level))
                                    spids: [424 429]
                                  ) (" ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ($ VSub_Name "$arg") 
                                  (EscapedLiteralPart
                                    token: <Lit_EscapedChar "\\\"">
                                  )
                                )
                              }
                            )
                          ]
                          spids: [415 416 436 -1]
                        )
                      ]
                      spids: [385 398 439]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:level)
                          op: Equal
                          rhs: {(level) (Lit_Other "+") (1)}
                          spids: [442]
                        )
                      ]
                      spids: [442]
                    )
                    (C 
                      {(list) (Lit_Other "[") (level) (Lit_Other "]") (Lit_Other "=") 
                        (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ($ VSub_Name "$arg") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">)
                      }
                    )
                  ]
                  spids: [382 383 458 -1]
                )
                (case_arm
                  pat_list: [{(prev)}]
                  action: [
                    (Case
                      to_match: 
                        {
                          (DQ (" ") 
                            (BracedVarSub
                              token: <VSub_Name list>
                              bracket_op: (ArrayIndex expr:(ArithVarRef name:level))
                              spids: [468 473]
                            ) (" ")
                          )
                        }
                      arms: [
                        (case_arm
                          pat_list: [
                            {(Lit_Other "*") 
                              (DQ (" ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) 
                                ($ VSub_Name "$arg") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" ")
                              ) (Lit_Other "*")
                            }
                          ]
                          spids: [480 489 491 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other "*")}]
                          action: [
                            (C 
                              {(list) (Lit_Other "[") (level) (Lit_Other "]") (Lit_Other "=") 
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name list>
                                    bracket_op: (ArrayIndex expr:(ArithVarRef name:level))
                                    spids: [503 508]
                                  ) (" ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ($ VSub_Name "$arg") 
                                  (EscapedLiteralPart
                                    token: <Lit_EscapedChar "\\\"">
                                  )
                                )
                              }
                            )
                          ]
                          spids: [494 495 515 -1]
                        )
                      ]
                      spids: [464 477 518]
                    )
                  ]
                  spids: [461 462 521 -1]
                )
                (case_arm
                  pat_list: [{(KW_Done done)}]
                  action: [
                    (Case
                      to_match: 
                        {
                          (BracedVarSub
                            token: <VSub_Name list>
                            bracket_op: (ArrayIndex expr:(ArithVarRef name:level))
                            spids: [529 534]
                          )
                        }
                      arms: [
                        (case_arm
                          pat_list: [{(Lit_Other "*") (SQ <" ">) (Lit_Other "*")}]
                          action: [
                            (C {(print)} 
                              {
                                (BracedVarSub
                                  token: <VSub_Name list>
                                  bracket_op: (ArrayIndex expr:(ArithVarRef name:level))
                                  spids: [548 553]
                                )
                              } {(SQ <";">)}
                            )
                          ]
                          spids: [539 544 -1 560]
                        )
                      ]
                      spids: [527 536 560]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_LessEqual
                                  left: (ArithVarRef name:level)
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                            )
                          ]
                          action: [
                            (C {(print)} {(-u2)} 
                              {
                                (DQ ($ VSub_Name "$COMMAND") (": line ") ($ VSub_Name "$line") (": ") 
                                  ($ VSub_Name "$op") (" ") ($ VSub_Name "$arg") (": no matching make op")
                                )
                              }
                            )
                          ]
                          spids: [-1 577]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:level)
                              op: Equal
                              rhs: {(level-1)}
                              spids: [597]
                            )
                          ]
                          spids: [597]
                        )
                      ]
                      spids: [595 601]
                    )
                  ]
                  spids: [524 525 604 -1]
                )
              ]
              spids: [375 379 607]
            )
          ]
          spids: [329 609]
        )
    )
    (C {(print)} {(.GE)})
  ]
)