ANTLR (от англ. ANother Tool for Language Recognition — «ещё одно средство распознавания языков») — генератор нисходящих анализаторов для формальных языков. ANTLR преобразует контекстно-свободную грамматику в виде РБНФ в программу на C++, Java, C#, JavaScript, Go, Swift, Python. Используется для разработки компиляторов, интерпретаторов и трансляторов.
Преимущества
- Свободное программное обеспечение.
- Использование единой нотации для описания лексических и синтаксических анализаторов.
- Применение нисходящего, а не восходящего анализа.
- Удобство работы с абстрактным синтаксическим деревом.
- Предоставление сообщений об ошибках и восстановление после них.
- Наличие визуальных сред разработки (ANTLR Works, ANTLR Studio, плагинов к Eclipse и IntellliJ IDEA), которые позволяют создавать и отлаживать грамматики, поддерживают подсветку синтаксиса, автодополнение, визуальное отображание грамматик, строящееся в реальном времени по мере ввода, отладчик, рефакторинг.
Применение
ANTLR широко используется в крупных известных продуктах:
- Реализация языков программирования Groovy, Jython, Processing, Apex
- Анализ языков запросов в системах баз данных Hibernate HQL, Cassandra, Hive, Pig
- Анализ языков программирования в средах разработки: NetBeans C++, Oracle SQL Developer IDE, IntelliJ IDEA Clion.