2015-03-07 3 views
0

Я построил грамматику antlr v4 для разбора файлов Cobol. Он протестирован и полностью работоспособен. Теперь мне нужно адаптировать его для использования в проекте XText (к сожалению, использует antlrv3). Как я могу добиться этого, не обращая внимания на мою грамматику (и потеряв всех уже построенных слушателей и посетителей)?Как я могу адаптировать уже построенный парсер antlr4 Cobol в интерфейсы antlr3

После нескольких размышлений о проблеме мне интересно, есть ли способ генерировать интерфейсные адаптеры antlr v3 для использования antrr v4 Parser и Lexer. Если это так, я могу «настроить» XText, поэтому он будет использовать мои уже построенные классы antlrv4 через этот интерфейс адаптера.

Кто-нибудь уже сделал что-то подобное?

+0

Мне очень хотелось бы видеть в грамматике ... Во всяком случае, AFAIK COBOL не является LL (n) для любого заданного n, и это исключает возможность использования antlr3, вам нужно будет запустить antlr4, так как backporting грамматика к v3 просто невозможно. Ваш единственный шанс - настроить XText на использование реального antlr4. –

+0

Благодарим за внимание. Backporting - это не один из моих вариантов ... Идея заключалась в том, чтобы настроить XText на самом деле. О самой грамматике, как я упоминал ранее, я не могу поделиться ею. Но я могу сказать вам, что это не полная грамматика. Мне пришлось расслабиться ** много ** из правил синтаксиса правила COBOL, чтобы он работал. Но это сработало для моего проекта, так что все в порядке. – gilcesar

ответ

0

В настоящее время мы работаем над этой проблемой. Есть ли возможность взглянуть на ваш файл грамматики?

+0

К сожалению, я не могу поделиться самой грамматикой, но мы могли бы обменяться мыслями. Я рассматриваю проблему с концептуальной и реалистической точки зрения. Поскольку у нас есть классы antlr4 java для грамматики, можно реализовать (или расширить) некоторые классы antlr3 для «вызова» классов antlr4. Это общая идея ... – gilcesar