JavaCC中JAVA_UNICODE_ESCAPE的作用是什么?

时间:2018-11-03 11:21:27

标签: java compiler-construction javacc

JavaCC中的JAVA_UNICODE_ESCAPE的用途是什么,我看了一下文档,并对其进行了模糊的解释。

1 个答案:

答案 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转义序列。