ANTLR

ANTLR
Тип генератор синтаксичних аналізаторів
Автор(и) Terence Parr та інші
Розробник Terence Parrd
Перший випуск лютий 1992
Стабільний випуск 4.8 (16 січня, 2020; 2 роки тому (2020-01-16))
Версії 4.11.1 (4 вересня 2022)[1]
Репозиторій github.com/antlr/antlr4
Платформа Cross-platform
Мова програмування Java, C#
Стан розробки активний
Ліцензія BSD
Вебсайт 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[2]

  • осінь 1989 — PCCTS
  • лютий 1990 — ANTLR 1.00B, LL(1)
  • лютий 1992 — ANTLR 1.00, LL(k)
  • травень 1997 — ANTLR 2.0.0
  • Травень 2007 — ANTLR 3.0[3]
  • січень 2013 — ANTLR 4.0[4]

ANTLR 4

Цей розділ потребує доповнення. (січень 2008)

Приклад

В даному прикладі показано граматику на ANTLR 4.8 для лексичного та синтаксичного аналізу арифметичних виразів з невід'ємними числами.

Абстрактне синтаксичне дерево побудоване з використанням ANTLR 4.8 для виразу «2 + 2 - (14 * 5,5)»
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 [5]:

Див. також

Джерела

  1. Release 4.11.1 — 2022.
  2. Архівована копія. Архів оригіналу за 12 грудня 2007. Процитовано 16 січня 2008. 
  3. Офіційний сайт ANTLR. Архів оригіналу за 10 серпня 2007. 
  4. Історія релізів ANTLR 4. 
  5. Архівована копія. Архів оригіналу за 17 січня 2008. Процитовано 16 січня 2008. 

Посилання

  • Офіційний сайт проекту
  • Середовище розробки для ANTLR


Мова програмування Це незавершена стаття про мови програмування.
Ви можете допомогти проєкту, виправивши або дописавши її.

П:  Портал «Програмування» П:  Портал «Інформаційні технології»