(List (Com {[LIT_CHARS cd]} {[VarSub 0 transform_ops=[VS_UNARY_PERCENT {[LIT_SLASH /] [LIT_CHARS "*"]}]]} ) (Com {[LIT_CHARS .]} {[LIT_CHARS ../JSON.sh]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} 0), > ) (= scope= flags=0 words=[] bindings=[('i', {[LIT_CHARS 0]})]) (= scope= flags=0 words=[] bindings=[('fails', {[LIT_CHARS 0]})]) (FunctionDef ttest [] (List (= scope= flags=0 words=[] bindings=[('i', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) (= scope= flags=0 words=[] bindings=[('input', {[DQ [VarSub 1]]})]) (Com {[LIT_CHARS shift]} ) (= scope= flags=0 words=[] bindings=[('expected', {[DQ [ComSub (Com {[LIT_CHARS printf]} {[SQ ]} {[DQ [VarSub @]]})]]})]) (Com {[LIT_CHARS echo]} {[DQ [VarSub expected]]} < (FilenameRedirectNode filename={[LIT_CHARS /tmp/json_ttest_expected]} "> 1), > ) (If (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub input]]} ) (Com {[LIT_CHARS tokenize]} ) (Com {[LIT_CHARS diff]} {[LIT_CHARS -u]} {[LIT_CHARS -]} {[LIT_CHARS /tmp/json_ttest_expected]} ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ok "][VarSub i][LIT_CHARS " - "][VarSub input]]} ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "not ok "][VarSub i][LIT_CHARS " - "][VarSub input]]} ) (= scope= flags=0 words=[] bindings=[('fails', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub fails]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) ) ) ) ) (Com {[LIT_CHARS ttest]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS ttest]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS ttest]} {[SQ ]} {[SQ ]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS ttest]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS ttest]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS ttest]} {[SQ ]} {[SQ ]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS ttest]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS ttest]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS ttest]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS ttest]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS ttest]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS ttest]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS ttest]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS ttest]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS ttest]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS ttest]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS ttest]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS ttest]} {[SQ ]} {[SQ ]} {[SQ ]} {[SQ ]} {[SQ ]} {[SQ ]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS ttest]} {[SQ ]} {[SQ ]} {[SQ ]} {[SQ ]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS ttest]} {[SQ ]} {[SQ ]} {[SQ ]} {[SQ ]} {[SQ ]} {[SQ ]} ) (If (Pipeline! (Com {[LIT_CHARS cat]} {[LIT_CHARS ../package.json]} ) (Com {[LIT_CHARS tokenize]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (= scope= flags=0 words=[] bindings=[('fails', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub fails]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Tokenizing package.json failed!"]]} ) ) ) (Com {[LIT_CHARS echo]} {[DQ [VarSub fails][LIT_CHARS " test(s) failed"]]} ) (Com {[LIT_CHARS exit]} {[VarSub fails]} ) )