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

Левая рекурсия в грамматике приводит к конфликтам
Во всей грамматике Bison я использую правую рекурсию, и я читал, что левая рекурсия лучше, потому что ей не нужно сначала строить весь стек. Однако, когда я пытаюсь переключиться на левую рекурсию на любом из них, я всегда получаю много конфликтов,...
3647 просмотров
schedule 19.04.2024

Как использовать yylval со строками в yacc
Я хочу передать фактическую строку токена. Если у меня есть токен с именем ID, то я хочу, чтобы мой файл yacc действительно знал, как называется ID. Я думаю, что мне нужно передать строку, используя yylval, в файл yacc из файла flex. Как я могу это...
28435 просмотров
schedule 12.06.2024

Проблема с printf в Bison Rule
Я пробовал что-то подобное в моем файле Bison... ReturnS: RETURN expression {printf(";")} ... но точка с запятой печатается ПОСЛЕ следующей лексемы после этого правила, а не сразу после выражения. Это правило было введено, так как мы должны...
2089 просмотров
schedule 12.06.2024

bison: одна ошибка вызывает дополнительную, но некорректную ошибку
В разделе класса моего кода, если я пишу об ошибке, несколько строк будут сообщены как ошибки, хотя этого не должно быть. Я помещаю « | error » в определенные места, где хорошо/безопасно восстанавливаться после ошибок, но я не думаю, что он его...
118 просмотров
schedule 15.10.2022

Проблемы со встраиванием Guile в C++
Я программист Scheme и пытаюсь использовать Guile для вызова функций Scheme из кода C++ в рамках спецификации Bison. Документация по Guile и C великолепна; однако я не нашел много актуальной актуальной информации о Guile и C++. Поскольку каждая...
1903 просмотров
schedule 27.09.2022

%locations приводит к мгновенному sigsegv
Я смотрю на парсер, сделанный с помощью flex и bison. Бизон 2.5. Я добавляю %locations в файл .y, перекомпилирую и пытаюсь запустить, в награду получаю sigsegv (ну, эквивалент macosx): Program received signal EXC_BAD_ACCESS, Could not access...
188 просмотров
schedule 24.03.2024

Как получить строковое значение токена в flex и bison?
У меня есть этот токен в моем файле .lex: [a-zA-Z0-9]+ { yylval = yytext; return ALPHANUM; } и этот код в моем файле .y: Sentence: "Sphere(" ALPHANUM ")." { FILE* file = fopen("C:/test.txt", "a+"); char st1[] = "polySphere -name ";...
24434 просмотров
schedule 15.03.2024

Обнаружение/восстановление ошибок в YACC/Bison
Я читал руководства об использовании символа ошибки, yyerrok и т. д. Меня беспокоит, как добавить правила ошибок в синтаксический анализатор, не переусердствуя или не добавляя достаточно. Есть ли какие-либо общие рекомендации, которым я должен...
1737 просмотров
schedule 05.12.2023

нет ошибок при разборе пустого файла yacc/lex
У меня есть синтаксический анализатор, сгенерированный из yacc/lex. Он отлично работает для всех правил, которые я установил, кроме одного случая. Если файл, который анализирует этот парсер, пуст, он выдает ошибку. Я хочу добавить правило, чтобы...
846 просмотров
schedule 07.10.2022

Как мне убедить Bison разобрать часть файла?
Если есть входной файл формы: BEGIN stuff.... END BEGIN stuff ... END и мой файл .y имеет вид %token BEGIN %token END %start begin begin: BEGIN stuff END и то, что я хочу сделать, это многократно вызывать yyparse, анализируя...
1265 просмотров
schedule 15.06.2024

Бизон флекс для начинающих
Как я могу напечатать номер строки, в которой произошла ошибка. Я попытался использовать yylineno в функции yyerror() и записать %option yylineno в файл .l , но после компиляции он выдает ошибку « yylineno undeclared (first use in this...
5646 просмотров
schedule 20.04.2024

Flex выдает фатальную внутреннюю ошибку сканера - пропущен конец буфера
Я пытаюсь использовать flex против буфера, который постоянно заполняется и пополняется. У меня есть несколько потоков, работающих со своими независимыми копиями буфера. В psuedo в моей основной программе это выглядит примерно так:...
4261 просмотров
schedule 05.02.2024

игнорировать совпадающую продукцию в yacc
Можно ли при использовании GNU bison ничего не делать после сопоставления продукции, а затем проверить, можно ли использовать какое-либо другое правило для уменьшения той же последовательности токенов? В принципе, то, что я ищу, похоже на это:...
161 просмотров
schedule 05.12.2023

Flex/Bison: связанный список, разделенный запятыми?
У меня есть следующая грамматика для списка, разделенного запятыми, по крайней мере с одним элементом: column_expression_list: column_expression { $$ = LinkedList_New(); LinkedListItem *item = LinkedListItem_New($1);...
1223 просмотров
schedule 21.11.2023

У меня ошибка при компиляции bison с опцией %define Parser.h
Мой файл Parser.y содержит приведенный ниже код. %defines "Parser.h" Я скомпилировал этот файл, и у меня есть ошибка ниже. $ бизон Parser.y Parser.y:27.10-19: синтаксическая ошибка, непредвиденная строка Поэтому я...
193 просмотров
schedule 29.03.2024

команда для создания парсера с bison/flex в windows?
Я пытаюсь разработать компилятор для моей грамматики. Я пишу код сканера, и он корректно работает с flex. Теперь я пишу код синтаксического анализатора, таблицу символов и файл three.h для генерации трехадресного кода. Но я не знаю, как запускать и...
240 просмотров
schedule 16.03.2024

запрос на членство в чем-то, кроме структуры или союза? во Флекс&Бизон
в моем финальном проекте осталось несколько кодов, один из них для flex & bison. Проблема в том, что gcc возвращает мне сообщение "запрос члена ' db ' в чем-то, что не является структурой или объединением" в файле bison... Я не знаю, как это...
1354 просмотров
schedule 09.10.2022

Калькулятор с несколькими переменными Flex/Bison
Я пишу калькулятор на Flex/Bison, который позволяет использовать переменные. Прямо сейчас у меня есть только одна переменная (x), которую вы можете использовать. Я хочу иметь возможность использовать больше, чем просто x. (скорее как аз)....
1466 просмотров

Почему эта очень простая грамматика заставляет парсеры GLR подавляться?
Я пробовал несколько разных генераторов парсеров (Bison, DParser и т. Д.), Которые утверждают, что могут генерировать парсеры GLR, то есть те, которые могут обрабатывать неоднозначные грамматики. Вот очень простая двусмысленная грамматика того типа,...
1261 просмотров
schedule 05.03.2024

Ошибка компоновщика Yacc на Mac
Я получаю эту ошибку, когда пытаюсь скомпилировать. Раньше я компилировал файлы lex без проблем, но я не могу заставить yacc компилироваться без ошибок. :~ yacc project-5.y :~ lex project.l :~g++ -o $dragon project-5.tab.c lex.yy.c clang:...
2547 просмотров
schedule 25.09.2022