Я хотел бы определить язык с различными элементами, которые должны содержаться в разных типах файлов, хотя и связаны (т.е. аналогично C++ с файлами .cpp и .h). Является ли грамматический микс правильным способом сделать это? Если да, то как мне поступить?
XText несколько расширений файлов
comment
Возможно, эта статья будет полезна
- person wilddev   schedule 10.10.2012
Ответы (1)
Различные элементы в разных типах файлов звучат как вариант использования Grammar Mixins. Базовая грамматика должна определять языковые концепции, общие для обоих языков, а подъязыки наследуются от базовой грамматики.
В идеале создайте метамодель Ecore, написанную вручную, и сопоставьте с ней концепцию (т. е. не используйте «создать»).
Начиная с версии 2.10, Xtext поддерживает фрагменты правил парсера. Это означает, что вы можете определять определенные многократно используемые части правил с помощью ключевого слова «фрагмент». См. https://github.com/eclipse/xtext-core/blob/761ffeac7e62525be5a5473988d7f1d577298b67/org.eclipse.xtext.tests/src/org/eclipse/xtext/parser/fragments/FragmentTestLanguage.xtext.
person
kthoms
schedule
15.08.2016