2010-03-04 3 views
1

Как я могу узнать во время синтаксического анализа, какое правило в настоящее время сопоставляется? Я хотел бы автоматически создать XML (или другую объектную иерархию), представляющую анализируемый вход, используя имена правил, без необходимости использования действий или деревьев грамматики.ANTLR3 метаданные времени выполнения

Возможно ли это?

Большое спасибо, Яаков

ответ

0

AFAIK, это не представляется возможным. Но почему бы вам не использовать встроенную конструкцию дерева ANTLR? В части вашей грамматики options{ } добавьте output=AST; и используйте правила перезаписи, где это применимо. См .: http://www.antlr.org/wiki/display/~admin/2008/11/30/Example+tree+rewriting+with+patterns

+0

У меня очень большая грамматика, и я стараюсь избегать определения выражений построения дерева на ней. Я нашел методы EnterRule (ruleName) и ExitRule (ruleName) в IDebugEventListener, которые выполняются в режиме отладки (я считаю). У вас возникли какие-либо ощущения? Yaakov – 2010-03-04 15:56:00

+0

Яков, извините, я не ... –

Смежные вопросы