(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: [54] ) ] ) 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: [60] ) ] ) 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: [66] ) ] ) 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: [72] ) ] ) terminator: <Id.Op_Semi _> ) (C {<shift>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lang) op: assign_op.Equal rhs: {($ Id.VSub_Star '$*')} spids: [78] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:id) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name PPID> suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{<100>}) ) } spids: [82] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:here) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> command_list: (command.CommandList children:[(C {<pwd>})]) ) } spids: [89] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:status) op: assign_op.Equal rhs: {<0>} spids: [100] ) ] ) (command.ForEach iter_name: l iter_words: [{($ Id.VSub_DollarName '$lang')}] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:here) op: assign_op.Equal rhs: {<0>} spids: [115] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cns) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$l')}) (C {<sed>} {(SQ <'s/\\(.*\\)[.][^.]*/\\1/'>)}) ] negated: F ) ] ) ) } spids: [119] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [ {(${ Id.VSub_Name test_program_prefix_before_env)} {(${ Id.VSub_Name run_program_env)} {<Id.Lit_VarLike 'LC_ALL='> ($ Id.VSub_DollarName '$l')} {(${ Id.VSub_Name test_program_prefix_after_env)} {(${ Id.VSub_Name common_objpfx) <localedata/collate-test>} {($ Id.VSub_DollarName '$id')} ] redirects: [ (redir.Redir op: <Id.Redir_Less '<'> fd: -1 arg_word: {($ Id.VSub_DollarName '$cns') <.in>} ) (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {(${ Id.VSub_Name common_objpfx) <localedata/> ($ Id.VSub_DollarName '$cns') <.out> } ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:here) op: assign_op.Equal rhs: {<1>} spids: [189] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cmp>} {<-s>} {($ Id.VSub_DollarName '$cns') <.in>} {(${ Id.VSub_Name common_objpfx) <localedata/> ($ Id.VSub_DollarName '$cns') <.out>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:here) op: assign_op.Equal rhs: {<1>} spids: [209] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {($ Id.VSub_DollarName '$here')} {<-eq>} {<0>}) terminator: <Id.Op_Semi _> ) ] action: [(C {<echo>} {(DQ ($ Id.VSub_DollarName '$l') <' collate-test OK'>)})] spids: [213 224] ) ] else_action: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$l') <' collate-test FAIL'>)}) (command.Pipeline children: [ (C {<diff>} {<-u>} {($ Id.VSub_DollarName '$cns') <.in>} {(${ Id.VSub_Name common_objpfx) <localedata/> ($ Id.VSub_DollarName '$cns') <.out> } ) (C {<sed>} {(SQ <'s/^/ /'>)}) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:status) op: assign_op.Equal rhs: {<1>} spids: [269] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [ {(${ Id.VSub_Name test_program_prefix_before_env)} {(${ Id.VSub_Name run_program_env)} {<Id.Lit_VarLike 'LC_ALL='> ($ Id.VSub_DollarName '$l')} {(${ Id.VSub_Name test_program_prefix_after_env)} {(${ Id.VSub_Name common_objpfx) <localedata/xfrm-test>} {($ Id.VSub_DollarName '$id')} ] redirects: [ (redir.Redir op: <Id.Redir_Less '<'> fd: -1 arg_word: {($ Id.VSub_DollarName '$cns') <.in>} ) (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {(${ Id.VSub_Name common_objpfx) <localedata/> ($ Id.VSub_DollarName '$cns') <.xout> } ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:here) op: assign_op.Equal rhs: {<1>} spids: [323] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cmp>} {<-s>} {($ Id.VSub_DollarName '$cns') <.in>} {(${ Id.VSub_Name common_objpfx) <localedata/> ($ Id.VSub_DollarName '$cns') <.xout>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:here) op: assign_op.Equal rhs: {<1>} spids: [343] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [ {(${ Id.VSub_Name test_program_prefix_before_env)} {(${ Id.VSub_Name run_program_env)} {<Id.Lit_VarLike 'LC_ALL='> ($ Id.VSub_DollarName '$l')} {(${ Id.VSub_Name test_program_prefix_after_env)} {(${ Id.VSub_Name common_objpfx) <localedata/xfrm-test>} {($ Id.VSub_DollarName '$id')} {<-nocache>} ] redirects: [ (redir.Redir op: <Id.Redir_Less '<'> fd: -1 arg_word: {($ Id.VSub_DollarName '$cns') <.in>} ) (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {(${ Id.VSub_Name common_objpfx) <localedata/> ($ Id.VSub_DollarName '$cns') <.nocache.xout> } ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:here) op: assign_op.Equal rhs: {<1>} spids: [395] ) ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cmp>} {<-s>} {($ Id.VSub_DollarName '$cns') <.in>} {(${ Id.VSub_Name common_objpfx) <localedata/> ($ Id.VSub_DollarName '$cns') <.nocache.xout> } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:here) op: assign_op.Equal rhs: {<1>} spids: [415] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {($ Id.VSub_DollarName '$here')} {<-eq>} {<0>}) terminator: <Id.Op_Semi _> ) ] action: [(C {<echo>} {(DQ ($ Id.VSub_DollarName '$l') <' xfrm-test OK'>)})] spids: [419 430] ) ] else_action: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$l') <' xfrm-test FAIL'>)}) (command.Pipeline children: [ (C {<diff>} {<-u>} {($ Id.VSub_DollarName '$cns') <.in>} {(${ Id.VSub_Name common_objpfx) <localedata/> ($ Id.VSub_DollarName '$cns') <.xout> } ) (C {<sed>} {(SQ <'s/^/ /'>)}) ] negated: F ) (command.Pipeline children: [ (C {<diff>} {<-u>} {($ Id.VSub_DollarName '$cns') <.in>} {(${ Id.VSub_Name common_objpfx) <localedata/> ($ Id.VSub_DollarName '$cns') <.nocache.xout> } ) (C {<sed>} {(SQ <'s/^/ /'>)}) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:status) op: assign_op.Equal rhs: {<1>} spids: [498] ) ] ) ] ) ] ) ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_DollarName '$status')} ) ] )