Xtext 文法ではセマンティック述語を指定できません。さらに、Xtext に任意のアクション (ターゲット言語のコード ブロックを読む) を含めることはできません。サポートされているターゲット プラットフォームは Java のみです。
良いニュースは、Xtext がこれらの制約を誘発することで大きな利益を得ることです。たとえば、文法に一致する任意のモデル/構文グラフをシリアル化できるアンパーサーを取得できます。構文グラフについて言えば、Xtext を使用すると、IDE で編集できる言語の型付き AST を取得できます。
Xtext の表現でユニークな文法機能は、順序付けられていないグループです。つまり、文法内の特定の要素が任意の順序で発生する可能性があるが、それぞれが 1 回だけ発生する可能性があることを直接表現できます。Java修飾子について考える場合、これは非常に便利かもしれません:
visibility=('public'|'private') // this is a mandatory assignment
& abstractOrFinal=('abstract'|'final')? // this is optional
& static?='static'? // this will become a boolean value in your ast
文法言語の詳細については、Xtext ドキュメントを参照してください。