antlr4语法与Java目标一起使用,与Python一起失败

时间:2016-03-20 08:40:23

标签: java python antlr

我最初使用Java目标(用于TestRig支持)开发了一个语法,然后将其移植到Python(从git hub语法repo扩展Python3语法,以便将操作移植到Python)。在两个版本中添加一些辅助打印方法,并在同一输入上运行两个解析器之后,Python目标会产生错误。

我已经使用setTrace方法来获取跟踪输出,并且在运行两者之后,跟踪是相同的(与print语句的一些空白线差异)。这告诉我两个解析器在理论上遇到相同的令牌并构建相同的树。但是,正如所提到的,Java版本正确完成,而Python版本有“......但是预期......”错误。

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

1 个答案:

答案 0 :(得分:0)

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

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