Antlr v4中的值匹配

时间:2015-06-05 14:55:46

标签: antlr4


我正在尝试为我正在使用的逻辑创建一个解析器 我有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值相同?

1 个答案:

答案 0 :(得分:0)

如果两个变量不相同,则使用谓词使规则失败。基本形式是:

rule : x=VAR_NAME y=VAR_NAME { $x.equals($y) }? ; // presuming Java backend

标签可以方便地区分规则元素 - 否则您可以直接使用规则元素名称。