JavaCC中JAVA_UNICODE_ESCAPE的用途是什么



JavaCC中JAVA_UNICODE_ESCAPE的目的是什么,我看过文档,它解释得很含糊。

这就是文档中所说的:

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,生成的lexer/parser是否应该以与Java编译器相同的方式进行Unicode转义处理。默认情况是不处理uxxxx转义序列。

最新更新