Xtext - 如何将值约束在特定范围内?

时间:2017-10-24 10:49:20

标签: eclipse validation range dsl xtext

我在Xtext中开发简单的DSL语言,类似于JSON或标记语言。我想在编辑自定义语言项目时自动验证输入的整数值范围。例如,我有属性"超时",我想提供从100到1000的约束。我知道终端规则,但它只允许验证单个数字字符:从0到9.实际上,我可以写下这样的东西:

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

表示一定数量的数字'数字,但我不认为这是一个聪明的解决方案。

是否有可能为这些范围制定规则?

1 个答案:

答案 0 :(得分:0)

您可以通过绑定IValueConverter在guice中为RANGE终端规则注册自定义IValueConverterService

或者您在使用RANGE作为属性的所有地方实施语义验证。