(CommandList
  children: [
    (C {(set)} {(-e)})
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:common_objpfx)
              op: Equal
              rhs: {($ VSub_Number '$1')}
              spids: [64]
            )
          ]
          spids: [64]
        )
      terminator: <Op_Semi ';'>
    )
    (C {(shift)})
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:test_program_prefix_before_env)
              op: Equal
              rhs: {($ VSub_Number '$1')}
              spids: [70]
            )
          ]
          spids: [70]
        )
      terminator: <Op_Semi ';'>
    )
    (C {(shift)})
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:run_program_env)
              op: Equal
              rhs: {($ VSub_Number '$1')}
              spids: [76]
            )
          ]
          spids: [76]
        )
      terminator: <Op_Semi ';'>
    )
    (C {(shift)})
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:test_program_prefix_after_env)
              op: Equal
              rhs: {($ VSub_Number '$1')}
              spids: [82]
            )
          ]
          spids: [82]
        )
      terminator: <Op_Semi ';'>
    )
    (C {(shift)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:logfile)
          op: Equal
          rhs: {(${ VSub_Name common_objpfx) (posix/wordexp-tst.out)}
          spids: [88]
        )
      ]
      spids: [88]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:testout)
          op: Equal
          rhs: {(${ VSub_Name common_objpfx) (posix/wordexp-test-result)}
          spids: [94]
        )
      ]
      spids: [94]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:result) op:Equal rhs:{(0)} spids:[101])]
      spids: [101]
    )
    (C {(rm)} {(-f)} {($ VSub_Name '$logfile')})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:IFS) op:Equal rhs:{(DQ (' \t') ('\n'))} spids:[116])]
      spids: [116]
    )
    (C {(export)} {(IFS)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:failed) op:Equal rhs:{(0)} spids:[128])]
      spids: [128]
    )
    (SimpleCommand
      words: [
        {(${ VSub_Name test_program_prefix_before_env)}
        {(${ VSub_Name run_program_env)}
        {(Lit_VarLike 'IFS=') (DQ ($ VSub_Name '$IFS'))}
        {(${ VSub_Name test_program_prefix_after_env)}
        {(${ VSub_Name common_objpfx) (posix/wordexp-test)}
        {(SQ <'$*'>)}
      ]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: 16777215
          arg_word: {(${ VSub_Name testout) (1)}
          spids: [159]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Pipeline
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: 16777215
                  body: {('wordexp returned 0\n') ('we_wordv[0] = "$*"\n')}
                  do_expansion: False
                  here_end: EOF
                  was_filled: T
                  spids: [168]
                )
              ]
            )
            (SimpleCommand
              words: [{(cmp)} {(-)} {(${ VSub_Name testout) (1)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$logfile')}
                  spids: [184]
                )
              ]
            )
          ]
          negated: F
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:failed) op:Equal rhs:{(1)} spids:[190])]
          spids: [190]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {($ VSub_Name '$failed')} {(-ne)} {(0)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(SQ <'$* test failed'>)})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:status) op:Equal rhs:{(1)} spids:[214])]
              spids: [214]
            )
          ]
          spids: [16777215 204]
        )
      ]
      spids: [16777215 217]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:failed) op:Equal rhs:{(0)} spids:[220])]
      spids: [220]
    )
    (SimpleCommand
      words: [
        {(${ VSub_Name test_program_prefix_before_env)}
        {(${ VSub_Name run_program_env)}
        {(Lit_VarLike 'IFS=') (DQ ($ VSub_Name '$IFS'))}
        {(${ VSub_Name test_program_prefix_after_env)}
        {(${ VSub_Name common_objpfx) (posix/wordexp-test)}
        {(SQ <'${*}'>)}
        {(unquoted)}
      ]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: 16777215
          arg_word: {(${ VSub_Name testout) (2)}
          spids: [253]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Pipeline
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: 16777215
                  body: 
                    {('wordexp returned 0\n') ('we_wordv[0] = "${*}"\n') 
                      ('we_wordv[1] = "unquoted"\n')
                    }
                  do_expansion: False
                  here_end: EOF
                  was_filled: T
                  spids: [262]
                )
              ]
            )
            (SimpleCommand
              words: [{(cmp)} {(-)} {(${ VSub_Name testout) (2)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$logfile')}
                  spids: [278]
                )
              ]
            )
          ]
          negated: F
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:failed) op:Equal rhs:{(1)} spids:[284])]
          spids: [284]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {($ VSub_Name '$failed')} {(-ne)} {(0)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(SQ <'${*} test failed'>)})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:status) op:Equal rhs:{(1)} spids:[308])]
              spids: [308]
            )
          ]
          spids: [16777215 298]
        )
      ]
      spids: [16777215 311]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:failed) op:Equal rhs:{(0)} spids:[314])]
      spids: [314]
    )
    (SimpleCommand
      words: [
        {(${ VSub_Name test_program_prefix_before_env)}
        {(${ VSub_Name run_program_env)}
        {(Lit_VarLike 'IFS=') (DQ ($ VSub_Name '$IFS'))}
        {(${ VSub_Name test_program_prefix_after_env)}
        {(${ VSub_Name common_objpfx) (posix/wordexp-test)}
        {(SQ <'$@'>)}
        {(unquoted)}
      ]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: 16777215
          arg_word: {(${ VSub_Name testout) (3)}
          spids: [347]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Pipeline
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: 16777215
                  body: 
                    {('wordexp returned 0\n') ('we_wordv[0] = "$@"\n') ('we_wordv[1] = "unquoted"\n')}
                  do_expansion: False
                  here_end: EOF
                  was_filled: T
                  spids: [356]
                )
              ]
            )
            (SimpleCommand
              words: [{(cmp)} {(-)} {(${ VSub_Name testout) (3)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$logfile')}
                  spids: [372]
                )
              ]
            )
          ]
          negated: F
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:failed) op:Equal rhs:{(1)} spids:[378])]
          spids: [378]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {($ VSub_Name '$failed')} {(-ne)} {(0)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(SQ <'$@ test failed'>)})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:status) op:Equal rhs:{(1)} spids:[402])]
              spids: [402]
            )
          ]
          spids: [16777215 392]
        )
      ]
      spids: [16777215 405]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:failed) op:Equal rhs:{(0)} spids:[408])]
      spids: [408]
    )
    (SimpleCommand
      words: [
        {(${ VSub_Name test_program_prefix_before_env)}
        {(${ VSub_Name run_program_env)}
        {(Lit_VarLike 'IFS=') (DQ ($ VSub_Name '$IFS'))}
        {(${ VSub_Name test_program_prefix_after_env)}
        {(${ VSub_Name common_objpfx) (posix/wordexp-test)}
        {(SQ <'"$* quoted"'>)}
        {(param)}
      ]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: 16777215
          arg_word: {(${ VSub_Name testout) (4)}
          spids: [441]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Pipeline
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: 16777215
                  body: {('wordexp returned 0\n') ('we_wordv[0] = ""$* quoted" param quoted"\n')}
                  do_expansion: False
                  here_end: EOF
                  was_filled: T
                  spids: [450]
                )
              ]
            )
            (SimpleCommand
              words: [{(cmp)} {(-)} {(${ VSub_Name testout) (4)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$logfile')}
                  spids: [466]
                )
              ]
            )
          ]
          negated: F
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:failed) op:Equal rhs:{(1)} spids:[472])]
          spids: [472]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {($ VSub_Name '$failed')} {(-ne)} {(0)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(SQ <'$* quoted test failed'>)})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:status) op:Equal rhs:{(1)} spids:[496])]
              spids: [496]
            )
          ]
          spids: [16777215 486]
        )
      ]
      spids: [16777215 499]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:failed) op:Equal rhs:{(0)} spids:[502])]
      spids: [502]
    )
    (SimpleCommand
      words: [
        {(${ VSub_Name test_program_prefix_before_env)}
        {(${ VSub_Name run_program_env)}
        {(Lit_VarLike 'IFS=') (DQ ($ VSub_Name '$IFS'))}
        {(${ VSub_Name test_program_prefix_after_env)}
        {(${ VSub_Name common_objpfx) (posix/wordexp-test)}
        {(SQ <'"$@ quoted"'>)}
        {(param)}
      ]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: 16777215
          arg_word: {(${ VSub_Name testout) (5)}
          spids: [535]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Pipeline
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: 16777215
                  body: 
                    {('wordexp returned 0\n') ('we_wordv[0] = ""$@ quoted""\n') 
                      ('we_wordv[1] = "param quoted"\n')
                    }
                  do_expansion: False
                  here_end: EOF
                  was_filled: T
                  spids: [544]
                )
              ]
            )
            (SimpleCommand
              words: [{(cmp)} {(-)} {(${ VSub_Name testout) (5)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$logfile')}
                  spids: [560]
                )
              ]
            )
          ]
          negated: F
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:failed) op:Equal rhs:{(1)} spids:[566])]
          spids: [566]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {($ VSub_Name '$failed')} {(-ne)} {(0)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(SQ <'$@ quoted test failed'>)})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:status) op:Equal rhs:{(1)} spids:[590])]
              spids: [590]
            )
          ]
          spids: [16777215 580]
        )
      ]
      spids: [16777215 593]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:failed) op:Equal rhs:{(0)} spids:[599])]
      spids: [599]
    )
    (SimpleCommand
      words: [
        {(${ VSub_Name test_program_prefix_before_env)}
        {(${ VSub_Name run_program_env)}
        {(Lit_VarLike 'IFS=') (DQ ($ VSub_Name '$IFS'))}
        {(${ VSub_Name test_program_prefix_after_env)}
        {(${ VSub_Name common_objpfx) (posix/wordexp-test)}
        {(SQ <'$#'>)}
        {(2)}
        {(3)}
        {(4)}
        {(5)}
      ]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: 16777215
          arg_word: {(${ VSub_Name testout) (6)}
          spids: [638]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Pipeline
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: 16777215
                  body: {('wordexp returned 0\n') ('we_wordv[0] = "5"\n')}
                  do_expansion: False
                  here_end: EOF
                  was_filled: T
                  spids: [647]
                )
              ]
            )
            (SimpleCommand
              words: [{(cmp)} {(-)} {(${ VSub_Name testout) (6)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$logfile')}
                  spids: [663]
                )
              ]
            )
          ]
          negated: F
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:failed) op:Equal rhs:{(1)} spids:[669])]
          spids: [669]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {($ VSub_Name '$failed')} {(-ne)} {(0)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(SQ <'$# test failed'>)})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:status) op:Equal rhs:{(1)} spids:[693])]
              spids: [693]
            )
          ]
          spids: [16777215 683]
        )
      ]
      spids: [16777215 696]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:failed) op:Equal rhs:{(0)} spids:[699])]
      spids: [699]
    )
    (SimpleCommand
      words: [
        {(${ VSub_Name test_program_prefix_before_env)}
        {(${ VSub_Name run_program_env)}
        {(Lit_VarLike 'IFS=') (DQ ($ VSub_Name '$IFS'))}
        {(${ VSub_Name test_program_prefix_after_env)}
        {(${ VSub_Name common_objpfx) (posix/wordexp-test)}
        {(SQ <'$2 ${3} $4'>)}
        {(2nd)}
        {(3rd)}
        {(DQ ('4 th'))}
      ]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: 16777215
          arg_word: {(${ VSub_Name testout) (7)}
          spids: [738]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Pipeline
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: 16777215
                  body: 
                    {('wordexp returned 0\n') ('we_wordv[0] = "2nd"\n') ('we_wordv[1] = "3rd"\n') 
                      ('we_wordv[2] = "4"\n') ('we_wordv[3] = "th"\n')
                    }
                  do_expansion: False
                  here_end: EOF
                  was_filled: T
                  spids: [747]
                )
              ]
            )
            (SimpleCommand
              words: [{(cmp)} {(-)} {(${ VSub_Name testout) (7)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$logfile')}
                  spids: [763]
                )
              ]
            )
          ]
          negated: F
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:failed) op:Equal rhs:{(1)} spids:[769])]
          spids: [769]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {($ VSub_Name '$failed')} {(-ne)} {(0)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(SQ <'$2 ${3} $4 test failed'>)})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:status) op:Equal rhs:{(1)} spids:[793])]
              spids: [793]
            )
          ]
          spids: [16777215 783]
        )
      ]
      spids: [16777215 796]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:failed) op:Equal rhs:{(0)} spids:[799])]
      spids: [799]
    )
    (SimpleCommand
      words: [
        {(${ VSub_Name test_program_prefix_before_env)}
        {(${ VSub_Name run_program_env)}
        {(Lit_VarLike 'IFS=') (DQ ($ VSub_Name '$IFS'))}
        {(${ VSub_Name test_program_prefix_after_env)}
        {(${ VSub_Name common_objpfx) (posix/wordexp-test)}
        {(SQ <'${11}'>)}
        {(2)}
        {(3)}
        {(4)}
        {(5)}
        {(6)}
        {(7)}
        {(8)}
        {(9)}
        {(10)}
        {(11)}
      ]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: 16777215
          arg_word: {(${ VSub_Name testout) (8)}
          spids: [850]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Pipeline
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: 16777215
                  body: {('wordexp returned 0\n') ('we_wordv[0] = "11"\n')}
                  do_expansion: False
                  here_end: EOF
                  was_filled: T
                  spids: [859]
                )
              ]
            )
            (SimpleCommand
              words: [{(cmp)} {(-)} {(${ VSub_Name testout) (8)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$logfile')}
                  spids: [875]
                )
              ]
            )
          ]
          negated: F
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:failed) op:Equal rhs:{(1)} spids:[881])]
          spids: [881]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {($ VSub_Name '$failed')} {(-ne)} {(0)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(SQ <'${11} test failed'>)})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:status) op:Equal rhs:{(1)} spids:[905])]
              spids: [905]
            )
          ]
          spids: [16777215 895]
        )
      ]
      spids: [16777215 908]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:failed) op:Equal rhs:{(0)} spids:[911])]
      spids: [911]
    )
    (SimpleCommand
      words: [
        {(${ VSub_Name test_program_prefix_before_env)}
        {(${ VSub_Name run_program_env)}
        {(Lit_VarLike 'IFS=') (DQ ($ VSub_Name '$IFS'))}
        {(${ VSub_Name test_program_prefix_after_env)}
        {(${ VSub_Name common_objpfx) (posix/wordexp-test)}
        {(SQ <'"a $@ b"'>)}
        {(c)}
        {(d)}
      ]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: 16777215
          arg_word: {(${ VSub_Name testout) (9)}
          spids: [946]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Pipeline
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: 16777215
                  body: 
                    {('wordexp returned 0\n') ('we_wordv[0] = "a "a $@ b""\n') 
                      ('we_wordv[1] = "c"\n') ('we_wordv[2] = "d b"\n')
                    }
                  do_expansion: False
                  here_end: EOF
                  was_filled: T
                  spids: [955]
                )
              ]
            )
            (SimpleCommand
              words: [{(cmp)} {(-)} {(${ VSub_Name testout) (9)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {($ VSub_Name '$logfile')}
                  spids: [971]
                )
              ]
            )
          ]
          negated: F
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:failed) op:Equal rhs:{(1)} spids:[977])]
          spids: [977]
        )
      ]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {($ VSub_Name '$failed')} {(-ne)} {(0)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(SQ <'"a $@ b" test failed'>)})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:status) op:Equal rhs:{(1)} spids:[1001])]
              spids: [1001]
            )
          ]
          spids: [16777215 991]
        )
      ]
      spids: [16777215 1004]
    )
    (SimpleCommand
      words: [
        {(${ VSub_Name test_program_prefix_before_env)}
        {(${ VSub_Name run_program_env)}
        {(Lit_VarLike 'IFS=') (DQ ($ VSub_Name '$IFS'))}
        {(${ VSub_Name test_program_prefix_after_env)}
        {(${ VSub_Name common_objpfx) (posix/wordexp-test)}
        {(SQ <'${#@} ${#2} *$**'>)}
        {(two)}
        {(3)}
        {(4)}
      ]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: 16777215
          arg_word: {(${ VSub_Name testout) (10)}
          spids: [1041]
        )
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Pipeline
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: 16777215
                  body: 
                    {('wordexp returned 0\n') ('we_wordv[0] = "4"\n') ('we_wordv[1] = "3"\n') 
                      ('we_wordv[2] = "*${#@}"\n') ('we_wordv[3] = "${#2}"\n') ('we_wordv[4] = "*$**"\n') ('we_wordv[5] = "two"\n') ('we_wordv[6] = "3"\n') 
                      ('we_wordv[7] = "4*"\n')
                    }
                  do_expansion: False
                  here_end: EOF
                  was_filled: T
                  spids: [1050]
                )
              ]
            )
            (C {(cmp)} {(-)} {(${ VSub_Name testout) (10)})
          ]
          negated: F
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:failed) op:Equal rhs:{(1)} spids:[1068])]
          spids: [1068]
        )
      ]
    )
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_Name '$result')})
  ]
)