对于决策错误,Debug Xtext甚至无法执行k = 1

时间:2014-07-01 08:43:07

标签: c grammar antlr3 xtext

我正在尝试为我使用的脚本语言创建一个Xtext解析器。该语言非常接近ANSI-C。

我首先将此https://github.com/antlr/examples-v3/blob/master/C/C/C.g语法转换为Xtext并删除我不需要的部分(结构,类型等等)

然而,我遇到了问题,我不知道如何正确调试它们并找到我的错误。 我收到了

error(10): internal error: org.antlr.tool.Grammar.createLookaheadDFA(Grammar.java:1279): could not even do k=1 for decision 39; reason: timed out (>10000ms)

以及OutOfMemoryError例外。

编辑:我已经尝试增加内存和放大器超时。但是,即使使用LARGE值,这也不起作用。

有人可以提出“调试”语法的方法吗?第39号决定在哪里?我很想找到问题,但我找不到任何东西。

PS:我在这里发布了语法列表,不会使帖子变得杂乱http://pastebin.com/8AYNUbSD

1 个答案:

答案 0 :(得分:0)

您可以通过激活workflow.mwe2中的调试模式来生成Antlr语法(.g),添加以下片段:

fragment = org.eclipse.xtext.generator.parser.antlr.DebugAntlrGeneratorFragment {}

然后,您可以使用AntlrWorks IDE调试此调试语法 快速教程here