我目前有一个项目,我必须制作自己的 DSL。我有我的 DSL,也有我的大部分验证。我被我想检查特定单词是否包含数字的事实所困扰。
我写了一个语法,它允许你创建以下代码:
Category Doors belongs to Group Car_Equiptment;
Category Engine belongs to Group Car_Equiptment;
Doors properties:
-5_Doors
-4_Doors
Engine properties:
-V8 180 "PS"
-V10 200 "PS"
这里的语法定义:
Category:
'Category' name=ID 'belongs' 'to' (group+=Group) ';'
;
PropHeader:
name=[Category] 'properties' ':'
(properties+=Properties)+
;
Properties:
'-' name=ID number=INT? description=STRING?
;
我应该控制用户不选择超过 5 个门的门属性。我可以毫无问题地获得属性名称,但我缺少一个帮助我检查字符串是否包含数字的功能。由于我有很多不同的属性,我不能只为门制作一个 ID。我必须通过 Validaiotn 检查是否存在名为 door 的属性(我已经有这部分),如果是,则任何字符串包含高于 5 的数字。