Что это такое?
Doctrine Lexer — это базовая PHP-библиотека для создания лексеров, то есть компонентов, которые превращают исходный текст в токены. Она предназначена для нисходящих парсеров с рекурсивным спуском.
Это инструмент, который можно запустить, или код, на котором я строю своё решение?
Код, на котором вы строите своё решение: это базовая библиотека, поэтому вы расширяете её, чтобы написать лексер для собственной грамматики. Здесь нет команды для запуска и нет пользовательского интерфейса.
Как добавить её в свой проект?
Она распространяется как пакет Composer: подключите её командой 'composer require doctrine/lexer' — больше ничего собирать или настраивать не нужно.
Она тянет за собой другие зависимости?
Нет — у библиотеки нет собственных зависимостей: это небольшой самодостаточный код на чистом PHP.
Где её реально используют?
Внутри экосистемы Doctrine: она обеспечивает лексер для Doctrine Annotations и парсер языка запросов DQL в Doctrine ORM.
Что делает лексер внутри Doctrine ORM?
Он отвечает за слой токенизации, благодаря которому Doctrine ORM читает DQL — свой язык запросов, похожий на SQL: запрос разбивается на токены и разбирается до выполнения.
Проект активно поддерживается?
Он есть на GitHub с 2013 года, набрал около 11 тыс. звёзд, и по нему работает автоматизированный CI: проверка стандартов кодирования, Composer lint, статический анализ и непрерывная интеграция.
What are similar projects?
parsedown, antlr4, PHP-Parser, compromise, nom, pypdf, acwj, acorn
Which topics is it in?
composer, tokenizer, annotations, parsing, text-processing, parser, orm, php, computer-science, compiler, library, developer-tools