JAVA_UNICODE_ESCAPE 在 JavaCC 中的用途是什么?

What is the purpose of JAVA_UNICODE_ESCAPE in JavaCC?

JavaCC中JAVA_UNICODE_ESCAPE的作用是什么,我看了文档,解释的很模糊。

documentation 是这么说的:

JAVA_UNICODE_ESCAPE: This is a boolean option whose default value is false. When set to true, the generated parser uses an input stream object that processes Java Unicode escapes (\u...) before sending characters to the token manager. By default, Java Unicode escapes are not processed.

这是什么意思?

A Java Unicode转义是以\u开头,后跟4个十六进制数字的序列。在正常 Java 中,这样的序列被翻译成 UTF-16 代码单元。这种翻译发生在之前标记化,如JLS 3.3中所述。 (正如 JLS 所解释的,不在基本代码中的 Unicode 代码点需要表示为两个转义序列,代表 Unicode 代码点的 UTF-16 代理对。)

所以 JAVA_UNICODE_ESCAPE 选项基本上告诉 JavaCC 生成的词法分析器/解析器 是否应该以与 a 相同的方式进行 Unicode 转义处理Java 编译器会。默认是不处理 \uxxxx 转义序列。