(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:errors) op:Equal rhs:{(0)} spids:[10])]
      spids: [10]
    )
    (FuncDef
      name: test_diffs
      body: 
        (BraceGroup
          children: [
            (C {(mv)} {(-f)} {($ VSub_Name '$NEW')} {(${ VSub_Name REF_DIR) (/)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CMP)
                  op: Equal
                  rhs: {(${ VSub_Name REF_DIR) (/) (${ VSub_Name NEW)}
                  spids: [43]
                )
              ]
              spids: [43]
            )
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(KW_Bang '!')} {(-f)} {($ VSub_Name '$CMP')})]
                  action: [
                    (C {(echo)} {(DQ ('...not found ') ($ VSub_Name '$CMP'))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:errors) op:Equal rhs:{(1)} spids:[75])]
                      spids: [75]
                    )
                  ]
                  spids: [16777215 64]
                )
              ]
              else_action: [
                (AndOr
                  ops: [Op_DAmp]
                  children: [
                    (SimpleCommand
                      words: [
                        {(sed)}
                        {(-e)}
                        {(s) (Lit_Comma ',') ($ VSub_Name '$NEW') (Lit_Comma ',') ($ VSub_Name '$REF') 
                          (Lit_Comma ',')
                        }
                        {(-e)}
                        {(DQ ('s%') ($ VSub_Name '$YACC_escaped') ('%YACC%'))}
                        {(-e)}
                        {(SQ <'/YYPATCH/s/[0-9][0-9]*/"yyyymmdd"/'>)}
                        {(-e)}
                        {(SQ <'/#define YYPATCH/s/PATCH/CHECK/'>)}
                        {(-e)}
                        {(SQ <'s,#line \\([1-9][0-9]*\\) "'>) ($ VSub_Name '$REF_DIR') 
                          (SQ <'/,#line \\1 ",'>)
                        }
                        {(-e)}
                        {(SQ <'s,#line \\([1-9][0-9]*\\) "'>) ($ VSub_Name '$TEST_DIR') 
                          (SQ <'/,#line \\1 ",'>)
                        }
                        {(-e)}
                        {(SQ <'s,\\(YACC:.* line [0-9][0-9]* of "\\)'>) ($ VSub_Name '$TEST_DIR') (/) 
                          (SQ <',\\1./,'>)
                        }
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_Less
                          fd: 16777215
                          arg_word: {($ VSub_Name '$CMP')}
                          spids: [158]
                        )
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {($ VSub_Name '$tmpfile')}
                          spids: [162]
                        )
                      ]
                    )
                    (C {(mv)} {($ VSub_Name '$tmpfile')} {($ VSub_Name '$CMP')})
                  ]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [(C {(test)} {(KW_Bang '!')} {(-f)} {($ VSub_Name '$REF')})]
                      action: [
                        (C {(mv)} {($ VSub_Name '$CMP')} {($ VSub_Name '$REF')})
                        (C {(echo)} {(DQ ('...saved ') ($ VSub_Name '$REF'))})
                      ]
                      spids: [16777215 187]
                    )
                    (if_arm
                      cond: [
                        (Subshell
                          child: (C {(cmp)} {(-s)} {($ VSub_Name '$REF')} {($ VSub_Name '$CMP')})
                          spids: [207 217]
                        )
                      ]
                      action: [
                        (C {(echo)} {(DQ ('...ok ') ($ VSub_Name '$REF'))})
                        (C {(rm)} {(-f)} {($ VSub_Name '$CMP')})
                      ]
                      spids: [205 220]
                    )
                  ]
                  else_action: [
                    (C {(echo)} {(DQ ('...diff ') ($ VSub_Name '$REF'))})
                    (C {(diff)} {(-u)} {($ VSub_Name '$REF')} {($ VSub_Name '$CMP')})
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:errors) op:Equal rhs:{(1)} spids:[258])]
                      spids: [258]
                    )
                  ]
                  spids: [238 262]
                )
              ]
              spids: [79 265]
            )
          ]
          spids: [24]
        )
      spids: [20 23]
    )
    (FuncDef
      name: test_flags
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ('** testing flags ') ($ VSub_Star '$*'))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:root)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [285]
                )
              ]
              spids: [285]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ROOT)
                  op: Equal
                  rhs: {(test-) ($ VSub_Name '$root')}
                  spids: [289]
                )
              ]
              spids: [289]
            )
            (C {(shift)} {(1)})
            (SimpleCommand
              words: [{($ VSub_Name '$YACC')} {($ VSub_Star '$*')}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {($ VSub_Name '$ROOT') (.output)}
                  spids: [303]
                )
                (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[309])
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {($ VSub_Name '$ROOT') (.error)}
                  spids: [312]
                )
              ]
            )
            (ForEach
              iter_name: type
              iter_words: [{(.output)} {(.error)}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:NEW)
                          op: Equal
                          rhs: {($ VSub_Name '$ROOT') ($ VSub_Name '$type')}
                          spids: [331]
                        )
                      ]
                      spids: [331]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:REF)
                          op: Equal
                          rhs: 
                            {($ VSub_Name '$REF_DIR') (/) ($ VSub_Name '$root') ($ VSub_Name '$type')}
                          spids: [336]
                        )
                      ]
                      spids: [336]
                    )
                    (C {(test_diffs)})
                  ]
                  spids: [328 346]
                )
              spids: [322 16777215]
            )
          ]
          spids: [274]
        )
      spids: [270 273]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(test)} {($ VSub_Pound '$#')} {(Lit_Other '=')} {(1)})]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:PROG_DIR)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(pwd)})])
                        left_token: <Left_Backtick '`'>
                        spids: [365 367]
                      )
                    }
                  spids: [364]
                )
              ]
              spids: [364]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:TEST_DIR)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [370]
                )
              ]
              spids: [370]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:PROG_DIR)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(echo)} {(DQ ($ VSub_Name '$PROG_DIR'))})
                                  (C {(sed)} {(-e)} {(SQ <'s/ /\\\\\\\\ /g'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [375 391]
                      )
                    }
                  spids: [374]
                )
              ]
              spids: [374]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:TEST_DIR)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(echo)} {(DQ ($ VSub_Name '$TEST_DIR'))})
                                  (C {(sed)} {(-e)} {(SQ <'s/ /\\\\\\\\ /g'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [395 411]
                      )
                    }
                  spids: [394]
                )
              ]
              spids: [394]
            )
          ]
          spids: [16777215 361]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:PROG_DIR) op:Equal rhs:{(..)} spids:[416])]
          spids: [416]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:TEST_DIR) op:Equal rhs:{(.)} spids:[420])]
          spids: [420]
        )
      ]
      spids: [413 423]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:YACC)
          op: Equal
          rhs: {($ VSub_Name '$PROG_DIR') (/yacc)}
          spids: [426]
        )
      ]
      spids: [426]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:YACC_escaped)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(echo)} {(DQ ($ VSub_Name '$PROG_DIR') (/yacc))})
                          (C {(sed)} {(-e)} {(SQ <'s/\\./\\\\\\./g'>)})
                        ]
                        negated: F
                      )
                    ]
                  )
                left_token: <Left_Backtick '`'>
                spids: [431 448]
              )
            }
          spids: [430]
        )
      ]
      spids: [430]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:tmpfile)
          op: Equal
          rhs: {(temp) ($ VSub_Dollar '$$')}
          spids: [451]
        )
      ]
      spids: [451]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ifBTYACC)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Sentence
                        child: 
                          (SimpleCommand
                            words: [
                              {(fgrep)}
                              {(-l)}
                              {(SQ <'define YYBTYACC'>)}
                              {($ VSub_Name '$PROG_DIR') (/config.h)}
                            ]
                            redirects: [
                              (Redir
                                op_id: Redir_Great
                                fd: 16777215
                                arg_word: {(/dev/null)}
                                spids: [469]
                              )
                            ]
                          )
                        terminator: <Op_Semi ';'>
                      )
                      (Sentence
                        child: (C {(test)} {($ VSub_QMark '$?')} {(KW_Bang '!') (Lit_Other '=')} {(0)})
                        terminator: <Op_Semi ';'>
                      )
                      (C {(echo)} {($ VSub_QMark '$?')})
                    ]
                  )
                left_token: <Left_Backtick '`'>
                spids: [457 487]
              )
            }
          spids: [456]
        )
      ]
      spids: [456]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {($ VSub_Name '$ifBTYACC')} {(Lit_Other '=')} {(0)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:REF_DIR)
                  op: Equal
                  rhs: {(${ VSub_Name TEST_DIR) (/yacc)}
                  spids: [504]
                )
              ]
              spids: [504]
            )
          ]
          spids: [16777215 501]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:REF_DIR)
              op: Equal
              rhs: {(${ VSub_Name TEST_DIR) (/btyacc)}
              spids: [513]
            )
          ]
          spids: [513]
        )
      ]
      spids: [510 519]
    )
    (C {(rm)} {(-f)} {(${ VSub_Name REF_DIR) (/test-) (Lit_Other '*')})
    (C {(echo)} 
      {(SQ <'** '>) 
        (CommandSubPart
          command_list: (CommandList children:[(C {(date)})])
          left_token: <Left_Backtick '`'>
          spids: [538 540]
        )
      }
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:MYFILE) op:Equal rhs:{(nosuchfile)} spids:[546])]
      spids: [546]
    )
    (C {(test_flags)} {(help)} {(-z)})
    (C {(test_flags)} {(big_b)} {(-B)})
    (C {(test_flags)} {(big_l)} {(-L)})
    (C {(rm)} {(-f)} {($ VSub_Name '$MYFILE') (.) (Lit_Other '*')})
    (C {(test_flags)} {(nostdin)} {(-)} {($ VSub_Name '$MYFILE') (.y)})
    (C {(test_flags)} {(no_opts)} {(--)} {($ VSub_Name '$MYFILE') (.y)})
    (C {(touch)} {($ VSub_Name '$MYFILE') (.y)})
    (C {(touch)} {($ VSub_Name '$MYFILE') (.c)})
    (C {(chmod)} {(444)} {($ VSub_Name '$MYFILE') (.) (Lit_Other '*')})
    (C {(test_flags)} {(no_b_opt)} {(-b)})
    (C {(test_flags)} {(no_b_opt1)} {(-bBASE)} {(-o)} {($ VSub_Name '$MYFILE') (.c)} 
      {($ VSub_Name '$MYFILE') (.y)}
    )
    (C {(touch)} {($ VSub_Name '$MYFILE') (.c)})
    (C {(chmod)} {(444)} {($ VSub_Name '$MYFILE') (.) (Lit_Other '*')})
    (C {(test_flags)} {(no_p_opt)} {(-p)})
    (C {(test_flags)} {(no_p_opt1)} {(-pBASE)} {(-o)} {($ VSub_Name '$MYFILE') (.c)} 
      {($ VSub_Name '$MYFILE') (.y)}
    )
    (C {(rm)} {(-f)} {(BASE) ($ VSub_Name '$MYFILE') (.c)})
    (C {(touch)} {($ VSub_Name '$MYFILE') (.dot)})
    (C {(chmod)} {(444)} {($ VSub_Name '$MYFILE') (.) (Lit_Other '*')})
    (C {(test_flags)} {(no_graph)} {(-g)} {(-o)} {($ VSub_Name '$MYFILE') (.c)} 
      {($ VSub_Name '$MYFILE') (.y)}
    )
    (C {(rm)} {(-f)} {($ VSub_Name '$MYFILE') (.dot)})
    (C {(touch)} {($ VSub_Name '$MYFILE') (.output)})
    (C {(chmod)} {(444)} {($ VSub_Name '$MYFILE') (.) (Lit_Other '*')})
    (C {(test_flags)} {(no_verbose)} {(-v)} {(-o)} {($ VSub_Name '$MYFILE') (.c)} 
      {($ VSub_Name '$MYFILE') (.y)}
    )
    (C {(test_flags)} {(no_output)} {(-o)} {($ VSub_Name '$MYFILE') (.output)} 
      {($ VSub_Name '$MYFILE') (.y)}
    )
    (C {(test_flags)} {(no_output1)} {(-o) ($ VSub_Name '$MYFILE') (.output)} 
      {($ VSub_Name '$MYFILE') (.y)}
    )
    (C {(test_flags)} {(no_output2)} {(-o)})
    (C {(rm)} {(-f)} {($ VSub_Name '$MYFILE') (.output)})
    (C {(touch)} {($ VSub_Name '$MYFILE') (.h)})
    (C {(chmod)} {(444)} {($ VSub_Name '$MYFILE') (.) (Lit_Other '*')})
    (C {(test_flags)} {(no_defines)} {(-d)} {(-o)} {($ VSub_Name '$MYFILE') (.c)} 
      {($ VSub_Name '$MYFILE') (.y)}
    )
    (C {(rm)} {(-f)} {($ VSub_Name '$MYFILE') (.h)})
    (C {(touch)} {($ VSub_Name '$MYFILE') (.i)})
    (C {(chmod)} {(444)} {($ VSub_Name '$MYFILE') (.) (Lit_Other '*')})
    (C {(test_flags)} {(no_include)} {(-i)} {(-o)} {($ VSub_Name '$MYFILE') (.c)} 
      {($ VSub_Name '$MYFILE') (.y)}
    )
    (C {(rm)} {(-f)} {($ VSub_Name '$MYFILE') (.i)})
    (C {(touch)} {($ VSub_Name '$MYFILE') (.code.c)})
    (C {(chmod)} {(444)} {($ VSub_Name '$MYFILE') (.) (Lit_Other '*')})
    (C {(test_flags)} {(no_code_c)} {(-r)} {(-o)} {($ VSub_Name '$MYFILE') (.c)} 
      {($ VSub_Name '$MYFILE') (.y)}
    )
    (C {(rm)} {(-f)} {($ VSub_Name '$MYFILE') (.code.c)})
    (C {(rm)} {(-f)} {($ VSub_Name '$MYFILE') (.) (Lit_Other '*')})
    (ForEach
      iter_name: input
      iter_words: [{(${ VSub_Name TEST_DIR) (/) (Lit_Other '*') (.y)}]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {($ VSub_Name '$input')}
              arms: [
                (case_arm
                  pat_list: [{(test-) (Lit_Other '*')}]
                  action: [(C {(echo)} {(DQ ('?? ignored ') ($ VSub_Name '$input'))})]
                  spids: [919 921 932 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:root)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(basename)} {($ VSub_Name '$input')} {(.y)})]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [940 946]
                              )
                            }
                          spids: [939]
                        )
                      ]
                      spids: [939]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ROOT)
                          op: Equal
                          rhs: {(DQ (test-) ($ VSub_Name '$root'))}
                          spids: [949]
                        )
                      ]
                      spids: [949]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:prefix)
                          op: Equal
                          rhs: {(${ VSub_Name root) (_)}
                          spids: [956]
                        )
                      ]
                      spids: [956]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:OPTS)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [964]
                        )
                      ]
                      spids: [964]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:OPT2)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [967]
                        )
                      ]
                      spids: [967]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:OOPT)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [970]
                        )
                      ]
                      spids: [970]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:TYPE)
                          op: Equal
                          rhs: {(DQ ('.error .output .tab.c .tab.h'))}
                          spids: [973]
                        )
                      ]
                      spids: [973]
                    )
                    (Case
                      to_match: {($ VSub_Name '$input')}
                      arms: [
                        (case_arm
                          pat_list: [{(${ VSub_Name TEST_DIR) (/btyacc_) (Lit_Other '*')}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(test)} {($ VSub_Name '$ifBTYACC')} {(Lit_Other '=')} {(0)})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Sentence
                                      child: (ControlFlow token:<ControlFlow_Continue continue>)
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [16777215 1005]
                                )
                              ]
                              spids: [16777215 1010]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:OPTS)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$OPTS') (' -B'))}
                                  spids: [1013]
                                )
                              ]
                              spids: [1013]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:prefix)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(echo)} {(DQ ($ VSub_Name '$prefix'))})
                                                  (C {(sed)} {(-e)} {(SQ <'s/^btyacc_//'>)})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [1021 1037]
                                      )
                                    }
                                  spids: [1020]
                                )
                              ]
                              spids: [1020]
                            )
                          ]
                          spids: [986 991 1040 16777215]
                        )
                        (case_arm
                          pat_list: [{(${ VSub_Name TEST_DIR) (/grammar) (Lit_Other '*')}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:OPTS)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$OPTS') (' -g'))}
                                  spids: [1051]
                                )
                              ]
                              spids: [1051]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:TYPE)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$TYPE') (' .dot'))}
                                  spids: [1058]
                                )
                              ]
                              spids: [1058]
                            )
                          ]
                          spids: [1043 1048 1065 16777215]
                        )
                        (case_arm
                          pat_list: [{(${ VSub_Name TEST_DIR) (/code_debug) (Lit_Other '*')}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:OPTS)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$OPTS') (' -t -i'))}
                                  spids: [1076]
                                )
                              ]
                              spids: [1076]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:OOPT)
                                  op: Equal
                                  rhs: {(rename_debug.c)}
                                  spids: [1083]
                                )
                              ]
                              spids: [1083]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:TYPE)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$TYPE') (' .i'))}
                                  spids: [1087]
                                )
                              ]
                              spids: [1087]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:prefix)
                                  op: Equal
                                  rhs: {(EmptyPart)}
                                  spids: [1094]
                                )
                              ]
                              spids: [1094]
                            )
                          ]
                          spids: [1068 1073 1097 16777215]
                        )
                        (case_arm
                          pat_list: [{(${ VSub_Name TEST_DIR) (/code_) (Lit_Other '*')}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:OPTS)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$OPTS') (' -r'))}
                                  spids: [1108]
                                )
                              ]
                              spids: [1108]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:TYPE)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$TYPE') (' .code.c'))}
                                  spids: [1115]
                                )
                              ]
                              spids: [1115]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:prefix)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(echo)} {(DQ ($ VSub_Name '$prefix'))})
                                                  (C {(sed)} {(-e)} {(SQ <'s/^code_//'>)})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [1123 1139]
                                      )
                                    }
                                  spids: [1122]
                                )
                              ]
                              spids: [1122]
                            )
                          ]
                          spids: [1100 1105 1142 16777215]
                        )
                        (case_arm
                          pat_list: [{(${ VSub_Name TEST_DIR) (/pure_) (Lit_Other '*')}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:OPTS)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$OPTS') (' -P'))}
                                  spids: [1153]
                                )
                              ]
                              spids: [1153]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:prefix)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(echo)} {(DQ ($ VSub_Name '$prefix'))})
                                                  (C {(sed)} {(-e)} {(SQ <'s/^pure_//'>)})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [1161 1177]
                                      )
                                    }
                                  spids: [1160]
                                )
                              ]
                              spids: [1160]
                            )
                          ]
                          spids: [1145 1150 1180 16777215]
                        )
                        (case_arm
                          pat_list: [{(${ VSub_Name TEST_DIR) (/quote_) (Lit_Other '*')}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:OPT2)
                                  op: Equal
                                  rhs: {(DQ (-s))}
                                  spids: [1191]
                                )
                              ]
                              spids: [1191]
                            )
                          ]
                          spids: [1183 1188 1197 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(${ VSub_Name TEST_DIR) (/inherit) (Lit_Other '*')}
                            {(${ VSub_Name TEST_DIR) (/err_inherit) (Lit_Other '*')}
                          ]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(test)} {($ VSub_Name '$ifBTYACC')} {(Lit_Other '=')} {(0)})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Sentence
                                      child: (ControlFlow token:<ControlFlow_Continue continue>)
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [16777215 1227]
                                )
                              ]
                              spids: [16777215 1232]
                            )
                          ]
                          spids: [1200 1213 1235 16777215]
                        )
                      ]
                      spids: [979 983 1238]
                    )
                    (C {(echo)} {(DQ ('** testing ') ($ VSub_Name '$input'))})
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(test)} {(-n)} {(DQ ($ VSub_Name '$prefix'))})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:prefix)
                              op: Equal
                              rhs: {(DQ ('-p ') ($ VSub_Name '$prefix'))}
                              spids: [1261]
                            )
                          ]
                          spids: [1261]
                        )
                      ]
                    )
                    (ForEach
                      iter_name: opt2
                      iter_words: [{(DQ )} {($ VSub_Name '$OPT2')}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:output)
                                  op: Equal
                                  rhs: {($ VSub_Name '$OOPT')}
                                  spids: [1284]
                                )
                              ]
                              spids: [1284]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name '$output'))})]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:output)
                                          op: Equal
                                          rhs: {(DQ ('-o ') ($ VSub_Name '$output'))}
                                          spids: [1302]
                                        )
                                      ]
                                      spids: [1302]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:error)
                                          op: Equal
                                          rhs: 
                                            {
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [
                                                      (C {(basename)} {($ VSub_Name '$OOPT')} {(.c)})
                                                    ]
                                                  )
                                                left_token: <Left_Backtick '`'>
                                                spids: [1310 1316]
                                              ) (.error)
                                            }
                                          spids: [1309]
                                        )
                                      ]
                                      spids: [1309]
                                    )
                                  ]
                                  spids: [16777215 1299]
                                )
                              ]
                              else_action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:error)
                                      op: Equal
                                      rhs: {(${ VSub_Name ROOT) (${ VSub_Name opt2) (.error)}
                                      spids: [1323]
                                    )
                                  ]
                                  spids: [1323]
                                )
                              ]
                              spids: [1320 1333]
                            )
                            (SimpleCommand
                              words: [
                                {($ VSub_Name '$YACC')}
                                {($ VSub_Name '$OPTS')}
                                {($ VSub_Name '$opt2')}
                                {(-v)}
                                {(-d)}
                                {($ VSub_Name '$output')}
                                {($ VSub_Name '$prefix')}
                                {(-b)}
                                {($ VSub_Name '$ROOT') (${ VSub_Name opt2)}
                                {($ VSub_Name '$input')}
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 2
                                  arg_word: {($ VSub_Name '$error')}
                                  spids: [1360]
                                )
                              ]
                            )
                            (ForEach
                              iter_name: type
                              iter_words: [{($ VSub_Name '$TYPE')}]
                              do_arg_iter: F
                              body: 
                                (DoGroup
                                  children: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:REF)
                                          op: Equal
                                          rhs: 
                                            {(${ VSub_Name REF_DIR) (/) (${ VSub_Name root) 
                                              (${ VSub_Name opt2) (${ VSub_Name type)
                                            }
                                          spids: [1376]
                                        )
                                      ]
                                      spids: [1376]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name '$OOPT'))})]
                                          action: [
                                            (Case
                                              to_match: {($ VSub_Name '$type')}
                                              arms: [
                                                (case_arm
                                                  pat_list: [{(Lit_Other '*') (.tab.c)}]
                                                  action: [
                                                    (Assignment
                                                      keyword: Assign_None
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (LhsName name:type)
                                                          op: Equal
                                                          rhs: {(.c)}
                                                          spids: [1423]
                                                        )
                                                      ]
                                                      spids: [1423]
                                                    )
                                                  ]
                                                  spids: [1418 1420 1427 16777215]
                                                )
                                                (case_arm
                                                  pat_list: [{(Lit_Other '*') (.tab.h)}]
                                                  action: [
                                                    (Assignment
                                                      keyword: Assign_None
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (LhsName name:type)
                                                          op: Equal
                                                          rhs: {(.h)}
                                                          spids: [1435]
                                                        )
                                                      ]
                                                      spids: [1435]
                                                    )
                                                  ]
                                                  spids: [1430 1432 1439 16777215]
                                                )
                                                (case_arm
                                                  pat_list: [{(Lit_Other '*')}]
                                                  spids: [1442 1443 1446 16777215]
                                                )
                                              ]
                                              spids: [1411 1415 1449]
                                            )
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:NEW)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (CommandSubPart
                                                        command_list: 
                                                          (CommandList
                                                            children: [
                                                              (C {(basename)} {($ VSub_Name '$OOPT')} 
                                                                {(.c)}
                                                              )
                                                            ]
                                                          )
                                                        left_token: <Left_Backtick '`'>
                                                        spids: [1453 1459]
                                                      ) (${ VSub_Name type)
                                                    }
                                                  spids: [1452]
                                                )
                                              ]
                                              spids: [1452]
                                            )
                                            (Case
                                              to_match: {($ VSub_Name '$NEW')}
                                              arms: [
                                                (case_arm
                                                  pat_list: [{(test-) (Lit_Other '*')}]
                                                  spids: [1472 1474 1477 16777215]
                                                )
                                                (case_arm
                                                  pat_list: [{(Lit_Other '*')}]
                                                  action: [
                                                    (If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (C {(test)} {(-f)} 
                                                              {(DQ ($ VSub_Name '$NEW'))}
                                                            )
                                                          ]
                                                          action: [
                                                            (Assignment
                                                              keyword: Assign_None
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (LhsName name:REF)
                                                                  op: Equal
                                                                  rhs: 
                                                                    {(${ VSub_Name REF_DIR) (/) 
                                                                      ($ VSub_Name '$NEW')
                                                                    }
                                                                  spids: [1498]
                                                                )
                                                              ]
                                                              spids: [1498]
                                                            )
                                                            (C {(mv)} {($ VSub_Name '$NEW')} 
                                                              {(test-) ($ VSub_Name '$NEW')}
                                                            )
                                                            (Assignment
                                                              keyword: Assign_None
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (LhsName name:NEW)
                                                                  op: Equal
                                                                  rhs: {(test-) ($ VSub_Name '$NEW')}
                                                                  spids: [1514]
                                                                )
                                                              ]
                                                              spids: [1514]
                                                            )
                                                          ]
                                                          spids: [16777215 1495]
                                                        )
                                                      ]
                                                      spids: [16777215 1519]
                                                    )
                                                  ]
                                                  spids: [1480 1481 1522 16777215]
                                                )
                                              ]
                                              spids: [1465 1469 1525]
                                            )
                                          ]
                                          spids: [16777215 1408]
                                        )
                                      ]
                                      else_action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:NEW)
                                              op: Equal
                                              rhs: 
                                                {(${ VSub_Name ROOT) (${ VSub_Name opt2) 
                                                  (${ VSub_Name type)
                                                }
                                              spids: [1531]
                                            )
                                          ]
                                          spids: [1531]
                                        )
                                      ]
                                      spids: [1528 1543]
                                    )
                                    (C {(test_diffs)})
                                  ]
                                  spids: [1373 1549]
                                )
                              spids: [1369 16777215]
                            )
                          ]
                          spids: [1281 1552]
                        )
                      spids: [1274 16777215]
                    )
                  ]
                  spids: [935 936 1555 16777215]
                )
              ]
              spids: [912 916 1558]
            )
          ]
          spids: [909 1560]
        )
      spids: [901 16777215]
    )
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_Name '$errors')})
  ]
)