(CommandList
  children: [
    (C {(set)} {(-e)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:common_objpfx)
          op: Equal
          rhs: {($ VSub_Number '$1')}
          spids: [54]
        )
      ]
      spids: [54]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_program_prefix_before_env)
          op: Equal
          rhs: {($ VSub_Number '$2')}
          spids: [57]
        )
      ]
      spids: [57]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:run_program_env)
          op: Equal
          rhs: {($ VSub_Number '$3')}
          spids: [60]
        )
      ]
      spids: [60]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_program_prefix_after_env)
          op: Equal
          rhs: {($ VSub_Number '$4')}
          spids: [63]
        )
      ]
      spids: [63]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:objpfx) op:Equal rhs:{($ VSub_Number '$5')} spids:[66])]
      spids: [66]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_pre)
          op: Equal
          rhs: 
            {(DQ (${ VSub_Name test_program_prefix_before_env) (' ') (${ VSub_Name run_program_env))}
          spids: [70]
        )
      ]
      spids: [70]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test)
          op: Equal
          rhs: 
            {
              (DQ (${ VSub_Name test_program_prefix_after_env) (' ') (${ VSub_Name objpfx) 
                (tst-setcontext3)
              )
            }
          spids: [81]
        )
      ]
      spids: [81]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:out)
          op: Equal
          rhs: {(${ VSub_Name objpfx) (tst-setcontext3.out)}
          spids: [93]
        )
      ]
      spids: [93]
    )
    (FuncDef
      name: cleanup
      body: (BraceGroup children:[(C {(rm)} {(-f)} {($ VSub_Name '$tempfile')})] spids:[104])
      spids: [100 103]
    )
    (C {(trap)} {(cleanup)} {(0)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:tempfile)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(mktemp)} {(DQ (tst-setcontext3.XXXXXXXXXX))})]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [123 129]
              )
            }
          spids: [122]
        )
      ]
      spids: [122]
    )
    (C {($ VSub_Name '$test_pre')} {($ VSub_Name '$test')} {(DQ ($ VSub_Name '$tempfile'))})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_Name '$tempfile'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} 
              {(DQ ('PASS: tst-setcontext3 an exit() and created ') ($ VSub_Name '$tempfile'))}
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
          ]
          spids: [16777215 169]
        )
      ]
      else_action: [
        (C {(echo)} {(DQ ('FAIL: tst-setcontext3 did not create ') ($ VSub_Name '$tempfile'))})
        (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
      ]
      spids: [184 199]
    )
  ]
)