Я недавно начал работать с XText. До сих пор я мог определить простую грамматику, заполнить JvmModelInferrer и сгенерировать соответствующие классы java и .java-файлы.Сгенерировать DSL-файл с XText из Java-модели
Можно ли автоматически генерировать DSL-файл (с учетом его грамматики) из набора пользовательских классов Java?
Позвольте мне привести простой пример.
У меня есть следующая грамматика:
MODEL:
entities+=ENTITY*
;
ENTITY:
'entity' name=ValidID 'as'
(elements+=PROPERTY)*
'end'
;
PROPERTY:
(many?='many')? 'property' name=ID 'of' type=JvmTypeReference
;
Если у меня есть следующие sample.myDsl
entity Book as
property title of String
property numPages of Integer
end
entity Author as
property name of String
property surname of String
end
Я получаю Book.java и файлы Author.java. В моем проекте у меня есть процессор, который анализирует java-файлы и создает из них объекты, поэтому, если я запустил процессор в предыдущих файлах Book.java и Author.java, я бы получил два экземпляра настраиваемого типа сущности Entity. Каждый экземпляр Entity имел бы набор экземпляров Property. Итак, модель Java очень похожа на грамматику xtext.
Возможно ли «передать» эти два объекта XText, возможно, определить Inferrer для указания переводов и с учетом того же файла грамматики .xtext, автоматически генерировать файл .myDsl?