(command.CommandList children: [ (C {<Id.KW_Set set>} {<-e>}) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:common_objpfx) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [64] ) ] ) terminator: <Id.Op_Semi _> ) (C {<shift>}) ] ) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_program_prefix_before_env) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [70] ) ] ) terminator: <Id.Op_Semi _> ) (C {<shift>}) ] ) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:run_program_env) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [76] ) ] ) terminator: <Id.Op_Semi _> ) (C {<shift>}) ] ) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_program_prefix_after_env) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [82] ) ] ) terminator: <Id.Op_Semi _> ) (C {<shift>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:logfile) op: assign_op.Equal rhs: {(${ Id.VSub_Name common_objpfx) <posix/wordexp-tst.out>} spids: [88] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:testout) op: assign_op.Equal rhs: {(${ Id.VSub_Name common_objpfx) <posix/wordexp-test-result>} spids: [94] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:result) op: assign_op.Equal rhs: {<0>} spids: [101] ) ] ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$logfile')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IFS) op: assign_op.Equal rhs: {(DQ <' \t'> <'\n'>)} spids: [116] ) ] ) (C {<export>} {<IFS>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:failed) op: assign_op.Equal rhs: {<0>} spids: [128] ) ] ) (command.Simple words: [ {(${ Id.VSub_Name test_program_prefix_before_env)} {(${ Id.VSub_Name run_program_env)} {<Id.Lit_VarLike 'IFS='> (DQ ($ Id.VSub_DollarName '$IFS'))} {(${ Id.VSub_Name test_program_prefix_after_env)} {(${ Id.VSub_Name common_objpfx) <posix/wordexp-test>} {(SQ <'$*'>)} ] redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{(${ Id.VSub_Name testout) <1>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Pipeline children: [ (command.Simple words: [{<cat>}] redirects: [ (redir.HereDoc op: <Id.Redir_DLess '<<'> fd: -1 here_begin: {(DQ <EOF>)} here_end_span_id: 195 stdin_parts: [<'wordexp returned 0\n'> <'we_wordv[0] = "$*"\n'>] ) ] ) (command.Simple words: [{<cmp>} {<->} {(${ Id.VSub_Name testout) <1>}] redirects: [ (redir.Redir op: <Id.Redir_DGreat '>>'> fd: -1 arg_word: {($ Id.VSub_DollarName '$logfile')} ) ] ) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:failed) op: assign_op.Equal rhs: {<1>} spids: [190] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {($ Id.VSub_DollarName '$failed')} {<-ne>} {<0>}) terminator: <Id.Op_Semi _> ) ] action: [ (C {<echo>} {(SQ <'$* test failed'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:status) op: assign_op.Equal rhs: {<1>} spids: [217] ) ] ) ] spids: [196 207] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:failed) op: assign_op.Equal rhs: {<0>} spids: [223] ) ] ) (command.Simple words: [ {(${ Id.VSub_Name test_program_prefix_before_env)} {(${ Id.VSub_Name run_program_env)} {<Id.Lit_VarLike 'IFS='> (DQ ($ Id.VSub_DollarName '$IFS'))} {(${ Id.VSub_Name test_program_prefix_after_env)} {(${ Id.VSub_Name common_objpfx) <posix/wordexp-test>} {(SQ <'${*}'>)} {<unquoted>} ] redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{(${ Id.VSub_Name testout) <2>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Pipeline children: [ (command.Simple words: [{<cat>}] redirects: [ (redir.HereDoc op: <Id.Redir_DLess '<<'> fd: -1 here_begin: {(DQ <EOF>)} here_end_span_id: 293 stdin_parts: [ <'wordexp returned 0\n'> <'we_wordv[0] = "${*}"\n'> <'we_wordv[1] = "unquoted"\n'> ] ) ] ) (command.Simple words: [{<cmp>} {<->} {(${ Id.VSub_Name testout) <2>}] redirects: [ (redir.Redir op: <Id.Redir_DGreat '>>'> fd: -1 arg_word: {($ Id.VSub_DollarName '$logfile')} ) ] ) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:failed) op: assign_op.Equal rhs: {<1>} spids: [287] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {($ Id.VSub_DollarName '$failed')} {<-ne>} {<0>}) terminator: <Id.Op_Semi _> ) ] action: [ (C {<echo>} {(SQ <'${*} test failed'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:status) op: assign_op.Equal rhs: {<1>} spids: [315] ) ] ) ] spids: [294 305] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:failed) op: assign_op.Equal rhs: {<0>} spids: [321] ) ] ) (command.Simple words: [ {(${ Id.VSub_Name test_program_prefix_before_env)} {(${ Id.VSub_Name run_program_env)} {<Id.Lit_VarLike 'IFS='> (DQ ($ Id.VSub_DollarName '$IFS'))} {(${ Id.VSub_Name test_program_prefix_after_env)} {(${ Id.VSub_Name common_objpfx) <posix/wordexp-test>} {(SQ <'$@'>)} {<unquoted>} ] redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{(${ Id.VSub_Name testout) <3>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Pipeline children: [ (command.Simple words: [{<cat>}] redirects: [ (redir.HereDoc op: <Id.Redir_DLess '<<'> fd: -1 here_begin: {(DQ <EOF>)} here_end_span_id: 391 stdin_parts: [ <'wordexp returned 0\n'> <'we_wordv[0] = "$@"\n'> <'we_wordv[1] = "unquoted"\n'> ] ) ] ) (command.Simple words: [{<cmp>} {<->} {(${ Id.VSub_Name testout) <3>}] redirects: [ (redir.Redir op: <Id.Redir_DGreat '>>'> fd: -1 arg_word: {($ Id.VSub_DollarName '$logfile')} ) ] ) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:failed) op: assign_op.Equal rhs: {<1>} spids: [385] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {($ Id.VSub_DollarName '$failed')} {<-ne>} {<0>}) terminator: <Id.Op_Semi _> ) ] action: [ (C {<echo>} {(SQ <'$@ test failed'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:status) op: assign_op.Equal rhs: {<1>} spids: [413] ) ] ) ] spids: [392 403] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:failed) op: assign_op.Equal rhs: {<0>} spids: [419] ) ] ) (command.Simple words: [ {(${ Id.VSub_Name test_program_prefix_before_env)} {(${ Id.VSub_Name run_program_env)} {<Id.Lit_VarLike 'IFS='> (DQ ($ Id.VSub_DollarName '$IFS'))} {(${ Id.VSub_Name test_program_prefix_after_env)} {(${ Id.VSub_Name common_objpfx) <posix/wordexp-test>} {(SQ <'"$* quoted"'>)} {<param>} ] redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{(${ Id.VSub_Name testout) <4>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Pipeline children: [ (command.Simple words: [{<cat>}] redirects: [ (redir.HereDoc op: <Id.Redir_DLess '<<'> fd: -1 here_begin: {(DQ <EOF>)} here_end_span_id: 488 stdin_parts: [ <'wordexp returned 0\n'> <'we_wordv[0] = ""$* quoted" param quoted"\n'> ] ) ] ) (command.Simple words: [{<cmp>} {<->} {(${ Id.VSub_Name testout) <4>}] redirects: [ (redir.Redir op: <Id.Redir_DGreat '>>'> fd: -1 arg_word: {($ Id.VSub_DollarName '$logfile')} ) ] ) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:failed) op: assign_op.Equal rhs: {<1>} spids: [483] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {($ Id.VSub_DollarName '$failed')} {<-ne>} {<0>}) terminator: <Id.Op_Semi _> ) ] action: [ (C {<echo>} {(SQ <'$* quoted test failed'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:status) op: assign_op.Equal rhs: {<1>} spids: [510] ) ] ) ] spids: [489 500] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:failed) op: assign_op.Equal rhs: {<0>} spids: [516] ) ] ) (command.Simple words: [ {(${ Id.VSub_Name test_program_prefix_before_env)} {(${ Id.VSub_Name run_program_env)} {<Id.Lit_VarLike 'IFS='> (DQ ($ Id.VSub_DollarName '$IFS'))} {(${ Id.VSub_Name test_program_prefix_after_env)} {(${ Id.VSub_Name common_objpfx) <posix/wordexp-test>} {(SQ <'"$@ quoted"'>)} {<param>} ] redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{(${ Id.VSub_Name testout) <5>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Pipeline children: [ (command.Simple words: [{<cat>}] redirects: [ (redir.HereDoc op: <Id.Redir_DLess '<<'> fd: -1 here_begin: {(DQ <EOF>)} here_end_span_id: 586 stdin_parts: [ <'wordexp returned 0\n'> <'we_wordv[0] = ""$@ quoted""\n'> <'we_wordv[1] = "param quoted"\n'> ] ) ] ) (command.Simple words: [{<cmp>} {<->} {(${ Id.VSub_Name testout) <5>}] redirects: [ (redir.Redir op: <Id.Redir_DGreat '>>'> fd: -1 arg_word: {($ Id.VSub_DollarName '$logfile')} ) ] ) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:failed) op: assign_op.Equal rhs: {<1>} spids: [580] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {($ Id.VSub_DollarName '$failed')} {<-ne>} {<0>}) terminator: <Id.Op_Semi _> ) ] action: [ (C {<echo>} {(SQ <'$@ quoted test failed'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:status) op: assign_op.Equal rhs: {<1>} spids: [608] ) ] ) ] spids: [587 598] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:failed) op: assign_op.Equal rhs: {<0>} spids: [617] ) ] ) (command.Simple words: [ {(${ Id.VSub_Name test_program_prefix_before_env)} {(${ Id.VSub_Name run_program_env)} {<Id.Lit_VarLike 'IFS='> (DQ ($ Id.VSub_DollarName '$IFS'))} {(${ Id.VSub_Name test_program_prefix_after_env)} {(${ Id.VSub_Name common_objpfx) <posix/wordexp-test>} {(SQ <'$#'>)} {<2>} {<3>} {<4>} {<5>} ] redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{(${ Id.VSub_Name testout) <6>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Pipeline children: [ (command.Simple words: [{<cat>}] redirects: [ (redir.HereDoc op: <Id.Redir_DLess '<<'> fd: -1 here_begin: {(DQ <EOF>)} here_end_span_id: 692 stdin_parts: [<'wordexp returned 0\n'> <'we_wordv[0] = "5"\n'>] ) ] ) (command.Simple words: [{<cmp>} {<->} {(${ Id.VSub_Name testout) <6>}] redirects: [ (redir.Redir op: <Id.Redir_DGreat '>>'> fd: -1 arg_word: {($ Id.VSub_DollarName '$logfile')} ) ] ) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:failed) op: assign_op.Equal rhs: {<1>} spids: [687] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {($ Id.VSub_DollarName '$failed')} {<-ne>} {<0>}) terminator: <Id.Op_Semi _> ) ] action: [ (C {<echo>} {(SQ <'$# test failed'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:status) op: assign_op.Equal rhs: {<1>} spids: [714] ) ] ) ] spids: [693 704] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:failed) op: assign_op.Equal rhs: {<0>} spids: [720] ) ] ) (command.Simple words: [ {(${ Id.VSub_Name test_program_prefix_before_env)} {(${ Id.VSub_Name run_program_env)} {<Id.Lit_VarLike 'IFS='> (DQ ($ Id.VSub_DollarName '$IFS'))} {(${ Id.VSub_Name test_program_prefix_after_env)} {(${ Id.VSub_Name common_objpfx) <posix/wordexp-test>} {(SQ <'$2 ${3} $4'>)} {<2nd>} {<3rd>} {(DQ <'4 th'>)} ] redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{(${ Id.VSub_Name testout) <7>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Pipeline children: [ (command.Simple words: [{<cat>}] redirects: [ (redir.HereDoc op: <Id.Redir_DLess '<<'> fd: -1 here_begin: {(DQ <EOF>)} here_end_span_id: 798 stdin_parts: [ <'wordexp returned 0\n'> <'we_wordv[0] = "2nd"\n'> <'we_wordv[1] = "3rd"\n'> <'we_wordv[2] = "4"\n'> <'we_wordv[3] = "th"\n'> ] ) ] ) (command.Simple words: [{<cmp>} {<->} {(${ Id.VSub_Name testout) <7>}] redirects: [ (redir.Redir op: <Id.Redir_DGreat '>>'> fd: -1 arg_word: {($ Id.VSub_DollarName '$logfile')} ) ] ) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:failed) op: assign_op.Equal rhs: {<1>} spids: [790] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {($ Id.VSub_DollarName '$failed')} {<-ne>} {<0>}) terminator: <Id.Op_Semi _> ) ] action: [ (C {<echo>} {(SQ <'$2 ${3} $4 test failed'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:status) op: assign_op.Equal rhs: {<1>} spids: [820] ) ] ) ] spids: [799 810] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:failed) op: assign_op.Equal rhs: {<0>} spids: [826] ) ] ) (command.Simple words: [ {(${ Id.VSub_Name test_program_prefix_before_env)} {(${ Id.VSub_Name run_program_env)} {<Id.Lit_VarLike 'IFS='> (DQ ($ Id.VSub_DollarName '$IFS'))} {(${ Id.VSub_Name test_program_prefix_after_env)} {(${ Id.VSub_Name common_objpfx) <posix/wordexp-test>} {(SQ <'${11}'>)} {<2>} {<3>} {<4>} {<5>} {<6>} {<7>} {<8>} {<9>} {<10>} {<11>} ] redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{(${ Id.VSub_Name testout) <8>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Pipeline children: [ (command.Simple words: [{<cat>}] redirects: [ (redir.HereDoc op: <Id.Redir_DLess '<<'> fd: -1 here_begin: {(DQ <EOF>)} here_end_span_id: 913 stdin_parts: [<'wordexp returned 0\n'> <'we_wordv[0] = "11"\n'>] ) ] ) (command.Simple words: [{<cmp>} {<->} {(${ Id.VSub_Name testout) <8>}] redirects: [ (redir.Redir op: <Id.Redir_DGreat '>>'> fd: -1 arg_word: {($ Id.VSub_DollarName '$logfile')} ) ] ) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:failed) op: assign_op.Equal rhs: {<1>} spids: [908] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {($ Id.VSub_DollarName '$failed')} {<-ne>} {<0>}) terminator: <Id.Op_Semi _> ) ] action: [ (C {<echo>} {(SQ <'${11} test failed'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:status) op: assign_op.Equal rhs: {<1>} spids: [935] ) ] ) ] spids: [914 925] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:failed) op: assign_op.Equal rhs: {<0>} spids: [941] ) ] ) (command.Simple words: [ {(${ Id.VSub_Name test_program_prefix_before_env)} {(${ Id.VSub_Name run_program_env)} {<Id.Lit_VarLike 'IFS='> (DQ ($ Id.VSub_DollarName '$IFS'))} {(${ Id.VSub_Name test_program_prefix_after_env)} {(${ Id.VSub_Name common_objpfx) <posix/wordexp-test>} {(SQ <'"a $@ b"'>)} {<c>} {<d>} ] redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{(${ Id.VSub_Name testout) <9>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Pipeline children: [ (command.Simple words: [{<cat>}] redirects: [ (redir.HereDoc op: <Id.Redir_DLess '<<'> fd: -1 here_begin: {(DQ <EOF>)} here_end_span_id: 1014 stdin_parts: [ <'wordexp returned 0\n'> <'we_wordv[0] = "a "a $@ b""\n'> <'we_wordv[1] = "c"\n'> <'we_wordv[2] = "d b"\n'> ] ) ] ) (command.Simple words: [{<cmp>} {<->} {(${ Id.VSub_Name testout) <9>}] redirects: [ (redir.Redir op: <Id.Redir_DGreat '>>'> fd: -1 arg_word: {($ Id.VSub_DollarName '$logfile')} ) ] ) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:failed) op: assign_op.Equal rhs: {<1>} spids: [1007] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {($ Id.VSub_DollarName '$failed')} {<-ne>} {<0>}) terminator: <Id.Op_Semi _> ) ] action: [ (C {<echo>} {(SQ <'"a $@ b" test failed'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:status) op: assign_op.Equal rhs: {<1>} spids: [1036] ) ] ) ] spids: [1015 1026] ) ] ) (command.Simple words: [ {(${ Id.VSub_Name test_program_prefix_before_env)} {(${ Id.VSub_Name run_program_env)} {<Id.Lit_VarLike 'IFS='> (DQ ($ Id.VSub_DollarName '$IFS'))} {(${ Id.VSub_Name test_program_prefix_after_env)} {(${ Id.VSub_Name common_objpfx) <posix/wordexp-test>} {(SQ <'${#@} ${#2} *$**'>)} {<two>} {<3>} {<4>} ] redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{(${ Id.VSub_Name testout) <10>})] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Pipeline children: [ (command.Simple words: [{<cat>}] redirects: [ (redir.HereDoc op: <Id.Redir_DLess '<<'> fd: -1 here_begin: {(DQ <EOF>)} here_end_span_id: 1115 stdin_parts: [ <'wordexp returned 0\n'> <'we_wordv[0] = "4"\n'> <'we_wordv[1] = "3"\n'> <'we_wordv[2] = "*${#@}"\n'> <'we_wordv[3] = "${#2}"\n'> <'we_wordv[4] = "*$**"\n'> <'we_wordv[5] = "two"\n'> <'we_wordv[6] = "3"\n'> <'we_wordv[7] = "4*"\n'> ] ) ] ) (C {<cmp>} {<->} {(${ Id.VSub_Name testout) <10>}) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:failed) op: assign_op.Equal rhs: {<1>} spids: [1103] ) ] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_DollarName '$result')} ) ] )