ANTLR
Материал из Википедии — свободной энциклопедии
ANTLR — буквально Another Tool For Language Recognition (Ещё Одно Средство Распознавания Языков) — генератор парсеров, позволяющий автоматически создавать программу-парсер(как и лексический анализатор) на одном из целевых языков программирования(С++, Java, C#, Python, Ruby) по описанию LL(*)-грамматики на языке, близком к Рбнф. Позволяет конструировать компиляторы, интерпретаторы, трансляторы с различных формальных языков. Предоставляет удобные средства для восстановления после ошибок и сообщения о них. ANTLR — продолжение PCCTS(Purdue Compiler Construction Tool Set), который был разработан в 1989 г.
Содержание |
[править] Краткая справка элементов языка
(...) подправило
(...)* повторение подправила 0 или более раз
(...)+ Повторение подправила 1 или более раз
(...)? подправило, может отсутствовать
{...} семантические действия (на языке, использующемся в качестве выходного, напр. Java)
[...] параметры правила
| оператор альтернативы
.. оператор диапазона
~ отрицание
. любой символ
= присваивание
: метка, начало правила
; конец правила
[править] Пример простейшей программы
grammar T;//имя грамматики, должно совпадать с названием файла //нетерминальные символы: msg : 'name' ID ';' { System.out.println("Hello, "+$ID.text+"!"); } ; //терминальные символы ID: 'a'..'z' + ;//произвольное ( но >=1) количество букв WS: (' ' |'\n' |'\r' )+ {$channel=HIDDEN;} ; // пробел, перенос строки, табуляция
Основоположником проекта и его главным вдохновителем является проф. Теренс Парр (Terence Parr) из Университета Сан-Франциско. ANTLR — проект с открытым свободным кодом, версия 3.0 распространяется по лицензии BSD. Проект в настоящее время активно развивается.
Создатели ANTLR утверждают, что многие преимущества при определении действий для правил являются следствием того, что ANTLR осуществляет LL разбор, то есть использует разбор сверху вниз, в отличие от bison и gppg, которые используют разбор снизу вверх. Кроме того ANTLR выгодно отличается от других наличием визуальной среды разработки ANTLRWorks, позволяющей удобно создавать и отлаживать грамматики: это многооконный редактор, поддерживающий подсветку синтаксиса, автодополнение, визуальное отображание грамматик, строящееся в реальном времени по мере ввода, отладчик, инструменты для рефакторинга и т. д.
[править] См. также
[править] Ссылки
| Это незавершённая статья о программном обеспечении. Вы можете помочь проекту, исправив и дополнив её. |

