(List (Com {[LIT_CHARS cd]} {[VarSub 0 transform_ops=[VS_UNARY_PERCENT {[LIT_SLASH /] [LIT_CHARS "*"]}]]} ) (= scope= flags=0 words=[] bindings=[('fail', {[LIT_CHARS 0]})]) (= scope= flags=0 words=[] bindings=[('tests', {[LIT_CHARS 0]})]) (For test [{[LIT_CHARS test/] [LIT_OTHER "*"] [LIT_CHARS .sh]}]) (List (= scope= flags=0 words=[] bindings=[('tests', {[ArithSub {A2 ASOP_PLUS {A Atom AS_WORD {[VarSub tests]}} {A Atom AS_WORD {[AS_NUM_LITERAL 1]}}}]})]) (Com {[LIT_CHARS echo]} {[LIT_CHARS TEST] [LIT_OTHER ":"]} {[VarSub test]} ) (Com {[LIT_CHARS ./] [VarSub test]} ) (= scope= flags=0 words=[] bindings=[('ret', {[VarSub ?]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub ret]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[LIT_CHARS OK] [LIT_OTHER ":"]} {[LIT_CHARS ----]} {[VarSub test]} ) (= scope= flags=0 words=[] bindings=[('passed', {[ArithSub {A2 ASOP_PLUS {A Atom AS_WORD {[VarSub passed]}} {A Atom AS_WORD {[AS_NUM_LITERAL 1]}}}]})]) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[LIT_CHARS FAIL] [LIT_OTHER ":"]} {[VarSub test]} {[VarSub fail]} ) (= scope= flags=0 words=[] bindings=[('fail', {[ArithSub {A2 ASOP_PLUS {A Atom AS_WORD {[VarSub fail]}} {A Atom AS_WORD {[VarSub ret]}}}]})]) ) ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub fail]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[SQ ]} ) (= scope= flags=0 words=[] bindings=[('exitcode', {[LIT_CHARS 0]})]) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[SQ ]} ) (= scope= flags=0 words=[] bindings=[('exitcode', {[LIT_CHARS 1]})]) ) ) (Com {[LIT_CHARS echo]} {[VarSub passed]} {[LIT_CHARS /]} {[VarSub tests]} ) (Com {[LIT_CHARS exit]} {[VarSub exitcode]} ) )