无法将规则加载为词法分析器或解析器 - Antlr4



我收到错误Can't load Chat as lexer or parser运行命令时grun Chat chat

我正在按照 https://tomassetti.me/antlr-mega-tutorial/#setup-antlr 的说明进行操作

在Mac OS上使用python,这是我bash_profile的详细信息:-

export CLASSPATH=".:/usr/local/lib/antlr-4.7.1-complete.jar:$CLASSPATH"
alias antlr4='java -Xmx500M -cp "/usr/local/lib/antlr-4.7.1-complete.jar:$CLASSPATH" org.antlr.v4.Tool'
alias grun='java -Xmx500M -cp "/usr/local/lib/antlr-4.7.1-complete.jar:$CLASSPATH" org.antlr.v4.gui.TestRig'

命令运行:- 要创建 python 文件:antlr4 -Dlanguage=Python3 Chat.g4

运行上述命令时,将创建以下文件:-

chat.interp, chat.tokens, chatLexer.interp, ChatLexer.py, ChatLexer.tokens, ChatListener,py, ChatParse.py

运行 grun 工具:grun Chat chat我尝试了不同的解析器规则,但得到相同的错误。

grun是一个Java工具,它期望词法分析和解析器作为可以加载和实例化的Java类存在。因此,您需要从语法生成 Java 代码,然后使用javac对其进行编译,然后才能使用grun

如果无法从语法生成 Java(例如,因为语法包含 Python 操作(,则无法使用grun

最新更新