Вопросы по теме '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 просмотров
schedule
07.04.2024
Как заставить сканер 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 просмотров
schedule
20.08.2022
Как установить бизон на 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