ANTLR4解析树不包含规则名称
ANTLR4 不在解析树中显示规则名称。
例如,1 + 2
打印为:
main 中的代码:
std::string test = "1 + 2";
ANTLRInputStream input(test);
GrammarLexer lexer(&input);
CommonTokenStream tokens(&lexer);
GrammarParser parser(&tokens);
auto *tree = parser.expression();
std::cout << tree->toStringTree(true) << "\n";
ANTLR4 doesn't show rule names in parse tree.
For example, 1 + 2
is printed as:
Code in main:
std::string test = "1 + 2";
ANTLRInputStream input(test);
GrammarLexer lexer(&input);
CommonTokenStream tokens(&lexer);
GrammarParser parser(&tokens);
auto *tree = parser.expression();
std::cout << tree->toStringTree(true) << "\n";
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我深入研究了 ANTLR 的 C++ 运行时源代码,发现了这两个函数:
因此,要修复“错误”,请替换
为
I dived into ANTLR's C++ runtime source code and found these 2 functions:
So, to fix the "error", replace
with