ANTLR учебник
Начало работы с ANTLR
Поиск…
замечания
ANTLR (еще один инструмент для распознавания языков) - мощный генератор синтаксического анализатора для чтения, обработки, выполнения или перевода структурированных текстовых или двоичных файлов. Он широко используется для создания языков, инструментов и фреймворков. Из грамматики ANTLR генерирует синтаксический анализатор, который может строить и ходить деревья синтаксического анализа.
- Официальный сайт antlr (всегда указывает на последнюю версию)
Версии Antlr
Antlr разделяется на две большие части, грамматику (файлы грамматики) и сгенерированные файлы кода, которые выводятся из грамматики на основе целевого языка. Версия antlr находится в формате V1.V2.V3:
- V1: изменение в V1 означает, что новый синтаксис функций был введен в грамматических файлах
- V2: изменение в V2 означает, что в сгенерированные файлы были добавлены новые функции или основные исправления (например, добавление новых функций)
- V3: означает исправления ошибок или незначительные улучшения
Цели библиотек времени выполнения и цели генерации кода
Инструмент Antlr написан на Java, однако он способен генерировать парсеры и лексеры на разных языках. Для запуска анализатора и лексера вам также понадобится библиотека времени выполнения antlr наряду с парсером и лексерским кодом. Поддерживаемый целевой язык (и библиотеки времени выполнения):
Джава
C #
Python (2 и 3)
JavaScript
Версии
Версия | Дата выхода |
---|---|
2,0 | 1997-05-01 |
3.0 | 2011-01-19 |
4,0 | 2013-01-21 |
4,1 | 2013-07-01 |
4,2 | 2014-02-05 |
4.2.1 | 2014-03-25 |
4.2.2 | 2014-04-07 |
4,3 | 2014-06-19 |
4,4 | 2014-07-16 |
4.5 | 2015-01-23 |
4.5.1 | 2016-07-16 |
4.5.2 | 2016-01-30 |
4.5.3 | 2016-03-31 |
4,6 | 2016-12-15 |
4,7 | 2017-03-30 |
Привет, мир
Простую мировую грамматику приветствия можно найти здесь :
// define a grammar called Hello
grammar Hello;
r : 'hello' ID;
ID : [a-z]+ ;
WS : [ \t\r\n]+ -> skip ;
Чтобы создать этот образец .g4, вы можете запустить следующую команду из терминала / командной строки операционной системы:
Java -jar antlr-4.5.3-complete.jar Hello.g4
//OR if you have setup an alias or use the recommended batch file
antlr4 Hello.g4
Построение этого примера должно привести к следующему выводу в каталоге файлов Hello.g4:
- Hello.tokens
- HelloBaseListener.java
- HelloLexer.java
- HelloLexer.tokens
- HelloListener.java
- HelloParser.java
При использовании этих файлов в вашем собственном проекте обязательно включите файл jar ANTLR. Чтобы скомпилировать все эти файлы с помощью Java, в том же рабочем каталоге или по пути выполните следующую команду:
javac *.java