(command.CommandList children: [ (command.Simple blame_tok: <Id.Lit_Colon ':'> more_env: [] words: [{<Id.Lit_Colon ':'>} {<generate>} {<getconf>} {<and>} {<limits>} {<info>}] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {($ Id.VSub_Hyphen -) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName BASH_VERSION)} ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <x> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_Colon ':'> more_env: [] words: [ {<Id.Lit_Colon ':'>} {<bash>} {<set>} {<-x>} {<is>} {<broken>} {<Id.Lit_Colon ':'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<Id.Lit_Other '+'> <ex>}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'LC_ALL='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LC_ALL='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LC_ALL='> name:LC_ALL) op: assign_op.Equal rhs: {<C>} ) ] redirects: [] ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<LC_ALL>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'command='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'command='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'command='> name:command) op: assign_op.Equal rhs: {<conf>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'shell='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'shell='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'shell='> name:shell) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <eval> more_env: [] words: [{<eval>} {(SQ <'x=123&&integer n=${#x}${x#1?}&&((n==330/(10)))&&echo ksh'>)}] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'append='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'append='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'append='> name:append) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'debug='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'debug='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'debug='> name:debug) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'extra='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'extra='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'extra='> name:extra) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'keep_call='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'keep_call='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'keep_call='> name:keep_call) op: assign_op.Equal rhs: {(SQ <'*'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'keep_name='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'keep_name='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'keep_name='> name:keep_name) op: assign_op.Equal rhs: {(SQ <'*'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'trace='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'trace='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'trace='> name:trace) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'verbose='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'verbose='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'verbose='> name:verbose) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.Lit_Colon ':'> more_env: [] words: [{<Id.Lit_Colon ':'>}] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_Number 1)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <-a> pattern: (pat.Words words:[{<-a>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'append='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'append='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'append='> name:append) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <-c> pattern: (pat.Words words:[{<-c> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'keep_call='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'keep_call='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'keep_call='> name:keep_call) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 1> var_name: 1 suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<-> <Id.Lit_Other '?'>} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <-d> pattern: (pat.Words words:[{<-d> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'debug='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'debug='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'debug='> name:debug) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <-l> pattern: (pat.Words words:[{<-l>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'extra='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'extra='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'extra='> name:extra) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <-n> pattern: (pat.Words words:[{<-n> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'keep_name='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'keep_name='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'keep_name='> name:keep_name) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 1> var_name: 1 suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<-> <Id.Lit_Other '?'>} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <-t> pattern: (pat.Words words:[{<-t>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'trace='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'trace='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'trace='> name:trace) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <-v> pattern: (pat.Words words:[{<-v>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'verbose='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'verbose='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'verbose='> name:verbose) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <-> pattern: (pat.Words words:[{<-> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Sentence child: (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'Usage: '> ($ Id.VSub_DollarName command) < ' [-a] [-ccall-pattern] [-dN] [-l] [-nname_pattern] [-t] [-v] conf.tab' > ) } ] redirects: [ (Redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<2>} ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'head='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'head='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'head='> name:head) op: assign_op.Equal rhs: {(SQ <'#include "FEATURE/standards"\n'> <'#include "FEATURE/common"'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'tail='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'tail='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tail='> name:tail) op: assign_op.Equal rhs: {(SQ <'#include "FEATURE/param"'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'generated='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'generated='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'generated='> name:generated) op: assign_op.Equal rhs: { (DQ <'/* : : generated by '> ($ Id.VSub_DollarName command) <' from '> ($ Id.VSub_Number 1) <' : : */'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'hdr='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'hdr='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hdr='> name:hdr) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'ifs='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ifs='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ifs='> name:ifs) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name IFS> var_name: IFS suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{(SQ <'\n'> <'\t '>)}) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'nl='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'nl='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nl='> name:nl) op: assign_op.Equal rhs: {(SQ <'\n'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'sp='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'sp='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sp='> name:sp) op: assign_op.Equal rhs: {(SQ <' '>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'ob='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ob='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ob='> name:ob) op: assign_op.Equal rhs: {(SQ <'{'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'cb='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cb='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cb='> name:cb) op: assign_op.Equal rhs: {(SQ <'}'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'sym='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'sym='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sym='> name:sym) op: assign_op.Equal rhs: {<Id.Lit_LBracket '['> <ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'tmp='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'tmp='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tmp='> name:tmp) op: assign_op.Equal rhs: {<conf.tmp>} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {($ Id.VSub_DollarName verbose) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName debug) ($ Id.VSub_DollarName trace) } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <1> pattern: (pat.Words words:[{<1> <Id.Lit_Colon ':'> <Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ ($ Id.VSub_DollarName command) <': debug='> ($ Id.VSub_DollarName debug) <' trace='> ($ Id.VSub_DollarName trace) <' keep_call='> ($ Id.VSub_DollarName keep_call) <' keep_name='> ($ Id.VSub_DollarName keep_name) ) } ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName trace)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <1> pattern: (pat.Words words:[{<1>}]) middle: <Id.Right_CasePat _> action: [ (command.Sentence child: (command.ShAssignment left: <Id.Lit_VarLike 'PS4='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'PS4='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PS4='> name:PS4) op: assign_op.Equal rhs: {(SQ <'+$LINENO+ '>)} ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-x>}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <0> pattern: (pat.Words words:[{<0>}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName extra)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <0> pattern: (pat.Words words:[{<0>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ ($ Id.VSub_DollarName command) <': table argument expected'>)} ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'tab='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'tab='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tab='> name:tab) op: assign_op.Equal rhs: {<'/dev/null'>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'tab='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'tab='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tab='> name:tab) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<Id.KW_Bang '!'>} {<-f>} {($ Id.VSub_DollarName tab)}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName tab) <': cannot read'> ) } ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [517 528] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <0> pattern: (pat.Words words:[{<0>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'cc='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cc='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cc='> name:cc) op: assign_op.Equal rhs: {<cc>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'cc='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'cc='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cc='> name:cc) op: assign_op.Equal rhs: {($ Id.VSub_Star '*')} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {($ Id.VSub_DollarName tmp) <.> <Id.Lit_Star '*'>}] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName debug)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ )}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <trap> more_env: [] words: [ {<trap>} { (DQ <'code='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'?; rm -f '> ($ Id.VSub_DollarName tmp) <'.*; exit '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <code> ) } {<0>} {<1>} {<2>} ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.c>} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<Id.KW_Bang '!'>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ (${ Id.VSub_Name head) <'\n'> <'int\n'> <'main()\n'> <'{\n'> <'#if _ast_intmax_long\n'> <'\treturn 1;\n'> <'#else\n'> <'\treturn 0;\n'> <'#endif\n'> <'}\n'> ] ) ) ] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$cc'> more_env: [] words: [ {($ Id.VSub_DollarName cc)} {<-o>} {($ Id.VSub_DollarName tmp) <.exe>} {($ Id.VSub_DollarName tmp) <.c>} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) (command.Simple blame_tok: <'./'> more_env: [] words: [{<'./'> ($ Id.VSub_DollarName tmp) <.exe>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'LL_format='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LL_format='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LL_format='> name:LL_format) op: assign_op.Equal rhs: {(SQ <ll>)} ) ] redirects: [] ) ] spids: [650 674] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'LL_format='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LL_format='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LL_format='> name:LL_format) op: assign_op.Equal rhs: {(SQ <l>)} ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.c>} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<Id.KW_Bang '!'>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ (${ Id.VSub_Name head) <'\n'> <'int\n'> <'main()\n'> <'{\n'> <'#if _ast_intmax_long\n'> <'\treturn 1;\n'> <'#else\n'> <'\t_ast_intmax_t\t\ts = 0x7fffffffffffffffLL;\n'> <'\tunsigned _ast_intmax_t\tu = 0xffffffffffffffffLL;\n'> <'\n'> <'\treturn 0;\n'> <'#endif\n'> <'}\n'> ] ) ) ] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.VSub_DollarName '$cc'> more_env: [] words: [ {($ Id.VSub_DollarName cc)} {<-o>} {($ Id.VSub_DollarName tmp) <.exe>} {($ Id.VSub_DollarName tmp) <.c>} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <'./'> more_env: [] words: [{<'./'> ($ Id.VSub_DollarName tmp) <.exe>}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'LL_suffix='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LL_suffix='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LL_suffix='> name:LL_suffix) op: assign_op.Equal rhs: {(SQ <LL>)} ) ] redirects: [] ) ] spids: [743 750] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'LL_suffix='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LL_suffix='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LL_suffix='> name:LL_suffix) op: assign_op.Equal rhs: {(SQ <L>)} ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] spids: [723 741] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'LL_suffix='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LL_suffix='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LL_suffix='> name:LL_suffix) op: assign_op.Equal rhs: {(SQ )} ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.c>} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<Id.KW_Bang '!'>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ (${ Id.VSub_Name head) <'\n'> <'int\n'> <'main()\n'> <'{\n'> <'\tunsigned int\tu = 1U;\n'> <'\tunsigned int\tul = 1UL;\n'> <'\n'> <'\treturn 0;\n'> <'}\n'> ] ) ) ] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.VSub_DollarName '$cc'> more_env: [] words: [ {($ Id.VSub_DollarName cc)} {<-o>} {($ Id.VSub_DollarName tmp) <.exe>} {($ Id.VSub_DollarName tmp) <.c>} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'U_suffix='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'U_suffix='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'U_suffix='> name:U_suffix) op: assign_op.Equal rhs: {(SQ <U>)} ) ] redirects: [] ) ] spids: [801 819] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'U_suffix='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'U_suffix='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'U_suffix='> name:U_suffix) op: assign_op.Equal rhs: {(SQ )} ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'keys='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'keys='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'keys='> name:keys) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'standards='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'standards='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'standards='> name:standards) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName append) ($ Id.VSub_DollarName extra)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <00> pattern: (pat.Words words:[{<00>}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName verbose)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <1> pattern: (pat.Words words:[{<1>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ ($ Id.VSub_DollarName command) <': read '> ($ Id.VSub_DollarName tab))} ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <exec> more_env: [] words: [{<exec>}] redirects: [ (Redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName tab)} ) ] do_fork: T ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.Lit_Colon ':'> more_env: [] words: [{<Id.Lit_Colon ':'>}] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'IFS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IFS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS) op: assign_op.Equal rhs: {(DQ )} ) ] redirects: [] ) (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<line>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'eof='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'eof='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eof='> name:eof) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'IFS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IFS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ifs)} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName eof)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <0> pattern: (pat.Words words:[{<0>}]) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName line)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_DoubleQuote '"'> pattern: (pat.Words words: [ {(DQ )} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\#'> ch:'#') <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<x>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.Sentence child: (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ShAssignment left: <Id.Lit_VarLike 'name='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'name='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.Sentence child: (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ShAssignment left: <Id.Lit_VarLike 'standard='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'standard='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'standard='> name: standard ) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.Sentence child: (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ShAssignment left: <Id.Lit_VarLike 'call='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'call='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'call='> name:call) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.Sentence child: (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ShAssignment left: <Id.Lit_VarLike 'section='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'section='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'section='> name: section ) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.Sentence child: (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ShAssignment left: <Id.Lit_VarLike 'flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'flags='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'flags='> name:flags) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'alternates='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'alternates='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'alternates='> name: alternates ) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'define='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'define='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'define='> name:define) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'values='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'values='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'values='> name:values) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'script='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'script='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'script='> name:script) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'headers='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'headers='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'headers='> name: headers ) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.Lit_Colon ':'> more_env: [] words: [{<Id.Lit_Colon ':'>}] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <0> pattern: (pat.Words words:[{<0>}]) middle: <Id.Right_CasePat _> action: [ (command.ControlFlow keyword: <Id.ControlFlow_Break break> ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_Number 1)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_DoubleQuote '"'> pattern: (pat.Words words:[{(DQ <':'>)}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'script='> (SQ <'$'>) <script_> ($ Id.VSub_Number 1) } ] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Break break> ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'> (DQ <'{'>)}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_Number 1)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_DoubleQuote '"'> pattern: (pat.Words words:[{(DQ <'sh{'>)}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'script='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'script='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'script='> name: script ) op: assign_op.Equal rhs: {(DQ <'# '> ($ Id.VSub_DollarName name))} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'script='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'script='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'script='> name: script ) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'args='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'args='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'args='> name: args ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Star '*'))} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'IFS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IFS='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'IFS='> name: IFS ) op: assign_op.Equal rhs: {(DQ )} ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<line>}] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {($ Id.VSub_DollarName line)} ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_DoubleQuote '"'> pattern: (pat.Words words:[{(DQ <'}'>)}]) middle: <Id.Right_CasePat _> action: [ (command.ControlFlow keyword: <Id.ControlFlow_Break break> ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'script='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'script='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'script='> name: script ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName script) ($ Id.VSub_DollarName nl) ($ Id.VSub_DollarName line) } ) ] redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'IFS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IFS='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'IFS='> name: IFS ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ifs)} ) ] redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Break break> ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.h>}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {($ Id.VSub_DollarName shell)} ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <ksh> pattern: (pat.Words words:[{<ksh>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'f='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'f='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'f='> name: f ) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 1> var_name: 1 suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<.h>} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'f='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'f='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'f='> name: f ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {($ Id.VSub_Number 1)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {(SQ <'s,\\.h$,,'>)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {(DQ <' '> ($ Id.VSub_DollarName hdr) <' '>)} ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName f) <' '>) <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'headers='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'headers='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'headers='> name: headers ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName headers) ($ Id.VSub_DollarName nl) <Id.Lit_Pound '#'> <include> ($ Id.VSub_DollarName sp) (SQ <'<'>) ($ Id.VSub_Number 1) (SQ <'>'>) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> (DQ <' -'> ($ Id.VSub_DollarName f) <'- '>) <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Pipeline children: [ (command.Simple blame_tok: <iffe> more_env: [] words: [ {<iffe>} {<-n>} {<->} {<hdr>} {($ Id.VSub_DollarName f)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [ {<grep>} {<_hdr_> ($ Id.VSub_DollarName f) } ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'hdr='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'hdr='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'hdr='> name: hdr ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName hdr) <' '> ($ Id.VSub_DollarName f) ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'headers='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'headers='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'headers='> name: headers ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName headers) ($ Id.VSub_DollarName nl) <Id.Lit_Pound '#'> <include> ($ Id.VSub_DollarName sp) (SQ <'<'>) ($ Id.VSub_Number 1) (SQ <'>'>) } ) ] redirects: [] ) ] spids: [1280 1303] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'hdr='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'hdr='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'hdr='> name: hdr ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName hdr) <' -'> ($ Id.VSub_DollarName f) <-> ) } ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'values='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'values='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'values='> name: values ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName values) ($ Id.VSub_DollarName sp) ($ Id.VSub_Number 1) } ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_Number 1)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.VSub_DollarName '$sym'> pattern: (pat.Words words: [{($ Id.VSub_DollarName sym)}] ) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_Number 1))}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.v>} ) ] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {(DQ <' '> ($ Id.VSub_DollarName standards) <' '>)} ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName standard) <' '>) <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'standards='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'standards='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'standards='> name: standards ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName standards) <' '> ($ Id.VSub_DollarName standard) ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {($ Id.VSub_DollarName name) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName flags) } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <S> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <VERSION> pattern: (pat.Words words:[{<VERSION>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'flags='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'flags='> name: flags ) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name flags) <S>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName name)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [{<Id.Lit_Star '*'> <VERSION> <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'key='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'key='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'key='> name: key ) op: assign_op.Equal rhs: {(${ Id.VSub_Name standard) (${ Id.VSub_Name section)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'key='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'key='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'key='> name: key ) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName key)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words: [{(SQ )} {<Id.Lit_Star '*'> <Id.Lit_Underscore _>}] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'key='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'key='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'key='> name: key ) op: assign_op.Equal rhs: {(${ Id.VSub_Name key) (${ Id.VSub_Name name)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'key='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'key='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'key='> name: key ) op: assign_op.Equal rhs: {(${ Id.VSub_Name key) <Id.Lit_Underscore _> (${ Id.VSub_Name name) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'sys='> (SQ <'$'>) <CONF_call_> (${ Id.VSub_Name key)} ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName sys)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'call='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'call='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'call='> name: call ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName sys)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName call)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <SI> pattern: (pat.Words words:[{<SI>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'sys='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'sys='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'sys='> name: sys ) op: assign_op.Equal rhs: {<CS>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'sys='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'sys='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'sys='> name: sys ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName call)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'key='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'key='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'key='> name:key) op: assign_op.Equal rhs: {(${ Id.VSub_Name sys) <Id.Lit_Underscore _> (${ Id.VSub_Name key)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'keys='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'keys='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'keys='> name:keys) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName keys) ($ Id.VSub_DollarName nl) ($ Id.VSub_DollarName key) ) } ) ] redirects: [] ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_name_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> (SQ <'$'>) <name> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_standard_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> (SQ <'$'>) <standard> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_call_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> (SQ <'$'>) <call> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_section_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> (SQ <'$'>) <section> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_flags_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> (SQ <'$'>) <flags> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_define_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> (SQ <'$'>) <define> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_values_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> (SQ <'$'>) <values> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_script_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> (SQ <'$'>) <script> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_args_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> (SQ <'$'>) <args> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_headers_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> (SQ <'$'>) <headers> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_keys_> (${ Id.VSub_Name name) <Id.Lit_Equals '='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_keys_> (${ Id.VSub_Name name) } {(SQ <'$'>) <key> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName debug)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <-d1> pattern: (pat.Words words:[{<-d1>}]) middle: <Id.Right_CasePat _> action: [ (command.ForEach keyword: <Id.KW_For for> iter_names: [key] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName keys)}]) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'name='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_name_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName name)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'standard='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_standard_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'call='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_call_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'section='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_section_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'flags='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_flags_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'define='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_define_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'values='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_values_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'script='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_script_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'args='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_args_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'headers='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_headers_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} {(DQ <'%29s %35s %8s %2s %1d %5s %s'> ($ Id.VSub_DollarName nl))} {(DQ ($ Id.VSub_DollarName name))} {(DQ ($ Id.VSub_DollarName key))} {(DQ ($ Id.VSub_DollarName standard))} {(DQ ($ Id.VSub_DollarName call))} {(DQ ($ Id.VSub_DollarName section))} {(DQ ($ Id.VSub_DollarName flags))} { (DQ ($ Id.VSub_DollarName define) (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name values> var_name: values suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {($ Id.VSub_DollarName sp) <'='> ($ Id.VSub_DollarName values) } ) right: <Id.Right_DollarBrace '}'> ) (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name headers> var_name: headers suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {($ Id.VSub_DollarName sp) ($ Id.VSub_DollarName headers) ($ Id.VSub_DollarName nl) } ) right: <Id.Right_DollarBrace '}'> ) (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name script> var_name: script suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {($ Id.VSub_DollarName sp) ($ Id.VSub_DollarName ob) ($ Id.VSub_DollarName script) ($ Id.VSub_DollarName nl) ($ Id.VSub_DollarName cb) } ) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit>) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'systeminfo='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'systeminfo='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'systeminfo='> name:systeminfo) op: assign_op.Equal rhs: { (SQ <'\n'> <'#if !defined(SYS_NMLEN)\n'> <'#define SYS_NMLEN\t9\n'> <'#endif\n'> <'#include <sys/systeminfo.h>'> ) } ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_DollarName systeminfo))}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.c>} ) ] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$cc'> more_env: [] words: [{($ Id.VSub_DollarName cc)} {<-E>} {($ Id.VSub_DollarName tmp) <.c>}] redirects: [ (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>}) (Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'systeminfo='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'systeminfo='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'systeminfo='> name:systeminfo) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) ] ops: [<Id.Op_DPipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'CONF_getconf='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CONF_getconf='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CONF_getconf='> name:CONF_getconf) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'CONF_getconf_a='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CONF_getconf_a='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CONF_getconf_a='> name:CONF_getconf_a) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [d] iterable: (for_iter.Words words:[{<'/usr/bin'>} {<'/bin'>} {<'/usr/sbin'>} {<'/sbin'>}]) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-x>} {($ Id.VSub_DollarName d) <'/getconf'>}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <Id.VSub_DollarName '$d'> more_env: [] words: [ {($ Id.VSub_DollarName d) <'/getconf'>} {<--> <Id.Lit_QMark '?'> <-version>} ] redirects: [ (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> (DQ <'AT&T'>) <Id.Lit_Star '*'> (DQ <Research>) <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <Id.Lit_Colon ':'> more_env: [] words: [ {<Id.Lit_Colon ':'>} {<presumably>} {<an>} {<implementation>} {<also>} {<configured>} {<from>} {<conf.tab>} ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'CONF_getconf='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CONF_getconf='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CONF_getconf='> name: CONF_getconf ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName d) <'/getconf'>} ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.VSub_DollarName '$CONF_getconf'> more_env: [] words: [{($ Id.VSub_DollarName CONF_getconf)} {<-a>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'CONF_getconf_a='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CONF_getconf_a='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CONF_getconf_a='> name: CONF_getconf_a ) op: assign_op.Equal rhs: {<-a>} ) ] redirects: [] ) ] spids: [2152 2165] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ControlFlow keyword:<Id.ControlFlow_Break break>) ] spids: [2081 2091] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<CONF_getconf>} {<CONF_getconf_a>}] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName verbose)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <1> pattern: (pat.Words words:[{<1>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ ($ Id.VSub_DollarName command) <': check '> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CONF_getconf> var_name: CONF_getconf suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {($ Id.VSub_DollarName CONF_getconf) <'(1),'>} ) right: <Id.Right_DollarBrace '}'> ) <'confstr(2),pathconf(2),sysconf(2),sysinfo(2) configuration names'> ) } ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Pipeline children: [ (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'#include <unistd.h>'> ($ Id.VSub_DollarName systeminfo) <'\n'> <'int i = 0;'>)} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.c>} ) ] do_fork: T ) (command.Simple blame_tok: <Id.VSub_DollarName '$cc'> more_env: [] words: [{($ Id.VSub_DollarName cc)} {<-E>} {($ Id.VSub_DollarName tmp) <.c>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} {(SQ <'/^#[^0123456789]*1[ \t]*".*".*/!d'>)} {<-e>} {(SQ <'s/^#[^0123456789]*1[ \t]*"\\(.*\\)".*/\\1/'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <sort> more_env: [] words: [{<sort>} {<-u>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.f>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) (command.Pipeline children: [ (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Pipeline children: [ (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} {(SQ <'s/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]/ /g'>)} {<-e>} {(SQ <'s/[ \t][ \t]*/\\n/g'>)} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {($ Id.VSub_DollarName tmp) <.f>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple blame_tok: <egrep> more_env: [] words: [{<egrep>} {(SQ <'^(SI|_(CS|PC|SC|SI))_.'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName CONF_getconf_a)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Pipeline children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$CONF_getconf'> more_env: [] words: [ {($ Id.VSub_DollarName CONF_getconf)} {($ Id.VSub_DollarName CONF_getconf_a)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {(SQ <'s,[=: ].*,,'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName CONF_getconf)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ForEach keyword: <Id.KW_For for> iter_names: [v] iterable: (for_iter.Words words: [ { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <strings> more_env: [] words: [ {<strings>} {($ Id.VSub_DollarName CONF_getconf)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [ {<grep>} { (SQ < '^[ABCDEFGHIJKLMNOPQRSTUVWXYZ_][ABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]*$' > ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.VSub_DollarName '$CONF_getconf'> more_env: [] words: [ {($ Id.VSub_DollarName CONF_getconf)} {($ Id.VSub_DollarName v)} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName v)}] redirects: [] do_fork: T ) ] spids: [2392 2402] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) (command.Simple blame_tok: <egrep> more_env: [] words: [{<egrep>} {<-v>} {(SQ <'^_[ABCDEFGHIJKLMNOPQRSTUVWXYZ]+_(COUNT|LAST|N|STR)$'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sort> more_env: [] words: [{<sort>} {<-u>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.g>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {(SQ <'^_'>)} {($ Id.VSub_DollarName tmp) <.g>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {(SQ <'^[^_]'>)} {($ Id.VSub_DollarName tmp) <.g>}] redirects: [] do_fork: T ) ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.t>} ) ] right: <Id.Lit_RBrace '}'> ) (command.Simple blame_tok: <mv> more_env: [] words: [{<mv>} {($ Id.VSub_DollarName tmp) <.t>} {($ Id.VSub_DollarName tmp) <.g>}] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName debug)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <-d2> pattern: (pat.Words words:[{<-d2>}]) middle: <Id.Right_CasePat _> action: [(command.ControlFlow keyword:<Id.ControlFlow_Exit exit>)] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'HOST='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'HOST='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HOST='> name:HOST) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <package> more_env: [] words: [{<package>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'s,[0123456789.].*,,'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {<abcdefghijklmnopqrstuvwxyz>} {<ABCDEFGHIJKLMNOPQRSTUVWXYZ>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName HOST)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ )}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'HOST='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'HOST='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HOST='> name:HOST) op: assign_op.Equal rhs: {<SYSTEM>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <exec> more_env: [] words: [{<exec>}] redirects: [ (Redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName tmp) <.g>} ) ] do_fork: T ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<line>}] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'flags='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'flags='> name:flags) op: assign_op.Equal rhs: {<F>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'section='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'section='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'section='> name:section) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'underscore='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'underscore='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'underscore='> name:underscore) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'define='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'define='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'define='> name:define) op: assign_op.Equal rhs: {($ Id.VSub_DollarName line)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'IFS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IFS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS) op: assign_op.Equal rhs: {<Id.Lit_Underscore _>} ) ] redirects: [] ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {($ Id.VSub_DollarName line)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'IFS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IFS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName ifs)} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_Number 1)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ )}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <0> pattern: (pat.Words words:[{<0>}]) middle: <Id.Right_CasePat _> action: [(command.ControlFlow keyword:<Id.ControlFlow_Continue continue>)] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_Number 1)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <CS> pattern: (pat.Words words:[{<CS>} {<PC>} {<SC>} {<SI>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'call='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'call='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'call='> name:call) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'standard='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'standard='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'standard='> name:standard) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'flags='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'flags='> name:flags) op: assign_op.Equal rhs: {(${ Id.VSub_Name flags) <R>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'standard='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'standard='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'standard='> name:standard) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.Lit_Colon ':'> more_env: [] words: [{<Id.Lit_Colon ':'>}] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <0> pattern: (pat.Words words:[{<0>}]) middle: <Id.Right_CasePat _> action: [ (command.ControlFlow keyword: <Id.ControlFlow_Continue continue> arg_word: {<2>} ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_Number 1)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <CS> pattern: (pat.Words words:[{<CS>} {<PC>} {<SC>} {<SI>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'call='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'call='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'call='> name: call ) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Break break> ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <O> pattern: (pat.Words words:[{<O>} {<o>} {<OLD>} {<old>}]) middle: <Id.Right_CasePat _> action: [ (command.ControlFlow keyword: <Id.ControlFlow_Continue continue> arg_word: {<2>} ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'standard='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'standard='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'standard='> name: standard ) op: assign_op.Equal rhs: {(${ Id.VSub_Name standard) <Id.Lit_Underscore _> ($ Id.VSub_Number 1) } ) ] redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_Number 1)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <SET> pattern: (pat.Words words:[{<SET>}]) middle: <Id.Right_CasePat _> action: [(command.ControlFlow keyword:<Id.ControlFlow_Continue continue>)] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName standard)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Underscore _> pattern: (pat.Words words:[{<Id.Lit_Underscore _> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'standard='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'standard='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'standard='> name:standard) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName standard)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {(SQ <'s,^_*,,'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName standards) <' '>)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName standard) <' '>) <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName standard)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_LBracket '['> pattern: (pat.Words words: [ {<Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'section='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'section='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'section='> name: section ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName standard)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'standard='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'standard='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'standard='> name: standard ) op: assign_op.Equal rhs: {<POSIX>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName standard)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} { (SQ < 's,\\(.*\\)\\([0123456789]*\\),standard=\\1 section=\\2,' > ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'> <R> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName call)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <SI> pattern: (pat.Words words:[{<SI>}]) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'underscore='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'underscore='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'underscore='> name: underscore ) op: assign_op.Equal rhs: {<U>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName standards) <' '>)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_DoubleQuote '"'> pattern: (pat.Words words:[{(DQ <' C '>)}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName standard) <' '>) <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName call)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <SI> pattern: (pat.Words words:[{<SI>}]) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'flags='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'flags='> name: flags ) op: assign_op.Equal rhs: {(${ Id.VSub_Name flags) <P>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'underscore='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'underscore='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'underscore='> name: underscore ) op: assign_op.Equal rhs: {<U>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'standard='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'standard='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'standard='> name: standard ) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName standard)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ )}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'standard='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'standard='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'standard='> name:standard) op: assign_op.Equal rhs: {($ Id.VSub_DollarName HOST)} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName call)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <SI> pattern: (pat.Words words:[{<SI>}]) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'underscore='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'underscore='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'underscore='> name: underscore ) op: assign_op.Equal rhs: {<U>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName call)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <CS> pattern: (pat.Words words:[{<CS>} {<PC>} {<SC>}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName define)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Underscore _> pattern: (pat.Words words: [ {<Id.Lit_Underscore _> (${ Id.VSub_Name call) <Id.Lit_Underscore _> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'standard='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'standard='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'standard='> name: standard ) op: assign_op.Equal rhs: {<POSIX>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'part='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'part='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'part='> name:part) op: assign_op.Equal rhs: {($ Id.VSub_DollarName section)} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName section)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ )}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'section='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'section='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'section='> name:section) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName standard)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <POSIX> pattern: (pat.Words words:[{<POSIX>} {<XOPEN>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'part='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'part='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'part='> name:part) op: assign_op.Equal rhs: {($ Id.VSub_DollarName section)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'name='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'name='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.Lit_Colon ':'> more_env: [] words: [{<Id.Lit_Colon ':'>}] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <0> pattern: (pat.Words words:[{<0>}]) middle: <Id.Right_CasePat _> action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName name)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ )}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'name='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'name='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'name='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'name='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name) op: assign_op.Equal rhs: {(${ Id.VSub_Name name) <Id.Lit_Underscore _> ($ Id.VSub_Number 1)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName name)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ )}]) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <CONFORMANCE> pattern: (pat.Words words: [ {<CONFORMANCE>} {<FS_3D>} {<HOSTTYPE>} {<LIBPATH>} {<LIBPREFIX>} {<LIBSUFFIX>} {<PATH_ATTRIBUTES>} {<PATH_RESOLVE>} {<UNIVERSE>} ] ) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'values='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'values='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'values='> name:values) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'script='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'script='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'script='> name:script) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'args='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'args='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'args='> name:args) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'headers='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'headers='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'headers='> name:headers) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName name)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_ArrayLhsOpen 'V['> pattern: (pat.Words words: [ {<Id.Lit_ArrayLhsOpen 'V['> <123456789> <Id.Lit_RBracket ']'> <Id.Lit_Underscore _> <Id.Lit_Star '*'> } {<Id.Lit_ArrayLhsOpen 'V['> <123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_Underscore _> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'underscore='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'underscore='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'underscore='> name: underscore ) op: assign_op.Equal rhs: {<VW>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName call)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <CS> pattern: (pat.Words words:[{<CS>} {<SI>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'key='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'key='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'key='> name:key) op: assign_op.Equal rhs: {<CS>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'key='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'key='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'key='> name:key) op: assign_op.Equal rhs: {($ Id.VSub_DollarName call)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName name)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [{<Id.Lit_Star '*'> <VERSION> <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'key='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'key='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'key='> name:key) op: assign_op.Equal rhs: {(${ Id.VSub_Name key) <Id.Lit_Underscore _> (${ Id.VSub_Name standard) (${ Id.VSub_Name part) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'key='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'key='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'key='> name:key) op: assign_op.Equal rhs: {(${ Id.VSub_Name key) <Id.Lit_Underscore _> (${ Id.VSub_Name name)} ) ] redirects: [] ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'x='> (SQ <'$'>) <CONF_keys_> ($ Id.VSub_DollarName name)} ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ )}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'x='> (SQ <'$'>) <CONF_name_> ($ Id.VSub_DollarName key) } ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ )}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName call)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <SI> pattern: (pat.Words words:[{<SI>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'flags='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'flags='> name: flags ) op: assign_op.Equal rhs: {<O> ($ Id.VSub_DollarName flags)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName underscore)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'flags='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'flags='> name: flags ) op: assign_op.Equal rhs: {(${ Id.VSub_Name flags) (${ Id.VSub_Name underscore) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'old='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'old='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'old='> name: old ) op: assign_op.Equal rhs: {<QQ>} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName name)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [{<Id.Lit_Star '*'> <VERSION> <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'old='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'old='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'old='> name: old ) op: assign_op.Equal rhs: {(${ Id.VSub_Name old) <Id.Lit_Underscore _> (${ Id.VSub_Name standard) (${ Id.VSub_Name part) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'old='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'old='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'old='> name: old ) op: assign_op.Equal rhs: {(${ Id.VSub_Name old) <Id.Lit_Underscore _> (${ Id.VSub_Name name) } ) ] redirects: [] ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'x='> (SQ <'$'>) <CONF_name_> ($ Id.VSub_DollarName old) } ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_name_> ($ Id.VSub_DollarName old) <Id.Lit_Equals '='> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'flags='> (SQ <'$'>) <flags> (SQ <'$'>) <CONF_flags_> ($ Id.VSub_DollarName old) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'values='> (SQ <'$'>) <CONF_values_> ($ Id.VSub_DollarName old) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'script='> (SQ <'$'>) <CONF_script_> ($ Id.VSub_DollarName old) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'args='> (SQ <'$'>) <CONF_args_> ($ Id.VSub_DollarName old) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'headers='> (SQ <'$'>) <CONF_headers_> ($ Id.VSub_DollarName old) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'keys='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'keys='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'keys='> name: keys ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName keys) ($ Id.VSub_DollarName nl) ($ Id.VSub_DollarName key) ) } ) ] redirects: [] ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_name_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> (SQ <'$'>) <name> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_standard_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> (SQ <'$'>) <standard> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_call_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> (SQ <'$'>) <call> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_section_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> (SQ <'$'>) <section> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_flags_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> <d> (SQ <'$'>) <flags> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_define_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> (SQ <'$'>) <define> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_values_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> (SQ <'$'>) <values> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_script_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> (SQ <'$'>) <script> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_args_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> (SQ <'$'>) <args> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_headers_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> (SQ <'$'>) <headers> } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'x='> (SQ <'$'>) <CONF_define_> ($ Id.VSub_DollarName key) } ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName call)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <CS> pattern: (pat.Words words:[{<CS>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'x='> (SQ <'$'>) <CONF_call_> ($ Id.VSub_DollarName key) } ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {($ Id.VSub_DollarName x)} ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <SI> pattern: (pat.Words words:[{<SI>}]) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [{<Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'define='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'define='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'define='> name: define ) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'define='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'define='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'define='> name: define ) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName define)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_define_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> (SQ <'$'>) <define> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_call_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> (SQ <'$'>) <call> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'x='> (SQ <'$'>) <CONF_call_> (${ Id.VSub_Name key) } ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <QQ> pattern: (pat.Words words:[{<QQ>}]) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {($ Id.VSub_DollarName flags)} ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <R> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'flags='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'flags='> name: flags ) op: assign_op.Equal rhs: {<R>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [{<Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'flags='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'flags='> name: flags ) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName call)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <SI> pattern: (pat.Words words:[{<SI>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'flags='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'flags='> name: flags ) op: assign_op.Equal rhs: {<O> ($ Id.VSub_DollarName flags)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_flags_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> <d> (SQ <'$'>) <flags> (SQ <'$'>) <CONF_flags_> (${ Id.VSub_Name key) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'old='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'old='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'old='> name: old ) op: assign_op.Equal rhs: {<QQ>} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName name)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [{<Id.Lit_Star '*'> <VERSION> <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'old='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'old='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'old='> name: old ) op: assign_op.Equal rhs: {(${ Id.VSub_Name old) <Id.Lit_Underscore _> (${ Id.VSub_Name standard) (${ Id.VSub_Name part) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'old='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'old='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'old='> name: old ) op: assign_op.Equal rhs: {(${ Id.VSub_Name old) <Id.Lit_Underscore _> (${ Id.VSub_Name name) } ) ] redirects: [] ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_name_> ($ Id.VSub_DollarName old) <Id.Lit_Equals '='>} ] redirects: [] do_fork: T ) ] ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ForEach keyword: <Id.KW_For for> iter_names: [key] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName x)}]) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'x='> (SQ <'$'>) <CONF_call_> (${ Id.VSub_Name key) } ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <XX> pattern: (pat.Words words:[{<XX>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_call_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> <QQ> } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_flags_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> <S> (SQ <'$'>) <CONF_flags_> (${ Id.VSub_Name key) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'keys='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'keys='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'keys='> name:keys) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.ForEach keyword: <Id.KW_For for> iter_names: [key] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName keys)}]) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<echo>} {(SQ <'$'>) <CONF_name_> ($ Id.VSub_DollarName key)} {(SQ <'$'>) <key>} ] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <sort> more_env: [] words: [{<sort>} {<-u>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {(SQ <'s,.* ,,'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName debug)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <-d3> pattern: (pat.Words words:[{<-d3>}]) middle: <Id.Right_CasePat _> action: [ (command.ForEach keyword: <Id.KW_For for> iter_names: [key] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName keys)}]) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'name='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_name_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName name)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'standard='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_standard_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'call='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_call_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'section='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_section_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'flags='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_flags_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'define='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_define_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'values='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_values_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'script='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_script_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'headers='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_headers_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} {(DQ <'%29s %35s %8s %2s %1d %5s %s'> ($ Id.VSub_DollarName nl))} {(DQ ($ Id.VSub_DollarName name))} {(DQ ($ Id.VSub_DollarName key))} {(DQ ($ Id.VSub_DollarName standard))} {(DQ ($ Id.VSub_DollarName call))} {(DQ ($ Id.VSub_DollarName section))} {(DQ ($ Id.VSub_DollarName flags))} { (DQ ($ Id.VSub_DollarName define) (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name values> var_name: values suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {($ Id.VSub_DollarName sp) <'='> ($ Id.VSub_DollarName values) } ) right: <Id.Right_DollarBrace '}'> ) (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name headers> var_name: headers suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {($ Id.VSub_DollarName sp) ($ Id.VSub_DollarName headers) ($ Id.VSub_DollarName nl) } ) right: <Id.Right_DollarBrace '}'> ) (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name script> var_name: script suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {($ Id.VSub_DollarName sp) ($ Id.VSub_DollarName ob) ($ Id.VSub_DollarName script) ($ Id.VSub_DollarName nl) ($ Id.VSub_DollarName cb) } ) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit>) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'prev_key='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'prev_key='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev_key='> name:prev_key) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'prev_name='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'prev_name='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev_name='> name:prev_name) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [key] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName keys)}]) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'name='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_name_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName name)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ )}]) middle: <Id.Right_CasePat _> action: [(command.ControlFlow keyword:<Id.ControlFlow_Continue continue>)] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.VSub_DollarName '$prev_name'> pattern: (pat.Words words:[{($ Id.VSub_DollarName prev_name)}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'p='> (SQ <'$'>) <CONF_flags_> (${ Id.VSub_Name prev_key)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'c='> (SQ <'$'>) <CONF_flags_> (${ Id.VSub_Name key)} ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {($ Id.VSub_DollarName p) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName c)} ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <L> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <L> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <L> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'c='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'c='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'c='> name:c) op: assign_op.Equal rhs: {<L> (${ Id.VSub_Name c)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <L> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'p='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'p='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p='> name:p) op: assign_op.Equal rhs: {<L> (${ Id.VSub_Name p)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'p='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'p='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p='> name:p) op: assign_op.Equal rhs: {<P> ($ Id.VSub_DollarName p)} ) (AssignPair left: <Id.Lit_VarLike 'c='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'c='> name:c) op: assign_op.Equal rhs: {<P> ($ Id.VSub_DollarName c)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_flags_> (${ Id.VSub_Name prev_key) <Id.Lit_Equals '='> ($ Id.VSub_DollarName p) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<CONF_flags_> (${ Id.VSub_Name key) <Id.Lit_Equals '='> ($ Id.VSub_DollarName c) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'prev_name='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'prev_name='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev_name='> name:prev_name) op: assign_op.Equal rhs: {($ Id.VSub_DollarName name)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'prev_key='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'prev_key='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prev_key='> name:prev_key) op: assign_op.Equal rhs: {($ Id.VSub_DollarName key)} ) ] redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [key] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName keys)}]) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'name='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_name_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName name)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ )}]) middle: <Id.Right_CasePat _> action: [(command.ControlFlow keyword:<Id.ControlFlow_Continue continue>)] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.VSub_DollarName '$keep_name'> pattern: (pat.Words words:[{($ Id.VSub_DollarName keep_name)}]) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [(command.ControlFlow keyword:<Id.ControlFlow_Continue continue>)] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'call='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_call_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName call)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.VSub_DollarName '$keep_call'> pattern: (pat.Words words:[{($ Id.VSub_DollarName keep_call)}]) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [(command.ControlFlow keyword:<Id.ControlFlow_Continue continue>)] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'standard='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_standard_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'section='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_section_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'flags='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_flags_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'define='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_define_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'values='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_values_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'script='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_script_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'args='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_args_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'headers='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_headers_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'conf_name='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_name='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_name='> name:conf_name) op: assign_op.Equal rhs: {($ Id.VSub_DollarName name)} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName call)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <QQ> pattern: (pat.Words words:[{<QQ>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'call='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'call='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'call='> name:call) op: assign_op.Equal rhs: {<XX>} ) ] redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [c] iterable: (for_iter.Words words:[{<SC>} {<PC>} {<CS>}]) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [{<Id.Lit_Star '*'> <S> <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName section)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <1> pattern: (pat.Words words:[{<1>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'x='> (SQ <'$'>) <CONF_call_> (${ Id.VSub_Name c) <Id.Lit_Underscore _> (${ Id.VSub_Name standard) <Id.Lit_Underscore _> (${ Id.VSub_Name name) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'x='> (SQ <'$'>) <CONF_call_> (${ Id.VSub_Name c) <Id.Lit_Underscore _> (${ Id.VSub_Name standard) (${ Id.VSub_Name section) <Id.Lit_Underscore _> (${ Id.VSub_Name name) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'x='> (SQ <'$'>) <CONF_call_> (${ Id.VSub_Name c) <Id.Lit_Underscore _> (${ Id.VSub_Name name) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'call='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'call='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'call='> name: call ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName x)} ) ] redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Break break> ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName call)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <XX> pattern: (pat.Words words:[{<XX>}]) middle: <Id.Right_CasePat _> action: [ (command.ForEach keyword: <Id.KW_For for> iter_names: [c] iterable: (for_iter.Words words:[{<SC>} {<PC>} {<CS>}]) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <_> (${ Id.VSub_Name c) <_> (${ Id.VSub_Name name))} ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [{<Id.Lit_Star '*'> <S> <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {($ Id.VSub_DollarName section)} ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <1> pattern: (pat.Words words:[{<1>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <_> (${ Id.VSub_Name c) <_> (${ Id.VSub_Name standard) <_> (${ Id.VSub_Name name) ) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <_> (${ Id.VSub_Name c) <_> (${ Id.VSub_Name standard) (${ Id.VSub_Name section) <_> (${ Id.VSub_Name name) ) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName call)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <CS> pattern: (pat.Words words:[{<CS>} {<PC>} {<SC>} {<SI>} {<XX>}]) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName name) <': '> ($ Id.VSub_DollarName call) <': invalid call'> ) } ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <ABEGHIJQTYZabcefghijklmnopqrstuvwxyz_123456789> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName name) <': '> ($ Id.VSub_DollarName flags) <': invalid flag(s)'> ) } ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName section)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_LBracket '['> pattern: (pat.Words words:[{<Id.Lit_LBracket '['> <01> <Id.Lit_RBracket ']'>}]) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'> <N> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'name='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'name='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name) op: assign_op.Equal rhs: {(${ Id.VSub_Name section) <Id.Lit_Underscore _> (${ Id.VSub_Name name) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'standard='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'standard='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'standard='> name:standard) op: assign_op.Equal rhs: {(${ Id.VSub_Name standard) (${ Id.VSub_Name section)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName call)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <XX> pattern: (pat.Words words:[{<XX>}]) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'> <d> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_op='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_op='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_op='> name: conf_op ) op: assign_op.Equal rhs: {(${ Id.VSub_Name define)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'> <O> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_op='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_op='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_op='> name: conf_op ) op: assign_op.Equal rhs: {(${ Id.VSub_Name call) <Id.Lit_Underscore _> (${ Id.VSub_Name name) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'> <R> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_op='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_op='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_op='> name: conf_op ) op: assign_op.Equal rhs: {<Id.Lit_Underscore _> (${ Id.VSub_Name standard) <Id.Lit_Underscore _> (${ Id.VSub_Name call) <Id.Lit_Underscore _> (${ Id.VSub_Name name) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'> <S> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_op='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_op='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_op='> name: conf_op ) op: assign_op.Equal rhs: {<Id.Lit_Underscore _> (${ Id.VSub_Name call) <Id.Lit_Underscore _> (${ Id.VSub_Name standard) <Id.Lit_Underscore _> (${ Id.VSub_Name name) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_op='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_op='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_op='> name: conf_op ) op: assign_op.Equal rhs: {<Id.Lit_Underscore _> (${ Id.VSub_Name call) <Id.Lit_Underscore _> (${ Id.VSub_Name name) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ (${ Id.VSub_Name conf_op))}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {($ Id.VSub_DollarName standard) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName flags)} ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <C> pattern: (pat.Words words:[{<C> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <L> <Id.Lit_Star '*'>} ] ) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ (${ Id.VSub_Name conf_name))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <_> (${ Id.VSub_Name standard) <_> (${ Id.VSub_Name conf_name))} ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <M> <Id.Lit_Star '*'>} ] ) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName section)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <1> pattern: (pat.Words words:[{<1>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <_> (${ Id.VSub_Name standard) <_> (${ Id.VSub_Name conf_name))} ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <_> (${ Id.VSub_Name standard) (${ Id.VSub_Name section) <_> (${ Id.VSub_Name conf_name) ) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.q>} ) ] ) (command.Simple blame_tok: <sort> more_env: [] words: [{<sort>} {<-u>}] redirects: [ (Redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName tmp) <.q>} ) (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.t>} ) ] do_fork: T ) (command.Simple blame_tok: <mv> more_env: [] words: [{<mv>} {($ Id.VSub_DollarName tmp) <.t>} {($ Id.VSub_DollarName tmp) <.q>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sort> more_env: [] words: [{<sort>} {<-u>}] redirects: [ (Redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName tmp) <.v>} ) (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.t>} ) ] do_fork: T ) (command.Simple blame_tok: <mv> more_env: [] words: [{<mv>} {($ Id.VSub_DollarName tmp) <.t>} {($ Id.VSub_DollarName tmp) <.v>}] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName debug)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <-d4> pattern: (pat.Words words:[{<-d4>}]) middle: <Id.Right_CasePat _> action: [(command.ControlFlow keyword:<Id.ControlFlow_Exit exit>)] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShFunction name_tok: <defined> name: defined body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <Id.Lit_Colon ':'> more_env: [] words: [{<Id.Lit_Colon ':'>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.p>} ) ] do_fork: T ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.Lit_Colon ':'> more_env: [] words: [{<Id.Lit_Colon ':'>}] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<Id.KW_Bang '!'>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ (${ Id.VSub_Name head) <'\n'> <'#include <sys/types.h>\n'> <'#include <limits.h>\n'> <'#include <unistd.h>'> ($ Id.VSub_DollarName systeminfo) ($ Id.VSub_DollarName headers) <'\n'> (${ Id.VSub_Name tail) <'\n'> <'#undef conf\n'> <'unsigned int conf[] = {\n'> ] ) ) ] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {(SQ <'s/$/,/'>)} {($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'};'>)}] redirects: [] do_fork: T ) ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.c>} ) ] right: <Id.Lit_RBrace '}'> ) (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-f>} {($ Id.VSub_DollarName tmp) <.1.c>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <cp> more_env: [] words: [ {<cp>} {($ Id.VSub_DollarName tmp) <.c>} {($ Id.VSub_DollarName tmp) <.1.c>} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.VSub_DollarName '$cc'> more_env: [] words: [ {($ Id.VSub_DollarName cc)} {<-c>} {($ Id.VSub_DollarName tmp) <.c>} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.e>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)] spids: [5653 5671] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-f>} {($ Id.VSub_DollarName tmp) <.1.e>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <cp> more_env: [] words: [ {<cp>} {($ Id.VSub_DollarName tmp) <.e>} {($ Id.VSub_DollarName tmp) <.1.e>} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'snl='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'snl='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'snl='> name:snl) op: assign_op.Equal rhs: {(SQ <'\\\n'>)} ) ] redirects: [] ) (command.Pipeline children: [ (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} { (DQ < 's/[^_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789][^_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789]*/' > (${ Id.VSub_Name snl) <'/g'> ) } {($ Id.VSub_DollarName tmp) <.e>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [ {<grep>} { (SQ < '^[_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz][_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789]*$' > ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <sort> more_env: [] words: [{<sort>} {<-u>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.n>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) (command.AndOr children: [ (command.Simple blame_tok: <cmp> more_env: [] words: [ {<cmp>} {<-s>} {($ Id.VSub_DollarName tmp) <.n>} {($ Id.VSub_DollarName tmp) <.p>} ] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Break break> ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <fgrep> more_env: [] words: [ {<fgrep>} {<-x>} {<-v>} {<-f>} {($ Id.VSub_DollarName tmp) <.n>} {($ Id.VSub_Number 1)} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.y>} ) ] do_fork: T ) (command.Simple blame_tok: <mv> more_env: [] words: [{<mv>} {($ Id.VSub_DollarName tmp) <.y>} {($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mv> more_env: [] words: [{<mv>} {($ Id.VSub_DollarName tmp) <.n>} {($ Id.VSub_DollarName tmp) <.p>}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<Id.KW_Bang '!'>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ (${ Id.VSub_Name head) <'\n'> <'#include <sys/types.h>\n'> <'#include <limits.h>\n'> <'#include <unistd.h>'> ($ Id.VSub_DollarName systeminfo) ($ Id.VSub_DollarName headers) <'\n'> (${ Id.VSub_Name tail) <'\n'> <'#undef conf\n'> ] ) ) ] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {(SQ <'s/.*/conf "&" = &/'>)} {($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.c>} ) ] right: <Id.Lit_RBrace '}'> ) (command.Pipeline children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$cc'> more_env: [] words: [{($ Id.VSub_DollarName cc)} {<-E>} {($ Id.VSub_DollarName tmp) <.c>}] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} {(SQ <'/conf[ \t]*".*"[ \t]*=[ \t]*/!d'>)} {<-e>} { (SQ < '/[_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789][ \t]*(/!d' > ) } {<-e>} {(SQ <'s/.*"\\(.*\\)".*/\\1/'>)} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.n>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-s>} {($ Id.VSub_DollarName tmp) <.n>}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <fgrep> more_env: [] words: [ {<fgrep>} {<-x>} {<-v>} {<-f>} {($ Id.VSub_DollarName tmp) <.n>} {($ Id.VSub_Number 1)} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.y>} ) ] do_fork: T ) (command.Simple blame_tok: <mv> more_env: [] words: [{<mv>} {($ Id.VSub_DollarName tmp) <.y>} {($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) ] spids: [5876 5886] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName verbose)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <1> pattern: (pat.Words words:[{<1>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ ($ Id.VSub_DollarName command) <': check macros/enums as static initializers'>)} ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <defined> more_env: [] words: [{<defined>} {($ Id.VSub_DollarName tmp) <.q>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <defined> more_env: [] words: [{<defined>} {($ Id.VSub_DollarName tmp) <.v>}] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName debug)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <-d5> pattern: (pat.Words words:[{<-d5>}]) middle: <Id.Right_CasePat _> action: [(command.ControlFlow keyword:<Id.ControlFlow_Exit exit>)] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <exec> more_env: [] words: [{<exec>}] redirects: [ (Redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName tmp) <.q>} ) ] do_fork: T ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<line>}] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <eval> more_env: [] words: [{<eval>} {<CONF_const_> (${ Id.VSub_Name line) <Id.Lit_Equals '='> <1>}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <exec> more_env: [] words: [{<exec>}] redirects: [ (Redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName tmp) <.v>} ) ] do_fork: T ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<line>}] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <eval> more_env: [] words: [{<eval>} {<CONF_const_> (${ Id.VSub_Name line) <Id.Lit_Equals '='> <1>}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<Id.KW_Bang '!'>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ (${ Id.VSub_Name head) <'\n'> <'#include <sys/types.h>\n'> <'#include <limits.h>\n'> <'#include <unistd.h>'> ($ Id.VSub_DollarName systeminfo) ($ Id.VSub_DollarName headers) <'\n'> (${ Id.VSub_Name tail) <'\n'> <'#undef conf\n'> ] ) ) ] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {(SQ <'s/.*/conf "&" = &/'>)} {($ Id.VSub_DollarName tmp) <.q>}] redirects: [] do_fork: T ) ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.c>} ) ] right: <Id.Lit_RBrace '}'> ) (command.Pipeline children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$cc'> more_env: [] words: [{($ Id.VSub_DollarName cc)} {<-E>} {($ Id.VSub_DollarName tmp) <.c>}] redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} {(SQ <'/conf[ \t]*".*"[ \t]*=[ \t]*"/!d'>)} {<-e>} {(SQ <'s/.*"\\([^"]*\\)".*/\\1/'>)} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.e>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.Simple blame_tok: <exec> more_env: [] words: [{<exec>}] redirects: [ (Redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName tmp) <.e>} ) ] do_fork: T ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<line>}] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <eval> more_env: [] words: [{<eval>} {<CONF_string_> (${ Id.VSub_Name line) <Id.Lit_Equals '='> <1>}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName shell)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <ksh> pattern: (pat.Words words:[{<ksh>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <integer> more_env: [] words: [{<integer>} {<len>} {<name_max>}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'name_max='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'name_max='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name_max='> name:name_max) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<tmp>} {<name>} {<standard>} {<call>} {<cc>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <exec> more_env: [] words: [{<exec>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.t>} ) ] do_fork: T ) (command.ForEach keyword: <Id.KW_For for> iter_names: [key] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName keys)}]) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'name='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_name_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName name)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ )}]) middle: <Id.Right_CasePat _> action: [(command.ControlFlow keyword:<Id.ControlFlow_Continue continue>)] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.VSub_DollarName '$keep_name'> pattern: (pat.Words words:[{($ Id.VSub_DollarName keep_name)}]) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [(command.ControlFlow keyword:<Id.ControlFlow_Continue continue>)] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'call='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_call_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName call)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.VSub_DollarName '$keep_call'> pattern: (pat.Words words:[{($ Id.VSub_DollarName keep_call)}]) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [(command.ControlFlow keyword:<Id.ControlFlow_Continue continue>)] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'standard='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_standard_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'section='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_section_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'flags='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_flags_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'define='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_define_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'values='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_values_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'script='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_script_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'args='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_args_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'headers='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (SQ <'$'>) <CONF_headers_> ($ Id.VSub_DollarName key) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'conf_name='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_name='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_name='> name:conf_name) op: assign_op.Equal rhs: {($ Id.VSub_DollarName name)} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName call)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <QQ> pattern: (pat.Words words:[{<QQ>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'call='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'call='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'call='> name:call) op: assign_op.Equal rhs: {<XX>} ) ] redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [c] iterable: (for_iter.Words words:[{<SC>} {<PC>} {<CS>}]) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [{<Id.Lit_Star '*'> <S> <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName section)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <1> pattern: (pat.Words words:[{<1>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'x='> (SQ <'$'>) <CONF_call_> (${ Id.VSub_Name c) <Id.Lit_Underscore _> (${ Id.VSub_Name standard) <Id.Lit_Underscore _> (${ Id.VSub_Name name) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'x='> (SQ <'$'>) <CONF_call_> (${ Id.VSub_Name c) <Id.Lit_Underscore _> (${ Id.VSub_Name standard) (${ Id.VSub_Name section) <Id.Lit_Underscore _> (${ Id.VSub_Name name) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'x='> (SQ <'$'>) <CONF_call_> (${ Id.VSub_Name c) <Id.Lit_Underscore _> (${ Id.VSub_Name name) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'call='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'call='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'call='> name: call ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName x)} ) ] redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Break break> ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName call)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <XX> pattern: (pat.Words words:[{<XX>}]) middle: <Id.Right_CasePat _> action: [ (command.ForEach keyword: <Id.KW_For for> iter_names: [c] iterable: (for_iter.Words words:[{<SC>} {<PC>} {<CS>}]) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [{<Id.Lit_Star '*'> <S> <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {($ Id.VSub_DollarName section)} ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <1> pattern: (pat.Words words:[{<1>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'x='> (SQ <'$'>) <CONF_const__> (${ Id.VSub_Name c) <Id.Lit_Underscore _> (${ Id.VSub_Name standard) <Id.Lit_Underscore _> (${ Id.VSub_Name name) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'x='> (SQ <'$'>) <CONF_const__> (${ Id.VSub_Name c) <Id.Lit_Underscore _> (${ Id.VSub_Name standard) (${ Id.VSub_Name section) <Id.Lit_Underscore _> (${ Id.VSub_Name name) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'x='> (SQ <'$'>) <CONF_const__> (${ Id.VSub_Name c) <Id.Lit_Underscore _> (${ Id.VSub_Name name) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <1> pattern: (pat.Words words:[{<1>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'call='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'call='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'call='> name: call ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName c)} ) ] redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Break break> ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName call)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <XX> pattern: (pat.Words words:[{<XX>}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName standard)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <C> pattern: (pat.Words words:[{<C>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'standard='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'standard='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'standard='> name: standard ) op: assign_op.Equal rhs: {<POSIX>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [{<Id.Lit_Star '*'> <L> <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'flags='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'flags='> name: flags ) op: assign_op.Equal rhs: {<lFU>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'flags='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'flags='> name: flags ) op: assign_op.Equal rhs: {<FU>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName standards) <' '>)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName standard) <' '>) <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'standards='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'standards='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'standards='> name:standards) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName standards) <' '> ($ Id.VSub_DollarName standard) ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'conf_standard='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_standard='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_standard='> name:conf_standard) op: assign_op.Equal rhs: {<CONF_> (${ Id.VSub_Name standard)} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName call)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <CS> pattern: (pat.Words words:[{<CS>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_call='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_call='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_call='> name:conf_call) op: assign_op.Equal rhs: {<CONF_confstr>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <PC> pattern: (pat.Words words:[{<PC>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_call='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_call='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_call='> name:conf_call) op: assign_op.Equal rhs: {<CONF_pathconf>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <SC> pattern: (pat.Words words:[{<SC>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_call='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_call='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_call='> name:conf_call) op: assign_op.Equal rhs: {<CONF_sysconf>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <SI> pattern: (pat.Words words:[{<SI>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_call='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_call='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_call='> name:conf_call) op: assign_op.Equal rhs: {<CONF_sysinfo>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <XX> pattern: (pat.Words words:[{<XX>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_call='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_call='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_call='> name:conf_call) op: assign_op.Equal rhs: {<CONF_nop>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'conf_op='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_op='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_op='> name:conf_op) op: assign_op.Equal rhs: {<-1>} ) ] redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [s] iterable: (for_iter.Words words: [ {<Id.Lit_Underscore _> (${ Id.VSub_Name call) <Id.Lit_Underscore _> (${ Id.VSub_Name standard) (${ Id.VSub_Name section) <Id.Lit_Underscore _> (${ Id.VSub_Name name) } {<Id.Lit_Underscore _> (${ Id.VSub_Name call) <Id.Lit_Underscore _> (${ Id.VSub_Name standard) <Id.Lit_Underscore _> (${ Id.VSub_Name name) } {<Id.Lit_Underscore _> (${ Id.VSub_Name call) <Id.Lit_Underscore _> (${ Id.VSub_Name section) <Id.Lit_Underscore _> (${ Id.VSub_Name name) } {<Id.Lit_Underscore _> (${ Id.VSub_Name call) <Id.Lit_Underscore _> (${ Id.VSub_Name name) } {(${ Id.VSub_Name call) <Id.Lit_Underscore _> (${ Id.VSub_Name name)} ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'x='> (SQ <'$'>) <CONF_const_> (${ Id.VSub_Name s)} ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <1> pattern: (pat.Words words:[{<1>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_op='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_op='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_op='> name: conf_op ) op: assign_op.Equal rhs: {(${ Id.VSub_Name s)} ) ] redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Break break> ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'conf_section='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_section='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_section='> name:conf_section) op: assign_op.Equal rhs: {($ Id.VSub_DollarName section)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'conf_flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_flags='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_flags='> name:conf_flags) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'> <C> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_flags='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_flags='> name:conf_flags) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name conf_flags) <'|CONF_DEFER_CALL'>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'> <D> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_flags='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_flags='> name:conf_flags) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name conf_flags) <'|CONF_DEFER_MM'>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'> <F> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_flags='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_flags='> name:conf_flags) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name conf_flags) <'|CONF_FEATURE'>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'> <L> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_flags='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_flags='> name:conf_flags) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name conf_flags) <'|CONF_LIMIT'>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'> <M> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_flags='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_flags='> name:conf_flags) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name conf_flags) <'|CONF_MINMAX'>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'> <N> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_flags='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_flags='> name:conf_flags) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name conf_flags) <'|CONF_NOSECTION'>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'> <P> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_flags='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_flags='> name:conf_flags) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name conf_flags) <'|CONF_PREFIXED'>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'> <S> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_flags='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_flags='> name:conf_flags) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name conf_flags) <'|CONF_STANDARD'>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'> <U> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_flags='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_flags='> name:conf_flags) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name conf_flags) <'|CONF_UNDERSCORE'>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'> <V> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_flags='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_flags='> name:conf_flags) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name conf_flags) <'|CONF_NOUNDERSCORE'>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'> <W> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_flags='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_flags='> name:conf_flags) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name conf_flags) <'|CONF_PREFIX_ONLY'>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName debug)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName standard)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words: [ {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'sep='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'sep='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sep='> name:sep) op: assign_op.Equal rhs: {(DQ <' '>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words: [{<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>}] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'sep='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'sep='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sep='> name:sep) op: assign_op.Equal rhs: {(DQ <' '>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_QMark '?'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'sep='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'sep='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sep='> name:sep) op: assign_op.Equal rhs: {(DQ <' '>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words:[{<Id.Lit_QMark '?'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'sep='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'sep='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sep='> name:sep) op: assign_op.Equal rhs: {(DQ <' '>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'sep='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'sep='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sep='> name:sep) op: assign_op.Equal rhs: {(DQ )} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ ($ Id.VSub_DollarName command) <': test: '> ($ Id.VSub_DollarName sep) ($ Id.VSub_DollarName standard) <' '> ($ Id.VSub_DollarName call) <' '> ($ Id.VSub_DollarName name) ) } ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName call)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <CS> pattern: (pat.Words words:[{<CS>} {<SI>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_flags='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_flags='> name:conf_flags) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name conf_flags) <'|CONF_STRING'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'string='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'string='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'string='> name:string) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'string='> (SQ <'$'>) <CONF_string_> (${ Id.VSub_Name key)} ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'conf_limit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_limit='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_limit='> name:conf_limit) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <Ll> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'd='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'd='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'd='> name:d) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(${ Id.VSub_Name conf_name)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <LONG_MAX> pattern: (pat.Words words:[{<LONG_MAX>} {<SSIZE_MAX>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'x='> (SQ <'$'>) <CONF_const_> (${ Id.VSub_Name conf_name) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ )}]) middle: <Id.Right_CasePat _> action: [ (command.ForEach keyword: <Id.KW_For for> iter_names: [s] iterable: (for_iter.Words words:[{(${ Id.VSub_Name values)}]) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName s)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.VSub_DollarName '$sym'> pattern: (pat.Words words:[{($ Id.VSub_DollarName sym)}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'x='> (SQ <'$'>) <CONF_const_> (${ Id.VSub_Name s) } ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <1> pattern: (pat.Words words:[{<1>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'a='> (SQ <'$'>) <CONF_const_> (${ Id.VSub_Name standard) <Id.Lit_Underscore _> (${ Id.VSub_Name s) } ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {($ Id.VSub_DollarName a)} ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.VSub_DollarName '$x'> pattern: (pat.Words words: [{($ Id.VSub_DollarName x)}] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'x='> name: x ) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [{<Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'x='> name: x ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName s)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Break break> ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_LBracket '['> pattern: (pat.Words words: [ {<Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> } {<Id.Lit_LBracket '['> <-> <Id.Lit_Other '+'> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'd='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'd='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'd='> name: d ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName s)} ) ] redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Break break> ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {<1>} ) right: <Id.Right_DollarBrace '}'> ) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName flags) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName conf_op) } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Colon ':'> pattern: (pat.Words words: [ {<Id.Lit_Colon ':'> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> <-1>} {<Id.Lit_Colon ':'> <Id.Lit_Star '*'> <X> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName verbose)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <1> pattern: (pat.Words words:[{<1>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ ($ Id.VSub_DollarName command) <': probe for '> (${ Id.VSub_Name conf_name) <' <limits.h> value'> ) } ] redirects: [ (Redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName CONF_getconf)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.VSub_DollarName '$CONF_getconf'> more_env: [] words: [ {($ Id.VSub_DollarName CONF_getconf)} {($ Id.VSub_DollarName conf_name)} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.x>} ) (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'x='> name: x ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <cat> more_env: [] words: [ {<cat>} {($ Id.VSub_DollarName tmp) <.x> } ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {($ Id.VSub_DollarName x)} ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <undefined> pattern: (pat.Words words:[{<undefined>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'x='> name: x ) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] spids: [7703 7718] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {<1>} ) right: <Id.Right_DollarBrace '}'> ) } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ )}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {($ Id.VSub_DollarName script)} ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words: [{(SQ <'#'>) <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ ($ Id.VSub_DollarName script))} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.sh>} ) ] do_fork: T ) (command.Simple blame_tok: <chmod> more_env: [] words: [ {<chmod>} {<Id.Lit_Other '+'> <x>} {($ Id.VSub_DollarName tmp) <.sh>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'x='> name: x ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <'./'> more_env: [] words: [ {<'./'> ($ Id.VSub_DollarName tmp) <.sh> } ] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ )}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {($ Id.VSub_DollarName conf_name)} ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <SIZE_> pattern: (pat.Words words: [ {<SIZE_> <Id.Lit_Star '*'>} {<U> <Id.Lit_Star '*'>} {<Id.Lit_Star '*'> <_MAX>} ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'f='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'f='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'f='> name: f ) op: assign_op.Equal rhs: { (DQ <'%'> (${ Id.VSub_Name LL_format) <u> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 't='> pairs: [ (AssignPair left: <Id.Lit_VarLike 't='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 't='> name: t ) op: assign_op.Equal rhs: {(DQ <'unsigned _ast_intmax_t'>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [{<Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'f='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'f='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'f='> name: f ) op: assign_op.Equal rhs: { (DQ <'%'> (${ Id.VSub_Name LL_format) <d> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 't='> pairs: [ (AssignPair left: <Id.Lit_VarLike 't='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 't='> name: t ) op: assign_op.Equal rhs: {(DQ <_ast_intmax_t>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.c>} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<Id.KW_Bang '!'>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ (${ Id.VSub_Name head) <'\n'> <'#include <stdio.h>\n'> <'#include <sys/types.h>\n'> <'#include <limits.h>\n'> <'#include <unistd.h>'> ($ Id.VSub_DollarName systeminfo) ($ Id.VSub_DollarName headers) <'\n'> (${ Id.VSub_Name tail) <'\n'> <'int\n'> <'main()\n'> <'{\n'> <'\tprintf('> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName f) <Id.Lit_BadBackslash '\\'> <n> <Id.Right_DoubleQuote '"'> <', ('> ($ Id.VSub_DollarName t) <')'> ($ Id.VSub_DollarName conf_name) <');\n'> <'\treturn 0;\n'> <'}\n'> ] ) ) ] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.c>} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<Id.KW_Bang '!'>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ (${ Id.VSub_Name head) <'\n'> <'#include <stdio.h>\n'> <'#include <sys/types.h>\n'> <'#include <limits.h>\n'> <'#include <unistd.h>'> ($ Id.VSub_DollarName systeminfo) ($ Id.VSub_DollarName headers) <'\n'> (${ Id.VSub_Name tail) <'\n'> (${ Id.VSub_Name script) <'\n'> ] ) ) ] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName args)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ )}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {(DQ )}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Sentence child: (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<set>} {(SQ <'""'>)} {(SQ <'"'>) ($ Id.VSub_DollarName args) (SQ <'"'>) } ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [a] iterable: (for_iter__Args) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {($ Id.VSub_DollarName script)} ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words: [{(SQ <'#'>) <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <'./'> more_env: [] words: [ {<'./'> ($ Id.VSub_DollarName tmp) <.sh> } {($ Id.VSub_DollarName a)} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.x>} ) (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'x='> name: x ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [{<Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$cc'> more_env: [] words: [ {($ Id.VSub_DollarName cc)} {($ Id.VSub_DollarName a)} {<-o>} {($ Id.VSub_DollarName tmp) <.exe> } {($ Id.VSub_DollarName tmp) <.c>} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) (command.Simple blame_tok: <'./'> more_env: [] words: [ {<'./'> ($ Id.VSub_DollarName tmp) <.exe> } ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.x> } ) (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'x='> name: x ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {($ Id.VSub_DollarName x)} ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <0> pattern: (pat.Words words:[{<0>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'x='> name: x ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <cat> more_env: [] words: [ {<cat>} { ($ Id.VSub_DollarName tmp ) <.x> } ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {($ Id.VSub_DollarName x)} ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_DoubleQuote '"'> pattern: (pat.Words words: [{(DQ <->)}] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'x='> name: x ) op: assign_op.Equal rhs: { ($ Id.VSub_DollarName a) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Break break> ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [{<Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'x='> name: x ) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ )}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'x='> name: x ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName d)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {<1>} ) right: <Id.Right_DollarBrace '}'> ) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName flags) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName conf_op) } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <1> pattern: (pat.Words words: [ {<1> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> <-1> } {<1> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <X> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_limit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_limit='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_limit='> name: conf_limit ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName x)} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [{<Id.Lit_Star '*'> <L> <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_flags='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_flags='> name: conf_flags ) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name conf_flags) <'|CONF_LIMIT'>) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'conf_flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_flags='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_flags='> name: conf_flags ) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name conf_flags) <'|CONF_LIMIT_DEF'>)} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {($ Id.VSub_DollarName string) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName x) } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <1> pattern: (pat.Words words: [{<1> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.l>} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<Id.KW_Bang '!'>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'printf('> <Id.Right_DoubleQuote '"'> <'#ifndef '> (${ Id.VSub_Name conf_name) <Id.Lit_BadBackslash '\\'> <n> <Id.Right_DoubleQuote '"'> <');\n'> <'printf('> <Id.Right_DoubleQuote '"'> <'#define '> (${ Id.VSub_Name conf_name) <' '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (${ Id.VSub_Name x) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) <Id.Lit_BadBackslash '\\'> <n> <Id.Right_DoubleQuote '"'> <');\n'> <'printf('> <Id.Right_DoubleQuote '"'> <'#endif'> <Id.Lit_BadBackslash '\\'> <n> <Id.Right_DoubleQuote '"'> <');\n'> ] ) ) ] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <U> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.l>} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<Id.KW_Bang '!'>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'printf('> <Id.Right_DoubleQuote '"'> <'#ifndef '> (${ Id.VSub_Name conf_name) <Id.Lit_BadBackslash '\\'> <n> <Id.Right_DoubleQuote '"'> <');\n'> <'printf('> <Id.Right_DoubleQuote '"'> <'#ifndef '> (${ Id.VSub_Name x) <Id.Lit_BadBackslash '\\'> <n> <Id.Right_DoubleQuote '"'> <');\n'> <'printf('> <Id.Right_DoubleQuote '"'> <'#define '> (${ Id.VSub_Name x) <' %lu'> <Id.Lit_BadBackslash '\\'> <n> <Id.Right_DoubleQuote '"'> <', '> (${ Id.VSub_Name x) <');\n'> <'printf('> <Id.Right_DoubleQuote '"'> <'#endif'> <Id.Lit_BadBackslash '\\'> <n> <Id.Right_DoubleQuote '"'> <');\n'> <'printf('> <Id.Right_DoubleQuote '"'> <'#define '> (${ Id.VSub_Name conf_name) <' '> (${ Id.VSub_Name x) <Id.Lit_BadBackslash '\\'> <n> <Id.Right_DoubleQuote '"'> <');\n'> <'printf('> <Id.Right_DoubleQuote '"'> <'#endif'> <Id.Lit_BadBackslash '\\'> <n> <Id.Right_DoubleQuote '"'> <');\n'> ] ) ) ] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName sym) } ] ) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.l>} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<Id.KW_Bang '!'>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'printf('> <Id.Right_DoubleQuote '"'> <'#ifndef '> (${ Id.VSub_Name conf_name) <Id.Lit_BadBackslash '\\'> <n> <Id.Right_DoubleQuote '"'> <');\n'> <'printf('> <Id.Right_DoubleQuote '"'> <'#ifndef '> (${ Id.VSub_Name x) <Id.Lit_BadBackslash '\\'> <n> <Id.Right_DoubleQuote '"'> <');\n'> <'printf('> <Id.Right_DoubleQuote '"'> <'#define '> (${ Id.VSub_Name x) <' %ld'> <Id.Lit_BadBackslash '\\'> <n> <Id.Right_DoubleQuote '"'> <', '> (${ Id.VSub_Name x) <');\n'> <'printf('> <Id.Right_DoubleQuote '"'> <'#endif'> <Id.Lit_BadBackslash '\\'> <n> <Id.Right_DoubleQuote '"'> <');\n'> <'printf('> <Id.Right_DoubleQuote '"'> <'#define '> (${ Id.VSub_Name conf_name) <' '> (${ Id.VSub_Name x) <Id.Lit_BadBackslash '\\'> <n> <Id.Right_DoubleQuote '"'> <');\n'> <'printf('> <Id.Right_DoubleQuote '"'> <'#endif'> <Id.Lit_BadBackslash '\\'> <n> <Id.Right_DoubleQuote '"'> <');\n'> ] ) ) ] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.l>} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<Id.KW_Bang '!'>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'printf('> <Id.Right_DoubleQuote '"'> <'#ifndef '> (${ Id.VSub_Name conf_name) <Id.Lit_BadBackslash '\\'> <n> <Id.Right_DoubleQuote '"'> <');\n'> <'printf('> <Id.Right_DoubleQuote '"'> <'#define '> (${ Id.VSub_Name conf_name) <' '> (${ Id.VSub_Name x) <Id.Lit_BadBackslash '\\'> <n> <Id.Right_DoubleQuote '"'> <');\n'> <'printf('> <Id.Right_DoubleQuote '"'> <'#endif'> <Id.Lit_BadBackslash '\\'> <n> <Id.Right_DoubleQuote '"'> <');\n'> ] ) ) ] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName section)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_LBracket '['> pattern: (pat.Words words:[{<Id.Lit_LBracket '['> <01> <Id.Lit_RBracket ']'>}]) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'> <N> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'name='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'name='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name) op: assign_op.Equal rhs: {(${ Id.VSub_Name section) <Id.Lit_Underscore _> (${ Id.VSub_Name name) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'standard='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'standard='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'standard='> name:standard) op: assign_op.Equal rhs: {(${ Id.VSub_Name standard) (${ Id.VSub_Name section)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'conf_minmax='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_minmax='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_minmax='> name:conf_minmax) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {($ Id.VSub_DollarName call) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName standard) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName flags) } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <C> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <M> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ForEach keyword: <Id.KW_For for> iter_names: [s] iterable: (for_iter.Words words: [ {<Id.Lit_Underscore _> (${ Id.VSub_Name standard) <Id.Lit_Underscore _> (${ Id.VSub_Name conf_name) } {(${ Id.VSub_Name values)} ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName s)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.VSub_DollarName '$sym'> pattern: (pat.Words words:[{($ Id.VSub_DollarName sym)}]) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_minmax='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_minmax='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_minmax='> name: conf_minmax ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName s)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'conf_flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_flags='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_flags='> name: conf_flags ) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name conf_flags) <'|CONF_MINMAX_DEF'>)} ) ] redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Break break> ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <C> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>} ] ) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_LBracket '['> pattern: (pat.Words words: [ {<Id.Lit_LBracket '['> <CPSX> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <CSX> <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <Id.Lit_LBracket '['> <FM> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [s] iterable: (for_iter.Words words: [ {<Id.Lit_Underscore _> (${ Id.VSub_Name standard) <Id.Lit_Underscore _> (${ Id.VSub_Name conf_name) } {(${ Id.VSub_Name values)} ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName s)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.VSub_DollarName '$sym'> pattern: (pat.Words words:[{($ Id.VSub_DollarName sym)}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'x='> (SQ <'$'>) <CONF_const_> (${ Id.VSub_Name s) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <1> pattern: (pat.Words words:[{<1>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_minmax='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_minmax='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_minmax='> name: conf_minmax ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName s)} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [{<Id.Lit_Star '*'> <M> <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_flags='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_flags='> name: conf_flags ) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name conf_flags) <'|CONF_MINMAX_DEF'> ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName conf_minmax)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_LBracket '['> pattern: (pat.Words words: [ {<Id.Lit_LBracket '['> <-> <Id.Lit_Other '+'> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'x='> name: x ) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Break break> ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.Unary op:<Id.VTest_ColonPlus _> arg_word:{<1>}) right: <Id.Right_DollarBrace '}'> ) <Id.Lit_Colon ':'> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name script> var_name: script suffix_op: (suffix_op.Unary op:<Id.VTest_ColonPlus _> arg_word:{<1>}) right: <Id.Right_DollarBrace '}'> ) } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Colon ':'> pattern: (pat.Words words:[{<Id.Lit_Colon ':'> <1>}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName verbose)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <1> pattern: (pat.Words words:[{<1>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ ($ Id.VSub_DollarName command) <': probe for _'> (${ Id.VSub_Name standard) <_> (${ Id.VSub_Name conf_name) <' minmax value'> ) } ] redirects: [ (Redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName CONF_getconf)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <Id.VSub_DollarName '$CONF_getconf'> more_env: [] words: [ {($ Id.VSub_DollarName CONF_getconf)} {<Id.Lit_Underscore _> (${ Id.VSub_Name standard) <Id.Lit_Underscore _> (${ Id.VSub_Name conf_name) } ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.x>} ) (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'x='> name: x ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <cat> more_env: [] words: [ {<cat>} {($ Id.VSub_DollarName tmp) <.x>} ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <undefined> pattern: (pat.Words words:[{<undefined>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'x='> name: x ) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] spids: [8971 8993] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ )}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName script)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ <'#'>) <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_DollarName script))}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.sh>} ) ] do_fork: T ) (command.Simple blame_tok: <chmod> more_env: [] words: [ {<chmod>} {<Id.Lit_Other '+'> <x>} {($ Id.VSub_DollarName tmp) <.sh>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'x='> name: x ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <'./'> more_env: [] words: [ {<'./'> ($ Id.VSub_DollarName tmp) <.sh>} ] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.c>} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<Id.KW_Bang '!'>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ (${ Id.VSub_Name head) <'\n'> <'#include <sys/types.h>\n'> <'#include <limits.h>\n'> <'#include <unistd.h>'> ($ Id.VSub_DollarName systeminfo) ($ Id.VSub_DollarName headers) <'\n'> (${ Id.VSub_Name tail) <'\n'> (${ Id.VSub_Name script) <'\n'> ] ) ) ] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName args)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ )}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {(DQ )}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Sentence child: (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<set>} {(SQ <'""'>)} {(DQ ($ Id.VSub_DollarName args))} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [a] iterable: (for_iter__Args) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {($ Id.VSub_DollarName script)} ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words: [{(SQ <'#'>) <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <'./'> more_env: [] words: [ {<'./'> ($ Id.VSub_DollarName tmp) <.sh>} {($ Id.VSub_DollarName a)} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.x>} ) (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'x='> name: x ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$cc'> more_env: [] words: [ {($ Id.VSub_DollarName cc)} {($ Id.VSub_DollarName a)} {<-o>} {($ Id.VSub_DollarName tmp) <.exe>} {($ Id.VSub_DollarName tmp) <.c>} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) (command.Simple blame_tok: <'./'> more_env: [] words: [ {<'./'> ($ Id.VSub_DollarName tmp) <.exe>} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.x>} ) (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'x='> name: x ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <0> pattern: (pat.Words words:[{<0>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'x='> name: x ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <cat> more_env: [] words: [ {<cat>} {($ Id.VSub_DollarName tmp) <.x> } ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {($ Id.VSub_DollarName x)} ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_DoubleQuote '"'> pattern: (pat.Words words:[{(DQ <->)}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'x='> name: x ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName a)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Break break> ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'x='> name: x ) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_minmax='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_minmax='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_minmax='> name: conf_minmax ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName x)} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [{<Id.Lit_Star '*'> <M> <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: { (DQ <'|'> ($ Id.VSub_DollarName conf_flags) <'|'>) } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> (SQ <'|CONF_MINMAX_DEF|'>) <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_flags='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_flags='> name: conf_flags ) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name conf_flags) <'|CONF_MINMAX_DEF'> ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName string)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <1> pattern: (pat.Words words:[{<1>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_limit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_limit='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_limit='> name:conf_limit) op: assign_op.Equal rhs: {(DQ <'{ 0, '> ($ Id.VSub_DollarName conf_limit) <' }'>)} ) (AssignPair left: <Id.Lit_VarLike 'conf_minmax='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_minmax='> name: conf_minmax ) op: assign_op.Equal rhs: {(DQ <'{ 0, '> ($ Id.VSub_DollarName conf_minmax) <' }'>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName conf_limit)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <0> pattern: (pat.Words words: [ {<0> <Id.Lit_LBracket '['> <xX> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>} {<-> <Id.Lit_Star '*'>} {<Id.Lit_Other '+'> <Id.Lit_Star '*'>} {<Id.Lit_LBracket '['> <ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <Id.KW_Bang '!'> <0123456789abcdefABCDEF> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_limit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_limit='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_limit='> name: conf_limit ) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <Id.KW_Bang '!'> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_limit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_limit='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_limit='> name: conf_limit ) op: assign_op.Equal rhs: {<0x> ($ Id.VSub_DollarName conf_limit)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName conf_minmax)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <0> pattern: (pat.Words words: [ {<0> <Id.Lit_LBracket '['> <xX> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>} {<-> <Id.Lit_Star '*'>} {<Id.Lit_Other '+'> <Id.Lit_Star '*'>} {<Id.Lit_LBracket '['> <ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <Id.KW_Bang '!'> <0123456789abcdefABCDEF> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_minmax='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_minmax='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_minmax='> name: conf_minmax ) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <Id.KW_Bang '!'> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_minmax='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_minmax='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_minmax='> name: conf_minmax ) op: assign_op.Equal rhs: {<0x> ($ Id.VSub_DollarName conf_minmax)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName conf_limit)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words: [ {<Id.Lit_QMark '?'> <Id.Lit_Star '*'> <Id.Lit_LBracket '['> <-> <Id.Lit_Other '+'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> } {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> (SQ <'()'>) <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <lLuU> <Id.Lit_RBracket ']'>} ] ) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName LL_suffix)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words: [{<Id.Lit_QMark '?'> <Id.Lit_QMark '?'>}] ) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName conf_limit)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <Id.KW_Bang '!'> <lL> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <lL> <Id.Lit_RBracket ']'> } {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <Id.KW_Bang '!'> <lL> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <lL> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <uU> <Id.Lit_RBracket ']'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_limit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_limit='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_limit='> name: conf_limit ) op: assign_op.Equal rhs: {(${ Id.VSub_Name conf_limit) <L>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <-> pattern: (pat.Words words: [ {<-> <Id.Lit_Star '*'> <Id.Lit_LBracket '['> <2468> <Id.Lit_RBracket ']'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName shell)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <ksh> pattern: (pat.Words words:[{<ksh>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'p='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'p='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p='> name:p) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name conf_limit> var_name: conf_limit suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Other '?'>} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 's='> pairs: [ (AssignPair left: <Id.Lit_VarLike 's='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 's='> name:s) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name conf_limit> var_name: conf_limit suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {($ Id.VSub_DollarName p)} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike s) right: (arith_expr.Binary op_id: Id.Arith_Minus left: ($ Id.Lit_ArithVarLike s) right: {<Id.Lit_Digits 1>} ) ) right: <Id.Op_DRightParen _> redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(SQ )} {($ Id.VSub_DollarName conf_limit)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {(SQ <'s/ *\\(.*\\)\\(.\\) */p=\\1 s=\\2/'>)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 's='> pairs: [ (AssignPair left: <Id.Lit_VarLike 's='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 's='> name:s) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <expr> more_env: [] words: [ {<expr>} {($ Id.VSub_DollarName s)} {<->} {<1>} ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'conf_limit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_limit='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_limit='> name: conf_limit ) op: assign_op.Equal rhs: {(${ Id.VSub_Name p) (${ Id.VSub_Name s) (${ Id.VSub_Name LL_suffix) <-1> (${ Id.VSub_Name LL_suffix) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <0> pattern: (pat.Words words: [ {<0> <Id.Lit_LBracket '['> <xX> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> <Id.Lit_LBracket '['> <abcdefABCDEF> <Id.Lit_RBracket ']'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_limit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_limit='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_limit='> name: conf_limit ) op: assign_op.Equal rhs: {(${ Id.VSub_Name conf_limit) (${ Id.VSub_Name LL_suffix)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <-> pattern: (pat.Words words: [ {<-> <Id.Lit_Star '*'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_limit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_limit='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_limit='> name: conf_limit ) op: assign_op.Equal rhs: {(${ Id.VSub_Name conf_limit) (${ Id.VSub_Name LL_suffix)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_limit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_limit='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_limit='> name: conf_limit ) op: assign_op.Equal rhs: {(${ Id.VSub_Name conf_limit) (${ Id.VSub_Name U_suffix) (${ Id.VSub_Name LL_suffix) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName conf_minmax)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words: [ {<Id.Lit_QMark '?'> <Id.Lit_Star '*'> <Id.Lit_LBracket '['> <-> <Id.Lit_Other '+'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> } {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> (SQ <'()'>) <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <lLuU> <Id.Lit_RBracket ']'>} ] ) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName LL_suffix)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words: [{<Id.Lit_QMark '?'> <Id.Lit_QMark '?'>}] ) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName conf_minmax)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <Id.KW_Bang '!'> <lL> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <lL> <Id.Lit_RBracket ']'> } {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <Id.KW_Bang '!'> <lL> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <lL> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <uU> <Id.Lit_RBracket ']'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_minmax='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_minmax='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_minmax='> name: conf_minmax ) op: assign_op.Equal rhs: {(${ Id.VSub_Name conf_minmax) <L>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <-> pattern: (pat.Words words: [ {<-> <Id.Lit_Star '*'> <Id.Lit_LBracket '['> <2468> <Id.Lit_RBracket ']'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName shell)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <ksh> pattern: (pat.Words words:[{<ksh>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'p='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'p='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p='> name:p) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name conf_minmax> var_name: conf_minmax suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Other '?'>} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 's='> pairs: [ (AssignPair left: <Id.Lit_VarLike 's='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 's='> name:s) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name conf_minmax> var_name: conf_minmax suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {($ Id.VSub_DollarName p)} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike s) right: (arith_expr.Binary op_id: Id.Arith_Minus left: ($ Id.Lit_ArithVarLike s) right: {<Id.Lit_Digits 1>} ) ) right: <Id.Op_DRightParen _> redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(SQ )} {($ Id.VSub_DollarName conf_minmax)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {(SQ <'s/ *\\(.*\\)\\(.\\) */p=\\1 s=\\2/'>)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 's='> pairs: [ (AssignPair left: <Id.Lit_VarLike 's='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 's='> name:s) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <expr> more_env: [] words: [ {<expr>} {($ Id.VSub_DollarName s)} {<->} {<1>} ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'conf_minmax='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_minmax='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_minmax='> name: conf_minmax ) op: assign_op.Equal rhs: {(${ Id.VSub_Name p) (${ Id.VSub_Name s) (${ Id.VSub_Name LL_suffix) <-1> (${ Id.VSub_Name LL_suffix) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <0> pattern: (pat.Words words: [ {<0> <Id.Lit_LBracket '['> <xX> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> <Id.Lit_LBracket '['> <abcdefABCDEF> <Id.Lit_RBracket ']'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_minmax='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_minmax='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_minmax='> name: conf_minmax ) op: assign_op.Equal rhs: {(${ Id.VSub_Name conf_minmax) (${ Id.VSub_Name LL_suffix)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <-> pattern: (pat.Words words: [ {<-> <Id.Lit_Star '*'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_minmax='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_minmax='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_minmax='> name: conf_minmax ) op: assign_op.Equal rhs: {(${ Id.VSub_Name conf_minmax) (${ Id.VSub_Name LL_suffix)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_minmax='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_minmax='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_minmax='> name: conf_minmax ) op: assign_op.Equal rhs: {(${ Id.VSub_Name conf_minmax) (${ Id.VSub_Name U_suffix) (${ Id.VSub_Name LL_suffix) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'conf_limit='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_limit='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'conf_limit='> name:conf_limit) op: assign_op.Equal rhs: {(DQ <'{ '> ($ Id.VSub_DollarName conf_limit) <', 0 }'>)} ) (AssignPair left: <Id.Lit_VarLike 'conf_minmax='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_minmax='> name: conf_minmax ) op: assign_op.Equal rhs: {(DQ <'{ '> ($ Id.VSub_DollarName conf_minmax) <', 0 }'>)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName conf_flags)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_SingleQuote '\''> pattern: (pat.Words words:[{(SQ <'0|'>) <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName shell)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <ksh> pattern: (pat.Words words:[{<ksh>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_flags='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_flags='> name: conf_flags ) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name conf_flags> var_name: conf_flags suffix_op: (suffix_op.Unary op: <Id.VOp1_Pound '#'> arg_word: {<0> <Id.Lit_Other '?'>} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'conf_flags='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'conf_flags='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'conf_flags='> name: conf_flags ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ ($ Id.VSub_DollarName conf_flags))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {(SQ <'s/^0.//'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'{ '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ($ Id.VSub_DollarName conf_name) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <', '> ($ Id.VSub_DollarName conf_limit) <', '> ($ Id.VSub_DollarName conf_minmax) <', '> ($ Id.VSub_DollarName conf_flags) <', '> ($ Id.VSub_DollarName conf_standard) <', '> ($ Id.VSub_DollarName conf_section) <', '> ($ Id.VSub_DollarName conf_call) <', '> ($ Id.VSub_DollarName conf_op) <' },'> ) } ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName shell)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <ksh> pattern: (pat.Words words:[{<ksh>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'len='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'len='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'len='> name:len) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name conf_name> var_name: conf_name prefix_op: <Id.VSub_Pound '#'> right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: ($ Id.Lit_ArithVarLike len) right: ($ Id.Lit_ArithVarLike name_max) ) right: <Id.Op_DRightParen _> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike name_max) right: (arith_expr.Binary op_id: Id.Arith_Plus left: ($ Id.Lit_ArithVarLike len) right: {<Id.Lit_Digits 1>} ) ) right: <Id.Op_DRightParen _> redirects: [] ) ] spids: [10297 10307] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'len='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'len='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'len='> name:len) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(${ Id.VSub_Name conf_name)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <wc> more_env: [] words: [{<wc>} {<-c>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <expr> more_env: [] words: [ {<expr>} { (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\('> ch: '(' ) } {($ Id.VSub_DollarName len)} {<->} {<1>} { (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\)'> ch: ')' ) } { (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\>'> ch: '>' ) <Id.Lit_Equals '='> } {(${ Id.VSub_Name name_max)} ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'name_max='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'name_max='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'name_max='> name: name_max ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName len)} ) ] redirects: [] ) ] spids: [10346 10371] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <exec> more_env: [] words: [{<exec>}] redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName debug)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <-d6> pattern: (pat.Words words:[{<-d6>}]) middle: <Id.Right_CasePat _> action: [(command.ControlFlow keyword:<Id.ControlFlow_Exit exit>)] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'base='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'base='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'base='> name:base) op: assign_op.Equal rhs: {<conftab>} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName verbose)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <1> pattern: (pat.Words words:[{<1>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ ($ Id.VSub_DollarName command) <': generate '> (${ Id.VSub_Name base) <'.h string table header'> ) } ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName shell)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <ksh> pattern: (pat.Words words:[{<ksh>}]) middle: <Id.Right_CasePat _> action: [ (command.Sentence child: (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike name_max) right: (arith_expr.Binary op_id: Id.Arith_Plus left: ($ Id.Lit_ArithVarLike name_max) right: {<Id.Lit_Digits 3>} ) ) right: <Id.Op_DRightParen _> redirects: [] ) terminator: <Id.Op_Semi _> ) (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike name_max) right: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.Binary op_id: Id.Arith_Slash left: ($ Id.Lit_ArithVarLike name_max) right: {<Id.Lit_Digits 4>} ) right: {<Id.Lit_Digits 4>} ) ) right: <Id.Op_DRightParen _> redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'name_max='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'name_max='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name_max='> name:name_max) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <expr> more_env: [] words: [ {<expr>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\('> ch:'(')} {($ Id.VSub_DollarName name_max)} {<Id.Lit_Other '+'>} {<3>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'> ch:')')} {<'/'>} {<4>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'> ch:'*')} {<4>} ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<Id.KW_Bang '!'>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'#ifndef _CONFTAB_H\n'> <'#define _CONFTAB_H\n'> ($ Id.VSub_DollarName systeminfo) <'\n'> <'\n'> (${ Id.VSub_Name generated) <'\n'> <'\n'> < '#if !defined(const) && !defined(__STDC__) && !defined(__cplusplus) && !defined(c_plusplus)\n' > <'#define const\n'> <'#endif\n'> <'\n'> <'#define conf\t\t_ast_conf_data\n'> <'#define conf_elements\t_ast_conf_ndata\n'> <'\n'> <'#define prefix\t\t_ast_conf_prefix\n'> <'#define prefix_elements\t_ast_conf_nprefix\n'> <'\n'> <'#define CONF_nop\t0\n'> <'#define\tCONF_confstr\t1\n'> <'#define CONF_pathconf\t2\n'> <'#define CONF_sysconf\t3\n'> <'#define CONF_sysinfo\t4\n'> <'\n'> ] ) ) ] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'index='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'index='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'index='> name:index) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [standard] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName standards)}]) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'#define CONF_'> (${ Id.VSub_Name standard) <'\t'> (${ Id.VSub_Name index))} ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName shell)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <ksh> pattern: (pat.Words words:[{<ksh>}]) middle: <Id.Right_CasePat _> action: [ (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike index) right: (arith_expr.Binary op_id: Id.Arith_Plus left: ($ Id.Lit_ArithVarLike index) right: {<Id.Lit_Digits 1>} ) ) right: <Id.Op_DRightParen _> redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'index='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'index='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'index='> name:index) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <expr> more_env: [] words: [ {<expr>} {(${ Id.VSub_Name index)} {<Id.Lit_Other '+'>} {<1>} ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'#define CONF_call\t'> (${ Id.VSub_Name index))}] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName CONF_getconf)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'#define _pth_getconf\t'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName CONF_getconf) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ) } ] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName CONF_getconf_a)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_QMark '?'> pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'#define _pth_getconf_a\t'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName CONF_getconf_a) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ) } ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<Id.KW_Bang '!'>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'\n'> <'#define CONF_DEFER_CALL\t\t0x0001\n'> <'#define CONF_DEFER_MM\t\t0x0002\n'> <'#define CONF_FEATURE\t\t0x0004\n'> <'#define CONF_LIMIT\t\t0x0008\n'> <'#define CONF_LIMIT_DEF\t\t0x0010\n'> <'#define CONF_MINMAX\t\t0x0020\n'> <'#define CONF_MINMAX_DEF\t\t0x0040\n'> <'#define CONF_NOSECTION\t\t0x0080\n'> <'#define CONF_NOUNDERSCORE\t0x0100\n'> <'#define CONF_PREFIX_ONLY\t0x0200\n'> <'#define CONF_PREFIXED\t\t0x0400\n'> <'#define CONF_STANDARD\t\t0x0800\n'> <'#define CONF_STRING\t\t0x1000\n'> <'#define CONF_UNDERSCORE\t\t0x2000\n'> <'#define CONF_USER\t\t0x4000\n'> <'\n'> <'struct Conf_s; typedef struct Conf_s Conf_t;\n'> <'\n'> <'typedef struct Value_s\n'> <'{\n'> <'\tintmax_t\tnumber;\n'> <'\tconst char*\tstring;\n'> <'} Value_t;\n'> <'\n'> <'struct Conf_s\n'> <'{\n'> <'\tconst char\tname['> (${ Id.VSub_Name name_max) <'];\n'> <'\tValue_t\t\tlimit;\n'> <'\tValue_t\t\tminmax;\n'> <'\tunsigned int\tflags;\n'> <'\tshort\t\tstandard;\n'> <'\tshort\t\tsection;\n'> <'\tshort\t\tcall;\n'> <'\tshort\t\top;\n'> <'};\n'> <'\n'> <'typedef struct Prefix_s\n'> <'{\n'> <'\tconst char\tname[16];\n'> <'\tshort\t\tlength;\n'> <'\tshort\t\tstandard;\n'> <'\tshort\t\tcall;\n'> <'} Prefix_t;\n'> <'\n'> <'extern const Conf_t\tconf[];\n'> <'extern const int\tconf_elements;\n'> <'\n'> <'extern const Prefix_t\tprefix[];\n'> <'extern const int\tprefix_elements;\n'> <'\n'> <'#endif\n'> ] ) ) ] do_fork: T ) ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.2>} ) ] right: <Id.Lit_RBrace '}'> ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName debug)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <-d7> pattern: (pat.Words words:[{<-d7>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>} {($ Id.VSub_DollarName tmp) <.2>} {(${ Id.VSub_Name base) <.h>} ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.AndOr children: [ (command.Simple blame_tok: <cmp> more_env: [] words: [{<cmp>} {<-s>} {($ Id.VSub_DollarName tmp) <.2>} {(${ Id.VSub_Name base) <.h>}] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple blame_tok: <mv> more_env: [] words: [{<mv>} {($ Id.VSub_DollarName tmp) <.2>} {(${ Id.VSub_Name base) <.h>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName verbose)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <1> pattern: (pat.Words words:[{<1>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ ($ Id.VSub_DollarName command) <': generate '> (${ Id.VSub_Name base) <'.c string table'> ) } ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<Id.KW_Bang '!'>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ (${ Id.VSub_Name head) <'\n'> <'#include <sys/types.h>\n'> <'#include <limits.h>\n'> <'#include <unistd.h>'> ($ Id.VSub_DollarName systeminfo) ($ Id.VSub_DollarName headers) <'\n'> (${ Id.VSub_Name tail) <'\n'> <'#include '> <Id.Right_DoubleQuote '"'> (${ Id.VSub_Name base) <.h> <Id.Right_DoubleQuote '"'> <'\n'> <'\n'> (${ Id.VSub_Name generated) <'\n'> <'\n'> <'/*\n'> <' * prefix strings -- the first few are indexed by Conf_t.standard\n'> <' */\n'> <'\n'> <'const Prefix_t prefix[] =\n'> <'{\n'> ] ) ) ] do_fork: T ) (command.ForEach keyword: <Id.KW_For for> iter_names: [standard] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName standards)}]) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName shell)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <ksh> pattern: (pat.Words words:[{<ksh>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'len='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'len='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'len='> name:len) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name standard> var_name: standard prefix_op: <Id.VSub_Pound '#'> right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Sentence child: (command.ShAssignment left: <Id.Lit_VarLike 'len='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'len='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'len='> name:len) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(${ Id.VSub_Name standard)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <wc> more_env: [] words: [{<wc>} {<-c>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment left: <Id.Lit_VarLike 'len='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'len='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'len='> name:len) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <expr> more_env: [] words: [{<expr>} {($ Id.VSub_DollarName len)} {<->} {<1>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'\t'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') (${ Id.VSub_Name standard) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <',\t'> (${ Id.VSub_Name len) <',\tCONF_'> (${ Id.VSub_Name standard) <',\t-1,'> ) } ] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<Id.KW_Bang '!'>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'\t'> <Id.Right_DoubleQuote '"'> <XX> <Id.Right_DoubleQuote '"'> <',\t\t2,\tCONF_POSIX,\tCONF_nop,\n'> <'\t'> <Id.Right_DoubleQuote '"'> <CS> <Id.Right_DoubleQuote '"'> <',\t\t2,\tCONF_POSIX,\tCONF_confstr,\n'> <'\t'> <Id.Right_DoubleQuote '"'> <PC> <Id.Right_DoubleQuote '"'> <',\t\t2,\tCONF_POSIX,\tCONF_pathconf,\n'> <'\t'> <Id.Right_DoubleQuote '"'> <SC> <Id.Right_DoubleQuote '"'> <',\t\t2,\tCONF_POSIX,\tCONF_sysconf,\n'> <'\t'> <Id.Right_DoubleQuote '"'> <SI> <Id.Right_DoubleQuote '"'> <',\t\t2,\tCONF_SVID,\tCONF_sysinfo,\n'> <'};\n'> <'\n'> <'const int\tprefix_elements = (int)sizeof(prefix) / (int)sizeof(prefix[0]);\n'> <'\n'> <'/*\n'> <' * conf strings sorted in ascending order\n'> <' */\n'> <'\n'> <'const Conf_t conf[] =\n'> <'{\n'> ] ) ) ] do_fork: T ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {($ Id.VSub_DollarName tmp) <.t>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<Id.KW_Bang '!'>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'};\n'> <'\n'> <'const int\tconf_elements = (int)sizeof(conf) / (int)sizeof(conf[0]);\n'> ] ) ) ] do_fork: T ) ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.4>} ) ] right: <Id.Lit_RBrace '}'> ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName debug)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <-d7> pattern: (pat.Words words:[{<-d7>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>} {($ Id.VSub_DollarName tmp) <.4>} {(${ Id.VSub_Name base) <.c>} ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.AndOr children: [ (command.Simple blame_tok: <cmp> more_env: [] words: [{<cmp>} {<-s>} {($ Id.VSub_DollarName tmp) <.4>} {(${ Id.VSub_Name base) <.c>}] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple blame_tok: <mv> more_env: [] words: [{<mv>} {($ Id.VSub_DollarName tmp) <.4>} {(${ Id.VSub_Name base) <.c>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'base='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'base='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'base='> name:base) op: assign_op.Equal rhs: {<conflim>} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName verbose)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <1> pattern: (pat.Words words:[{<1>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ ($ Id.VSub_DollarName command) <': generate '> (${ Id.VSub_Name base) <'.h supplemental <limits.h> values'> ) } ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<Id.KW_Bang '!'>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ (${ Id.VSub_Name generated) <'\n'> <'\n'> <'/*\n'> <' * supplemental <limits.h> values\n'> <' */\n'> <'\n'> ] ) ) ] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-f>} {($ Id.VSub_DollarName tmp) <.l>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {($ Id.VSub_DollarName tmp) <.l>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <.5>} ) ] right: <Id.Lit_RBrace '}'> ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName debug)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <-d7> pattern: (pat.Words words:[{<-d7>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>} {($ Id.VSub_DollarName tmp) <.5>} {(${ Id.VSub_Name base) <.h>} ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.AndOr children: [ (command.Simple blame_tok: <cmp> more_env: [] words: [{<cmp>} {<-s>} {($ Id.VSub_DollarName tmp) <.5>} {(${ Id.VSub_Name base) <.h>}] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple blame_tok: <mv> more_env: [] words: [{<mv>} {($ Id.VSub_DollarName tmp) <.5>} {(${ Id.VSub_Name base) <.h>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] )