如何在C中使用ANTLR3.5生成的解析器在MVS EBCDIC环境中工作?

我们在
Linux上使用ANTLR 3.5.2在C中生成解析器.我们已经能够使用LE C编译器在z / OS上编译和链接生成的C解析器和ANTLR C运行时.当然,我们希望解析器能够在EBCDIC环境中工作.

我们需要设置或修改什么来实现这一目标?是否更容易在MVS上运行ANTLR以获取在MVS上运行的代码,或者我们是否可以继续在Linux上生成代码并在z / OS上运行(稍作修改)?
非常感谢,
托尼

最佳答案 您可以使用以下命令将生成的文件的代码页切换为EBCDIC Latin-1:

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

然后你的解析器将在正确的代码点搜索EBCDIC字符.您可能希望为生成的文件提供良好的眼球,以查看ANTLR是否已生成显式ASCII序数(例如,使用0x13而不是CR符号),您可能需要修复它们,但它不应该.

点赞