Об этом проекте
ANTLR (ANother Tool for Language Recognition) — это генератор парсеров, используемый для чтения, обработки, выполнения или перевода структурированных текстовых или бинарных файлов. По грамматике он генерирует парсер, который может строить деревья разбора, а также генерирует интерфейс listener или visitor для реагирования на распознанные фразы. Проект заявляет, что широко используется для создания языков, инструментов и фреймворков.
Целевые языки: ANTLR 4 поддерживает 10 целевых языков — Cpp, CSharp, Dart, Java, JavaScript, PHP, Python3, Swift, TypeScript и Go. Каждый выпуск поставляет инструмент и все рантаймы одной версии для согласованного поведения. Поддержка Python 2 прекращена с версии 4.14. Для Go существует отдельный репозиторий для `go get` и `import`, при этом разработка Go-рантайма по-прежнему ведётся в основном репозитории.
Версии: В README отмечается, что версионирование строго не следует semver. Основные версии увеличиваются только при полных переписываниях (ANTLR3 на ANTLR4, LL(*) на ALL(*)). Минорные обновления могут включать небольшие ломающие изменения, и заявленная политика — перегенерировать парсеры при каждом выпуске. Обратная совместимость гарантируется только для патч-выпусков. Пользователям с semver-проверками в CI рекомендуется применять особые правила.
Структура репозитория: ветка `master` по умолчанию содержит последний стабильный выпуск с тегами релизов; ветка `dev` предназначена для разработки, и от неё следует ответвлять pull request'ы. Ветка `dev` сливается обратно в `master` для создания тегированного релиза.
Документация и ресурсы, на которые даются ссылки, включают примечания к выпускам, руководство по началу работы, официальный сайт, указатель документации, FAQ, страницу целевых языков, Java API, ANTLR v3 и FAQ по миграции с v3 на v4. Также есть страницы о сборке самого ANTLR и о создании и развёртывании релизов. В README упоминается книга «The Definitive ANTLR 4 Reference» и её исходный код, а также отдельный репозиторий grammars-v4 — коллекция грамматик, названных по имени языка в нижнем регистре (например, java, cpp, csharp, c).
Среди перечисленных участников: Terence Parr (руководитель проекта), Sam Harwell, Eric Vergnaud, Peter Boyer, Mike Lischke, Dan McLaughlin, David Sisson, Janyou, Ewan Mellor, Hanzhou Shi, Ben Hamilton, Marcos Passos, Lingyu Li, Ivan Kochurkin, Justin King, Ken Domino и Jim Idle, с указанием областей вклада, таких как конкретные целевые языки, поддержка Unicode, обработка ошибок и производительность.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.