exitEveryRule 是在 Antlr4 中捕获规则数据(源代码行)的最佳位置吗?
Is exitEveryRule the best place to capture rule data (source Line) in Antlr4?
我正在尝试获取有关源代码文件和节点的一些数据。如果我想捕获源代码行号 (int line = ctx.getStart().getLine();
),如果它进入 exitEveryRule
,我认为每次规则结束时都会执行这是否正确?我看到另一个 post 似乎表明这更多是为了错误。
我开始为每条规则添加代码,但在 Java 中,规则太多了。似乎我应该简单地使用它并完成。但在我删除并重试之前,这种方法有什么问题吗?
它确实有效,但对语法有一些有趣的依赖性。它是第一次尝试,但我们发现我们需要扩展语法,这是获得一致输出的一些小方法。大多数是 "intermediate" 个步骤,因此我们可以创建一个一致的。所以它确实有效,并且达到了您的预期,但最后,我们还是需要对其进行一些扩展。
我正在尝试获取有关源代码文件和节点的一些数据。如果我想捕获源代码行号 (int line = ctx.getStart().getLine();
),如果它进入 exitEveryRule
,我认为每次规则结束时都会执行这是否正确?我看到另一个 post 似乎表明这更多是为了错误。
我开始为每条规则添加代码,但在 Java 中,规则太多了。似乎我应该简单地使用它并完成。但在我删除并重试之前,这种方法有什么问题吗?
它确实有效,但对语法有一些有趣的依赖性。它是第一次尝试,但我们发现我们需要扩展语法,这是获得一致输出的一些小方法。大多数是 "intermediate" 个步骤,因此我们可以创建一个一致的。所以它确实有效,并且达到了您的预期,但最后,我们还是需要对其进行一些扩展。