Когда% деструктор вызывается в BISON ? У меня есть следующий код зубра:
%union{
char * sval;
Variable * vval;
}
%token VARIABLE
%token Literal
%type <vval> Expression VARIABLE
%type <sval> Literal
%destructor { delete $$; } <vval>
%destructor { delete $$; } Literal
, где Переменная - это класс. Я думал, что после обработки строки все объекты Variable будут освобождены, но я не вижу вызванного деструктора. И это приведет к утечке памяти ...
Редактировать: чтобы было ясно; Я выделяю новый объект Variable для нового токена, и этот токен помещается в стек BISON. Я хочу удалить переменную , когда она извлечена зубром и сброшена из стека. Я думал, что% деструктор служит этой цели, но я больше не уверен ..