Комментарии 15
НЛО прилетело и опубликовало эту надпись здесь
Есть у бизона крупный недостаток. В случае синтаксической ошибки происходит свёртка стека. Если на нём были указатели на память в куче, то происходит утечка. Нужно создавать свой аллокатор или типа того.
0
А разве после синтаксической ошибки компилятор не закрывается? В этом случае память все-равно освободится
-1
представьте себе скажем Javascript-машину в браузере, она не закрывается после ошибки.
+1
Далеко не все программы так работают. Можете представить себе, например, сервер баз данных который перегружается после каждой синтаксической ошибки в запросе?
0
Даже обычный GCC после синтаксической ошибки не закрывается, а продолжает искать новые ошибки.
Не обращали внимание, что он выдаёт ошибки все списком, а не по одной за запуск?
Не обращали внимание, что он выдаёт ошибки все списком, а не по одной за запуск?
+3
Есть у бизона конструкция
%destructor { CODE } SYMBOLS
описывающая что делать с освобождемыми символами.
%destructor { CODE } SYMBOLS
описывающая что делать с освобождемыми символами.
+2
Нужно создавать свой аллокатор или типа того.
Или обернуть указатели в объект с деструктором.
Или поменять в парсере пару строк, выполняющих свёртку.
0
У бизона, кстати, есть директива %glr-parser, которая в некоторых случаях позволяет избежать конфликтов из-за необходимости просмотра более чем на один символ.
+1
У меня часто задача разбора битовых полей регистров умных asic чипов по значениям регистров.
Может ли bison генерировать си код для разбора этих бинарных протоколов?
0
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
Компиляция. 3: бизон