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

标签 c antlr3 zos ebcdic mvs

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

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

最佳答案

您可以使用以下方法将生成文件的代码页切换为 EBCDIC Latin-1:

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

然后您的解析器将在正确的代码点搜索 EBCDIC 字符。您可能希望仔细观察生成的文件,看看 ANTLR 是否生成了明确的 ASCII 序号(例如,使用 0x13 而不是 CR 符号),您可能需要修复它们,但它不应该。

关于c - 如何让 ANTLR3.5 在 C 中生成的解析器在 MVS EBCDIC 环境中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28728160/

相关文章:

parsing - 如何更正 token ,然后从ANTLR中的失败谓词中恢复?

java - 提取特定规则或标记前的隐藏评论内容(Antlr、Java)

sql - 如何使用 SQL 在 IBM DB2 Z/OS 中显示表的当前权限

c - C 中元音变音 'A' 的用途或等效项是什么?

java - ANTLR3 C 目标错误生成 TreeParser : ( ASTTreeParser. stg 321:25:匿名模板有 0 个参数但映射到 1 个值)

c++ - 想要在Hudson C/C++上工作

java - JSch SFTP 放入 IBM z/OS 失败 :failed to write file; nested exception is 3: Permission denied

z390 主机的汇编代码编程

c - 为什么在 C 中出现 double free 或 corruption 错误?我释放了我的 mallocs

冒泡排序变体中的 C 段错误