Описание тега antlr3

Версия 3 ANTLR (Другой инструмент для распознавания языков), созданная и написанная доктором Терренсом Парром
1 ответ

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

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

Как проверить, начинается ли значение атрибута с определенной строки?

Например, значение атрибута <greeting> это "Привет, мир!" Что я хочу, чтобы проверить, является ли <greeting> начинается с "Привет", если это так, применить шаблон <response>, Мой фрагмент шаблона строки: <if(/*do not know how t…
04 янв '13 в 15:46
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?

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

Как я могу создать простой валидатор ввода с помощью ANTLR?

Я написал свою грамматику в ANTLRWorks, и она работала довольно хорошо, а затем я сгенерировал лексер и парсер. Ну, код выполняется, и нет ошибки. Но это сводит меня с ума даже при неправильном вводе все нормально. Я имею в виду, что parser.prog() в…
31 мар '11 в 18:35
2 ответа

ANTLR: Как хранить токены и узлы дерева в одном AST?

Учитывая следующую грамматику: statement : START value_list; value_list : LEFT_PARENTHESIS element += value (COMMA element += value)* RIGHT_PARENTHESIS -> ^(LIST $element+); value : NUMBER | STRING | value_list; START : 'START'; LEFT_PARENTHESIS …
15 янв '16 в 08:10
1 ответ

Моя простая грамматика ANTLR игнорирует некоторые неверные токены при разборе

Я задал вопрос пару недель назад о моей грамматике ANTLR ( моя простая грамматика ANTLR не работает должным образом). С тех пор как я задал этот вопрос, я стал больше копать и отлаживать и получил большую часть изломов. Я остался с одной проблемой, …
10 окт '13 в 15:00
1 ответ

Я не могу получить StringTemplate для отступа

У меня есть следующая группа StringTemplate group RPInstr; before(firstStat) ::= << <{<[beforeEnteringInstr(),firstStat]; anchor, separator="\n">}; anchor> >> beforeEnteringInstr() ::= "before();" Я пытаюсь сделать первое утв…
19 авг '12 в 00:38
0 ответов

Ошибка AntlrWorks: antlr4

Итак, я довольно новичок в antlr, и я пытаюсь написать программу, которая будет искать ключевые слова, а затем составлять дерево из чисел / слов после, заканчиваясь на \ n и исключая '|' условное обозначение. Я получаю несколько ошибок, и я не увере…
01 июн '18 в 15:55
1 ответ

Как заставить ANTLR 3 работать в VS 2010?

Может кто-нибудь поучить меня шаг за шагом, как установить ANTLR 3 в VS2010, а затем добавить грамматику в проект, чтобы он генерировал лексер и парсер каждый раз, когда я вносил изменения в проект?
06 сен '11 в 16:01
1 ответ

antlr разница между двумя правилами перезаписи ID INT и ^(INT ID)

В документации antlr я вижу два следующих правила, но их описание звучит совершенно одинаково. В чем разница между этими двумя правилами... a : INT ID -> ID INT ; // reorder nodes a : ^(ID INT) -> ^(INT ID) ; // flip order of nodes in tree Кро…
21 авг '12 в 17:44
1 ответ

Отладка Xtext не может даже сделать k=1 для ошибок решения

Я пытаюсь создать синтаксический анализатор Xtext для языка сценариев, который я использую. Язык довольно близок к ANSI-C. Я начал с преобразования этой https://github.com/antlr/examples-v3/blob/master/C/C/C.g грамматики в Xtext и удаления ненужных …
01 июл '14 в 08:43
2 ответа

ANTLR: создать исходный файл из AST

Я изменил парсер PLSQL, предоставленный [Porcelli] ( https://github.com/porcelli/plsql-parser). Я использую этот парсер для разбора файлов PlSql. После успешного разбора я печатаю АСТ. Теперь я хочу отредактировать AST и распечатать исходный исходны…
05 июн '14 в 11:19
2 ответа

Как определить многосимвольное исключение в правиле лексера ANTLR3?

Я пытаюсь создать правило лексера для Antlr3, которое будет соответствовать строкам с тройными кавычками. Например: """this is some text""" Вот как я это делаю: TEXT: '"""' ('\\"' | ~'"')+ '"""' { this.setText( this.getText() .substring(3, this.getT…
30 июн '13 в 22:04
2 ответа

Почему Antlr заходит в бесконечный цикл при обработке моей грамматики

Я создал грамматику ANTLR для разбора математических выражений и второй для их оценки. Поскольку я думал, что создание AST с последующим повторным анализом для его фактической оценки - это слишком сложная операция, я хотел реорганизовать мою граммат…
22 мар '12 в 16:57
1 ответ

ANTRL 3 грамматика опущена часть входного исходного кода

Я использую эту грамматику ANTLR 3 и ANTLRWorks для тестирования этой грамматики. Но я не могу понять, почему некоторые части моего входного текста опущены. Я хотел бы переписать эту грамматику и отобразить каждый элемент (lparen, ключевые слова, то…
01 сен '14 в 20:44
0 ответов

Парсер не скомпилируется с C и ANTLR3

Clang жалуется на мой анализатор ANTLR3 (antlr-3.5.2-complete.jar). Мне нужен C сейчас, и поэтому я застрял с ANTLR3. Это синтаксические ошибки: dwParser.c: 2009: 44: ошибка: использование необъявленного идентификатора 'FOLLOW_set_in_g_number387' EX…
25 фев '15 в 00:20
1 ответ

Конфигурация ANTLR netbeans Не удалось найти или загрузить основной класс org.antlr.Tool

Я пытался настроить antlr и netbeans со сборкой xml, я следовал учебнику http://wiki.netbeans.org/AntlrInNetBeansJavaApplication, но когда я очищаю и собираю проект, я получаю сообщение об ошибке типа Ошибка: не удалось найти или загрузить основной …
08 апр '14 в 18:27
1 ответ

ANTLR3: как сопоставить инструкции в AST с номером строки в его исходном файле Java

Как найти номера строк (исходного файла) инструкций из AST. пример: для следующего кода 24> void foo () { 25> System.out.println ("привет"); 26>} Аст соответствует заявлению печати METHOD_CALL . . System out println ARGUMENT_LIST EXPR " hi " Я хочу …
12 авг '13 в 04:53
2 ответа

Почему моя грамматика работает для операторов типа *, -, /, но не +?

Я сейчас создаю грамматику, и мне пришлось избавиться от левой рекурсии, и, похоже, это работает для всего, кроме оператора сложения. Вот связанная часть моей грамматики: SUBTRACT: '-'; PLUS: '+'; DIVIDE: '/'; MULTIPLY: '*'; expr: ( IDENTIFIER | INT…
04 мар '11 в 01:57