将AST节点设置为瞬态(有效地将其从AST中删除)?

时间:2013-09-19 17:03:16

标签: antlr antlr4

对于很多情况,完整的AST - 在语法规范中指定 - 很好,因为其他代码可以获取任何语法细节

看看 AST林

enter image description here

我的ANTLR生成的解析器旨在静态分析编程语言。因此,树variable -> base_variable_with_function_calls -> base_variable ...不会引起兴趣。

事实上, $ d是一个复合变量就足够了。

因此:我可以将tar ANTLR生成规则设置为瞬态,以便ANTLR静默解析语法规则,但不创建中间AST节点吗?

显然,这样的标签只能应用于具有单个子节点的制作。

1 个答案:

答案 0 :(得分:1)

不,ANTLR 4不支持此功能。生成的解析树将包含语法匹配的每个标记,并且对于语法调用的每个规则都将包含RuleNode