首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在ANTLR中接收AltNumber?

如何在ANTLR中接收AltNumber?
EN

Stack Overflow用户
提问于 2016-09-17 02:41:34
回答 1查看 491关注 0票数 4

我将使用ANTLR 4.5.3将一种符号转换为另一种符号。我已经用IntelliJ IDEA中的插件设计了语法描述。

在我的语法中,一个规则有几个选项。

当我在"Parse Tree“中查看结果时,每个节点都包含”规则名称“:”行号“。

如何使用API接收此信息?如果我理解清楚的话,可以从getAltNumber()中检索行号,但是这个字段是空的。

http://www.antlr.org/api/Java/org/antlr/v4/runtime/RuleContext.html#getAltNumber()

在文档中,默认实现既不计算也不存储此alt num。

如何获取这些信息?

EN

回答 1

Stack Overflow用户

发布于 2016-11-15 10:42:21

我也有同样的问题。文档应该更精确一点,但它确实给出了一个线索。另外,直接查看插件可能会导致解决方案:https://github.com/antlr/intellij-plugin-v4/blob/master/src/java/org/antlr/intellij/plugin/preview/AltLabelTextProvider.java

您可以简单地添加一个实现setAltNumber和getAltNumber的上下文超类,如下所示:https://github.com/antlr/antlr4/blob/master/tool/src/org/antlr/v4/tool/GrammarInterpreterRuleContext.java

然后将类作为生成器参数提供,例如:

-DcontextSuperClass=GrammarInterpreterRuleContext antlr4 -o output/path -listener -visitor -Dlanguage=Java -lib lib/path grammar.g4

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39538191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档