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

Синтаксическая ошибка, неожиданное значение ИСТИНА, ожидается '{'
Я пишу синтаксический анализатор в Bison для базового компилятора (а затем расширяю его, чтобы он содержал подпрограммы и динамическое распределение памяти). Грамматика определена в Приложении А к книге драконов. Мой сканер Flex работает - я...
1161 просмотров
schedule 28.10.2021

Как передать yytext из файла lex в yacc?
Пожалуйста, я столкнулся с простой проблемой ... вот проблема. В моем файле lex есть что-то похожее на: char *ptr_String; "name = " { BEGIN sName; } <sName>.+ { ptr_String = (char *)calloc(strlen(yytext)+1, sizeof(char));...
14499 просмотров
schedule 28.11.2021

Как получить ожидаемый токен в GLR-парсере bison / yacc?
Как получить ожидаемый токен в GLR-парсере bison / yacc? Hi, В проекте, над которым я работаю, есть несколько двусмысленных грамматик. Итак, я пытаюсь использовать% glr-parser для решения конфликтов сдвига / уменьшения. Когда я использовал...
781 просмотров
schedule 23.11.2021

Столкновение типов Bison в подклассах C ++
Итак, я получаю столкновения типов в зубрах в форме warning: type clash on default action: <stmt> != <expr> потому что у меня есть производство вроде %type <stmt> Stmt %type <expr> Expr ... Stmt : Expr /* empty...
1415 просмотров
schedule 29.10.2021

Реформирование грамматики для удаления сдвига уменьшает конфликты в if-then-else
Как удалить конфликт сдвига-уменьшения для bison для данной грамматики? selection-stmt -> if ( expression ) statement | if ( expression ) statement else statement Было бы высоко оценено решение, дающее...
22384 просмотров
schedule 23.09.2021

Создание файла Bison для простой грамматики
У меня такая простая грамматика: E -> T | ^ v . E T -> F T1 T1 -> F T1 | epsilon F -> ( E ) | v Я новичок в Bison, поэтому я надеялся, что кто-нибудь может помочь мне показать, как написать это в таком формате. Все, что у меня...
162 просмотров

Можно ли вызвать один синтаксический анализатор yacc из другого для анализа определенного подпотока токена?
Предположим, у меня уже есть полная грамматика YACC. Пусть это будет, например, грамматика C. Теперь я хочу создать отдельный синтаксический анализатор для предметно-ориентированного языка с простой грамматикой, за исключением того, что ему все еще...
363 просмотров
schedule 08.11.2021

Как я могу заставить Бизона переключиться, чтобы разрешить конфликт?
Я создаю эту грамматику для простого языка программирования (уже решены предыдущие проблемы неоднозначности: Не могу понять, почему Bison выбрасывает правила, бесполезные в парсере из-за конфликтов ). Это моя полная грамматика:...
200 просмотров
schedule 30.09.2021

Парсер Bison: создание функции, возвращающей токены
в моем флексе я хотел бы сделать что-то вроде этого: {VARIABLE} { yylval.string_val=strdup(yytext); return getVarType(yytext); //that is the issue } У меня вопрос:...
711 просмотров
schedule 07.09.2021

приоритет зубров бесполезен? это не работает
Я объявил такой приоритет для bison : %left '+' '-' %left '*' '/' Рекурсивные правила арифметики: exp: exp binary_op exp { .. } | literal_exp { .. } | ID { .. } binary_op: '+'...
369 просмотров
schedule 03.10.2021

Простой пример Flex-bison
Я изучаю флекс и бизон по книге Джона Р. Левина. Я хотел бы прочитать один-единственный "ВЫБРАТЬ;" заявление (это содержимое файла, который читает мой код), но я получаю сообщение «Сканер Flex застрял». Что не так с кодом? Лексер: pmysql.l...
1336 просмотров
schedule 28.09.2021

в Bison, как я могу оставить ассоциативность specity для нетерминала?
У меня есть следующий фрагмент грамматики Bison: binary_op: BINARY_OP { ... } | '|' %prec BINARY_OP { ......
1437 просмотров
schedule 18.09.2021

Приоритет оператора Jison
Я разрабатываю язык с использованием Jison, и проблема, с которой я сталкиваюсь, - это приоритет оператора. Я хочу, чтобы операторы сравнения были первыми оцениваемыми операторами, поэтому, например, 1 + 2 < 3 - 3 * 4 станет (1+2) < (3 - (3...
377 просмотров
schedule 02.10.2021

Перевод if then else в грамматике компилятора
... IF LP assignment-expression RP marker statement { backpatch($3.tlist,$5.instr); $$.nextList = mergeList($3.flist,$6.nextList); } |IF LP assignment-expression RP marker statement ELSE Next statement { backpatch($3.tlist,$5.instr);...
595 просмотров
schedule 15.09.2021

как заставить зубра выручить за все ошибки
Я использую Flex / Bison для парсера скриптов, который должен выйти из парсера и вернуть ненулевой статус из yyparse () для ВСЕХ ОШИБОК. Каждая часть документации для Bison, которую я могу найти, посвящена восстановлению - как мне написать набор...
424 просмотров
schedule 22.10.2021

В бизоне есть способ вернуть имя токена вместо его типа
Я работаю с Flex и Bison. в моем parse.y (bison) я определяю токены. Когда токен возвращается, он возвращает int. Мне было интересно, есть ли способ взять этот int и сопоставить его с фактическим именем в источнике bison. Например в моем parser.y...
1809 просмотров
schedule 23.11.2021

Пример грамматики Bison для объявления и использования функции
Может ли кто-нибудь привести пример грамматики Bison для объявления функций и использования функций, чтобы синтаксический анализатор вырабатывал ошибку, если количество аргументов в объявлении и использовании различается?
695 просмотров

flex / bison: как переключить два лексера в одном входном файле
Как я могу передать открытый файл, например читать другим сканером в следующий сканер - и отдавать парсеру?
669 просмотров
schedule 12.09.2021

Как что-то сделать, когда во входном файле достигнут EOF?
Я пытаюсь отслеживать сигнатуры всех функций, чтобы проверить - когда весь входной файл был просканирован - все ли они были определены, и в противном случае сообщить об ошибке. Для этого я хочу, чтобы сканер возвращал синтаксическому анализатору...
1305 просмотров
schedule 19.09.2021

Лексический и семантический анализ компилятора Flex / Bison mini C сдвиг / уменьшение конфликтов
Я хочу написать компилятор для языка mini C, используя flex и bison. Пример моего языка будет выглядеть так: /* This is an example uC program. */ int fac(int n) { if (n < 2) return n; return n * fac(n - 1); } int sum(int n,...
815 просмотров
schedule 11.10.2021