(command.CommandList children: [ (C {<set>} {<-e>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:common_objpfx) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [57] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_program_prefix) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [60] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:datafile) op: assign_op.Equal rhs: {($ Id.VSub_Number '$3')} spids: [63] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:errcode) op: assign_op.Equal rhs: {<0>} spids: [70] ) ] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple words: [{<read>} {<locale>} {<format>} {<value>} {<expect>}] more_env: [(env_pair name:IFS val:{(DQ <'\t'>)} spids:[78])] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$locale'))} arms: [ (case_arm pat_list: [{(SQ <'#'>) <Id.Lit_Star '*'>}] action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)] spids: [105 109 113 -1] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$format'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Simple words: [ {(${ Id.VSub_Name test_program_prefix)} {(${ Id.VSub_Name common_objpfx) <'localedata/tst-numeric'>} {(DQ ($ Id.VSub_DollarName '$locale'))} {(DQ ($ Id.VSub_DollarName '$format'))} {(DQ ($ Id.VSub_DollarName '$value'))} {(DQ ($ Id.VSub_DollarName '$expect'))} ] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ) action: [ (C {<echo>} { (DQ <'Locale: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (${ Id.VSub_Name locale) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' Format: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (${ Id.VSub_Name format) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } { (DQ <'Value: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (${ Id.VSub_Name value) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' Expect: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (${ Id.VSub_Name expect) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' passed'> ) } ) ] spids: [134 168] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:errcode) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [210] ) ] ) (C {<echo>} { (DQ <'Locale: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (${ Id.VSub_Name locale) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' Format: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (${ Id.VSub_Name format) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } { (DQ <'Value: '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (${ Id.VSub_Name value) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' Expect: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (${ Id.VSub_Name expect) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' failed'> ) } ) ] ) ] spids: [118 131] ) ] ) ] ) redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName '$datafile')} ) ] ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_DollarName '$errcode')} ) ] )