假设我想用ANTLR4解析单个点:
grammar Point;
point : '(' INT ',' INT ')';
INT : [0-9]+;
如果我能将第一个INT命名为x
而第二个INT命名为y
,那就太好了。有没有办法命名它们,所以我可以在代码中更优雅地访问它们?
由于
答案 0 :(得分:1)
您可以使用标签:
point : '(' x=INT ',' y=INT ')';
这对令牌的效果相当不错,但对于解析器规则,如果在解析过程中抛出异常,则可能无法设置标签。换句话说,请避免以下情况:
point
: '('
x=INT // this is fine
','
y=id // avoid: y might not be set if an exception occurs while parsing `id`
')';