[英]how to create token file from grammar file in antlr
我正在使用antlr创建DSL。 Lexer和Parser被写入一个语法文件(例如layout.g)。 树文法被写在另一个文法文件中(例如layoutTree.g)。 现在,树解析器无法正确解析。 我打印了解析器的AST输出及其正确的输出。 我浏览了生成的树解析器代码,发现令牌值声明在树解析器和解析器中分配了不同的值,下面是解析器和树解析器的示例输出。
解析器输出
public static final int ARRAY_MEMBER_TOKEN=4;
public static final int ARRAY_TOKEN=5;
public static final int DECLARATION_TOKEN=6;
树解析器输出
public static final int EOF=-1;
public static final int DECLARATION_TOKEN=4;
public static final int IDENTIFIER=5;
如您所见,DECLARATION_TOKEN在解析器输出和树解析器输出中具有不同的值。 由于此树解析器无法正常工作,如何解决此问题?
生成的令牌文件(例如layout.token)有问题吗? 该文件在我的项目中为空。如何生成此文件?
树语法中是否有类似的内容?
options
{
tokenVocab=layout; //NOT layout.g or layout.tokens
ASTLabelType=pANTLR3_BASE_TREE;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.