我正在尝试为我正在使用的逻辑创建一个解析器
我有Pb的表达形式如下:
Ag(s1,SC(s3,s2,p))
我想确保s1 = s3。
但是,s1是一个定义为
VAR_NAME : [a-zA-Z]+[a-zA-Z0-9]*;
因此规则是这样的:
s : 'Ag' '(' VAR_NAME ',' 'SC' '(' VAR_NAME ',' VAR_NAME ',' pathformula ')' ')';
我需要第一个和第二个VAR_NAME相等!
是否有标签强制s1和s3值相同?
答案 0 :(得分:0)
如果两个变量不相同,则使用谓词使规则失败。基本形式是:
rule : x=VAR_NAME y=VAR_NAME { $x.equals($y) }? ; // presuming Java backend
标签可以方便地区分规则元素 - 否则您可以直接使用规则元素名称。