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

yyparse печатает ведущую вкладку
В моей программе bison/flex сразу после вызова yyparse() печатается ведущая вкладка, но я не знаю почему. Вы видите, что не так? Это вызывает код bison, и сразу после возврата yyparse() печатается вкладка. void parseArguments(int argc, char**...
1129 просмотров
schedule 26.03.2024

Yacc/Bison, минимизировать количество, группируя математические операции
Я просматриваю исходный код расчета здесь http://epaperpress.com/lexandyacc/ Я вижу эти строки в calc.y | expr '+' expr { $$ = opr('+', 2, $1, $3); } | expr '-' expr { $$ = opr('-', 2, $1, $3); } | expr '*' expr { $$ =...
906 просмотров
schedule 19.05.2024

bison сдвиг/уменьшение проблемы с перемещением добавить операцию в подвыражение
Изначально в примере было это expr: INTEGER | expr '+' expr { $$ = $1 + $3; } | expr '-' expr { $$ = $1 - $3; } ; Я хотел, чтобы это было «более просто», поэтому я написал это (я понимаю,...
1056 просмотров
schedule 18.10.2022

Компиляция и выполнение переводчика языка программирования Shakespeare spl2c в Mac OS X 10.6 приводит к предупреждениям/ошибкам
Я хотел поэкспериментировать с языком программирования Shakespeare , поэтому скачал его с здесь и выполнил Makefile, используя cd spl-1.2.1 Make . Компиляция spl2c выполняется с парой предупреждений: scanner.l:600: warning, rule cannot...
7222 просмотров

Как заставить сканер Flex возвращать токен ошибки Bison?
Bison использует специальный токен ошибки (называемый «ошибка»), который можно использовать в синтаксическом анализаторе Bison для восстановления после ошибок. Есть ли способ вернуть этот конкретный токен из сканера, созданного Flex?
1189 просмотров
schedule 15.12.2023

Какова стратегия добавления продуктов ошибок в грамматику?
Как обычно добавляются ошибки? Я столкнулся с проблемой, что мои продукты ошибок слишком поверхностны: когда синтаксический анализатор начинает выталкивать состояния ошибки в операторе, он всплывает, пока не столкнется с выводом ошибок для раздела, в...
1322 просмотров
schedule 21.09.2022

Порядок действий в Бизоне
Я пытаюсь использовать Bison для создания парсера на С++. Грамматика в порядке, но у меня возникли некоторые проблемы с действиями. Вот простой пример: statements : statement | statements statement; Насколько я знаю, это вполне нормальное...
387 просмотров
schedule 31.12.2023

Преобразование инфикса в постфикс в YACC (Bison)
Я безуспешно пытался преобразовать инфиксное выражение в постфиксное выражение, используя YACC (Bison). Я хотел бы знать, как это можно сделать? Пример кода будет потрясающим :)
11004 просмотров
schedule 13.01.2024

Нечетная ошибка в программе lex/yacc
Я новичок в lex/yacc и пишу синтаксический анализатор SQL с использованием lex/yacc. Однако для конкретного запроса JOIN (перечисленного ниже) мой синтаксический анализатор намеренно обращается к правилу «select_statement» вместо правила...
367 просмотров
schedule 05.03.2024

Сохранение и восстановление состояния парсера вручную
Я настроил систему flex/bison, которая может запускаться и анализироваться через yyparse и может использоваться внутри системы типа repl. Когда пользователь входит в определенное состояние (скажем, определение метода) и возникает системная ошибка, я...
262 просмотров
schedule 17.09.2022

make -j вместе с bison
У меня странная проблема с параллельной сборкой. Мой make-файл выглядит примерно так (не настоящий Makefile, просто для иллюстрации, так что не обижайтесь): parser.c parser.h : parser.y lexer.c : lexer.l parser.h app : lexer.o parser.o...
114 просмотров
schedule 26.01.2024

время сканирования не отображается должным образом
Это некоторая часть моего C-сканера, основанного на Lex n Yacc, я использую компилятор flex, bison и gcc. Вот часть моего файла yacc. Поэтому я пытаюсь реализовать время сканирования в секундах, например, сканер будет печатать время сканирования в...
79 просмотров
schedule 27.12.2023

Синтаксическая ошибка при запуске lex и yacc
Я новичок в lex и yacc. Я пробовал грамматику, которая создает матрицы и выполняет некоторые операции, такие как сложение, умножение и т. д. Вот грамматика, которую я использую program: block ENDS block: stmt | block ENDS stmt...
405 просмотров
schedule 29.01.2024

Бизон - что в итоге?
Я знаю, что с помощью bison я получаю синтаксический анализатор LALR, но верно ли сказать, что этот синтаксический анализатор является детерминированным конечным автоматом (и детерминированным конечным автоматом со стеком)?
126 просмотров
schedule 19.01.2024

Бизон уменьшает/уменьшает конфликт, если еще условие
Я ожидал конфликта сдвига/уменьшения для if else, но он дал конфликт сокращения/уменьшения в строке «| IF '(' boolean_statement ')' block». Вот некоторая информация, которая может помочь объяснить следующий код: BOOL - это токен для...
229 просмотров
schedule 09.10.2023

(Gnu) make: несколько целей со специальными переключателями компилятора
У меня проблема с запуском make-файла. У меня есть несколько парсеров, которые компилируют XML-схемы следующим образом: $(srcdir)/schema_1_parser.cpp: \ $(srcdir)/schema_1_parser.l \...
47 просмотров

Как установить бизон на Mac OSX
Я пытаюсь установить Thrift на свой макбук. В противном случае я получил ошибку: configure: ошибка: Bison версии 2.5 или выше должен быть установлен в системе! Итак, я попытался установить Bison на свою ОС, но не нашел учебника в...
42914 просмотров
schedule 08.03.2024

bison - передать значения следующему производству
field_dec: type id_list ; id_list: ID punct id_list | ID SQUARE_OPEN INTEGER SQUARE_CLOSED punct id_list | ID punct | ID...
500 просмотров
schedule 08.02.2024

Bison не может разрешать конфликты shift-reduce и reduce-reduce
Я пишу синтаксический анализатор с использованием Bison, но не могу правильно понять грамматику. Есть два конфликта: Вот некоторые из правил, используемых для разрешения первого конфликта: program : function...
393 просмотров
schedule 07.11.2022

Исправление конфликта в данном коде? 25 конфликтов сдвига/уменьшения [-Wconflicts-sr]
// Lex-файл: for.l alpha [A-Za-z] digit [0-9] %% [\t \n] for return FOR; {digit}+ return NUM; {alpha}({alpha}|{digit})* return ID; "<=" return LE; ">=" return GE; "==" return EQ; "!="...
1432 просмотров
schedule 19.11.2023