我想为 unicode 字符之间的范围定义词法分析器规则,这些字符的代码点需要超过四个十六进制数字才能识别。具体来说,我想声明以下规则:
ID_Continue : [\uE0100-\uE01EF] ;
不幸的是,它不起作用。此规则将匹配不在此范围内的字符。(我不确定这会导致什么确切的行为,但这不是我想要的。)我还尝试了以下方法(用前导零填充并使用 8 位数字):
ID_Continue : [\U000E0100-\U000E01EF] ;
但这似乎会导致相同的不良行为。
我正在使用 Antlr4 和 IntelliJ 插件进行测试。
Antlr4 不支持上面的 unicode 文字\uFFFF
吗?