2017-10-24 26 views
0

JSONやマークアップ言語に似た簡単なDSL言語をXtextで開発します。カスタム言語プロジェクトの編集中に入力された整数値の範囲を自動的に検証したい例えば、私は属性「タイムアウト」を持っており、100から1000までの制約を与えたいと思います。私は端末の規則を知っていますが、0から9までの単一の数字の検証だけが可能です。Xtext - 値を特定の範囲に制限する方法は?

terminal RANGE : 
    ('0'..'9')('0'..'9')('0'..'9') | ('0'..'9')('0'..'9')('0'..'9')('0'..'9') 

特定の桁数の数値を表現することはできますが、それは巧妙な解決策ではないと思います。

このような範囲でルールを作成する可能性はありますか?

答えて

0

お客様のRANGE端末規則にカスタムIValueConverterをguiceのバインドIValueConverterServiceで登録することができます。

また、属性としてRANGEを使用するすべての場所でセマンティック検証を実装します。

+0

ValueConverterが面白そうです。そのようなバインディングを作成するテンプレートはありますか? – Morpheus

+0

tmf xtextフォーラムの中には十分なものがなければならず、デフォルトのインプリメンテーションも例として扱うことができます –

関連する問題