检测多个存在时匹配的规则

时间:2015-11-30 05:25:26

标签: antlr antlr4

我有一个antlr4规则,有两个可能的扩展:

expr := term + term | term * term ;

我想写一个访问此规则的访问者:

public T visitExpr (MyParser.ExprContext ctx) { ... }

visitExpr内,如何检测哪个扩展规则匹配?

1 个答案:

答案 0 :(得分:1)

标记与感兴趣的子规则不同的内容:

expr : term p=PLUS term 
     | term m=MUL term 
     ;

或标记子规则

expr : term PLUS term #plus
     | term MUL term  #mult
     ;