bug-bison
[Top][All Lists]
Advanced

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

Re: Dynamic token kinds


From: Hans Åberg
Subject: Re: Dynamic token kinds
Date: Sat, 15 Dec 2018 19:04:31 +0100

> On 30 Nov 2018, at 00:40, Frank Heckenbach <address@hidden> wrote:
> 
> Hans Åberg wrote:
> 
>>> Sure, though for my taste "unsafe" sounds a bit harsh, perhaps
>>> "unchecked"? If you put in the next release, I'll change my code to
>>> use it.
>> 
>> It seems pretty standard to have lookup tokens with different
>> syntactic behavior, for example when they are declared of
>> different type in a language. So it is worrisome that the typed
>> parser deems the use unsafe.
> 
> What is potentially unsafe is that the actual type may not match the
> declared type in the grammar. With std::variant, a mismatch would
> cause an exception to be thrown. With Bison's static variant, a
> mismatch might lead to UB.
> 
> So perhaps this function could actually do a type check (which
> probably requires another auto-generated switch) and also throw or
> (if this is not desired) call std::terminate or so on mismatch,
> Akim?

The C++17 std::variant stores the type as an index. So perhaps there should be 
and additional table storing the type, with a symbol constructor that 
constructs the right value from the token.





reply via email to

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