ANTLR 动作和语义谓词
示例
词法分析器操作是目标语言中由{...包围的任意代码块,该代码}在匹配期间执行:
IDENTIFIER: [A-Z]+ { log("matched rule"); };
语义谓词是目标语言中由{...包围的任意代码块}?,其结果为布尔值。如果返回的值为false,则跳过词法分析器规则。
IDENTIFIER: [A-Z]+ { identifierIsValid() }?;
出于性能原因,应尽可能在规则末尾定义语义谓词。
词法分析器操作是目标语言中由{...包围的任意代码块,该代码}在匹配期间执行:
IDENTIFIER: [A-Z]+ { log("matched rule"); };
语义谓词是目标语言中由{...包围的任意代码块}?,其结果为布尔值。如果返回的值为false,则跳过词法分析器规则。
IDENTIFIER: [A-Z]+ { identifierIsValid() }?;
出于性能原因,应尽可能在规则末尾定义语义谓词。