(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), > ) (FunctionDef ptest [] (Pipeline (Com {[LIT_CHARS tokenize]} ) (Com {[LIT_CHARS parse]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) ) (= scope= flags=0 words=[] bindings=[('fails', {[LIT_CHARS 0]})]) (= scope= flags=0 words=[] bindings=[('i', {[LIT_CHARS 0]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS 1..4]]} ) (For input [{[SQ ]}, {[SQ ]}, {[SQ ]}]) (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]}}}]})]) (If (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub input]]} ) (Com {[LIT_CHARS ptest]} ) ) (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]}}}]})]) ) ) ) ) (If (Pipeline! (Com {[LIT_CHARS ptest]} < (FilenameRedirectNode filename={[LIT_CHARS ../package.json]} 0), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "not ok 4 - Parsing package.json failed!"]]} ) (= 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]}}}]})]) ) (ElseTrue) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ok "][VarSub i][LIT_CHARS " - package.json"]]} ) ) (Com {[LIT_CHARS echo]} {[DQ [VarSub fails][LIT_CHARS " test(s) failed"]]} ) (Com {[LIT_CHARS exit]} {[VarSub fails]} ) )