The Wrong Stuff
Don
nospam at nospam.com
Sat Sep 25 22:59:51 PDT 2010
Jonathan M Davis wrote:
> On Saturday 25 September 2010 03:23:12 Torarin wrote:
>> 2010/9/24 Jonathan M Davis <jmdavisProg at gmx.com>:
>>> However, we're not going to double the number of keywords that we have,
>>> and the @ syntax has allowed us to remove some keywords and will allow
>>> us to add more stuff later without having to add keywords.
>> Why are attributes not considered keywords? Because the compiler
>> doesn't care about them?
>
> Because they don't need to be any more than variable names do. @ indicates that
> what follows is an attribute, so the next symbol is parsed as an attribute. If
> it were a keyword, then it wouldn't compile. keywords are always treated as
> keywords no matter the context. They show up explicitly in the grammar.
> Attributes do not show up explicitly in the grammar any more than variables do.
> The grammar indicates when a symbol is a variable, and it's parsed as variables.
> The grammar also indicates when a symbol is an attribute, and it's parsed as an
> attribute.
>
> Basically, what it comes down to is that keywords are symbols in the grammar -
> just like ! or ~ or <. Variable names and attributes are not.
>
> Attributes allow us to add more modifiers to stuff (particularly functions)
> without having to add new keywords. And someday, we may even be able to define
> attributes in our own code (right now, they're all known by the compiler) - and
> that's something that you obviously can't do with keywords.
>
> - Jonathan M Davis
You can already do that by prefixing with __.
More information about the Digitalmars-d
mailing list