2015-02-16 5 views
0

Метод Xtext doGenerate принимает org.eclipse.emf.ecore.resource.Resource как представление файла для компиляции. Это по сути абстрактное синтаксическое дерево. В нашем приложении у нас уже есть компилятор, который преобразует java.io.Reader в свою собственную структуру АСТ, а затем делает остальную часть компиляции.Как подключить Xtext к существующему компилятору?

Итак, вопрос в том, что является лучшим способом подключения редактора Xtext к существующему компилятору?

Наше нынешнее мышление состоит в том, что если бы мы могли конвертировать ecoreResource в Reader, тогда мы могли бы сгенерировать оттуда. Но можно ли это сделать? Должно ли это быть сделано? Или есть лучший подход?

ответ

2

Да, это звучит как разумный подход. Возможно, вы захотите передать ресурс XtextResource, попросите его указать его IParseResult и использовать корневой узел для получения базового текста. Передача этого с помощью StringReader в существующую инфраструктуру должна быть прекрасной.

Обратите внимание, что генератор Xtext использует пользовательскую абстракцию над файловой системой Eclipse. Если ваш компилятор хочет записать в рабочую область/в проект Eclipse, вы можете адаптироваться к этому API. В противном случае вы столкнетесь с проблемами с моделью ресурсов Eclipse.

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