1
我正在嘗試爲unicode兼容標識符編寫ANTLR 4令牌規則。在我看來,在java.lang.Character中有一個標識符開始和標識符繼續字符的概念;是否有與這些概念相對應的內置ANTLR 4字符類?我已經爲grepped'isUnicodeIdentifierStart'的源代碼沒有成功。ANTLR是否有內置unicode標識符開始和標識符繼續字符集的規則?
我正在嘗試爲unicode兼容標識符編寫ANTLR 4令牌規則。在我看來,在java.lang.Character中有一個標識符開始和標識符繼續字符的概念;是否有與這些概念相對應的內置ANTLR 4字符類?我已經爲grepped'isUnicodeIdentifierStart'的源代碼沒有成功。ANTLR是否有內置unicode標識符開始和標識符繼續字符集的規則?
不,ANTLR 4集文字不支持像正則表達式這樣的字符類。
嗯......我想我在問一個稍微不同的問題,但你可能已經回答了。我不是在尋找正則表達式本身,而只是爲了像UNICODE_IDENT_START這樣的內置常量。我當前的語法對於ident-start和ident-continue字符集都有ANTLR規範,它們分別長500和800行。在我看來,這對於任何在ANTLR中構建基於unicode的解析器的人來說都必須是一個共同的要求。也許這應該採取拉請求的形式? –
ANTLR 4的目標是比以前的版本更獨立於目標語言,因此將語義轉換綁定到特定的Java常量在語法級別上是沒有意義的。您在正則表達式引擎中看到的更一般的Unicode字符類將會有意義。 –
是的,除了Java特有的字符類,Java似乎還包含一個與Unicode標準附錄#31相對應的概念(isUnicodeIdentifierStart),儘管我找不到任何專門引用Unicode文檔的Java文檔。 –