ANTLR

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
ANTLR
Тип

Компилятор компиляторов

Автор

Терренс Парр и другие

Написана на

Java

Первый выпуск

Февраль 1992

Аппаратная платформа

Кроссплатформенное программное обеспечение

Последняя версия

4.2 (3 февраля 2014)

Состояние

в разработке

Лицензия

BSD

Сайт

antlr.org

ANTLR (от англ. ANother Tool for Language Recognition — «ещё одно средство распознавания языков») — генератор нисходящих анализаторов для формальных языков. ANTLR преобразует контекстно-свободную грамматику в виде РБНФ в программу на C++, Java, C#, Python, Ruby[1]. Используется для разработки компиляторов, интерпретаторов и трансляторов.

Преимущества[править | править вики-текст]

Применение[править | править вики-текст]

ANTLR широко используется в крупных известных продуктах:

Краткая справка элементов языка[править | править вики-текст]

(...) подправило
(...)* повторение подправила 0 или более раз
(...)+ Повторение подправила 1 или более раз
(...)? подправило, может отсутствовать
{...} семантические действия (на языке, использующемся в качестве выходного - напр., Java)
[...] параметры правила
| оператор альтернативы
.. оператор диапазона
~ отрицание
. любой символ
= присваивание
: метка начала правила
; метка конца правила

Пример простейшей программы[править | править вики-текст]

grammar T;//имя грамматики, должно совпадать с названием файла
//нетерминальные символы:
msg : 'name' ID ';' 
	{
		System.out.println("Hello, "+$ID.text+"!");
	} ;
//терминальные символы
ID: 'a'..'z' + ;//произвольное ( но >=1) количество букв
WS: (' ' |'\n' |'\r' )+ {$channel=HIDDEN;} ; // пробел, перенос строки, табуляция

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  1. Таблица поддерживаемых языков

.

Литература[править | править вики-текст]

  • The Definitive ANTLR Reference: Building Domain-Specific Languages, ISBN 978-0-9787392-5-6 by Terence Parr. Pragmatic Bookshelf, 2007

Ссылки[править | править вики-текст]