我是 ANTLR 的新手,并尝试在 ANTLR4 中编写语法,而无需事先刷过以前的版本。我正在关注“The Definitive ANTLR 4 Reference”一书。我使用 Eclipse 并按照 here 中的说明安装了 ANTLR4 IDE .我在 Expr.g4 中写了以下语法:
grammar Expr;
import Common;
options{
language = Java;
}
prog: stat+;
stat: expr NEWLINE
| ID '=' expr NEWLINE
| NEWLINE;
expr: expr ('/'|'*') expr
| expr ('+'|'-') expr
| INT
| ID
| '('expr')';
Common.g4 包含以下内容:
lexer grammar Common;
ID: [A-Za-z]+;
INT: [0-9]+;
NEWLINE: '\r'?'\n';
WS: [\t]+ -> skip;
创建了 lexer.java 但没有创建 parser.java 和 visitor.java 等基础文件。请帮我解决这个问题。提前致谢。
最佳答案
事实上我曾经遇到过同样的问题,我曾经在同一个项目中集成两个 G4 文件,第一个生成了 Visitor,而第二个没有。
然后我意识到每个 G4 文件都有自己的代码生成配置,您可以通过以下方式进行更改:
- 右键单击 G4 文件,然后单击
Run As
- 选择
外部工具配置
- 将no-visitor更改为visitor,您可以对 听众。
现在 Visitor
文件已生成。
关于java - ANTLR4 解析器,未创建访客,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21213143/