(List (Com {[LIT_OTHER ":"]} {[LIT_CHARS convert]} {[LIT_CHARS MAM]} {[LIT_CHARS dependency]} {[LIT_CHARS info]} {[LIT_CHARS to]} {[LIT_CHARS dot]} {[LIT_CHARS input]}) (= scope= flags=0 words=[] bindings=[('COMMAND', {[LIT_CHARS mamdot]})]) (Case to_match={[ComSub (Subshell (List (Com {[LIT_CHARS getopts]} {[SQ ]} {[LIT_CHARS opt]} {[LIT_CHARS --xyz]}) (Com {[LIT_CHARS echo]} {[LIT_CHARS 0] [VarSub opt]}) ) )]}, pat_word_list=[[{[LIT_CHARS 0123]}], [{[LIT_OTHER "*"]}]] (List (= scope= flags=0 words=[] bindings=[('ARGV0', {[DQ [LIT_CHARS "-a "][VarSub COMMAND]]})]) (= scope= flags=0 words=[] bindings=[('USAGE', {[SQ ] [VarSub USAGE_LICENSE] [SQ ]})]) ) (List (= scope= flags=0 words=[] bindings=[('ARGV0', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('USAGE', {[DQ [LIT_CHARS "i:[pattern]"]]})]) ) ) (FunctionDef usage [] (List (= scope= flags=0 words=[] bindings=[('OPTIND', {[LIT_CHARS 0]})]) (Com {[LIT_CHARS getopts]} {[VarSub ARGV0]} {[DQ [VarSub USAGE]]} {[LIT_CHARS OPT]} {[SQ ]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 2]}) ) ) (Com {[LIT_CHARS integer]} {[LIT_VAR_LIKE "level="] [LIT_CHARS 0] =}) (Com {[LIT_CHARS typeset]} {[LIT_CHARS -A]} {[LIT_CHARS pwd]} {[LIT_CHARS top]}) (Com {[LIT_CHARS typeset]} {[LIT_VAR_LIKE "ignore="] =} {[LIT_VAR_LIKE "tree="] [DQ [LIT_CHARS "@(make|done|prev)"]] =}) (While (Com {[LIT_CHARS getopts]} {[VarSub ARGV0]} {[DQ [VarSub USAGE]]} {[LIT_CHARS OPT]}) (Case to_match={[VarSub OPT]}, pat_word_list=[[{[LIT_CHARS i]}], [{[LIT_OTHER "*"]}]] (List (AndOr OP_AND_IF (DBracket {B1 UNARY_STRING_n {[VarSub ignore]}}) (= scope= flags=0 words=[] bindings=[('ignore', {[DQ [VarSub ignore][LIT_CHARS "|"]]})]) ) (= scope= flags=0 words=[] bindings=[('ignore', {[VarSub ignore] [VarSub OPTARG]})]) ) (Com {[LIT_CHARS usage]}) ) ) (AndOr OP_AND_IF (DBracket {B1 UNARY_STRING_n {[VarSub ignore]}}) (= scope= flags=0 words=[] bindings=[('ignore', {[DQ [LIT_CHARS "@("][VarSub ignore][LIT_CHARS ")"]]})]) ) (Com {[LIT_CHARS list] [LIT_OTHER "["] [LIT_CHARS 0] [LIT_OTHER "]"] [LIT_OTHER "="] [LIT_CHARS all]}) (Com {[LIT_CHARS top] [LIT_OTHER "["] [LIT_CHARS 0] [LIT_OTHER "]"] [LIT_OTHER "="] [LIT_CHARS 1]}) (Com {[LIT_CHARS print]} {[DQ [LIT_CHARS "digraph mam {"]]}) (Com {[LIT_CHARS print]} {[DQ [LIT_CHARS "rankdir = LR"]]}) (Com {[LIT_CHARS print]} {[DQ [LIT_CHARS "node [ shape = box ]"]]}) (While (Com {[LIT_CHARS read]} {[LIT_CHARS -r]} {[LIT_CHARS label]} {[LIT_CHARS op]} {[LIT_CHARS arg]} {[LIT_CHARS arg2]} {[LIT_CHARS arg3]} {[LIT_CHARS args]}) (List (AndOr OP_OR_IF (DBracket {B2 BINARY_STRING_EQUAL {[VarSub label]} {[LIT_OTHER "["] [LIT_OTHER "["] [LIT_OTHER ":"] [LIT_CHARS digit] [LIT_OTHER ":"] [LIT_RIGHT_DBRACKET "]]"] [LIT_OTHER "*"]}}) (List (= scope= flags=0 words=[] bindings=[('arg3', {[VarSub args]})]) (= scope= flags=0 words=[] bindings=[('arg2', {[VarSub arg]})]) (= scope= flags=0 words=[] bindings=[('arg', {[VarSub op]})]) (= scope= flags=0 words=[] bindings=[('op', {[VarSub label]})]) (= scope= flags=0 words=[] bindings=[('label', {[LIT_CHARS 0]})]) ) ) (= scope= flags=0 words=[] bindings=[('rule', {[VarSub arg]})]) (AndOr OP_OR_IF (DBracket {B? LOGICAL_BINARY_OR {B1 UNARY_STRING_n {[VarSub top bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub label]}})]}} {B? LOGICAL_BINARY_OR {B2 BINARY_STRING_EQUAL {[VarSub arg]} {[LIT_OTHER "*"] [LIT_CHARS /] [LIT_OTHER "*"]}} {B2 BINARY_STRING_NOT_EQUAL {[VarSub op]} {[VarSub tree]}}}}) (List (= scope= flags=0 words=[] bindings=[('arg', {[VarSub label] [LIT_OTHER ":"] [LIT_OTHER ":"] [VarSub arg]})]) (AndOr OP_AND_IF (DBracket {B2 BINARY_STRING_EQUAL {[VarSub op]} {[LIT_CHARS make]}}) (Com {[LIT_CHARS print]} {[DQ [\ LIT_ESCAPED_CHAR "\\\""][VarSub arg][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " [ label = "][\ LIT_ESCAPED_CHAR "\\\""][VarSub rule][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " ]"]]}) ) ) ) (Case to_match={[VarSub op]}, pat_word_list=[[{[LIT_CHARS make]}], [{[LIT_CHARS prev]}], [{[LIT_CHARS done]}], [{[LIT_CHARS info]}]] (List (AndOr OP_OR_IF (DBracket {B2 BINARY_STRING_EQUAL {[VarSub rule]} {[VarSub ignore]}}) (Com {[LIT_CHARS list] [LIT_OTHER "["] [LIT_CHARS level] [LIT_OTHER "]"] [LIT_OTHER "="] [VarSub list bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub level]}})] [SQ ] [\ LIT_ESCAPED_CHAR "\\\""] [VarSub arg] [\ LIT_ESCAPED_CHAR "\\\""]}) ) (= scope= flags=0 words=[] bindings=[('level', {[LIT_CHARS level] [LIT_OTHER "+"] [LIT_CHARS 1]})]) (Com {[LIT_CHARS list] [LIT_OTHER "["] [LIT_CHARS level] [LIT_OTHER "]"] [LIT_OTHER "="]}) ) (AndOr OP_OR_IF (DBracket {B2 BINARY_STRING_EQUAL {[VarSub rule]} {[VarSub ignore]}}) (Com {[LIT_CHARS list] [LIT_OTHER "["] [LIT_CHARS level] [LIT_OTHER "]"] [LIT_OTHER "="] [VarSub list bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub level]}})] [SQ ] [\ LIT_ESCAPED_CHAR "\\\""] [VarSub arg] [\ LIT_ESCAPED_CHAR "\\\""]}) ) (List (AndOr OP_OR_IF (DBracket {B? LOGICAL_BINARY_OR {B2 BINARY_STRING_EQUAL {[VarSub rule]} {[VarSub ignore]}} {B! {B1 UNARY_STRING_n {[VarSub list bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub level]}})]}}}}) (Com {[LIT_CHARS print]} {[DQ [\ LIT_ESCAPED_CHAR "\\\""][VarSub arg][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " -> {"][VarSub list bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub level]}})][LIT_CHARS " }"]]}) ) (= scope= flags=0 words=[] bindings=[('level', {[LIT_CHARS level-1]})]) ) (Case to_match={[VarSub arg]}, pat_word_list=[[{[LIT_CHARS pwd]}]] (AndOr OP_AND_IF (DBracket {B2 BINARY_STRING_EQUAL {[VarSub arg3]} {[DQ [LIT_CHARS .]]}}) (Com {[LIT_CHARS top] [LIT_OTHER "["] [VarSub label] [LIT_OTHER "]"] [LIT_OTHER "="] [LIT_CHARS 1]}) ) ) ) ) ) (Com {[LIT_CHARS print]} {[DQ [LIT_CHARS "}"]]}) )