(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BISON) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:15) command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple words: [{(bison)} {(--version)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:22) fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(head)} {(-n)} {(1)}) (C {(sed)} {(-e)} {(SQ (Token id:Id.Lit_Chars val:'s/^[^0-9.]*//' span_id:40))} {(-e)} {(SQ (Token id:Id.Lit_Chars val:'s/[^0-9.]*$//' span_id:46))} ) ] negated: F ) ] ) ) } spids: [14] ) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {($ Id.VSub_Pound '$#')} {(Id.Lit_Equals '=')} {(1)})] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROG_DIR) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:65) command_list: (command.CommandList children:[(C {(pwd)})]) ) } spids: [64] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TEST_DIR) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [72] ) ] ) ] spids: [51 61] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROG_DIR) op: assign_op.Equal rhs: {(..)} spids: [78] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TEST_DIR) op: assign_op.Equal rhs: {(.)} spids: [82] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:THIS_DIR) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:88) command_list: (command.CommandList children:[(C {(pwd)})]) ) } spids: [87] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ifBTYACC) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:96) command_list: (command.CommandList children: [ (command.Sentence child: (command.Simple words: [ {(fgrep)} {(-l)} {(SQ (Token id:Id.Lit_Chars val:'define YYBTYACC' span_id:104))} {(config.h)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:109) fd: -1 arg_word: {(/dev/null)} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:112) ) (command.Sentence child: (C {(test)} {($ Id.VSub_QMark '$?')} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(0)} ) terminator: (Token id:Id.Op_Semi val:';' span_id:122) ) (C {(echo)} {($ Id.VSub_QMark '$?')}) ] ) ) } spids: [95] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {($ Id.VSub_DollarName '$ifBTYACC')} {(Id.Lit_Equals '=')} {(0)}) terminator: (Token id:Id.Op_Semi val:';' span_id:139) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REF_DIR) op: assign_op.Equal rhs: {(${ Id.VSub_Name TEST_DIR) (/yacc)} spids: [144] ) ] ) ] spids: [130 141] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REF_DIR) op: assign_op.Equal rhs: {(${ Id.VSub_Name TEST_DIR) (/btyacc)} spids: [153] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MY_MAKE) op: assign_op.Equal rhs: { (DQ ('make -f ') ($ Id.VSub_DollarName '$PROG_DIR') ('/makefile srcdir=') ($ Id.VSub_DollarName '$PROG_DIR') ) } spids: [162] ) ] ) (command.ShFunction name: run_make body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_FILE) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:179) command_list: (command.CommandList children: [(C {(basename)} {(DQ ($ Id.VSub_Number '$1'))})] ) ) } spids: [178] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:O_FILE) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:191) command_list: (command.CommandList children: [(C {(basename)} {(DQ ($ Id.VSub_DollarName '$C_FILE'))} {(.c)})] ) ) (.o) } spids: [190] ) ] ) (C {(shift)}) (C {(cd)} {($ Id.VSub_DollarName '$REF_DIR')}) (C {(make)} {(-f)} {($ Id.VSub_DollarName '$PROG_DIR') (/makefile)} {(Id.Lit_VarLike 'srcdir=') ($ Id.VSub_DollarName '$PROG_DIR')} {($ Id.VSub_DollarName '$O_FILE')} {($ Id.VSub_Star '$*')} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(test)} {(-f)} {($ Id.VSub_DollarName '$O_FILE')}) (C {(rm)} {($ Id.VSub_DollarName '$O_FILE')}) ] ) (C {(cd)} {($ Id.VSub_DollarName '$THIS_DIR')}) ] ) ) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'** ' span_id:251)) (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:253) command_list: (command.CommandList children:[(C {(date)})]) ) } ) (C {(echo)} {(DQ ('** program is in ') ($ Id.VSub_DollarName '$PROG_DIR'))}) (C {(echo)} {(DQ ('** test-files in ') ($ Id.VSub_DollarName '$REF_DIR'))}) (command.ForEach iter_name: input iter_words: [{(${ Id.VSub_Name REF_DIR) (/) (Id.Lit_Star '*') (.c)}] do_arg_iter: F body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName '$input')} arms: [ (case_arm pat_list: [ {(${ Id.VSub_Name REF_DIR) (/err_) (Id.Lit_Star '*')} {(${ Id.VSub_Name REF_DIR) (/test-err_) (Id.Lit_Star '*')} ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:316) ) ] spids: [300 313 319 -1] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(test)} {(-f)} {(DQ ($ Id.VSub_DollarName '$input'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:336) ) ] ) (C {(run_make)} {(DQ ($ Id.VSub_DollarName '$input'))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DEFS) op: assign_op.Equal rhs: (word.Empty) spids: [348] ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$input')} arms: [ (case_arm pat_list: [{(${ Id.VSub_Name REF_DIR) (/pure_) (Id.Lit_Star '*')}] spids: [361 366 373 -1] ) ] ) (command.If arms: [ (if_arm cond: [ (C {(test)} {(DQ (x) ($ Id.VSub_DollarName '$DEFS'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(DQ (x))} ) ] action: [ (C {(run_make)} {(DQ ($ Id.VSub_DollarName '$input'))} {(Id.Lit_VarLike 'DEFINES=') (DQ ($ Id.VSub_DollarName '$DEFS'))} ) ] spids: [380 397] ) ] ) ] ) ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$BISON'))})] action: [ (C {(echo)} {(DQ ('** compare with bison ') ($ Id.VSub_DollarName '$BISON'))}) (command.ForEach iter_name: input iter_words: [{(${ Id.VSub_Name TEST_DIR) (/) (Id.Lit_Star '*') (.y)}] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(test)} {(-f)} {(DQ ($ Id.VSub_DollarName '$input'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:465) ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$input')} arms: [ (case_arm pat_list: [ {(${ Id.VSub_Name TEST_DIR) (/err_) (Id.Lit_Star '*')} {(${ Id.VSub_Name TEST_DIR) (/test-err_) (Id.Lit_Star '*')} ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:491) ) ] spids: [475 488 494 -1] ) (case_arm pat_list: [ {(${ Id.VSub_Name TEST_DIR) (/ok_syntax) (Id.Lit_Star '*')} {(${ Id.VSub_Name TEST_DIR) (/varsyntax) (Id.Lit_Star '*')} ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:517) ) ] spids: [497 510 520 -1] ) (case_arm pat_list: [{(${ Id.VSub_Name TEST_DIR) (/btyacc_) (Id.Lit_Star '*')}] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:535) ) ] spids: [523 528 538 -1] ) ] ) (C {(echo)} {(DQ ('... testing ') ($ Id.VSub_DollarName '$input'))}) (C {(rm)} {(-f)} {(run_make.) (Id.Lit_LBracket '[') (coy) (Id.Lit_RBracket ']')}) (command.Case to_match: {($ Id.VSub_DollarName '$input')} arms: [ (case_arm pat_list: [{(${ Id.VSub_Name TEST_DIR) (/pure_) (Id.Lit_Star '*')}] action: [ (command.If arms: [ (if_arm cond: [ (C {(test)} {(-z)} { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:598) command_list: (command.CommandList children: [ (C {(fgrep)} {(-l)} { (SQ (Token id: Id.Lit_Chars val: '%pure-parser' span_id: 606 ) ) } {($ Id.VSub_DollarName '$input')} ) ] ) ) } ) ] action: [ (command.Simple words: [{(echo)} {(DQ ('%pure-parser'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:622) fd: -1 arg_word: {(run_make.y)} ) ] ) ] spids: [592 613] ) ] ) ] spids: [584 589 629 -1] ) ] ) (command.Simple words: [ {(sed)} {(-e)} {(SQ (Token id:Id.Lit_Chars val:'/^%expect/s,%expect.*,,' span_id:641))} {($ Id.VSub_DollarName '$input')} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:646) fd: -1 arg_word: {(run_make.y)} ) ] ) (C {(bison)} {(-Wno-other)} {(-Wno-conflicts-sr)} {(-Wconflicts-rr)} {(-y)} {(run_make.y)} ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-f)} {(DQ (y.tab.c))})] action: [ (command.Simple words: [ {(sed)} {(-e)} { (SQ (Token id: Id.Lit_Chars val: '/^#line/s,"run_make.y","' span_id: 683 ) ) ($ Id.VSub_DollarName '$input') (SQ (Token id:Id.Lit_Chars val:'",' span_id:687)) } {(y.tab.c)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:692) fd: -1 arg_word: {(run_make.c)} ) ] ) (C {(rm)} {(-f)} {(y.tab.c)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:input) op: assign_op.Equal rhs: {(run_make.c)} spids: [705] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:object) op: assign_op.Equal rhs: {(run_make.o)} spids: [709] ) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-f)} {($ Id.VSub_DollarName '$input')})] action: [ (C {($ Id.VSub_DollarName '$MY_MAKE')} {($ Id.VSub_DollarName '$object')} {(Id.Lit_VarLike 'DEFINES=') (SQ (Token id: Id.Lit_Chars val: '-DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=1 -DYYSTACK_USE_ALLOCA=0 -DYYMAXDEPTH=0' span_id: 731 ) ) } ) ] spids: [713 722] ) ] else_action: [ (C {(echo)} {(DQ ('?? ') ($ Id.VSub_DollarName '$input') (' not found'))} ) ] ) ] spids: [664 675] ) ] ) (C {(rm)} {(-f)} {(run_make.) (Id.Lit_LBracket '[') (coy) (Id.Lit_RBracket ']')}) ] ) ) ] spids: [417 427] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:YACC) op: assign_op.Equal rhs: (word.Empty) spids: [768] ) ] ) (command.ForEach iter_name: name iter_words: [{(/usr/ccs/bin/yacc)}] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [(C {(test)} {(-f)} {($ Id.VSub_DollarName '$name')})] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:YACC) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$name')} spids: [793] ) ] ) ] spids: [781 790] ) ] ) ] ) ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$YACC'))})] action: [ (C {(echo)} {(DQ ('** compare with ') ($ Id.VSub_DollarName '$YACC'))}) (command.ForEach iter_name: input iter_words: [{(${ Id.VSub_Name TEST_DIR) (/) (Id.Lit_Star '*') (.y)}] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(test)} {(-f)} {(DQ ($ Id.VSub_DollarName '$input'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:850) ) ] ) (C {(echo)} {(DQ ('... testing ') ($ Id.VSub_DollarName '$input'))}) (C {(rm)} {(-f)} {(run_make.) (Id.Lit_LBracket '[') (coy) (Id.Lit_RBracket ']')}) (command.Case to_match: {($ Id.VSub_DollarName '$input')} arms: [ (case_arm pat_list: [{(pure_) (Id.Lit_Star '*')}] action: [ (C {(echo)} {(DQ ('... skipping ') ($ Id.VSub_DollarName '$input'))}) (command.Sentence child: (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:893) ) terminator: (Token id:Id.Op_Semi val:';' span_id:894) ) ] spids: [880 882 897 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DPipe Id.Op_DPipe Id.Op_DPipe] children: [ (command.Simple words: [ {(fgrep)} { (SQ (Token id: Id.Lit_Chars val: '%pure-parser' span_id: 909 ) ) } {($ Id.VSub_DollarName '$input')} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:914) fd: -1 arg_word: {(/dev/null)} ) ] ) (command.Simple words: [ {(fgrep)} { (SQ (Token id: Id.Lit_Chars val: '%parse-param' span_id: 923 ) ) } {($ Id.VSub_DollarName '$input')} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:928) fd: -1 arg_word: {(/dev/null)} ) ] ) (command.Simple words: [ {(fgrep)} { (SQ (Token id: Id.Lit_Chars val: '%lex-param' span_id: 937 ) ) } {($ Id.VSub_DollarName '$input')} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:942) fd: -1 arg_word: {(/dev/null)} ) ] ) (command.Simple words: [ {(fgrep)} {(SQ (Token id:Id.Lit_Chars val:YYLEX_PARAM span_id:951))} {($ Id.VSub_DollarName '$input')} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:956) fd: -1 arg_word: {(/dev/null)} ) ] ) ] ) ] action: [ (C {(echo)} {(DQ ('... skipping ') ($ Id.VSub_DollarName '$input'))}) (command.Sentence child: (command.ControlFlow token: (Token id: Id.ControlFlow_Continue val: continue span_id: 971 ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:972) ) ] spids: [904 960] ) ] ) ] spids: [900 901 978 -1] ) ] ) (command.Simple words: [ {(sed)} {(-e)} {(SQ (Token id:Id.Lit_Chars val:'/^%expect/s,%expect.*,,' span_id:990))} {($ Id.VSub_DollarName '$input')} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:995) fd: -1 arg_word: {(run_make.y)} ) ] ) (C {($ Id.VSub_DollarName '$YACC')} {(run_make.y)}) (command.If arms: [ (if_arm cond: [(C {(test)} {(-f)} {(y.tab.c)})] action: [ (command.Simple words: [ {(sed)} {(-e)} { (SQ (Token id: Id.Lit_Chars val: '/^#line/s,"run_make.y","' span_id: 1022 ) ) ($ Id.VSub_DollarName '$input') (SQ (Token id:Id.Lit_Chars val:'",' span_id:1026)) } {(y.tab.c)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1031) fd: -1 arg_word: {(run_make.c)} ) ] ) (C {(rm)} {(-f)} {(y.tab.c)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:input) op: assign_op.Equal rhs: {(run_make.c)} spids: [1044] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:object) op: assign_op.Equal rhs: {(run_make.o)} spids: [1048] ) ] ) (command.If arms: [ (if_arm cond: [(C {(test)} {(-f)} {($ Id.VSub_DollarName '$input')})] action: [ (C {($ Id.VSub_DollarName '$MY_MAKE')} {($ Id.VSub_DollarName '$object')} ) ] spids: [1052 1061] ) ] else_action: [ (C {(echo)} {(DQ ('?? ') ($ Id.VSub_DollarName '$input') (' not found'))} ) ] ) ] spids: [1005 1014] ) ] ) (C {(rm)} {(-f)} {(run_make.) (Id.Lit_LBracket '[') (coy) (Id.Lit_RBracket ']')}) ] ) ) ] spids: [802 812] ) ] ) ] )