Какова цель JAVA_UNICODE_ESCAPE в JavaCC? - PullRequest
0 голосов
/ 03 ноября 2018

Какова цель JAVA_UNICODE_ESCAPE в JavaCC, я посмотрел документацию, и она объясняет это очень смутно.

1 Ответ

0 голосов
/ 03 ноября 2018

Это то, что документация говорит:

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.

...