accept @pure @nothrow @return attributes

Walter Bright via Digitalmars-d digitalmars-d at puremagic.com
Mon Jan 26 17:54:41 PST 2015


On 1/26/2015 3:07 PM, Jonathan Marler wrote:
> Walter I hate to waste your time in answering my silly questions.  I know you
> have a much deeper knowledge and understanding of the language then I.  I can
> see that you believe my suggestion would create some unnecessary complexity
> ("It's like using a nail for a cotter pin"), however, I can't see how it would
> so I'm going to ask another question. I can see that you are trying to save time
> from your short responses so I'll understand if I understand if you feel I'm a
> lost cause and do not respond again.
>
> You said you strongly dislike "context-sensitive" tokens but I still don't know
> exactly what you mean by "context-sensitive". You said a token is
> "context-sensitive" if it is "A keyword in one context and an identifier in
> another".  However, since I'm not proposing that "save" and "nogc" be keywords
> in any context, this doesn't appear to fall under your definition.  So I must
> assume your real definition is more general. However, if the definition is too
> general then couldn't you consider almost any token "context-sensitive".  For
> example, the token "static" or "ref" have different meanings depending on their
> context, so are they "context-sensitive"?  Yes they are still keyword tokens,
> but "safe" and "nogc" would still just be regular id tokens so what makes "safe"
> and "nogc" more "context-sensitive" then "static" and "ref"?
>
> I'm honestly trying to understand.  I can see from how the grammar works that
> you don't agree my solution is a good one, but I'm failing to understand why.  I
> fail to see how allowing a function to be decorated with id tokens is more
> complex then only allowing keywords.  Also sorry for harping on definitions,  I
> majored in Computer Science and Mathematics...having strict definitions comes
> from my days of writing endless proofs.

Your argument boils down to there are no such things as token keywords. Yes, you 
can make a language work like that. I've seen it done. It is awful. The solution 
is clear:

    static is a keyword. You can NEVER use it as an identifier. Same with all 
other keywords.


More information about the Digitalmars-d mailing list