我的语言有某些关键字,它们只接受特定长度范围的值(例如,5 到 10 个十进制数)。此 ID 正确:
KeyWord = 01234
这是不正确的:
KeyWord = 1234
我有一个规则;
KeyWord:
'KeyWord' '=' INT+;
如何限制INT可以重复的次数?如果它是一种更像正则表达式的语法,这会容易得多
我的语言有某些关键字,它们只接受特定长度范围的值(例如,5 到 10 个十进制数)。此 ID 正确:
KeyWord = 01234
这是不正确的:
KeyWord = 1234
我有一个规则;
KeyWord:
'KeyWord' '=' INT+;
如何限制INT可以重复的次数?如果它是一种更像正则表达式的语法,这会容易得多
我会将其实现为验证检查,而不是尝试将其适应语法本身。见http://www.eclipse.org/Xtext/documentation/2_1_0/050-validation.php
这将导致更好的错误恢复和更好的错误消息。它甚至允许快速修复。