2015-02-25 1 views
3

Мы используем ANTLR 3.5.2 на linux для генерации парсера в C. Мы смогли скомпилировать и связать сгенерированный C-парсер и время выполнения ANTLR C на z/OS с помощью компилятора LE C. Конечно, мы бы хотели, чтобы анализатор мог работать в среде EBCDIC.Как я могу получить парсер, сгенерированный ANTLR3.5 в C, для работы в среде MVCD EBCDIC?

Что нам нужно установить или изменить, чтобы это произошло? Легче ли запустить ANTLR на MVS, чтобы получить код, который работает на MVS, или мы можем продолжать генерировать код в Linux и запускать (с небольшими изменениями) в z/OS? Большое спасибо, Tony

+1

Googling «antlr z/os» содержит ссылку https://groups.google.com/forum/#!topic/il-antlr-interest/U5P7berIQO8, которая кажется актуальной. У принципа, похоже, есть идентификатор переполнения стека и может появиться с более прямым ответом. – cschneid

+0

Это актуально точно. Попробуй, что предлагает Джим Идл. Я понимаю, что это означает, скомпилировать для ascii и использовать преобразование ebcdic/ascii для ввода/вывода. Прокомментируйте результаты после того, как мы попробуем это. Благодаря! – user3803240

ответ

1

Вы можете переключать кодовую страницу сгенерированных файлов EBCDIC Latin-1 с помощью:

??=pragma filetag ("IBM-1047") 

Тогда ваш парсер будет искать для EBCDIC символов в правильных кодовых , Возможно, вы захотите дать сгенерированному файлу хороший глаз, чтобы увидеть, генерирует ли ANTLR явные ординалы ASCII (например, используя 0x13 вместо символа CR), и вам может понадобиться исправить их, но это не должно.

+1

Спасибо, Джо. Это сработало. С помощью правильной кодовой страницы все работает очень хорошо. – user3803240

+0

Рад, что я мог бы помочь :-) –

+0

С риском бесстыдного подкачки моей репутации, если бы ответ помог вам, голосование было бы хорошим. *Подсказка Подсказка* –

Смежные вопросы