Antlr4 antlrv4中的值匹配

Antlr4 antlrv4中的值匹配,antlr4,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 ')' ')'; 我需要第一个和第二个变量名相等 是否有类似的标记强制s1和s3值相同?如果


我正在尝试为正在使用的逻辑创建解析器。
我有一个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 ')' ')';
我需要第一个和第二个变量名相等


是否有类似的标记强制s1和s3值相同?

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

rule : x=VAR_NAME y=VAR_NAME { $x.equals($y) }? ; // presuming Java backend
标签便于区分规则元素,否则可以直接使用规则元素名称