ANTLR
Тип | генератор синтаксичних аналізаторів |
---|---|
Автор | Terence Parr та інші |
Розробник | Terence Parrd |
Перший випуск | лютий 1992 |
Стабільний випуск | 4.8 (16 січня, 2020 ) |
Платформа | Cross-platform |
Мова програмування | Java, C# |
Стан розробки | активний |
Ліцензія | BSD |
Репозиторій | github.com/antlr/antlr4 |
Вебсайт | antlr.org |
ANTLR (буквально англ. Another Tool For Language Recognition) — генератор синтаксичних аналізаторів, дозволяє автоматично створювати програму-парсер (як і лексичний аналізатор) однією з декількох цільових мов програмування (Java, C++, C#, Python, Ruby) за описом LL(*)-граматики мовою, близькою до EBNF. Дозволяє конструювати компілятори, інтерпретатори, транслятори з різних формальних мов. Також, надає зручні засоби для відновлення після помилок, і повідомлення про них. ANTLR — продовження PCCTS (Purdue Compiler Construction Tool Set), який було розроблено 1989 року.
Основоположником проекту є професор Теренс Парр з Університету Сан-Франциско. ANTLR — проект з відкритим кодом, версія 3.0 поширюється за ліцензією BSD.
Історія ANTLR[1]
- осінь 1989 — PCCTS
- лютий 1990 — ANTLR 1.00B, LL(1)
- лютий 1992 — ANTLR 1.00, LL(k)
- травень 1997 — ANTLR 2.0.0
- Травень 2007 — ANTLR 3.0[2]
- січень 2013 — ANTLR 4.0[3]
Цей розділ потребує доповнення. (січень 2008) |
В даному прикладі показано граматику на ANTLR 4.8 для лексичного та синтаксичного аналізу арифметичних виразів з невід'ємними числами.
grammar ArithmExpressionLanguage;
// визначення правил граматики
stat : stat (MUL|DIV) stat
| stat (PLUS|MINUS) stat
| INTEGER
| REAL
| OP_BR stat CL_BR;
// визначення токенів
OP_BR: '(';
CL_BR: ')';
PLUS: '+';
MINUS: '-';
MUL: '*';
DIV: '/';
INTEGER: ('0' .. '9')+; // невід'ємні цілі числа
REAL: ('0' .. '9')+ ',' ('0' .. '9')+; // невід'ємні дійсні числа
// невраховування пробілу та горизонтальної табуляції у виразі під час лексичного аналізу
WHITESPACE: [ \t] -> skip;
Деякі проєкти, що використовують ANTLR [4]:
- IntelliJ IDEA
- Xcode
- Oracle WebLogic Server
- Hibernate Query language
- Drools/JBoss Rules
- iWeb (частина iLife)
- мова Groovy
- ↑ Архівована копія. Архів оригіналу за 12 грудня 2007. Процитовано 16 січня 2008.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання) - ↑ Офіційний сайт ANTLR. Архів оригіналу за 10 серпня 2007.
- ↑ Історія релізів ANTLR 4.
- ↑ Архівована копія. Архів оригіналу за 17 січня 2008. Процитовано 16 січня 2008.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
Це незавершена стаття про мови програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |