(command.CommandList children: [ (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: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name TMP> var_name: TMP suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<Id.Lit_Slash '/'> <tmp>} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.Simple blame_tok: <readonly> more_env: [] words: [{<readonly>} {<TMP>}] redirects: [] do_fork: T ) (command.ShFunction name_tok: <log> name: log body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_Number 0) <': '> ($ Id.VSub_At '@'))}] redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <die> name: die body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_Number 0) <' ERROR: '> ($ Id.VSub_At '@'))}] redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <show_help> name: show_help body: (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: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'Usage: ./configure [OPTION]\n'> <'\n'> <'Detects system settings before a build of Oil.\n'> <'\n'> <' --prefix Prefix for the bin/ directory [/usr/local]\n'> <' --with-readline Fail unless readline is available.\n'> < ' --without-readline Don\'t compile with readline, even if it\'s available.\n' > <'\t\t The shell won\'t have any interactive features.\n'> ] ) ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShAssignment left: <Id.Lit_VarLike 'FLAG_prefix='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'FLAG_prefix='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FLAG_prefix='> name:FLAG_prefix) op: assign_op.Equal rhs: {(SQ <'/usr/local'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'FLAG_with_readline='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'FLAG_with_readline='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FLAG_with_readline='> name:FLAG_with_readline) op: assign_op.Equal rhs: {(SQ )} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'FLAG_without_readline='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'FLAG_without_readline='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'FLAG_without_readline='> name: FLAG_without_readline ) op: assign_op.Equal rhs: {(SQ )} ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <true> more_env: [] words: [{<true>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(DQ ($ 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.ControlFlow keyword:<Id.ControlFlow_Break break>)] right: <Id.Op_DSemi _> ) (CaseArm left: <--help> pattern: (pat.Words words:[{<--help>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <show_help> more_env: [] words: [{<show_help>}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<0>} ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <--with-readline> pattern: (pat.Words words:[{<--with-readline>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'FLAG_with_readline='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'FLAG_with_readline='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'FLAG_with_readline='> name: FLAG_with_readline ) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <--without-readline> pattern: (pat.Words words:[{<--without-readline>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'FLAG_without_readline='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'FLAG_without_readline='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'FLAG_without_readline='> name: FLAG_without_readline ) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <--prefix> pattern: (pat.Words words:[{<--prefix> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'FLAG_prefix='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'FLAG_prefix='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'FLAG_prefix='> name: FLAG_prefix ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <expr> more_env: [] words: [ {<expr>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_Colon ':'>} {(SQ <'--prefix=\\(.*\\)'>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <--prefix> pattern: (pat.Words words:[{<--prefix>}]) 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.Sentence child: (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {($ Id.VSub_Pound '#')} {<-eq>} {<1>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <die> more_env: [] words: [{<die>} {(DQ <'--prefix requires an argument'>)}] redirects: [] do_fork: T ) ] spids: [269 280] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'FLAG_prefix='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'FLAG_prefix='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'FLAG_prefix='> name: FLAG_prefix ) 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.Simple blame_tok: <die> more_env: [] words: [{<die>} {(DQ <'Invalid argument \''> ($ Id.VSub_Number 1) <'\''>)}] redirects: [] do_fork: T ) ] 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.ShFunction name_tok: <cc_quiet> name: cc_quiet body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cc> more_env: [] words: [{<cc>} {(DQ ($ Id.VSub_At '@'))} {<-o>} {<'/dev/null'>}] 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 ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <cc_or_die> name: cc_or_die body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline negated: <Id.KW_Bang '!'> children: [ (command.Simple blame_tok: <cc> more_env: [] words: [{<cc>} {(DQ ($ Id.VSub_At '@'))}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP) <'/cc.log'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) ] ops: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <log> more_env: [] words: [{<log>} {(DQ <'Error running \'cc '> ($ Id.VSub_At '@') <'\':'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {($ Id.VSub_DollarName TMP) <'/cc.log'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [{<die>} {(DQ <'Fatal compile error running feature test'>)}] redirects: [] do_fork: T ) ] spids: [366 384] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <cc_statement> name: cc_statement body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'pp_var='> (DQ ($ Id.VSub_Number 1))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'prog='> (DQ ($ Id.VSub_Number 2))}] redirects: [] do_fork: T ) (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) <'/cc_statement.c'>} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [<'int main() {\n'> <' '> ($ Id.VSub_DollarName prog) <'\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.Sentence child: (command.Simple blame_tok: <cc_quiet> more_env: [] words: [{<cc_quiet>} {($ Id.VSub_DollarName TMP) <'/cc_statement.c'>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'#define '> ($ Id.VSub_DollarName pp_var) <' 1'>)}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [462 470] ) ] else_kw: <Id.KW_Else else> else_action: [(command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>})] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <detect_readline> name: detect_readline body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <cc_quiet> more_env: [] words: [{<cc_quiet>} {<'build/detect-readline.c'>} {<-l>} {<readline>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(SQ <'HAVE_READLINE=1'>)}] redirects: [] do_fork: T ) ] spids: [510 521] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {(DQ ($ Id.VSub_DollarName FLAG_with_readline))} {<Id.Lit_Equals '='>} {<1>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (SQ < 'readline was not detected on the system (--with-readline passed).' > ) } ] redirects: [] do_fork: T ) ] spids: [534 547] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(SQ <'HAVE_READLINE='>)}] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <detect_and_echo_vars> name: detect_and_echo_vars body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {(DQ ($ Id.VSub_DollarName FLAG_without_readline))} {<Id.Lit_Equals '='>} {<1>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(SQ <'HAVE_READLINE='>)}] redirects: [] do_fork: T ) ] spids: [579 592] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <detect_readline> more_env: [] words: [{<detect_readline>}] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'PREFIX='> ($ Id.VSub_DollarName FLAG_prefix))}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <cc_print_expr> name: cc_print_expr body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'c_expr='> (DQ ($ Id.VSub_Number 1))}] redirects: [] do_fork: T ) (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) <'/print_expr.c'>} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'#include <stdio.h>\n'> <'#include <sys/types.h> /* size_t, pid_t */\n'> <'\n'> <'int main() {\n'> <' printf('> <Id.Right_DoubleQuote '"'> <'%lu'> <Id.Right_DoubleQuote '"'> <', '> ($ Id.VSub_DollarName c_expr) <');\n'> <'}\n'> ] ) ) ] do_fork: T ) (command.Simple blame_tok: <cc_or_die> more_env: [] words: [ {<cc_or_die>} {<-o>} {($ Id.VSub_DollarName TMP) <'/print_expr'>} {($ Id.VSub_DollarName TMP) <'/print_expr.c'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.VSub_DollarName '$TMP'> more_env: [] words: [{($ Id.VSub_DollarName TMP) <'/print_expr'>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMP) <'/print_expr.out'>} ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <check_sizeof> name: check_sizeof body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'pp_var='> (DQ ($ Id.VSub_Number 1))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'c_type='> (DQ ($ Id.VSub_Number 2))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'min_bytes='> (DQ ($ Id.VSub_Number 3))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cc_print_expr> more_env: [] words: [{<cc_print_expr>} {(DQ <'sizeof('> ($ Id.VSub_DollarName c_type) <')'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<actual_bytes>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'actual_bytes='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'actual_bytes='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'actual_bytes='> name:actual_bytes) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {($ Id.VSub_DollarName TMP) <'/print_expr.out'>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-n>} {(DQ ($ Id.VSub_DollarName min_bytes))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {(DQ ($ Id.VSub_DollarName actual_bytes))} {<-lt>} {(DQ ($ Id.VSub_DollarName min_bytes))} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <die> more_env: [] words: [ {<die>} { (DQ <'sizeof('> ($ Id.VSub_DollarName c_type) <') should be at least '> ($ Id.VSub_DollarName min_bytes) <'; got '> ($ Id.VSub_DollarName actual_bytes) ) } ] redirects: [] do_fork: T ) ] spids: [781 806] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'#define '> ($ Id.VSub_DollarName pp_var) <' '> ($ Id.VSub_DollarName actual_bytes) ) } ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <detect_c_language> name: detect_c_language body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <check_sizeof> more_env: [] words: [{<check_sizeof>} {<SIZEOF_INT>} {(SQ <int>)} {<4>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <check_sizeof> more_env: [] words: [{<check_sizeof>} {<SIZEOF_LONG>} {(SQ <long>)} {<4>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <check_sizeof> more_env: [] words: [{<check_sizeof>} {<SIZEOF_VOID_P>} {(SQ <'void *'>)} {<4>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <check_sizeof> more_env: [] words: [{<check_sizeof>} {<SIZEOF_SHORT>} {(SQ <short>)} {<2>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <check_sizeof> more_env: [] words: [{<check_sizeof>} {<SIZEOF_FLOAT>} {(SQ <float>)} {<4>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <check_sizeof> more_env: [] words: [{<check_sizeof>} {<SIZEOF_DOUBLE>} {(SQ <double>)} {<8>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <check_sizeof> more_env: [] words: [{<check_sizeof>} {<SIZEOF_SIZE_T>} {(SQ <size_t>)} {<4>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <check_sizeof> more_env: [] words: [{<check_sizeof>} {<SIZEOF_FPOS_T>} {(SQ <fpos_t>)} {<4>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <check_sizeof> more_env: [] words: [{<check_sizeof>} {<SIZEOF_PID_T>} {(SQ <pid_t>)} {<4>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <check_sizeof> more_env: [] words: [{<check_sizeof>} {<SIZEOF_OFF_T>} {(SQ <off_t>)} {(SQ )}] redirects: [] do_fork: T ) (command.Simple blame_tok: <check_sizeof> more_env: [] words: [{<check_sizeof>} {<SIZEOF_TIME_T>} {(SQ <time_t>)} {(SQ )}] 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: <cc_statement> more_env: [] words: [ {<cc_statement>} {<HAVE_LONG_LONG>} {(SQ <'long long x; x = (long long)0;'>)} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <check_sizeof> more_env: [] words: [{<check_sizeof>} {<SIZEOF_LONG_LONG>} {(SQ <'long long'>)} {<8>}] redirects: [] do_fork: T ) ] spids: [995 1006] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <cc_statement> more_env: [] words: [ {<cc_statement>} {<HAVE_LONG_DOUBLE>} {(SQ <'long double x; x = (long double)0;'>)} ] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <check_sizeof> more_env: [] words: [{<check_sizeof>} {<SIZEOF_LONG_DOUBLE>} {(SQ <'long double'>)} {<8>}] redirects: [] do_fork: T ) ] spids: [1023 1034] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <cc_statement> more_env: [] words: [{<cc_statement>} {<HAVE_C99_BOOL>} {(SQ <'_Bool x; x = (_Bool)0;'>)}] redirects: [] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <check_sizeof> more_env: [] words: [{<check_sizeof>} {<SIZEOF__BOOL>} {(SQ <_Bool>)} {<1>}] redirects: [] do_fork: T ) ] spids: [1052 1063] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(SQ <'#define HAVE_WCHAR_H 1'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(SQ <'#define SIZEOF_WCHAR_T 4'>)}] redirects: [] do_fork: T ) (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) <'/detect_va_list.c'>} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'#include <stdarg.h> /* C89 */\n'> <'int main() {\n'> <' va_list list1, list2;\n'> <' list1 = list2;\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.Sentence child: (command.Simple blame_tok: <cc_quiet> more_env: [] words: [{<cc_quiet>} {($ Id.VSub_DollarName TMP) <'/detect_va_list.c'>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(SQ )}] redirects: [] do_fork: T ) ] spids: [1146 1154] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(SQ <'#define VA_LIST_IS_ARRAY 1'>)}] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <main> name: main body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline negated: <Id.KW_Bang '!'> children: [ (command.Simple blame_tok: <cc_quiet> more_env: [] words: [{<cc_quiet>} {<'build/detect-cc.c'>}] redirects: [] do_fork: T ) ] ops: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <die> more_env: [] words: [{<die>} {(DQ <'Couldn\'t compile a basic C program (cc not installed?)'>)}] redirects: [] do_fork: T ) ] spids: [1197 1206] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {<_build>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'sh_out='> <'_build/detected-config.sh'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<Id.Lit_VarLike 'c_out='> <'_build/detected-config.h'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <detect_and_echo_vars> more_env: [] words: [{<detect_and_echo_vars>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName sh_out)} ) ] do_fork: T ) (command.Simple blame_tok: <detect_c_language> more_env: [] words: [{<detect_c_language>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName c_out)} ) ] do_fork: T ) (command.Simple blame_tok: <log> more_env: [] words: [ {<log>} {(DQ <'Wrote '> ($ Id.VSub_DollarName sh_out) <' and '> ($ Id.VSub_DollarName c_out))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <unittest> name: unittest body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cc_print_expr> more_env: [] words: [{<cc_print_expr>} {(SQ <'sizeof(int)'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<actual>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'actual='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'actual='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'actual='> name:actual) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {($ Id.VSub_DollarName TMP) <'/print_expr.out'>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {(DQ ($ Id.VSub_DollarName actual))} {<Id.Lit_Equals '='>} {<4>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [{<die>} {(DQ <'Expected 4, got '> ($ Id.VSub_DollarName actual))}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.Simple blame_tok: <check_sizeof> more_env: [] words: [{<check_sizeof>} {<SIZEOF_INT>} {(SQ <int>)} {<4>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [{<die>} {(DQ <FAILED>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.Simple blame_tok: <cc_statement> more_env: [] words: [{<cc_statement>} {<HAVE_INT>} {(SQ <'int x = (int)0;'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [{<die>} {(DQ <FAILED>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.Simple blame_tok: <cc_statement> more_env: [] words: [{<cc_statement>} {<HAVE_FOO>} {(SQ <'foo x = (foo)0;'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <die> more_env: [] words: [{<die>} {(DQ <'Expected to fail'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <main> more_env: [] words: [{<main>} {(DQ ($ Id.VSub_At '@'))}] redirects: [] do_fork: T ) ] )