Что значит? означает в разделе токенизации спецификации W3C CSS?

С тех пор, как я испытал ужасный опыт работы с cssparser, я поставил себе задачу реализовать синтаксический анализатор CSS на Java с использованием Parboiled . У меня уже есть все спецификации цвета, но, конечно, мне нужно все остальное ...

Итак, я пошел искать спецификацию CSS и нашел ее на веб-сайте W3C . Сейчас я пишу правила для всех «атомов», но обнаружил что-то тревожное в этом разделе :

UNICODE-RANGE   u\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})?

Меня беспокоит то, что меня беспокоит, - это вопросительный знак в [0-9a- f?] .

В заголовке абзаца говорится, что используемые здесь регулярные выражения написаны в стиле Lex. ? не имеет особого значения в классе символов (спасибо @scizzo за подтверждение). Итак, это опечатка в спецификации W3C, или ? действительно разрешено в диапазоне Unicode? Если да, что это значит?

Заключение : У меня есть ответ. Однако спецификация неверна : «диапазон Unicode с вопросительным знаком» может быть только сам по себе. Учитывая приведенное выше регулярное выражение, это выражение будет разрешено, хотя оно явно недопустимо: u + 4 ?? - 733f

6
задан Paul Sweatte 21 October 2012 в 09:03
поделиться