help-bison
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Not able to use %union?


From: Akim Demaille
Subject: Re: Not able to use %union?
Date: Tue, 19 Feb 2019 06:57:29 +0100

> Le 18 févr. 2019 à 23:06, Hans Åberg <address@hidden> a écrit :
> 
> 
>> On 18 Feb 2019, at 04:37, Peng Yu <address@hidden> wrote:
>> 
>> I use rapidstring to make the string operations use and use the Boehm
>> garbage collector so that I don't have to always remember to release
>> the memory.
>> 
>> https://github.com/boyerjohn/rapidstring
>> 
>> Because I want to use the previously allocated memory, I don't want to
>> call "rs_init(&yylval->str)" in any action.
> 
> That is probably not needed (Akim may clarify): Without a GC, just hand over 
> the lexer allocated pointer to the parser marked with a type, and set 
> %destructor for this type to handle error cleanup when the parser stack 
> unwinds; otherwise deallocate in the rules.

I don't know enough of how this is supposed to work to answer.  Of course,
you have to not use the same memory space for returning two strings in a
row.

https://www.gnu.org/software/bison/manual/bison.html#Strings-are-Destroyed

Also, Peng writes:

>> I don't want to call "rs_init(&yylval->str)" in any action.

You don't have to do that in every action, just the ones returning strings.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]