ANTLR (от англ. Another Tool For Language Recognition — «ещё одно средство распознавания языков») — генератор парсеров, позволяющий автоматически создавать программу-парсер (как и лексический анализатор) на одном из целевых языков программирования (C++, Java, C#, Python, Ruby) по описанию LL(*)-грамматики на языке, близком к РБНФ. Позволяет конструировать компиляторы, интерпретаторы, трансляторы с различных формальных языков. Предоставляет удобные средства для восстановления после ошибок и сообщения о них. ANTLR — продолжение PCCTS (Purdue Compiler Construction Tool Set), который был разработан в 1989 г.
Основоположником проекта и его главным вдохновителем является проф. Теренс Парр (Terence Parr) из Университета Сан-Франциско. ANTLR — проект с открытым свободным кодом, версия 3.0 распространяется по лицензии BSD. Проект в настоящее время активно развивается.
Создатели ANTLR утверждают, что многие преимущества при определении действий для правил являются следствием того, что ANTLR осуществляет LL разбор, то есть использует разбор сверху вниз, в отличие от bison и gppg, которые используют разбор снизу вверх. Кроме того, ANTLR выгодно отличается от других подобных программ наличием визуальной среды разработки ANTLRWorks, позволяющей удобно создавать и отлаживать грамматики: это многооконный редактор, поддерживающий подсветку синтаксиса, автодополнение, визуальное отображание грамматик, строящееся в реальном времени по мере ввода, отладчик, инструменты для рефакторинга и т. д.
Из википедии
Список где используется ANTLR указан по адресу: http://www.antlr.org/showcase/list
Вот что написано по этому адресу:
- Используется в проекте Google App Engine (Python) - представленный Теренс Парр чт 14 января 2010 14:39. SDK Python App Engine использует эту библиотеку для анализа конфигурации расписания задач Cron. App Engine предоставляет библиотеку Antlr 3.1.1 для Python.
- http://code.google.com/intl/ru/appengine/docs/python/tools/libraries.html
- Используется и командой JetBrain в продукте Intellij IDEA и других их проектах
- В продуктах компании Apple — Xcode «Apple унаследовала огромное ProjectBuilder от NeXTStep и добавила много ...»
- IBM Tivoli Identity Manager (TIM) Александр Амис Чт 23 октября 2003 17:40 IBM Tivoli Identity Manager обеспечивает основанное на политиках управление идентификацией по …
- В компании ORACLE - BEA WebLogic сб 14 июня 2003 10:55 BEA / WebLogic люди используют для ANTLR JSP разбора и многое другое в …
- Yahoo! Язык запросов Представлено Теренс пт 7 августа 2009 16:50 Yahoo! Использует ANTLR для его языка запросов. Yahoo! Язык запросов Yahoo подобен SQL, который позволяет создавать запросы с фильтрацией и соединениями (JOIN) к данным через веб-сервисы.
И еще много где.
Главная часть проекта — генератор парсеров представляет из себя консольную программу, которой на вход подается файл с описанием грамматики конечного компилятора. Генератор читает этот файл, и в ответ генерирует исходные коды компилятора или ошибки, если грамматика нарушена.
ANTLR поддерживает несколько языков программирования, для которых можно генерировать парсеры
(на дату 30-04-2010, http://www.antlr.org/wiki/display/ANTLR3/Code+Generation+Targets):
- JAVA - Поддерживается полностью и разрабатывается синхронно с ANTLR
- C/C++ - Разрабатывается синхронно с ANTLR
- C# - Разрабатывается синхронно с ANTLR, имеет две различные реализации: для .Net 1.1 и .Net 2.0
- Objective C - В настоящее время догоняет релиз
- Python - Разрабатывается синхронно с ANTLR, отсутствуют некоторые возможности
- Ruby - Последняя рабочая версия v3.0ea7
- Perl - Легкий прототип, лексический анализатор работает
- Perl6 - Не активно разрабатывается
- PHP - В очень ранней разработке - альфа, некоторые примеры работают
- Oberon - Планируется и анализируется, первая версия заявлена в 2007.
- Ada95 - Частично реализовано
- ActionScript - Разрабатывается синхронно с ANTLR
- JavaScript - Разрабатывается синхронно с ANTLR
- Delphi - Прототип разработки.
На текущий момент созданы грамматики для следующих языков:
(на дату 30-04-2010, http://www.antlr.org/grammar/list)
|
|
Как пользоваться ANTLR будет позже
Графические средства
ANTLRWORKSХорошим дополнением к данному генератору является графическая среда разработки — ANTLRWORKS.
ANTLRWorks является средой разработки для грамматики ANTLR версии 3, написана Жаном Бовэ (Jean Bovet) (с предлагаемыми вариантами использования с Теренс Парр). Сочетает в себе редактор ориентированный на грамматику ANTLR, отладчик для изоляции грамматических ошибок, и графическое отображение грамматик.
ANTLRWorks помогает устранить не детерминированные грамматики, одну из самых трудных задач для начинающих, так и для экспертов, обращая внимание на не детерминированные пути в синтаксической диаграмме, связанные с грамматикой.
Цель ANTLRWorks является сделать более доступную разработку грамматик для среднего программиста, улучшение читаемости грамматик, предоставляя отличную навигацию по грамматике и средства рефакторинга, а также возможность решить наиболее распространенные вопросы и проблемы, с которыми сталкиваются разработчики грамматики.
ANTLRWORKS обладает следующими возможностями:
- Подсветка синтаксиса
- Навигация дереву правил грамматики (outline)
- Переход к правилу и лексеме
- Нахождение используемых правил и лексем
- Автоматические дополнения
- Автоматический отступ
- Рефакторинг - нахождение/удаление левых рекурсий, и т.д. ...
- Отображение диаграммы синтаксиса на лету
- Отображение генерируемого исходника
- Предупреждение о не детерминированной грамматике
- Подсветка алгоритма детерминированных автоматов
- Граф зависимости правил
- Экспорт диаграмм
- Интерпретирование грамматики на лету и отображение дерева анализа (parsing)
- Локальный и удаленный отладчик
- Динамический парсинг дерева для отладки
- Динамическое дерево AST для отладки
- Отладка грамматики дерева
- Точки остановки в грамматике
- Точки остановки в тексте
- Точки останови на любом событии
- Пошаговая отладка
- Генерация кода
- ...
ANTLR Plugin For ECLIPSE
http://antlreclipse.sourceforge.net/
- Маркеры ошибок и предупреждений в файла грамматики
- Многостраничный редактор с подсветкой синтаксиса
- Обзор грамматики без комментариев и действий
- Отображение дерева грамматики (outline)
- Переход к правилу
- Отображение справки (popup),
- Автоматические дополнения
- Точки остановки для отладки
- ...
ANTLR Studio
http://www.placidsystems.com/antlrstudio.aspx
Является графическим пакетом на базе Eclipse, распространяться за деньги и обладает схожими возможностями с ANTLRWORKS:
- Подсветка синтаксиса ANTLR
- Быстрое исправление ошибок (QuickFixes)
- "Дерево" отображающее структуру файла ANTLR (outline)
- Сообщения о ошибках и предупреждения
- Автоматический отступ
- Переход к правилу
- Быстрые клавиши
- Автоматические дополнения для абстрактного синтаксического дерева (AST) и лексем
- Отображение графической диаграмм синтаксиса на лету
- Отладчик
- "Мастера" (WIZZARDS)
- ... И другие функции
Комментариев нет:
Отправить комментарий