Я работал над учебниками по eclipse.org/Xtext/documentation и расширил эти образцы. Работая с образцом Domainmodel.xtext, я генерирую Java-Classfile для каждого объекта, как указано в Tut.XTEND For-Loop indexcontrol в DomainmodelGenerator.xtend (проект преобразования кодов XTEXT)
Маршрутизатор DSL указывает arbitry ряд особенностей, ака свойств класса:
Entity:
'entity' name = ID
('extends' superType = [Entity | QualifiedName])?
'{'
(features += Feature)*
'}'
;
В DomainmodelGenerator.xtend Затем я добавил код для генерации JAVA-classconstructor. Циклы XTEND-Forloop через все - заданы параметры выглядят следующим образом:
def compile_Constructors(Entity e) '''
public «e.name.toFirstUpper»
(
«FOR f : e.features»
«f.type.fullyQualifiedName» «f.name.toFirstUpper»,
«ENDFOR»
)
{}
'''
Проблема При этом последний параметр есть еще запятая излучается. Как я могу получить контроль над XTEND над loopindex, чтобы заставить генератор испускать законный JAVA-код?
элегантный отлично работает. Я продолжал читать документацию XTEND. Узнал MultiLineString с «» «„“» называется шаблоном, для-Луп Синтаксис покрывает это требование с элегантным синтаксисом: '\t четкости compile_Constructors (Entity е)„“» общественности «e.name.toFirstUpper » ( \t \t« ЗА F: e.features СЕПАРАТОРА "" » \t \t«f.type.fullyQualifiedName» «f.name.toFirstUpper» \t \t«ENDFOR» ) { \t } ' – olippuner
жалкие обратные ссылки для кода не работали, и я запускаю 5-минутный тайм-аут для комментариев. – olippuner