(CommandList
  children: [
    (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: [28 30]
                      )
                    }
                  spids: [27]
                )
              ]
              spids: [27]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:TEST_DIR)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [33]
                )
              ]
              spids: [33]
            )
          ]
          spids: [16777215 24]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:PROG_DIR) op:Equal rhs:{(..)} spids:[39])]
          spids: [39]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:TEST_DIR) op:Equal rhs:{(.)} spids:[43])]
          spids: [43]
        )
      ]
      spids: [36 46]
    )
    (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'>)} {(config.h)}]
                            redirects: [
                              (Redir
                                op_id: Redir_Great
                                fd: 16777215
                                arg_word: {(/dev/null)}
                                spids: [61]
                              )
                            ]
                          )
                        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: [50 79]
              )
            }
          spids: [49]
        )
      ]
      spids: [49]
    )
    (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: [96]
                )
              ]
              spids: [96]
            )
          ]
          spids: [16777215 93]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:REF_DIR)
              op: Equal
              rhs: {(${ VSub_Name TEST_DIR) (/btyacc)}
              spids: [105]
            )
          ]
          spids: [105]
        )
      ]
      spids: [102 111]
    )
    (C {(echo)} 
      {(SQ <'** '>) 
        (CommandSubPart
          command_list: (CommandList children:[(C {(date)})])
          left_token: <Left_Backtick '`'>
          spids: [119 121]
        )
      }
    )
    (ForEach
      iter_name: i
      iter_words: [{(${ VSub_Name REF_DIR) (/) (Lit_Other '*') (.c)}]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (C {(make)} {(-f)} {($ VSub_Name '$PROG_DIR') (/makefile)} {(lint)} 
              {(Lit_VarLike 'C_FILES=') ($ VSub_Name '$i')} {(Lit_VarLike 'srcdir=') ($ VSub_Name '$PROG_DIR')}
            )
          ]
          spids: [136 154]
        )
      spids: [128 16777215]
    )
  ]
)