(command.CommandList
  children: [
    (C {(set)} {(-e)})
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:common_objpfx spids:[54])
          op: Equal
          rhs: {($ VSub_Number '$1')}
          spids: [54]
        )
      ]
      spids: [54]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:test_program_cmd_before_env spids:[57])
          op: Equal
          rhs: {($ VSub_Number '$2')}
          spids: [57]
        )
      ]
      spids: [57]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:run_program_env spids:[60])
          op: Equal
          rhs: {($ VSub_Number '$3')}
          spids: [60]
        )
      ]
      spids: [60]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:test_program_cmd_after_env spids:[63])
          op: Equal
          rhs: {($ VSub_Number '$4')}
          spids: [63]
        )
      ]
      spids: [63]
    )
    (command.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.Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: {(${ VSub_Name common_objpfx) (catgets/test-gencat.out)}
        )
      ]
    )
    (command.SimpleCommand
      words: [{(cmp)} {(-)} {(${ VSub_Name common_objpfx) (catgets/test-gencat.out)}]
      redirects: [
        (redir.HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(DQ (EOF))}
          here_end_span_id: 136
          stdin_parts: [
            ('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')
          ]
        )
      ]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:res spids:[137])
          op: Equal
          rhs: {($ VSub_QMark '$?')}
          spids: [137]
        )
      ]
      spids: [137]
    )
    (command.AndOr
      ops: [Op_DPipe]
      children: [
        (command.Pipeline
          children: [
            (command.SimpleCommand
              words: [{(cat)}]
              redirects: [
                (redir.HereDoc
                  op: <Redir_DLess '<<'>
                  fd: 16777215
                  here_begin: {(EOF)}
                  here_end_span_id: 151
                  stdin_parts: [
                    ('#define AnotherSet 0x2\t/* *standard input*:13 */\n')
                    ('#define AnotherFOO 0x1\t/* *standard input*:14 */\n')
                  ]
                )
              ]
            )
            (C {(cmp)} {(${ VSub_Name common_objpfx) (catgets/test-gencat.h)} {(-)})
          ]
          negated: F
        )
        (command.Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (lhs_expr.LhsName name:res spids:[163])
              op: Equal
              rhs: {(1)}
              spids: [163]
            )
          ]
          spids: [163]
        )
      ]
    )
    (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_DollarName '$res')})
  ]
)