(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: [61] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tst_rpmatch) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [64] ) ] ) (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:rc) op:assign_op.Equal rhs:{(0)} spids:[68])] ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:71) cond: [ (command.Sentence child: (command.Simple words: [{(read)} {(locale)} {(string)} {(result)} {(dummy)}] more_env: [ (env_pair name: IFS val: { (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\&' span_id:74) ) } spids: [73] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:85) ) ] body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$locale'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(DQ ('#'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:106) ) ] action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [ {(${ Id.VSub_Name tst_rpmatch)} {($ Id.VSub_DollarName '$locale')} {($ Id.VSub_DollarName '$string')} {($ Id.VSub_DollarName '$result')} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:121) fd: -1 arg_word: {(/dev/null)} ) ] ) (command.BraceGroup children: [ (command.Sentence child: (C {(echo)} { (DQ ($ Id.VSub_DollarName '$locale') (' ') ($ Id.VSub_DollarName '$string') (' ') ($ Id.VSub_DollarName '$result') (' FAILED') ) } ) terminator: (Token id:Id.Op_Semi val:';' span_id:141) ) (command.Sentence child: (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:143) arg_word: {(1)} ) terminator: (Token id:Id.Op_Semi val:';' span_id:146) ) ] ) ] ) ] spids: [90 108] ) ] ) ] ) redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:155) fd: -1 here_begin: {(EOF)} here_end_span_id: 184 stdin_parts: [ ('#& These are the tests for rpmatch in glibc. Each line contains one test,\n') ('#& comments start with #& in the first column. The fields are separated\n') ('#& by ampersand signs and contain: the locale, the string, the expected\n') ('#& return value of rpmatch(3). If the test fails, test-rpmatch prints\n') ('#& all these informations\n') ('C&Yes&1\n') ('C&yes&1\n') ('C&YES&1\n') ('C&YeS&1\n') ('C&YEs&1\n') ('C&yEs&1\n') ('C&yES&1\n') ('C&yeS&1\n') ('C&No&0\n') ('C&no&0\n') ("#& Uh, that's nonsense\n") ('C&nonsens&0\n') ('C&Error&-1\n') ('de_DE.ISO-8859-1&Yes&1\n') ('de_DE.ISO-8859-1&Ja&1\n') ('de_DE.ISO-8859-1&Jammerschade&1\n') ('de_DE.ISO-8859-1&dejavu&-1\n') ('de_DE.ISO-8859-1&Nein&0\n') ('de_DE.ISO-8859-1&Fehler&-1\n') ('de_DE.ISO-8859-1&jein&1\n') ] ) ] ) ] )