(command.CommandList children: [ (C {<Id.KW_Set 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: [ (command.Sentence child: (command.Simple words: [{<read>} {<locale>} {<format>} {<value>} {<expect>}] more_env: [(env_pair name:IFS val:{(DQ <'\t'>)} spids:[78])] ) 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: [ (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: [ (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.Redir op: <Id.Redir_Less '<'> fd: -1 arg_word: {</dev/null>} ) ] ) ] 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.Redir op: <Id.Redir_Less '<'> fd: -1 arg_word: {($ Id.VSub_DollarName '$datafile')} ) ] ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_DollarName '$errcode')} ) ] )