(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:common_objpfx) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [59] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:objpfx) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [62] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_program_prefix) op: assign_op.Equal rhs: {($ Id.VSub_Number '$3')} spids: [65] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:charset) op: assign_op.Equal rhs: {($ Id.VSub_Number '$4')} spids: [68] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:charmap) op: assign_op.Equal rhs: {($ Id.VSub_Number '$5')} spids: [71] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LC_ALL) op: assign_op.Equal rhs: {<C>} spids: [78] ) ] ) (C {<export>} {<LC_ALL>}) (C {<set>} {<-e>}) (command.Simple words: [ {<'./tst-table-charmap.sh'>} { (braced_var_sub token: <Id.VSub_Name charmap> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {($ Id.VSub_DollarName '$charset')} ) ) } ] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {<'../localedata/charmaps/'> (braced_var_sub token: <Id.VSub_Name charmap> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {($ Id.VSub_DollarName '$charset')} ) ) } ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.charmap.table>} ) ] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<test>} {(${ Id.VSub_Name charset)} {<Id.Lit_Equals '='>} {<GB18030>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<grep>} {(SQ <'0x....$'>)}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.charmap.table>} ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.truncated.table>} ) ] do_fork: T ) (C {<mv>} {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.truncated.table>} {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.charmap.table>} ) ] spids: [132 145] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:precomposed) op: assign_op.Equal rhs: {(${ Id.VSub_Name charset) <.precomposed>} spids: [205] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<test>} {(${ Id.VSub_Name charset)} {<Id.Lit_Equals '='>} {<EUC-TW>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:irreversible) op: assign_op.Equal rhs: {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.irreversible>} spids: [231] ) ] ) (command.Subshell child: (command.CommandList children: [ (C {<grep>} {(SQ <'^0x8EA1'>)} {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.charmap.table>} ) (C {<cat>} {(${ Id.VSub_Name charset) <.irreversible>}) ] ) redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name irreversible)} ) ] ) ] spids: [215 228] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:irreversible) op: assign_op.Equal rhs: {(${ Id.VSub_Name charset) <.irreversible>} spids: [278] ) ] ) ] ) (command.Simple words: [ {(${ Id.VSub_Name test_program_prefix)} {(${ Id.VSub_Name objpfx) <tst-table-from>} {(${ Id.VSub_Name charset)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.table>} ) ] do_fork: T ) (command.Pipeline children: [ (C {(${ Id.VSub_Name test_program_prefix)} {(${ Id.VSub_Name objpfx) <tst-table-to>} {(${ Id.VSub_Name charset)} ) (command.Simple words: [{<sort>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.inverse.table>} ) ] do_fork: T ) ] negated: F ) (command.Pipeline children: [ (C {<diff>} {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.charmap.table>} {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.inverse.table>} ) (C {<grep>} {(SQ <'^[<>]'>)}) (command.Simple words: [{<sed>} {<-e>} {(SQ <'s,^. ,,'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.irreversible.table>} ) ] do_fork: T ) ] negated: F ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<test>} {<-f>} {(${ Id.VSub_Name precomposed)}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Pipeline children: [ (C {<cat>} {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.table>} {(${ Id.VSub_Name precomposed)} ) (C {<sort>}) (command.Simple words: [{<uniq>} {<-u>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.tmp.table>} ) ] do_fork: T ) ] negated: F ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cmp>} {<-s>} {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.charmap.table>} {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.tmp.table>} ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ] spids: [414 425] ) ] else_action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cmp>} {<-s>} {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.charmap.table>} {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.table>} ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<test>} {<-f>} {(${ Id.VSub_Name irreversible)}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Pipeline children: [ (C {<cat>} {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.charmap.table>} {(${ Id.VSub_Name irreversible)} ) (C {<sort>}) (command.Simple words: [{<uniq>} {<-u>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.tmp.table>} ) ] do_fork: T ) ] negated: F ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cmp>} {<-s>} {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.tmp.table>} {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.inverse.table>} ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ] spids: [534 545] ) ] else_action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cmp>} {<-s>} {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.charmap.table>} {(${ Id.VSub_Name objpfx) <tst-> (${ Id.VSub_Name charset) <.inverse.table>} ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] )