我完成了 eclipse.org/Xtext/documentation 上的教程并开始扩展这些示例。使用 Domainmodel.xtext 示例,我为每个实体生成一个 Java-Classfile,如 Tut 中所述。
DSL 指定了任意数量的特性,也就是类属性:
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 代码?