Вопросы по теме 'antlr4'

Режимы лексера из импортированной грамматики не идентифицируются в комбинированной грамматике. Ошибка компиляции после нажатия «запустить в testRig» Antlrworks2
Я использую Antlrworks2. Существует лексическая грамматика, в которой определены «лексические модусы». Я объединил грамматику, которая импортирует лексическую грамматику. После генерации кода из комбинированной грамматики будут сгенерированы два...
612 просмотров
schedule 15.09.2022

Анализ файлов C++ из программы Java
После нескольких дней исследований обращаюсь к вам. Я ищу для анализа файла С++ для: Подсчитайте количество параметров в методе/функции Подсчитайте количество строк в методе/функции так далее... Чтобы сделать это, я сначала попытался...
124 просмотров
schedule 12.03.2024

Как получить IParseTree в ANTLR4?
В настоящее время я использую ANTLR4 на С#, но столкнулся с проблемой, я не знаю, как получить объект/класс IParseTree. Я нахожу в C# полное имя здесь Antlr4.Runtime.Tree.IParseTree , но как получить объект? AntlrInputStream inputStream = new...
1203 просмотров
schedule 16.11.2022

Могу ли я изменить родительский класс контекста в antlr4
В antlr4. Родительским классом контекста по умолчанию является ParserRuleContext. Я хочу добавить свои вары в Context. но я не хочу изменять ParserRuleContext.java, поэтому я хочу создать новый класс Java (например, MyParserRuleContext), у которого...
813 просмотров
schedule 19.09.2022

Работа с перегруженными символами в неоднозначных грамматиках в ANTLR4
Я пытаюсь написать синтаксический анализатор для диалекта Программирование набора ответов (ASP) , который с точки зрения грамматики выглядит как Пролог с некоторыми расширениями. Одним из расширений, например, является расширение , означающее,...
347 просмотров

Сравнение токенов, сгенерированных antlr
У меня есть следующее как часть моей грамматики (и здесь 'name' и 'value' просто статичны для простоты, на практике это не так): test4 : 'name' CMPOP 'value'; CMPOP : EQUALS | NOTEQUALS; EQUALS : '='; NOTEQUALS : '!=';...
927 просмотров
schedule 25.02.2024

Обработка строковых литералов, заканчивающихся экранированной кавычкой в ​​ANTLR4
Как написать правило лексера для соответствия литералу String, который не заканчивается экранированной кавычкой? Вот моя грамматика: lexer grammar StringLexer; // from The Definitive ANTLR 4 Reference STRING: '"' (ESC|.)*? '"'; fragment ESC :...
7260 просмотров
schedule 11.12.2023

Взаимно леворекурсивны?
Я работаю над парсером для грамматики в ANTLR. В настоящее время я работаю над выражениями, где () имеет приоритет высшего порядка, затем унарный минус и т. д. Когда я добавляю строку, ANTLR выдает ошибку: Следующие наборы правил взаимно...
707 просмотров
schedule 08.10.2022

Почему нет жизнеспособной альтернативы оператору #include в ANTLR 4 с грамматикой C?
Я только начинаю работать с ANTLR v4 и немного запутался... Я использую файл грамматики C из проекта antlr здесь для работы с следующий бит C: #include <stdio.h> int main() { printf("Hello"); return 0; } (сохранено как...
1891 просмотров
schedule 12.11.2023

как распечатать дерево синтаксического анализа с использованием среды выполнения python2 с antlr4
Я пытаюсь использовать antlr4 версии 4.4 и среда выполнения python2 . Грамматика взята из книги antlr4, страница 6, файл: Hello.g4 : grammar Hello; r : 'hello' ID ; ID : [a-z]+ ; WS : [ \t\r\n]+ -> skip ; и я создаю лексер...
4787 просмотров
schedule 09.09.2022

как вставить токены или контексты в мой класс слушателя в antlr4
У меня есть файл грамматики antlr4, который анализирует язык BASIC. Есть ли способ вставить больше кода в мой расширенный класс baseListener? Например, если я разбираю этот код: 10 print "hello world" %include "moreCode.bas" print "after...
611 просмотров
schedule 23.07.2022

ANTLR4 Обходной путь с отрицательным прогнозом?
Я использую antlr4 и пытаюсь сделать парсер для Matlab. Одна из основных проблем заключается в том, что в комментариях и транспонировании используются одинарные кавычки. Я думал о решении, чтобы определить правило лексера STRING примерно следующим...
1759 просмотров
schedule 12.03.2024

Действия Antlr4-JS в грамматике: как получить доступ к токенам и определить функции? (прямо в java, а не в JS)
Я пытаюсь адаптироваться к JS-таргетингу на Expr.g4 книги . В этом примере действия находятся непосредственно в грамматике. Они включают служебные функции, определенные в @parser :: members, которые вызываются в правилах. Пример хорошо работает...
516 просмотров
schedule 12.11.2022

ANTLR4: Как Java может выполнять файлы Python?
Я использую ANTLR для создания лексера/парсера Python (он же Python target ). На официальной странице ANTLR написано: используйте Java для создания .py файлов: set CLASSPATH=.;antlr-complete.jar;%CLASSPATH% java org.antlr.v4.Tool...
59 просмотров
schedule 12.12.2023

Разрешить недопустимый ввод в Lexer или отправить в парсер?
Я использую Antlr4 для создания парсера, и у меня есть вопрос по реализации. Я видел ряд грамматик, в которых есть правило лексера по умолчанию, которое будет соответствовать любому символу в конце. Я также видел некоторые рекомендации по...
79 просмотров
schedule 30.08.2022

Преобразование первой буквы в заглавную с помощью шаблона строки
Я использую файл шаблона String для создания файлов Java. Для этого я использую ANTLR. Код для одного из строковых файлов шаблона показан ниже: package framework; public abstract class Listener$GUIdriver.name$ { $GUIdriver.commands:{...
749 просмотров
schedule 03.07.2022

Привязать субправила ANTLR4 к правилу
У меня есть такая грамматика: living : search EOF ; search : K_SEARCH entity ( K_QUERY expr )? ( K_FILTER expr )? ( K_SELECT1 expr ( COMMA expr )* )? ( K_SELECT2 expr ( COMMA expr )* )? ( K_SELECT3 expr ( COMMA expr )* )? ; Как...
145 просмотров
schedule 17.10.2022

Разбор оператора SQL CREATE TABLE с использованием ANTLR4
Код файла Lexer выглядит следующим образом: lexer grammar CreateLexer; CREATE : 'create' | 'CREATE' ; NUMBER_OF_SHARDS:'number_of_shards' | 'NUMBER_OF_SHARDS'; NUMBER_OF_REPLICAS:'number_of_replicas' | 'NUMBER_OF_REPLICAS'; ID : (...
733 просмотров
schedule 30.03.2024

правило лексера без фрагментов x может соответствовать пустой строке
Что не так со следующим лексером antlr? у меня ошибка warning(146): MySQL.g4:5685:0: non-fragment lexer rule VERSION_COMMENT_TAIL can match the empty string Прикрепленный исходный код VERSION_COMMENT_TAIL: { VERSION_MATCHED == False }?...
1740 просмотров
schedule 14.12.2023

Удаление взаимной левой рекурсии из леворекурсивных правил
С ANTLR 4.6, снимок от 23.11.2016. У меня есть два правила, каждое из которых является леворекурсивным. Я расширил несколько альтернатив, чтобы раскрыть левую рекурсию. ANTLR4 справляется с этим, потому что левая рекурсия явная. Однако эти два...
76 просмотров
schedule 27.06.2022