(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_cmd_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_cmd_after_env)
          op: Equal
          rhs: {($ VSub_Number '$4')}
          spids: [63]
        )
      ]
      spids: [63]
    )
    (SimpleCommand
      words: [
        {(${ VSub_Name test_program_cmd_before_env)}
        {(${ VSub_Name run_program_env)}
        {(Lit_VarLike 'NLSPATH=') (${ VSub_Name common_objpfx) (catgets/) (Lit_Other '%') (N.) 
          (Lit_Other '%') (c.cat)
        }
        {(Lit_VarLike 'LC_ALL=') (ja_JP.SJIS)}
        {(${ VSub_Name test_program_cmd_after_env)}
      ]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: 16777215
          arg_word: {(${ VSub_Name common_objpfx) (catgets/test-gencat.out)}
          spids: [103]
        )
      ]
    )
    (SimpleCommand
      words: [{(cmp)} {(-)} {(${ VSub_Name common_objpfx) (catgets/test-gencat.out)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: 
            {('LC_MESSAGES = ja_JP.SJIS\n') ('sample1:ABCDEF:\n') 
              ('sample2:\x93\xfa\x96{\x8c\xea:\n') ('sample3:\x97\\\x92\xe8\x95\\:\n') ('sample4:TEST\tTAB:\n') 
              ('sample5:\x8b@\x94\\\t\x8f\\\x8e\xed\x97\xde:\n') ('double slash\\\n') ('another line\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [123]
        )
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:res) op:Equal rhs:{($ VSub_QMark '$?')} spids:[128])]
      spids: [128]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Pipeline
          children: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: 16777215
                  body: 
                    {
                      (DQ ('#define AnotherSet 0x2\t/* *standard input*:13 */\n') 
                        ('#define AnotherFOO 0x1\t/* *standard input*:14 */\n')
                      )
                    }
                  do_expansion: True
                  here_end: EOF
                  was_filled: T
                  spids: [134]
                )
              ]
            )
            (C {(cmp)} {(${ VSub_Name common_objpfx) (catgets/test-gencat.h)} {(-)})
          ]
          negated: F
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:res) op:Equal rhs:{(1)} spids:[153])]
          spids: [153]
        )
      ]
    )
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_Name '$res')})
  ]
)