私は eclipse.org/Xtext/documentation のチュートリアルに取り組み、これらのサンプルを拡張していきました。Domainmodel.xtext サンプルを使用して、チュートリアルで説明されているように、エンティティごとに Java クラスファイルを生成します。
DSL は任意の数の機能 (別名クラス プロパティ) を指定します。
Entity:
'entity' name = ID
('extends' superType = [Entity | QualifiedName])?
'{'
(features += Feature)*
'}'
;
DomainmodelGenerator.xtend に、JAVA クラス コンストラクターを生成するコードを追加しました。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 コードを発行できるようにするにはどうすればよいですか?