首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法用Antlr4解析COBOL源代码

无法用Antlr4解析COBOL源代码
EN

Stack Overflow用户
提问于 2018-03-03 18:57:56
回答 1查看 1.5K关注 0票数 2

我正在学习如何使用Antlr4解析COBOL源代码。目前,我正在遵循这些步骤,正如Enam在他的Youtube 视频中所展示的那样。

基本上,我下载了antlr-4.7.1-complete.jar并将其放在C:\Javalib中。是的,我还包括了进入我的Windows环境的路径,并创建了antlr.batgrun.bat文件。

对于语法文件,我使用的是从Ulrich github获取的Cobol85.g4Cobol85Preprocessor.g4。同时,我使用HellowWorl.cbl示例源代码来查看解析是如何工作的。

运行antlr.bat之后,我执行以下命令:

代码语言:javascript
复制
C:\Users\ffa\Desktop\COBOL>grun Cobol85Preprocessor startRule HellowWorld.cbl

因此,我收到如下所示的错误消息:

代码语言:javascript
复制
Warning: TestRig moved to org.antlr.v4.gui.TestRig; calling automatically
Can't load Cobol85.g4 as lexer or parser

由于我不确定为什么不能像视频中所示的那样解析它,所以我还尝试了以下命令:

代码语言:javascript
复制
C:\Users\ffa\Desktop\COBOL>grun Cobol85 startRule HellowWorld.cbl

代码语言:javascript
复制
C:\Users\ffa\Desktop\COBOL>grun Cobol85* startRule HellowWorld.cbl

最后,我仍然得到同样的错误信息。所以,我通过谷歌搜索并找到了一个下载antlr-runtime-4.7.1.jar的建议。因此,我下载了该文件,并将其放在位于C:\Javalib的同一个目录中。

当我执行上面的命令时,这一次,我收到了另一条消息。

代码语言:javascript
复制
Error: Could not find or load main class org.antlr.v4.runtime.misc.TestRig

有人能帮我用Antlr4解析COBOL源代码吗?如果有人能解释Cobol85.g4Cobol85Preprocessor.g4之间的区别,那也很好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-21 08:10:03

声明:我是这些COBOL ANTLR4语法文件的作者。

语法Cobol85.g4生成的解析器必须提供COBOL源代码,该源代码已经用COBOL预处理程序进行了预处理。Cobol85Preprocessor.g4是该预处理器的核心,它支持对语句(如COPY REPLACEEXEC SQL等)的解析。

Cobol85Preprocessor.g4是用相当广泛的附加逻辑来增强的,它不包括在语法文件中,它支持行格式、换行、注释行、注释条目、EXEC、EXEC等的规范化。

我编写的ProLeap COBOL解析器基于Cobol.g4Cobol85Preprocessor.g4文件在Java中实现了所有这些。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49087999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档