Как использовать xtext и xpand вместе

У меня довольно глупый вопрос. Я использую xtext для определения простого dsl и Xpand для генерации кода.

Теперь я хочу использовать xpand для чтения моих моделей dsl и генерации кода. Как я могу это сделать?

Я прочитал много руководств, в которых говорилось, что я могу просто сделать это, создав новый проект xtext из мастера. Затем среди прочих будет создан следующий проект:

org.xtext.example.domainmodel.генератор.

А внутри генератор выглядит вот так:

  • src
    • model (place the dsl model)
    • шаблоны (разместите шаблон для генератора кода)
    • рабочий процесс (файл рабочего процесса)

Затем я просто запускаю рабочий процесс и генерирую код из файла dsl. Это просто и легко.

Моя проблема в том, что когда я создаю новый проект xtext, я не получаю org.xtext.example.domainmodel.generator. проект. У меня есть только следующие четыре:

org.xtext.example.domainmodel

org.xtext.example.domainmodel.sdk

org.xtext.example.domainmodel.tests

org.xtext.example.domainmodel.ui

Итак, как я могу создать файл org.xtext.example.domainmodel.generator???


person panipsilos    schedule 29.06.2013    source источник


Ответы (2)


Какие учебники вы имеете в виду? (ссылки, пожалуйста) И они действительно говорят о проекте генератора? Говорить о пакете org.xtext.example.domainmodel.generator внутри проекта org.xtext.example.domainmodel — обычное дело.

person A.H.    schedule 30.06.2013
comment
В основном я имею в виду официальное руководство по Eclipse: help.eclipse.org/helios/ Создан проект с именем: org.eclipse.xtext.domainmodel.generator, который содержит следующие пакеты: модель, шаблоны, рабочий процесс. Мне удалось создать пакет генератора, добавив в рабочий процесс следующую строку: фрагмент = генератор.GeneratorFragment auto-inject { generateMwe = true Могу ли я просто создать пакеты модели и шаблона и поместить туда свою модель и шаблоны? - person panipsilos; 01.07.2013
comment
@panipsilos: Просто чтобы прояснить ситуацию: вы действительно используете Helios? Или вы просто случайно связались с файлами справки Helios? Потому что версия Xtext/Helios довольно устарела, и особенно материал генерации кода был значительно изменен. Это также объясняет, почему вы пропустили проект генератора — в современном Xtext его нет. - person A.H.; 01.07.2013
comment
Правильно, я использую Eclipse galileo. Я заметил, что проект устарел. Я тщетно пытался настроить новую версию xtext для совместной работы с xpand, но безуспешно заметил, что теперь xtext (по крайней мере, в версии Galileo) поддерживает xtend из коробки. Поэтому я перешел на xtend. - person panipsilos; 02.07.2013

Вероятно, не относится к оригинальному человеку, который спросил это :), но у меня была похожая проблема, и причина была в том, что в моей грамматике расширен xbase.

При расширении сборки xbase mwe2 пропускает генерацию заглушки генератора и вместо этого использует генерацию кода xbase (анализатор antlr, сериализатор и т. д.)

person Arnon Rotem-Gal-Oz    schedule 05.02.2014