Я смотрел на синтаксис CSS здесь и здесь и был поражен, увидев и производство маркеров, и грамматику, замусоренную пробельными декларациями. Обычно пробельные символы определяются один раз в лексере и пропускаются, чтобы их больше никогда не было видно. Комментарии от первого лица.
Я представляю, что ориентация на пользователей-агентов, а не на настоящих компиляторов, является здесь частью мотивации, а также требованием действовать перед лицом ошибок, но все же это кажется довольно странным.
Реальные ли БД, которые разбирают CSS, на самом деле реализованы в соответствии с этой (этими) грамматикой?
EDIT: причиной для вопроса на самом деле являются различные реализации LESS. less.js
не понимает последовательных комментариев, а lessc.exe
не понимает комментариев внутри селекторов. В связи с этим они даже не могут корректно разобрать CSS, как бы это ни было определено. Поэтому я пошел посмотреть, какова действительная грамматика CSS и ...