動作和語義謂詞

詞法分析器動作是由 {} 包圍的目標語言中的任意程式碼塊,在匹配期間執行:

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

語義謂詞是由 {}? 包圍的目標語言中的任意程式碼塊,其評估為布林值。如果返回的值為 false,則跳過詞法分析器規則。

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

出於效能原因,應儘可能在規則末尾定義語義謂詞。