JavaCC中的JAVA_UNICODE_ESCAPE的用途是什么,我看了一下文档,并对其进行了模糊的解释。
答案 0 :(得分:4)
这是documentation所说的:
JAVA_UNICODE_ESCAPE:这是一个布尔选项,其默认值为false。设置为true时,生成的解析器使用一个输入流对象,该对象在将字符发送到令牌管理器之前处理Java Unicode转义(\ u ...)。默认情况下,不处理Java Unicode转义。
那是什么意思?
Java Unicode转义是一个序列,该序列以\u
开头,后跟4个十六进制数字。在普通的Java中,这样的序列被翻译成UTF-16代码单元。如JLS 3.3中所述,此翻译发生在标记化之前 。 (并且正如JLS解释的那样,不在基本代码中的Unicode代码点需要表示为两个转义序列,这些转义序列表示Unicode代码点的UTF-16代理对。)
因此JAVA_UNICODE_ESCAPE
选项基本上告诉JavaCC 生成的词法分析器/解析器是否应该以与Java编译器相同的方式进行Unicode转义处理。默认值为不处理\uxxxx
转义序列。