[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.
- Re: Dynamic token kinds,
Hans Åberg <=
- Re: Dynamic token kinds, Frank Heckenbach, 2018/12/16
- Re: Dynamic token kinds, Hans Åberg, 2018/12/16
- Re: Dynamic token kinds, Frank Heckenbach, 2018/12/16
- Re: Dynamic token kinds, Hans Åberg, 2018/12/16
- Re: Dynamic token kinds, Frank Heckenbach, 2018/12/16
- Re: Dynamic token kinds, Hans Åberg, 2018/12/16
- Re: Dynamic token kinds, Frank Heckenbach, 2018/12/17
- Re: Dynamic token kinds, Hans Åberg, 2018/12/17
- Re: Dynamic token kinds, Frank Heckenbach, 2018/12/17
- Re: Dynamic token kinds, Hans Åberg, 2018/12/17