ANTLR 动作和语义谓词

示例

词法分析器操作是目标语言中由{...包围的任意代码块,该代码}在匹配期间执行:

IDENTIFIER: [A-Z]+ { log("matched rule"); };

语义谓词是目标语言中由{...包围的任意代码块}?,其结果为布尔值。如果返回的值为false,则跳过词法分析器规则。

IDENTIFIER: [A-Z]+ { identifierIsValid() }?;

出于性能原因,应尽可能在规则末尾定义语义谓词。