Это то, что документация говорит:
JAVA_UNICODE_ESCAPE: это логический параметр, значение по умолчанию которого равно false. Если задано значение true, сгенерированный синтаксический анализатор использует объект входного потока, который обрабатывает экранирование Java Unicode (\ u ...) перед отправкой символов в менеджер токенов. По умолчанию экранирование Java Unicode не обрабатывается.
Что это значит?
Экранирование Java Unicode - это последовательность, начинающаяся с \u
и сопровождаемая 4 шестнадцатеричными цифрами. В обычной Java такая последовательность преобразуется в кодовый блок UTF-16. Этот перевод происходит до токенизации, как описано в JLS 3.3 . (И, как объясняет JLS, кодовые точки Unicode, которые не входят в базовый код, должны быть представлены в виде двух escape-последовательностей, представляющих суррогатную пару UTF-16 для кодовой точки Unicode.)
Таким образом, опция JAVA_UNICODE_ESCAPE
в основном сообщает JavaCC, должен ли сгенерированный лексер / парсер выполнять обработку экранирования Unicode так же, как это делает компилятор Java. По умолчанию не обрабатываются escape-последовательности \uxxxx
.