XTextで開発するためにこのような要件があります
次のようなPOJOクラスのセットがあります(これについて図を描くことができませんでした。これが明確であることを願っていますenf)
( A_POJO ) ------- Level 1
( B_POJO extends A_POJO ) ------- Level 2
( C_POJO extends A_POJO ) ------- Level 2
( D_POJO extends C_POJO ) ------- Level 3
( E_POJO extends C_POJO ) ------- Level 3
( F_POJO extends C_POJO ) ------- Level 3
そして、このDSLを開発するEclipseのクラスパスにこのPOJOクラスを配置します。そして、私のチャラージュはdevelopa文法ファイルが次のように見えることです
(B_POJO or child class of it) name=ID {
[
(C_POJO or child class of it) name=ID {Attribute of (C_POJO)}
(C_POJO or child class of it) name=ID {Attribute of (C_POJO)}
(C_POJO or child class of it) name=ID {Attribute of (C_POJO)}
(C_POJO or child class of it) name=ID {Attribute of (C_POJO)}
(C_POJO or child class of it) name=ID {Attribute of (C_POJO)}
]
}
サンプルは次のようになります
User xx {
[
vField userName {length=25}
vField firstName {length:50}
vField otherNames {length:100}
vField password {length:25}
vField email {length:100}
]
}
指定された POJO から駆動されるこの種の動的な作業のために xText グラマーを実行する方法については、どんなアイデアでも本当に感謝しています。