ANTLR (буквально англ. Another Tool For Language Recognition) — генератор синтаксичних аналізаторів, дозволяє автоматично створювати програму-парсер (як і лексичний аналізатор) однією з декількох цільових мов програмування (Java, , C#, Python, Ruby) за описом -граматики мовою, близькою до EBNF. Дозволяє конструювати компілятори, інтерпретатори, транслятори з різних формальних мов. Також, надає зручні засоби для відновлення після помилок, і повідомлення про них. ANTLR — продовження PCCTS (Purdue Compiler Construction Tool Set), який було розроблено 1989 року.
Тип | генератор синтаксичних аналізаторів |
---|---|
Автор | Terence Parr та інші |
Розробник | d |
Перший випуск | лютий 1992 |
Стабільний випуск | 4.8 (16 січня, 2020 ) |
Платформа | Cross-platform |
Мова програмування | Java, C# |
Стан розробки | активний |
Ліцензія | BSD |
Репозиторій | github.com/antlr/antlr4 |
Вебсайт | antlr.org |
Основоположником проекту є професор з . ANTLR — проект з відкритим кодом, версія 3.0 поширюється за ліцензією BSD.
Історія
Історія ANTLR
- осінь 1989 — PCCTS
- лютий 1990 — ANTLR 1.00B, LL(1)
- лютий 1992 — ANTLR 1.00, LL(k)
- травень 1997 — ANTLR 2.0.0
- Травень 2007 — ANTLR 3.0
- січень 2013 — ANTLR 4.0
ANTLR 4
Цей розділ потребує доповнення. (січень 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 :
- IntelliJ IDEA
- Xcode
- Oracle WebLogic Server
- Hibernate Query language
- /JBoss Rules
- iWeb (частина iLife)
- мова Groovy
Див. також
Джерела
- . Архів оригіналу за 12 грудня 2007. Процитовано 16 січня 2008.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - . Архів оригіналу за 10 серпня 2007.
- Історія релізів ANTLR 4.
- . Архів оригіналу за 17 січня 2008. Процитовано 16 січня 2008.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title ()
Посилання
- Офіційний сайт проекту
Це незавершена стаття про мови програмування. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
ANTLR bukvalno angl Another Tool For Language Recognition generator sintaksichnih analizatoriv dozvolyaye avtomatichno stvoryuvati programu parser yak i leksichnij analizator odniyeyu z dekilkoh cilovih mov programuvannya Java C C Python Ruby za opisom gramatiki movoyu blizkoyu do EBNF Dozvolyaye konstruyuvati kompilyatori interpretatori translyatori z riznih formalnih mov Takozh nadaye zruchni zasobi dlya vidnovlennya pislya pomilok i povidomlennya pro nih ANTLR prodovzhennya PCCTS Purdue Compiler Construction Tool Set yakij bulo rozrobleno 1989 roku ANTLRTipgenerator sintaksichnih analizatorivAvtorTerence Parr ta inshiRozrobnikdPershij vipusklyutij 1992Stabilnij vipusk4 8 16 sichnya 2020 4 roki tomu 2020 01 16 PlatformaCross platformMova programuvannyaJava C Stan rozrobkiaktivnijLicenziyaBSDRepozitorijgithub com antlr antlr4Vebsajtantlr org Osnovopolozhnikom proektu ye profesor z ANTLR proekt z vidkritim kodom versiya 3 0 poshiryuyetsya za licenziyeyu BSD IstoriyaIstoriya ANTLR osin 1989 PCCTS lyutij 1990 ANTLR 1 00B LL 1 lyutij 1992 ANTLR 1 00 LL k traven 1997 ANTLR 2 0 0 Traven 2007 ANTLR 3 0 sichen 2013 ANTLR 4 0 ANTLR 4 Cej rozdil potrebuye dopovnennya sichen 2008 PrikladV danomu prikladi pokazano gramatiku na ANTLR 4 8 dlya leksichnogo ta sintaksichnogo analizu arifmetichnih viraziv z nevid yemnimi chislami Abstraktne sintaksichne derevo pobudovane z vikoristannyam ANTLR 4 8 dlya virazu 2 2 14 5 5 grammar ArithmExpressionLanguage viznachennya pravil gramatiki stat stat MUL DIV stat stat PLUS MINUS stat INTEGER REAL OP BR stat CL BR viznachennya tokeniv OP BR CL BR PLUS MINUS MUL DIV INTEGER 0 9 nevid yemni cili chisla REAL 0 9 0 9 nevid yemni dijsni chisla nevrahovuvannya probilu ta gorizontalnoyi tabulyaciyi u virazi pid chas leksichnogo analizu WHITESPACE t gt skip VikoristannyaDeyaki proyekti sho vikoristovuyut ANTLR IntelliJ IDEA Xcode Oracle WebLogic Server Hibernate Query language JBoss Rules iWeb chastina iLife mova GroovyDiv takozhLL k gramatika Sintaksichnij analizDzherela Arhiv originalu za 12 grudnya 2007 Procitovano 16 sichnya 2008 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya Arhiv originalu za 10 serpnya 2007 Istoriya reliziv ANTLR 4 Arhiv originalu za 17 sichnya 2008 Procitovano 16 sichnya 2008 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya PosilannyaOficijnij sajt proektu Ce nezavershena stattya pro movi programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi