ANTLR, еще один инструмент для распознавания языков, представляет собой языковой инструмент, который обеспечивает основу для создания распознавателей, интерпретаторов, компиляторов и переводчиков из грамматических описаний, содержащих действия на различных целевых языках.
8 ответов

Парсеры деревьев для компиляторов, написанных на C++

Я хотел бы найти генератор синтаксического анализатора дерева, чтобы помочь мне преобразовать AST для компилятора, написанного на C++. После небольшого исследования я узнал об ANTLR (который может быть нацелен на работу с C, но не с C++). Я также на…
04 июн '09 в 03:33
2 ответа

antlr как определить необязательные детали в любом порядке

Предположим, нужна грамматика для разбора следующих шаблонов: 1. REPORT 2. BEGIN 3. QUERY 4. BEGIN 5. AGGREGATION: day 6. DIMENSION: department 7. END 8. END Где строки № 5 и № 6 являются необязательными, и порядок 2 строк не имеет значения. Как я м…
26 июн '12 в 00:01
1 ответ

Копировать узлы деревьев, используя грамматики дерева ANTLR

Мне нужно руководство по решению проблемы, с которой я столкнулся, используя древовидную грамматику. По сути, я хочу иметь возможность заменять / копировать операторы, которые можно найти в дереве. Это, вероятно, лучше всего объяснить на примере. Во…
08 май '13 в 05:27
2 ответа

Условные выражения в шаблонах строк Antlr

Мы используем Antlr StringTemplates, чтобы контролировать, как выводится имя сущности. Основной Stringtemplate является $ FirstName $ $ Initial $ $ LastName $, $ Суффикс $, $ Степень $ Я хочу добавить несколько смарт-символов в этот шаблон, чтобы за…
09 окт '09 в 16:55
1 ответ

Построение дерева: размножить поддерево для ребенка

Предположим, у меня есть эта простая и бессмысленная грамматика: propagate : what^ where*; what : CHAR^; where : NUMBER -> ^(PLUS NUMBER); NUMBER : '0'..'9'; CHAR : 'a'..'z'; PLUS : '+'; Если он разбирает строку как a123456789, он генерирует AST,…
09 янв '13 в 19:24
1 ответ

Систематический способ создания грамматики дерева ANTLR?

У меня есть немного большой файл грамматики синтаксического анализатора ANTLR и я хочу создать для него древовидную грамматику. Но, насколько я знаю, эта работа по созданию древовидной грамматики не может быть выполнена автоматически, т.е. я должен …
22 авг '11 в 07:19
1 ответ

ANTLR: 0: несоответствующий префикс ввода префикса

Я пытаюсь построить грамматику, но я действительно не понимаю, почему ANTLR дает эту ошибку. Вот мое тривиальное правило: trivial_grammar prefixDef : PREFIX prefixname COLON url NEWLINE ; trivialexer PREFIX : 'PREFIX' | 'prefix'; Что случилось с ANT…
02 мар '14 в 20:50
1 ответ

Как использовать строку одинарной кавычки и одинарную кавычку одновременно с antlr?

Я столкнулся с проблемой в antlr3, что я хочу описать строку одинарных кавычек, строку двойных кавычек и строку составных кавычек. но код не может быть скомпилирован. SingleQuoteString : '\'' ( ~('\''|'\\') | ('\\' .) )* '\'' ; DoubleQuoteString : '…
07 янв '16 в 08:53
1 ответ

Поймать ошибки в ANTLR и найти родителя

Я обнаружил, что могу перехватывать ошибки во время синтаксического анализа, перезаписывая displayRecognitionError, но как мне найти родительский "узел" этой ошибки? ех. если у меня есть грамматика: prog: stat expr; стат: STRING; expr: INTEGER; И да…
07 янв '11 в 15:40
1 ответ

Грамматика для одной переменной функции в ANTLR

Привет! Я ищу грамматику ANTLR для анализа выражений функции одной переменной. Он должен поддерживать +,-, /, ^, специальные функции (например, cos, sin) и константы (pi, e) и круглые скобки. Я пытался написать это сам, но получаю предупреждения о р…
06 мар '11 в 16:34
1 ответ

Невозможно проанализировать символ APL с помощью ANTLR

Я пытаюсь проанализировать выражения APL с помощью ANTLR, это своего рода анализатор исходного кода APL. Он анализирует нормальные символы, но не может анализировать специальные символы (например, "←") выражение = N←0 лексер /* Lexer Tokens. */ NUMB…
08 мар '18 в 14:12
2 ответа

ANTLRWorks ошибка отладки

Когда я отлаживаю грамматику в ANTLRWorks 3.4, это дает мне следующую ошибку, javax.swing.text.BadLocationException: Position not represented by view Грамматика с приведенной выше ошибкой приведена ниже. grammar CMinusMinus; program : (vardeclaratio…
03 мар '12 в 18:26
1 ответ

antlr, как исправить грамматику так (varname)? не в состоянии разбора, если он существует, но это неправильно

Я переписываю этот пост (тот же вопрос, но меньше слов). Я переписал мою грамматику, чтобы просто на верхнем уровне это statement: SELECT EOF!; #removed all other rules and tokens and still not working SELECT : ('S'|'s')('E'|'e')('L'|'l')('E'|'e')('…
20 авг '12 в 23:35
0 ответов

ANTLR меняет тип токена на основе следующего токена

Я прочитал, что тип токена зависит от следующего токена, но в том, что спрашивающий пытался всегда получать один и тот же токен, игнорируя пробел. У меня другой вопрос: я хотел бы изменить токен в зависимости от контекста. Грамматика - это грамматик…
11 апр '13 в 21:43
1 ответ

Как получить исходный текст, используя $text, при этом правило возвращает значение

Итак, у меня есть следующая грамматика: top_cmd :cmds { std::cout << $cmds.text << std::endl; } ; cmds returns [char* str] : cmd+ { str = new char('a'); } ; Я получаю ошибку компиляции g++: "str" was not declared in this scope Если я убе…
23 фев '14 в 19:52
2 ответа

Руководство по автоматическому тестированию для языка, созданного с помощью ANTLR

Для небольшого языка с минимальным контролем потока, написанного с помощью ANTLR, есть ли какие-либо рекомендации или ссылки, которые можно принять во внимание при тестировании языка? Спасибо
25 мар '14 в 21:03
2 ответа

Островная грамматика antlr3

Что такое и как использовать "островную грамматику" в antlr3?
01 апр '10 в 14:51
1 ответ

Настроить Antlr CLASSPATH в Ubuntu

Я пытаюсь настроить Antlr4 в Ubuntu.Я попытался добавить jar antlr4 в файл (.cshrc) с помощью команды: set CLASSPATH = ($CLASSPATH /user/Documents/Antlr4/bin/antlr-4.2.2-complete.jar) при попытке получить исходный файл (.cshrc) я получаю сообщение о…
20 май '14 в 14:43
1 ответ

Обработка исключений ANTLR с "$", Java

Для моей грамматики в ANTLR мой код Java может отлавливать и печатать ошибки для входных данных, содержащих "$". В моей реализации мне нужно распечатать "успех" для успешного ввода. Итак, я делаю следующее в своем коде Java, CharStream charStream = …
09 окт '11 в 19:09
2 ответа

ANTLR4: Как разобрать строку многоугольника WKT?

Я использую ANLTR4 в Java, и я мог бы разобрать строку многоугольника WKT, как это polygon((20 30, 30 40, 50 60, 20 30)) с этим лексером: POLYGON: ('polygon'|'POLYGON')'(('[0-9:,-.eTZ" ]+'))'; поскольку числа внутри многоугольника (()) могут быть da…
25 янв '18 в 11:28