Specifying eponymous template "internal parameter"

Philippe Sigaud philippe.sigaud at gmail.com
Tue Jan 8 10:40:44 PST 2013


On Tue, Jan 8, 2013 at 5:59 PM, monarch_dodra <monarchdodra at gmail.com>wrote:

>
> Oh. New alias syntax. Nice ain't it?
>

Yes nice. Why was it not announced somewhere?

At least, the grammar was updated:

*AliasDeclaration*: *alias*
*BasicType*<http://dlang.org/declaration.html#BasicType>
 *Declarator* <http://dlang.org/declaration.html#Declarator> *alias* *
AliasInitializerList*<http://dlang.org/declaration.html#AliasInitializerList>
 *AliasInitializerList*:
*AliasInitializer*<http://dlang.org/declaration.html#AliasInitializer>
 *AliasInitializer* <http://dlang.org/declaration.html#AliasInitializer> *,*
 *AliasInitializerList* *AliasInitializer*: *Identifier* *=*
*Type<http://dlang.org/declaration.html#Type>
*
*AliasDeclaration*: *alias*
*BasicType*<http://dlang.org/declaration.html#BasicType>
 *Declarator* <http://dlang.org/declaration.html#Declarator> *alias* *
AliasInitializerList*<http://dlang.org/declaration.html#AliasInitializerList>
 *AliasInitializerList*:
*AliasInitializer*<http://dlang.org/declaration.html#AliasInitializer>
 *AliasInitializer* <http://dlang.org/declaration.html#AliasInitializer> *,*
 *AliasInitializerList* *AliasInitializer*: *Identifier* *=*
*Type*<http://dlang.org/declaration.html#Type>
*AliasDeclaration*: *alias*
*BasicType*<http://dlang.org/declaration.html#BasicType>
 *Declarator* <http://dlang.org/declaration.html#Declarator> *alias* *
AliasInitializerList*<http://dlang.org/declaration.html#AliasInitializerList>
 *AliasInitializerList*:
*AliasInitializer*<http://dlang.org/declaration.html#AliasInitializer>
 *AliasInitializer* <http://dlang.org/declaration.html#AliasInitializer> *,*
 *AliasInitializerList* *AliasInitializer*: *Identifier* *=*
*Type*<http://dlang.org/declaration.html#Type>
AliasDeclaration:
    alias BasicType Declarator
    alias AliasInitializerList

AliasInitializerList:
    AliasInitializer
    AliasInitializer , AliasInitializerList

AliasInitializer:
    Identifier = Type

I'll have to update my grammar and generated parser.
Hmm. Why the limitation to Type?


The examples still all use the old syntax, but oh well.



> It works for everything except "alias something this". Not that it can't
> be done, but there were discussions for another syntax specific to alias
> this.
>

The grammar says:

*AliasThisDeclaration*: *alias* *Identifier* *this* *alias* *this* *=* *
Identifier* AliasThisDeclaration:
    alias Identifier this
    alias this = Identifier

Nice nice nice.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d-learn/attachments/20130108/c3c674c4/attachment-0001.html>


More information about the Digitalmars-d-learn mailing list