識別に 4 桁以上の 16 進数が必要なコード ポイントを持つ Unicode 文字間の範囲の字句解析規則を定義したいと考えています。具体的には、次のルールを宣言したいと思います。
ID_Continue : [\uE0100-\uE01EF] ;
残念ながら、うまくいきません。このルールは、この範囲にない文字と一致します。(これがどのような正確な動作をもたらすかはわかりませんが、私が望むものではありません。)次のことも試しました(先行ゼロでパディングし、8桁を使用します):
ID_Continue : [\U000E0100-\U000E01EF] ;
しかし、それは同じ望ましくない動作をもたらすようです。
テスト用にAntlr4とIntelliJプラグインを使用しています。
Antlr4 は上記の Unicode リテラルをサポートしていません\uFFFF
か?