在ANTLR中重用规则定义中的已分配标签

时间:2014-05-13 20:55:24

标签: antlr3

我有一条规则要匹配'FOR“hi”FOR'

rule : id1=ELEMENT STRING id1
{
   // action
} 
 -> ^(Tree rule)

但它没有提到对未定义规则的引用:id1 如何重用标签以确保规则的开头和结尾是相同的标识符

1 个答案:

答案 0 :(得分:1)

处理此问题的推荐方法是假设在解析时匹配值,然后在解析完成后检查AST,在此时针对任何不匹配的元素发出错误消息。

这种方法在写入的情况下产生更强大的解析器和更容易理解的错误消息。