(List (Com {[LIT_OTHER ":"]} {[LIT_CHARS convert]} {[LIT_CHARS mam]} {[LIT_CHARS to]} {[LIT_CHARS old]} {[LIT_CHARS make]} {[LIT_CHARS makefile]}) (FunctionDef convert [] (List (Com {[LIT_CHARS typeset]} {[LIT_VAR_LIKE "buf="] [VarSub *] =}) (Com {[LIT_CHARS typeset]} {[LIT_CHARS -i]} {[LIT_CHARS i]}) (Com {[LIT_CHARS set]} {[LIT_CHARS -s]} {[LIT_CHARS -A]} {[LIT_CHARS variable]} {[VarSub variable bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]}) (ForExpr {A2 AS_OP_EQUAL {A Atom NODE_ARITH_WORD {[VarSub i]}} {A2 AS_OP_MINUS {A Atom NODE_ARITH_WORD {[VarSub variable bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) transform_ops=[(#len)]]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}} {A2 AS_OP_GE {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}}} {A1 AS_OP_DMINUS {A Atom NODE_ARITH_WORD {[VarSub i]}} } (= scope= flags=0 words=[] bindings=[('buf', {[VarSub buf transform_ops=[PatSub {[\ LIT_ESCAPED_CHAR "\\$"] [VarSub variable bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})]} {[\ LIT_ESCAPED_CHAR "\\$"] [LIT_CHARS "("] [VarSub variable bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})] [LIT_CHARS ")"]} do_all]]})]) ) (Com {[LIT_CHARS print]} {[LIT_CHARS -r]} {[LIT_CHARS --]} {[DQ [VarSub buf]]}) ) ) (FunctionDef closure [] (List (Com {[LIT_CHARS typeset]} {[LIT_CHARS i]} {[LIT_CHARS j]}) (For i do_arg_iter) (List (AndOr OP_AND_IF (DBracket {B2 BINARY_STRING_EQUAL {[DQ [LIT_CHARS " "][VarSub list][LIT_CHARS " "]]} {[LIT_OTHER "*"] [DQ [LIT_CHARS " "][VarSub i][LIT_CHARS " "]] [LIT_OTHER "*"]}}) (Com {[LIT_CHARS continue]}) ) (= scope= flags=0 words=[] bindings=[('list', {[DQ [VarSub list][LIT_CHARS " "][VarSub i]]})]) (For j [{[VarSub implicit bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})]}]) (Com {[LIT_CHARS closure]} {[VarSub j]}) ) ) ) ) ) (Com {[LIT_CHARS typeset]} {[LIT_CHARS -A]} {[LIT_CHARS prereqs]} {[LIT_CHARS implicit]} {[LIT_CHARS action]}) (Com {[LIT_CHARS typeset]} {[LIT_CHARS -i]} {[LIT_VAR_LIKE "level="] [LIT_CHARS 0] =} {[LIT_VAR_LIKE "nvariables="] [LIT_CHARS 0] =}) (Com {[LIT_CHARS typeset]} {[LIT_CHARS rule]} {[LIT_CHARS list]} {[LIT_CHARS order]} {[LIT_CHARS target]} {[LIT_CHARS variable]}) (Com {[LIT_CHARS print]} {[DQ [LIT_CHARS "# # oldmake makefile generated by "][VarSub 0][LIT_CHARS " # #"]]}) (While (Com {[LIT_CHARS read]} {[LIT_CHARS -r]} {[LIT_CHARS op]} {[LIT_CHARS arg]} {[LIT_CHARS val]} {[LIT_CHARS extra]} {[LIT_CHARS junk]}) (List (Case to_match={[VarSub op]}, pat_word_list=[[{[LIT_OTHER "["] [LIT_CHARS 0-9] [LIT_OTHER "]"] [LIT_OTHER "*"]}]] (List (= scope= flags=0 words=[] bindings=[('op', {[VarSub arg]})]) (= scope= flags=0 words=[] bindings=[('arg', {[VarSub val]})]) (= scope= flags=0 words=[] bindings=[('val', {[VarSub extra]})]) ) ) (Case to_match={[VarSub op]}, pat_word_list=[[{[LIT_CHARS setv]}], [{[LIT_CHARS make]}, {[LIT_CHARS prev]}], [{[LIT_CHARS exec]}], [{[LIT_CHARS done]}]] (List (Com {[LIT_CHARS variable] [LIT_OTHER "["] [LIT_CHARS nvariables] [LIT_OTHER "+"] [LIT_OTHER "+"] [LIT_OTHER "]"] [LIT_OTHER "="] [VarSub arg]}) (Com {[LIT_CHARS convert]} {[DQ [VarSub arg][LIT_CHARS " = "][VarSub val]]}) ) (List (= scope= flags=0 words=[] bindings=[('rule', {[VarSub target bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub level]}})]})]) (AndOr OP_AND_IF (DBracket {B2 BINARY_STRING_EQUAL {[DQ [LIT_CHARS " "][VarSub val][LIT_CHARS " "]]} {[LIT_OTHER "*"] [DQ [LIT_CHARS " implicit "]] [LIT_OTHER "*"]}}) (AndOr OP_OR_IF (Com {[LIT_CHARS implicit] [LIT_OTHER "["] [VarSub rule] [LIT_OTHER "]"] [LIT_OTHER "="] [DQ [VarSub implicit bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub rule]}})][LIT_CHARS " "][VarSub arg]]}) (Com {[LIT_CHARS prereqs] [LIT_OTHER "["] [VarSub rule] [LIT_OTHER "]"] [LIT_OTHER "="] [DQ [VarSub prereqs bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub rule]}})][LIT_CHARS " "][VarSub arg]]}) ) ) (AndOr OP_AND_IF (DBracket {B2 BINARY_STRING_EQUAL {[VarSub op]} {[LIT_CHARS prev]}}) (Com {[LIT_CHARS continue]}) ) (Com {[LIT_CHARS target] [LIT_OTHER "["] [LIT_OTHER "+"] [LIT_OTHER "+"] [LIT_CHARS level] [LIT_OTHER "]"] [LIT_OTHER "="] [VarSub arg]}) (AndOr OP_AND_IF (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [LIT_CHARS " "][VarSub order][LIT_CHARS " "]]} {[LIT_OTHER "*"] [DQ [LIT_CHARS " "][VarSub arg][LIT_CHARS " "]] [LIT_OTHER "*"]}}) (= scope= flags=0 words=[] bindings=[('order', {[DQ [VarSub order][LIT_CHARS " "][VarSub arg]]})]) ) ) (List (AndOr OP_AND_IF (DBracket {B2 BINARY_STRING_EQUAL {[VarSub arg]} {[LIT_CHARS -]}}) (= scope= flags=0 words=[] bindings=[('arg', {[VarSub target bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub level]}})]})]) ) (AndOr OP_AND_IF (DBracket {B1 UNARY_STRING_n {[VarSub action bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub arg]}})]}}) (AndOr OP_OR_IF (Com {[LIT_CHARS action] [LIT_OTHER "["] [VarSub arg] [LIT_OTHER "]"] [LIT_OTHER "="] [VarSub action bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub arg]}})] [SQ ] [SQ ] [VarSub val]}) (Com {[LIT_CHARS action] [LIT_OTHER "["] [VarSub arg] [LIT_OTHER "]"] [LIT_OTHER "="] [SQ ] [VarSub val]}) ) ) ) (= scope= flags=0 words=[] bindings=[('level', {[LIT_CHARS level-1]})]) ) ) ) (For rule [{[VarSub order]}]) (List (AndOr OP_AND_IF (DBracket {B? LOGICAL_BINARY_AND {B! {B1 UNARY_STRING_n {[VarSub prereqs bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub rule]}})]}}} {B! {B1 UNARY_STRING_n {[VarSub action bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub rule]}})]}}}}) (Com {[LIT_CHARS continue]}) ) (= scope= flags=0 words=[] bindings=[('list', {[SQ ]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS closure]} {[VarSub prereqs bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub rule]}})]}) (AndOr OP_AND_IF (Com {[LIT_CHARS print]}) (Com {[LIT_CHARS convert]} {[DQ [VarSub rule][LIT_CHARS " :"][VarSub list]]}) ) ) (AndOr OP_AND_IF (DBracket {B1 UNARY_STRING_n {[VarSub action bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub rule]}})]}}) (Com {[LIT_CHARS convert]} {[DQ [VarSub action bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub rule]}})]]}) ) ) ) )