[英]ANTLR4 Parser, Visitor not created
我是ANTLR的新手,并尝试在ANTLR4中编写语法,而不需要事先刷过以前的版本。 我正在阅读“ The Definitive ANTLR 4 Reference ”一书。 我使用Eclipse并安装了这里给出的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文件,第一个生成了访问者但第二个没有。
然后我意识到每个G4文件都有自己的代码生成配置,您可以通过以下方式进行更改:
Run As
External tool configuration
现在生成了Visitor
文件。
您应该在构建过程中生成语法。 从ANTLR 4.2开始(目前可通过Sonatype快照Maven存储库获得4.2-SNAPSHOT),Maven插件支持Eclipse m2e。 Maven插件的文档可在此处获得:
http://www.antlr.org/api/maven-plugin/master/index.html
我不相信它使用ANTLR语法和不自动代码生成步骤到构建本身的任何内部版本, 强烈建议您不要使用手工代码生成步骤或代码生成作为一个IDE扩展永远的一部分。
检查您的JRE版本(命令行[windows]:java -version)。
我在这个例子中遇到了同样的问题。 因为JRE 8 。
所以,如果你有JRE8,Posible解决方案是:
要生成XXXVisitor,请在“运行方式/外部工具配置...”中通过-visitor更改-no-visitor参数。
首选项 - > ANTLR4 - >工具 - >选项 - >生成解析树访问者
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.