Когда% деструктор вызывается в BISON?

Когда вызывается% деструктор в BISON ? У меня есть следующий код Bison:

%union{
    char * sval; 
    Variable * vval; 
} 

%token VARIABLE 
%token Literal 
%type <vval> Expression VARIABLE 
%type <sval> Literal 

%destructor { delete $$; } <vval> 
%destructor { delete $$; } Literal 

где Переменная - это класс. Я думал, что после обработки строки все объекты Variable будут освобождены, но я не вижу вызываемого деструктора. И это сразу приведет к утечке памяти ...

Edit: Для ясности; Я выделяю новый объект Variable для нового токена, и этот токен помещается в стек BISON. Я хочу удалить переменную , когда она выскакивает бизоном и удаляется из стека. Я думал, что% destructor служит этой цели, но больше не уверен ..

5
задан razlebe 20 June 2011 в 12:55
поделиться