(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:prog) op:Equal rhs:{(SQ <'env printf'>)} spids:[44])]
      spids: [44]
    )
    (Sentence
      child: 
        (C {(.)} 
          {
            (DQ 
              (BracedVarSub
                token: <VSub_Name srcdir>
                suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(.)})
                spids: [53 57]
              ) (/tests/init.sh)
            )
          }
        )
      terminator: <Op_Semi ';'>
    )
    (C {(path_prepend_)} {(./src)})
    (C {(print_ver_)} {(printf)})
    (C {(getlimits_)})
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(test)} 
          {
            (CommandSubPart
              command_list: 
                (CommandList
                  children: [
                    (Pipeline
                      children: [
                        (C {($ VSub_Name '$prog')} 
                          {
                            (DQ (Lit_Other '\\') (x1b) (Lit_Other '\\') (n) (Lit_Other '\\') (33) 
                              (Lit_Other '\\') (n) (Lit_Other '\\') (e) (Lit_Other '\\') (n)
                            )
                          }
                        )
                        (C {(uniq)} {(-u)})
                      ]
                      negated: F
                    )
                  ]
                )
              left_token: <Left_CommandSub '$('>
              spids: [80 103]
            )
          }
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[107])]
          spids: [107]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{($ VSub_Name '$prog')} {(--)} {(SQ <'foo\\n'>)}]
          redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(out)} spids:[125])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[131])]
          spids: [131]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: {('foo\n')}
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [136]
        )
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(exp)} spids:[140])
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(compare)} {(exp)} {(out)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[153])]
          spids: [153]
        )
      ]
    )
    (C {(rm)} {(-f)} {(out)} {(exp)})
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{($ VSub_Name '$prog')} {(SQ <'1 %*sy\\n'>)} {(-3)} {(x)}]
          redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(out)} spids:[178])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[184])]
          spids: [184]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [{($ VSub_Name '$prog')} {(SQ <'2 \\x'>)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [202]
                    )
                    (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[205])
                  ]
                  more_env: [(env_pair name:POSIXLY_CORRECT val:{(1)} spids:[193])]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[212])]
              spids: [212]
            )
          ]
          spids: [16777215 209]
        )
      ]
      else_action: [
        (SimpleCommand
          words: [{(echo)} {(SQ <'2 failed, as expected'>)}]
          redirects: [(Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[224])]
        )
      ]
      spids: [215 228]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{($ VSub_Name '$prog')} {(SQ <'3 \\x40\\n'>)}]
          redirects: [(Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[240])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[246])]
          spids: [246]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{($ VSub_Name '$prog')} {(SQ <'4 \\x40\\n'>)}]
          redirects: [(Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[259])]
          more_env: [(env_pair name:POSIXLY_CORRECT val:{(1)} spids:[249])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[265])]
          spids: [265]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{($ VSub_Name '$prog')} {(SQ <'5 % +d\\n'>)} {(234)}]
          redirects: [(Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[276])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[282])]
          spids: [282]
        )
      ]
    )
    (Pipeline
      children: [
        (C {($ VSub_Name '$prog')} {(SQ <'6 \\41\\n'>)})
        (SimpleCommand
          words: [{(tr)} {(SQ <'\\41'>)} {(SQ <'!'>)}]
          redirects: [(Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[313])]
        )
      ]
      negated: F
    )
    (Pipeline
      children: [
        (C {($ VSub_Name '$prog')} {(SQ <'7 \\2y \\02y \\002y \\0002y\\n'>)})
        (SimpleCommand
          words: [{(tr)} {(SQ <'\\0\\2'>)} {(SQ <'*='>)}]
          redirects: [(Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[344])]
        )
      ]
      negated: F
    )
    (Pipeline
      children: [
        (C {($ VSub_Name '$prog')} {(SQ <'8 %b %b %b %b\\n'>)} {(SQ <'\\1y'>)} {(SQ <'\\01y'>)} 
          {(SQ <'\\001y'>)} {(SQ <'\\0001y'>)}
        )
        (SimpleCommand
          words: [{(tr)} {(SQ <'\\1'>)} {(Lit_Other '=')}]
          redirects: [(Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[379])]
        )
      ]
      negated: F
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{($ VSub_Name '$prog')} {(SQ <'9 %*dx\\n'>)} {(-2)} {(0)}]
          redirects: [(Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[394])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[399])]
          spids: [399]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{($ VSub_Name '$prog')} {(SQ <'10 %.*dx\\n'>)} {($ VSub_Name '$INT_UFLOW')} {(0)}]
          redirects: [(Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[413])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[418])]
          spids: [418]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{($ VSub_Name '$prog')} {(SQ <'%.*dx\\n'>)} {($ VSub_Name '$INT_OFLOW')} {(0)}]
          redirects: [
            (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[431])
            (Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[434])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[440])]
          spids: [440]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{($ VSub_Name '$prog')} {(SQ <'11 %*c\\n'>)} {(2)} {(x)}]
          redirects: [(Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[454])]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[459])]
          spids: [459]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{($ VSub_Name '$prog')} {(SQ <'%#d\\n'>)} {(0)}]
          redirects: [
            (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[471])
            (Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[474])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[480])]
          spids: [480]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{($ VSub_Name '$prog')} {(SQ <'%0s\\n'>)} {(0)}]
          redirects: [
            (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[492])
            (Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[495])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[501])]
          spids: [501]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{($ VSub_Name '$prog')} {(SQ <'%.9c\\n'>)} {(0)}]
          redirects: [
            (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[513])
            (Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[516])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[522])]
          spids: [522]
        )
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [
            {($ VSub_Name '$prog')}
            {(SQ <'%'>) (EscapedLiteralPart token:<Lit_EscapedChar "\\'">) (SQ <'s\\n'>)}
            {(0)}
          ]
          redirects: [
            (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[538])
            (Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[541])
          ]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[547])]
          spids: [547]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: 
            {('1 x  y\n') ('2 failed, as expected\n') ('3 @\n') ('4 @\n') ('5 +234\n') ('6 !\n') 
              ('7 =y =y =y *2y\n') ('8 =y =y =y =y\n') ('9 0 x\n') ('10 0x\n') ('11  x\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [553]
        )
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(exp)} spids:[557])
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(compare)} {(exp)} {(out)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[570])]
          spids: [570]
        )
      ]
    )
    (SimpleCommand
      words: [{($ VSub_Name '$prog')} {(SQ <'%d\\n'>)} {(SQ <'"a'>)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(out)} spids:[588])
        (Redir op_id:Redir_Great fd:2 arg_word:{(err)} spids:[591])
      ]
    )
    (SimpleCommand
      words: [{($ VSub_Name '$prog')} {(SQ <'%d\\n'>)} {(SQ <'"a"'>)}]
      redirects: [
        (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[607])
        (Redir op_id:Redir_DGreat fd:2 arg_word:{(err)} spids:[610])
      ]
    )
    (SimpleCommand
      words: [{($ VSub_Name '$prog')} {(SQ <'%d\\n'>)} {(SQ <'"'>)}]
      redirects: [
        (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[626])
        (Redir op_id:Redir_DGreat fd:2 arg_word:{(err)} spids:[629])
      ]
    )
    (SimpleCommand
      words: [{($ VSub_Name '$prog')} {(SQ <'%d\\n'>)} {(SQ <a>)}]
      redirects: [
        (Redir op_id:Redir_DGreat fd:16777215 arg_word:{(out)} spids:[645])
        (Redir op_id:Redir_DGreat fd:2 arg_word:{(err)} spids:[648])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: {(DQ ('97\n') ('97\n') ('0\n') ('0\n'))}
          do_expansion: True
          here_end: EOF
          was_filled: T
          spids: [657]
        )
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(exp)} spids:[660])
      ]
    )
    (AndOr
      ops: [Op_DAmp]
      children: [
        (SimpleCommand
          words: [{(sed)} {(SQ <'s/: Invalid.*/: expected a numeric value/'>)} {(err)}]
          redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(k)} spids:[687])]
        )
        (C {(mv)} {(k)} {(err)})
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: 
            {
              (DQ ('printf: warning: ') (Right_DoubleQuote '"') 
                (': character(s) following character constant have been ignored\n') ('printf: ') (Right_DoubleQuote '"') (': expected a numeric value\n') 
                ('printf: a: expected a numeric value\n')
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: T
          spids: [702]
        )
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(exp_err)} spids:[705])
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(compare)} {(exp)} {(out)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[726])]
          spids: [726]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(compare)} {(exp_err)} {(err)})
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[737])]
          spids: [737]
        )
      ]
    )
    (C {(Exit)} {($ VSub_Name '$fail')})
  ]
)