java - antlr4 语法适用于 Java 目标,但适用于 Python 目标

标签 java python antlr

我最初使用 Java 目标开发了一个语法(用于 TestRig 支持),然后将其移植到 Python(从 gi​​t hub 语法存储库扩展了 Python3 语法,因此需要将操作移植到 Python)。在向两个版本添加一些帮助程序打印方法并在同一输入上运行两个解析器后,Python 目标会产生错误。

我使用了 setTrace 方法来获取跟踪输出,并且在运行这两个方法后,跟踪是相同的(与打印语句有一些空白行的细微差别)。这告诉我两个解析器都遇到相同的标记并构建相同的树......理论上。然而,正如前面提到的,Java 版本正确完成,而 Python 版本则出现“...但预期...”错误。

是否有人检测到类似的行为?如果是,是否已找到解决方法?抱歉,我没有发布实际代码,但语法很长。

最佳答案

该行为是 Python3 antlr 语法定义中的错误造成的。我在 antlr 语法项目中添加了语法定义的修复[1]。

[1] https://github.com/antlr/grammars-v4/commit/4eb968b8d8bc11185042b2ba69f14e349bee3468

关于java - antlr4 语法适用于 Java 目标,但适用于 Python 目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36111728/

相关文章:

尝试使 Tableview 可点击时发生 JavaFX 错误

java - ANTLR树遍历器,多次返回值

java - 我可以在 SBE 复合类型中添加可变长度成员吗?

python - Matplotlib 使刻度标签字体变小

python - PyMySQL 不是从 Cron 连接,而是从控制台连接

python - 使用定义变量创建表

C# 动态方法 - IL 与表达式树

JavaCC 问题 - 生成的代码没有找到所有解析错误

java - 将 JFilechooser 添加到 JFrame 玻璃 Pane ,无法看到 Filechooser 弹出窗口

java - 如何通过默认端点/指标覆盖普罗米修斯