(List (= scope= flags=0 words=[] bindings=[('YASM_TEST_SUITE', {[LIT_CHARS 1]})]) (= scope= flags=1 words=[{[LIT_CHARS YASM_TEST_SUITE]}] bindings=[]) (Case to_match={[ComSub (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS testing][\ LIT_ESCAPED_CHAR "\\c"]]}) (Com {[LIT_CHARS echo]} {[LIT_CHARS 1] [LIT_COMMA ","] [LIT_CHARS 2] [LIT_COMMA ","] [LIT_CHARS 3]}) )] [LIT_COMMA ","] [ComSub (List (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[LIT_CHARS testing]}) (Com {[LIT_CHARS echo]} {[LIT_CHARS 1] [LIT_COMMA ","] [LIT_CHARS 2] [LIT_COMMA ","] [LIT_CHARS 3]}) )]}, pat_word_list=[[{[LIT_OTHER "*"] [LIT_CHARS c] [LIT_OTHER "*"] [LIT_COMMA ","] [LIT_CHARS -n] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"] [LIT_CHARS c] [LIT_OTHER "*"] [LIT_COMMA ","] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('ECHO_N', {[SQ ]}), ('ECHO_C', {[SQ ]}), ('ECHO_T', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('ECHO_N', {[LIT_CHARS -n]}), ('ECHO_C', {[SQ ]}), ('ECHO_T', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('ECHO_N', {[SQ ]}), ('ECHO_C', {[SQ ]}), ('ECHO_T', {[SQ ]})]) ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS results]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (= scope= flags=0 words=[] bindings=[('passedct', {[LIT_CHARS 0]})]) (= scope= flags=0 words=[] bindings=[('failedct', {[LIT_CHARS 0]})]) (Com {[LIT_CHARS echo]} {[VarSub ECHO_N]} {[DQ [LIT_CHARS "Test "][VarSub 1][LIT_CHARS ": "][VarSub ECHO_C]]}) (For asm [{[VarSub srcdir] [LIT_CHARS /] [VarSub 2] [LIT_CHARS /] [LIT_OTHER "*"] [LIT_CHARS .asm]}]) (List (= scope= flags=0 words=[] bindings=[('a', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub asm]}) (Com {[LIT_CHARS sed]} {[SQ ]}) )]})]) (= scope= flags=0 words=[] bindings=[('o', {[VarSub a] [VarSub 5]})]) (= scope= flags=0 words=[] bindings=[('oh', {[VarSub a] [LIT_CHARS .hx]})]) (= scope= flags=0 words=[] bindings=[('og', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub asm]}) (Com {[LIT_CHARS sed]} {[SQ ]}) )]})]) (= scope= flags=0 words=[] bindings=[('e', {[VarSub a] [LIT_CHARS .ew]})]) (= scope= flags=0 words=[] bindings=[('eg', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub asm]}) (Com {[LIT_CHARS sed]} {[SQ ]}) )]})]) (If (Com {[LIT_CHARS test]} {[\ LIT_ESCAPED_CHAR "\\!"]} {[LIT_CHARS -f]} {[VarSub eg]}) (= scope= flags=0 words=[] bindings=[('eg', {[LIT_CHARS /dev/null]})]) ) (Com {[LIT_CHARS sh]} {[LIT_CHARS -c]} {[DQ [LIT_CHARS "cat "][VarSub asm][LIT_CHARS " | ./yasm "][VarSub 4][LIT_CHARS " -o results/"][VarSub o][LIT_CHARS " - 2>results/"][VarSub e]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2), > ) (= scope= flags=0 words=[] bindings=[('status', {[VarSub ?]})]) (If (Com {[LIT_CHARS test]} {[VarSub status]} {[LIT_CHARS -gt]} {[LIT_CHARS 128]}) (List (Com {[LIT_CHARS echo]} {[VarSub ECHO_N]} {[DQ [LIT_CHARS C][VarSub ECHO_C]]}) (Com {[LIT_CHARS eval]} {[DQ [LIT_CHARS failed][VarSub failedct][LIT_CHARS "='C: "][VarSub a][LIT_CHARS " crashed!'"]]}) (= scope= flags=0 words=[] bindings=[('failedct', {[ComSub (Com {[LIT_CHARS expr]} {[VarSub failedct]} {[LIT_OTHER "+"]} {[LIT_CHARS 1]})]})]) ) (Com {[LIT_CHARS test]} {[VarSub status]} {[LIT_CHARS -gt]} {[LIT_CHARS 0]}) (List (Pipeline (Com {[LIT_CHARS echo]} {[VarSub asm]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS err]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (If (Com {[LIT_CHARS test]} {[VarSub ?]} {[LIT_CHARS -gt]} {[LIT_CHARS 0]}) (List (Com {[LIT_CHARS echo]} {[VarSub ECHO_N]} {[DQ [LIT_CHARS E][VarSub ECHO_C]]}) (Com {[LIT_CHARS eval]} {[DQ [LIT_CHARS failed][VarSub failedct][LIT_CHARS "='E: "][VarSub a][LIT_CHARS " returned an error code!'"]]}) (= scope= flags=0 words=[] bindings=[('failedct', {[ComSub (Com {[LIT_CHARS expr]} {[VarSub failedct]} {[LIT_OTHER "+"]} {[LIT_CHARS 1]})]})]) ) (ElseTrue) (If (Com {[LIT_CHARS diff]} {[LIT_CHARS -w]} {[VarSub eg]} {[LIT_CHARS results/] [VarSub e]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (List (Com {[LIT_CHARS echo]} {[VarSub ECHO_N]} {[DQ [LIT_CHARS .][VarSub ECHO_C]]}) (= scope= flags=0 words=[] bindings=[('passedct', {[ComSub (Com {[LIT_CHARS expr]} {[VarSub passedct]} {[LIT_OTHER "+"]} {[LIT_CHARS 1]})]})]) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[VarSub ECHO_N]} {[DQ [LIT_CHARS W][VarSub ECHO_C]]}) (Com {[LIT_CHARS eval]} {[DQ [LIT_CHARS failed][VarSub failedct][LIT_CHARS "='W: "][VarSub a][LIT_CHARS " did not match errors and warnings!'"]]}) (= scope= flags=0 words=[] bindings=[('failedct', {[ComSub (Com {[LIT_CHARS expr]} {[VarSub failedct]} {[LIT_OTHER "+"]} {[LIT_CHARS 1]})]})]) ) ) ) ) (ElseTrue) (List (Pipeline (Com {[LIT_CHARS echo]} {[VarSub asm]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -v]} {[LIT_CHARS err]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (If (Com {[LIT_CHARS test]} {[VarSub ?]} {[LIT_CHARS -gt]} {[LIT_CHARS 0]}) (List (Com {[LIT_CHARS echo]} {[VarSub ECHO_N]} {[DQ [LIT_CHARS E][VarSub ECHO_C]]}) (Com {[LIT_CHARS eval]} {[DQ [LIT_CHARS failed][VarSub failedct][LIT_CHARS "='E: "][VarSub a][LIT_CHARS " did not return an error code!'"]]}) (= scope= flags=0 words=[] bindings=[('failedct', {[ComSub (Com {[LIT_CHARS expr]} {[VarSub failedct]} {[LIT_OTHER "+"]} {[LIT_CHARS 1]})]})]) ) (ElseTrue) (List (Com {[LIT_CHARS ./test_hd]} {[LIT_CHARS results/] [VarSub o]} < (FilenameRedirectNode filename={[LIT_CHARS results/] [VarSub oh]} "> 1), > ) (If (Com {[LIT_CHARS diff]} {[LIT_CHARS -w]} {[VarSub og]} {[LIT_CHARS results/] [VarSub oh]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (If (Com {[LIT_CHARS diff]} {[LIT_CHARS -w]} {[VarSub eg]} {[LIT_CHARS results/] [VarSub e]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (List (Com {[LIT_CHARS echo]} {[VarSub ECHO_N]} {[DQ [LIT_CHARS .][VarSub ECHO_C]]}) (= scope= flags=0 words=[] bindings=[('passedct', {[ComSub (Com {[LIT_CHARS expr]} {[VarSub passedct]} {[LIT_OTHER "+"]} {[LIT_CHARS 1]})]})]) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[VarSub ECHO_N]} {[DQ [LIT_CHARS W][VarSub ECHO_C]]}) (Com {[LIT_CHARS eval]} {[DQ [LIT_CHARS failed][VarSub failedct][LIT_CHARS "='W: "][VarSub a][LIT_CHARS " did not match errors and warnings!'"]]}) (= scope= flags=0 words=[] bindings=[('failedct', {[ComSub (Com {[LIT_CHARS expr]} {[VarSub failedct]} {[LIT_OTHER "+"]} {[LIT_CHARS 1]})]})]) ) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[VarSub ECHO_N]} {[DQ [LIT_CHARS O][VarSub ECHO_C]]}) (Com {[LIT_CHARS eval]} {[DQ [LIT_CHARS failed][VarSub failedct][LIT_CHARS "='O: "][VarSub a][LIT_CHARS " did not match object file!'"]]}) (= scope= flags=0 words=[] bindings=[('failedct', {[ComSub (Com {[LIT_CHARS expr]} {[VarSub failedct]} {[LIT_OTHER "+"]} {[LIT_CHARS 1]})]})]) ) ) ) ) ) ) ) ) (= scope= flags=0 words=[] bindings=[('ct', {[ComSub (Com {[LIT_CHARS expr]} {[VarSub failedct]} {[LIT_OTHER "+"]} {[VarSub passedct]})]})]) (= scope= flags=0 words=[] bindings=[('per', {[ComSub (Com {[LIT_CHARS expr]} {[LIT_CHARS 100]} {[\ LIT_ESCAPED_CHAR "\\*"]} {[VarSub passedct]} {[LIT_CHARS /]} {[VarSub ct]})]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " +"][VarSub passedct][LIT_CHARS -][VarSub failedct][LIT_CHARS /][VarSub ct][LIT_CHARS " "][VarSub per][LIT_CHARS "%"]]}) (= scope= flags=0 words=[] bindings=[('i', {[LIT_CHARS 0]})]) (While (Com {[LIT_CHARS test]} {[VarSub i]} {[LIT_CHARS -lt]} {[VarSub failedct]}) (List (Com {[LIT_CHARS eval]} {[DQ [LIT_CHARS "failure="][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS failed][VarSub i]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " ** "][VarSub failure]]}) (= scope= flags=0 words=[] bindings=[('i', {[ComSub (Com {[LIT_CHARS expr]} {[VarSub i]} {[LIT_OTHER "+"]} {[LIT_CHARS 1]})]})]) ) ) (Com {[LIT_CHARS exit]} {[VarSub failedct]}) )