Отладка Xtext не может даже сделать k=1 для ошибок решения

Я пытаюсь создать синтаксический анализатор Xtext для языка сценариев, который я использую. Язык довольно близок к ANSI-C.

Я начал с преобразования этой https://github.com/antlr/examples-v3/blob/master/C/C/C.g грамматики в Xtext и удаления ненужных частей (структуры, typedefs и т. Д.).

Однако я сталкиваюсь с проблемами и не знаю, как правильно их отладить и найти ошибки. я получил

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 исключения.

РЕДАКТИРОВАТЬ: я уже пытался увеличить память и время ожидания. Однако даже с БОЛЬШИМИ значениями это не работает.

Кто-нибудь может предложить способы "отладки" грамматики? Где решение 39? Я бы с удовольствием обнаружил проблему, но ничего не смог найти.

PS: я разместил здесь список грамматики, чтобы не загромождать пост http://pastebin.com/8AYNUbSD

1 ответ

Решение

Вы можете создать грамматику Antlr (.g), активировав режим отладки в вашем workflow.mwe2, добавив следующий фрагмент:

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

Затем вы можете отладить эту грамматику отладки с помощью AntlrWorks IDE Quick tutorial здесь.

Другие вопросы по тегам