Какова цель JAVA_UNICODE_ESCAPE в JavaCC?
Какова цель JAVA_UNICODE_ESCAPE в JavaCC, я посмотрел на документацию, и она объясняет это очень смутно.
1 ответ
Вот что говорится в документации:
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
option в основном сообщает JavaCC, должен ли сгенерированный лексер / парсер выполнять обработку экранирования Unicode так же, как это делает компилятор Java. По умолчанию не обрабатывается \uxxxx
escape последовательности