(CommandList children: [ (C {(Lit_Other ":")} {(convert)} {(MAM)} {(dependency)} {(info)} {(to)} {(dot)} {(input)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:COMMAND) op:Equal rhs:{(mamdot)} spids:[73])] spids: [73] ) (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:[97])] spids: [79 95] ) ] ) left_token: <Left_Backtick "`"> spids: [78 99] ) } 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: [106] ) ] spids: [106] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:USAGE) op: Equal rhs: { (SQ <"\n"> <"[-?\n"> <"@(#)$Id: mamdot (AT&T Labs Research) 1997-02-16 $\n"> <"]\n"> ) ($ VSub_Name "$USAGE_LICENSE") (SQ <"\n"> < "[+NAME?mamdot - make abstract machine to dot dependency graph conversion filter]\n" > <"[+DESCRIPTION?"> <Lit_EscapedChar "\\b"> <mamdot> <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"> <dot> <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"> <"[i:ignore?Dependency names matching the shell "> <Lit_EscapedChar "\\a"> <pattern> <Lit_EscapedChar "\\a"> <" are\n"> <"\tignored.]:[pattern]\n"> <"[+SEE ALSO?"> <Lit_EscapedChar "\\b"> <dot> <Lit_EscapedChar "\\b"> <"(1), "> <Lit_EscapedChar "\\b"> <gmake> <Lit_EscapedChar "\\b"> <"(1), "> <Lit_EscapedChar "\\b"> <nmake> <Lit_EscapedChar "\\b"> <"(1)]\n"> ) } spids: [113] ) ] spids: [113] ) ] spids: [103 104 171 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:ARGV0) op:Equal rhs:{(DQ )} spids:[176])] spids: [176] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:USAGE) op: Equal rhs: {(DQ ("i:[pattern]"))} spids: [181] ) ] spids: [181] ) ] spids: [173 174 187 -1] ) ] spids: [76 101 189] ) (FuncDef name: usage body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:OPTIND) op:Equal rhs:{(0)} spids:[199])] spids: [199] ) (C {(getopts)} {($ VSub_Name "$ARGV0")} {(DQ ($ VSub_Name "$USAGE"))} {(OPT)} {(SQ <"-?">)}) (C {(exit)} {(2)}) ] spids: [196] ) spids: [192 195] ) (C {(integer)} {(Lit_VarLike "level=") (0)}) (C {(typeset)} {(-A)} {(pwd)} {(top)}) (C {(typeset)} {(Lit_VarLike "ignore=")} {(Lit_VarLike "tree=") (DQ ("@(make|done|prev)"))}) (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: [{(i)}] action: [ (AndOr children: [ (DBracket expr:(WordTest w:{($ VSub_Name "$ignore")})) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ignore) op: Equal rhs: {(DQ ($ VSub_Name "$ignore") ("|"))} spids: [280] ) ] spids: [280] ) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ignore) op: Equal rhs: {($ VSub_Name "$ignore") ($ VSub_Name "$OPTARG")} spids: [287] ) ] spids: [287] ) ] spids: [269 270 292 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [(C {(usage)})] spids: [295 296 301 -1] ) ] spids: [262 266 304] ) ] spids: [260 306] ) ) (AndOr children: [ (DBracket expr:(WordTest w:{($ VSub_Name "$ignore")})) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ignore) op: Equal rhs: {(DQ ("@(") ($ VSub_Name "$ignore") (")"))} spids: [316] ) ] spids: [316] ) ] op_id: Op_DAmp ) (C {(list) (Lit_Other "[") (0) (Lit_Other "]") (Lit_Other "=") (all)}) (C {(top) (Lit_Other "[") (0) (Lit_Other "]") (Lit_Other "=") (1)}) (C {(print)} {(DQ ("digraph mam {"))}) (C {(print)} {(DQ ("rankdir = LR"))}) (C {(print)} {(DQ ("node [ shape = box ]"))}) (While cond: [(C {(read)} {(-r)} {(label)} {(op)} {(arg)} {(arg2)} {(arg3)} {(args)})] body: (DoGroup children: [ (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name "$label")} right: {(Lit_Other "[") (Lit_Other "[") (Lit_Other ":") (digit) (Lit_Other ":") (Lit_DRightBracket "]]") (Lit_Other "*") } ) ) (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:arg3) op: Equal rhs: {($ VSub_Name "$args")} spids: [397] ) ] spids: [397] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:arg2) op: Equal rhs: {($ VSub_Name "$arg")} spids: [401] ) ] spids: [401] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:arg) op: Equal rhs: {($ VSub_Name "$op")} spids: [405] ) ] spids: [405] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:op) op: Equal rhs: {($ VSub_Name "$label")} spids: [409] ) ] spids: [409] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:label) op:Equal rhs:{(0)} spids:[413])] spids: [413] ) ] spids: [394] ) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:rule) op: Equal rhs: {($ VSub_Name "$arg")} spids: [420] ) ] spids: [420] ) (AndOr children: [ (DBracket expr: (LogicalOr left: (WordTest w: { (BracedVarSub token: <VSub_Name top> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name "$label")})) spids: [426 431] ) } ) right: (LogicalOr left: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name "$arg")} right: {(Lit_Other "*") (/) (Lit_Other "*")} ) right: (BoolBinary op_id: BoolBinary_GlobNEqual left: {($ VSub_Name "$op")} right: {($ VSub_Name "$tree")} ) ) ) ) (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:arg) op: Equal rhs: {($ VSub_Name "$label") (Lit_Other ":") (Lit_Other ":") ($ VSub_Name "$arg") } spids: [458] ) ] spids: [458] ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name "$op")} right: {(make)} ) ) (C {(print)} { (DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ($ VSub_Name "$arg") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" [ label = ") (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) ($ VSub_Name "$rule") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" ]") ) } ) ] op_id: Op_DAmp ) ] spids: [455] ) ] op_id: Op_DPipe ) (Case to_match: {($ VSub_Name "$op")} arms: [ (case_arm pat_list: [{(make)}] action: [ (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name "$rule")} right: {($ VSub_Name "$ignore")} ) ) (C {(list) (Lit_Other "[") (level) (Lit_Other "]") (Lit_Other "=") (BracedVarSub token: <VSub_Name list> bracket_op: (ArrayIndex expr:(ArithVarRef name:level)) spids: [521 526] ) (SQ <Lit_EscapedChar "\\n">) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ($ VSub_Name "$arg") (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) } ) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:level) op: Equal rhs: {(level) (Lit_Other "+") (1)} spids: [535] ) ] spids: [535] ) (C {(list) (Lit_Other "[") (level) (Lit_Other "]") (Lit_Other "=")}) ] spids: [501 502 548 -1] ) (case_arm pat_list: [{(prev)}] action: [ (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name "$rule")} right: {($ VSub_Name "$ignore")} ) ) (C {(list) (Lit_Other "[") (level) (Lit_Other "]") (Lit_Other "=") (BracedVarSub token: <VSub_Name list> bracket_op: (ArrayIndex expr:(ArithVarRef name:level)) spids: [571 576] ) (SQ <Lit_EscapedChar "\\n">) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ($ VSub_Name "$arg") (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) } ) ] op_id: Op_DPipe ) ] spids: [551 552 585 -1] ) (case_arm pat_list: [{(KW_Done done)}] action: [ (AndOr children: [ (DBracket expr: (LogicalOr left: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name "$rule")} right: {($ VSub_Name "$ignore")} ) right: (LogicalNot child: (WordTest w: { (BracedVarSub token: <VSub_Name list> bracket_op: (ArrayIndex expr:(ArithVarRef name:level)) spids: [603 608] ) } ) ) ) ) (C {(print)} { (DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ($ VSub_Name "$arg") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" -> {") (BracedVarSub token: <VSub_Name list> bracket_op: (ArrayIndex expr:(ArithVarRef name:level)) spids: [622 627] ) (" }") ) } ) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:level) op: Equal rhs: {(level-1)} spids: [632] ) ] spids: [632] ) ] spids: [588 589 636 -1] ) (case_arm pat_list: [{(info)}] action: [ (Case to_match: {($ VSub_Name "$arg")} arms: [ (case_arm pat_list: [{(pwd)}] action: [ (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name "$arg3")} right: {(DQ (.))} ) ) (C {(top) (Lit_Other "[") ($ VSub_Name "$label") (Lit_Other "]") (Lit_Other "=") (1) } ) ] op_id: Op_DAmp ) ] spids: [649 650 673 -1] ) ] spids: [642 646 676] ) ] spids: [639 640 679 -1] ) ] spids: [494 498 682] ) ] spids: [374 684] ) ) (C {(print)} {(DQ ("}"))}) ] )