Отладка 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 здесь.