accept @pure @nothrow @return attributes
Jonathan Marler via Digitalmars-d
digitalmars-d at puremagic.com
Mon Jan 26 13:41:29 PST 2015
On Monday, 26 January 2015 at 21:28:14 UTC, Foo wrote:
> On Monday, 26 January 2015 at 21:25:57 UTC, Jonathan Marler
> wrote:
>> On Monday, 26 January 2015 at 21:12:50 UTC, Walter Bright
>> wrote:
>>> On 1/26/2015 12:45 PM, Jonathan Marler wrote:
>>>> Just because they are function attributes does not mean
>>>> they were tokenized as "keywords".
>>>
>>> The lexer has no idea what a function attribute is or that
>>> now it should be looking for attributes and then it should
>>> not be.
>>
>> I feel like I keep repeating myself so I'm just going to
>> copy/paste.
>>
>>> If the grammar supported decorating a function with a list of
>>> id
>> tokens (not just keywords), then you could implement a
>> variation
>> on the c++ solution of allowing "override" and "final" after a
>> function signature.
>>
>> The lexer would recognize these attributes as normal ID tokens.
>> The grammar could be amended to allow a function to be
>> decorated with keywords and generic id tokens. Then the
>> meaning of those tokens would be handled by semantic analysis.
>> So the result would be that the lexer would see "nogc" and
>> "safe" as normal id tokens (not keywords) which would be
>> consumed as function attributes by the grammar. As far as I
>> can tell this results in the best of both worlds. We can omit
>> the '@' character on function attributes like safe and nogc
>> but they don't have to be added as keywords.
>
> Right. That's was what I meant.
> Same thing could be possible for body...
Ya same thing applies to "body". I'm surprised no one has given
a reason why it wasn't done this way.
More information about the Digitalmars-d
mailing list