Changeset 2140

Show
Ignore:
Timestamp:
11/09/10 01:47:01 (2 years ago)
Author:
walter
Message:

bugzilla 1351 Discrepancies in the language specification

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/docsrc/attribute.dd

    r2040 r2140  
    1616    $(B static) 
    1717    $(B final) 
     18    $(B synchronized) 
    1819    $(LINK2 #override, $(B override)) 
    1920    $(LINK2 #abstract, $(B abstract)) 
     
    2122    $(LINK2 #auto, $(B auto)) 
    2223    $(LINK2 #scope, $(B scope)) 
    23 $(V2    $(LINK2 #gshared, $(B __gshared)) 
     24$(V2      $(LINK2 #gshared, $(B __gshared)) 
    2425    $(LINK2 #shared, $(B shared)) 
    2526    $(LINK2 #immutable, $(B immutable)) 
     
    145146$(GNAME AlignAttribute): 
    146147    $(B align) 
    147     $(B align) $(B $(LPAREN)) $(I Integer) $(B $(RPAREN)) 
     148    $(B align) $(B $(LPAREN)) $(LINK2 lex.html#IntegerLiteral, $(I IntegerLiteral)) $(B $(RPAREN)) 
    148149) 
    149150 
  • trunk/docsrc/class.dd

    r2136 r2140  
    240240$(GRAMMAR 
    241241$(GNAME Constructor): 
    242     $(B this) $(I Parameters) $(I FunctionBody) 
     242    $(B this) $(GLINK2 declaration, Parameters) $(GLINK2 function, FunctionBody) 
     243$(V2          $(GLINK2 template, TemplatedConstructor)) 
    243244) 
    244245 
     
    415416$(GRAMMAR 
    416417$(GNAME Destructor): 
    417     $(B ~this()) $(I FunctionBody) 
     418    $(B ~this()) $(GLINK2 function, FunctionBody) 
    418419) 
    419420 
     
    475476$(GRAMMAR 
    476477$(GNAME StaticConstructor): 
    477     $(B static this()) $(I FunctionBody) 
     478    $(B static this()) $(GLINK2 function, FunctionBody) 
    478479) 
    479480 
     
    569570$(GRAMMAR 
    570571$(GNAME StaticDestructor): 
    571     $(B static ~this()) $(I FunctionBody) 
     572    $(B static ~this()) $(GLINK2 function, FunctionBody) 
    572573) 
    573574 
     
    614615$(GRAMMAR 
    615616$(GNAME SharedStaticConstructor): 
    616     $(B shared static this()) $(I FunctionBody) 
     617    $(B shared static this()) $(GLINK2 function, FunctionBody) 
    617618) 
    618619 
     
    625626$(GRAMMAR 
    626627$(GNAME SharedStaticDestructor): 
    627     $(B shared static ~this()) $(I FunctionBody) 
     628    $(B shared static ~this()) $(GLINK2 function, FunctionBody) 
    628629) 
    629630 
     
    638639$(GRAMMAR 
    639640$(GNAME Invariant): 
    640     $(B invariant()) $(I BlockStatement) 
     641    $(B invariant()) $(GLINK2 statement, BlockStatement) 
    641642) 
    642643 
     
    720721$(GRAMMAR 
    721722$(GNAME ClassAllocator): 
    722     $(B new) $(I Parameters) $(I FunctionBody) 
     723    $(B new) $(GLINK2 declaration, Parameters) $(GLINK2 function, FunctionBody) 
    723724) 
    724725 
     
    787788$(GRAMMAR 
    788789$(GNAME ClassDeallocator): 
    789     $(B delete) $(I Parameters) $(I FunctionBody) 
     790    $(B delete) $(GLINK2 declaration, Parameters) $(GLINK2 function, FunctionBody) 
    790791) 
    791792 
     
    11411142$(GRAMMAR 
    11421143$(GNAME NewAnonClassExpression): 
    1143     $(B new) $(I PerenArgumentList)<sub>opt</sub> $(B class) $(I PerenArgumentList)<sub>opt</sub> $(I SuperClass)<sub>opt</sub> $(I InterfaceClasses)<sub>opt</sub> $(I ClassBody) 
    1144  
    1145 $(GNAME PerenArgumentList): 
    1146     $(B $(LPAREN))$(I ArgumentList)$(B $(RPAREN)) 
     1144    $(B new) $(GLINK ParenArgumentList)$(OPT) $(B class) $(I ParenArgumentList)$(OPT) $(GLINK SuperClass)$(OPT) $(GLINK InterfaceClasses)$(OPT) $(GLINK ClassBody) 
     1145 
     1146$(GNAME ParenArgumentList): 
     1147    $(B $(LPAREN)) $(I ArgumentList) $(B $(RPAREN)) 
    11471148) 
    11481149 
  • trunk/docsrc/declaration.dd

    r2040 r2140  
    7272        $(B [) $(VEXPRESSION) $(B ]) 
    7373        $(B [) $(VEXPRESSION) .. $(VEXPRESSION) $(B ]) 
    74         $(B [) $(I Type) $(B ]) 
     74        $(B [) $(GLINK Type) $(B ]) 
    7575        $(B delegate) $(GLINK Parameters) $(V2 $(GLINK FunctionAttributes)$(OPT)) 
    7676        $(B function) $(GLINK Parameters) $(V2 $(GLINK FunctionAttributes)$(OPT)) 
     
    7878$(GNAME Declarator): 
    7979        $(GLINK BasicType2)$(OPT) $(I Declarator) $(GLINK DeclaratorSuffixes)$(OPT) 
     80        $(GLINK BasicType2)$(OPT) $(B $(LPAREN)) $(I Declarator) $(B $(RPAREN)) $(GLINK DeclaratorSuffixes)$(OPT) 
    8081        $(GLINK BasicType2)$(OPT) $(I Identifier) $(GLINK DeclaratorSuffixes)$(OPT) 
    8182 
     
    8788        $(B [ ]) 
    8889        $(B [) $(VEXPRESSION) $(B ]) 
    89         $(B [) $(I Type) $(B ]) 
    90     $(LINK2 template.html#TemplateParameterList, $(I TemplateParameterList))$(OPT) $(GLINK Parameters) $(V2 $(GLINK MemberFunctionAttributes)<sub>opt</sub>
     90        $(B [) $(GLINK Type) $(B ]) 
     91    $(GLINK2 template, TemplateParameterList)$(OPT) $(GLINK Parameters) $(V2 $(GLINK MemberFunctionAttributes)$(OPT) $(GLINK2 template, Constraint)$(OPT)
    9192 
    9293$(GNAME IdentifierList): 
    9394        $(I Identifier) 
    9495        $(I Identifier) $(B .) $(I IdentifierList) 
    95         $(I TemplateInstance) 
    96         $(I TemplateInstance) $(B .) $(I IdentifierList) 
     96        $(GLINK2 template, TemplateInstance) 
     97        $(GLINK2 template, TemplateInstance) $(B .) $(I IdentifierList) 
    9798 
    9899$(GNAME StorageClasses): 
     
    107108        $(B extern) 
    108109        $(B final) 
    109 $(V2 
    110         $(B immutable) 
     110$(V2          $(B immutable) 
    111111        $(B inout) 
    112112        $(B shared) 
     
    114114        $(B override) 
    115115    $(B pure) 
     116    $(B __gshared) 
     117    $(GLINK Property) 
    116118)        $(B scope) 
    117119        $(B static) 
    118120        $(B synchronized) 
    119121 
     122$(GNAME Property): 
     123    $(B @) $(I Identifier) 
     124 
    120125$(GNAME Type): 
    121126        $(GLINK BasicType) 
     
    123128 
    124129$(GNAME Declarator2): 
    125         $(GLINK BasicType2) $(I Declarator2) 
    126         $(B $(LPAREN)) $(I Declarator2) $(B $(RPAREN)) 
    127         $(B $(LPAREN)) $(I Declarator2) $(B $(RPAREN)) $(GLINK DeclaratorSuffixes) 
     130        $(GLINK BasicType2)$(OPT) $(I Declarator2)$(OPT) $(GLINK DeclaratorSuffixes)$(OPT) 
     131        $(GLINK BasicType2)$(OPT) $(B $(LPAREN)) $(I Declarator2) $(B $(RPAREN)) $(GLINK DeclaratorSuffixes)$(OPT) 
    128132 
    129133$(GNAME Parameters): 
     
    134138        $(GLINK Parameter) 
    135139        $(GLINK Parameter) $(B ,) $(I ParameterList) 
    136         $(GLINK Parameter) $(B ...) 
    137140        $(B ...) 
    138141 
    139142$(GNAME Parameter): 
    140         $(GLINK Declarator) 
    141         $(GLINK Declarator) = $(I DefaultInitializerExpression) 
    142         $(I InOut) $(GLINK Declarator) 
    143         $(I InOut) $(GLINK Declarator) = $(I DefaultInitializerExpression) 
    144  
    145 $(GNAME InOut): 
    146         $(B in) 
     143        $(I InOut)$(OPT) $(GLINK BasicType) $(GLINK Declarator) 
     144        $(I InOut)$(OPT) $(GLINK BasicType) $(GLINK Declarator) $(B ...) 
     145        $(I InOut)$(OPT) $(GLINK BasicType) $(GLINK Declarator) = $(GLINK DefaultInitializerExpression) 
     146        $(I InOut)$(OPT) $(GLINK Type) 
     147        $(I InOut)$(OPT) $(GLINK Type) $(B ...) 
     148 
     149 $(GNAME InOut): 
     150        $(I InOutX) 
     151        $(I InOut InOutX) 
     152 
     153$(GNAME InOutX): 
     154        $(B auto) 
     155        $(B const) 
     156        $(B final) 
     157$(V2          $(B immutable) 
     158)        $(B in) 
     159        $(B inout) 
     160        $(B lazy) 
    147161        $(B out) 
    148162        $(B ref) 
    149         $(B lazy) 
     163        $(B scope) 
     164        $(B shared) 
    150165 
    151166$(V2 
     
    157172    $(B nothrow) 
    158173    $(B pure) 
     174    $(GLINK Property) 
    159175) 
    160176$(GNAME MemberFunctionAttributes): 
     
    171187$(GNAME DefaultInitializerExpression): 
    172188    $(ASSIGNEXPRESSION) 
    173 $(V2 
    174     $(B __FILE__) 
     189$(V2          $(B __FILE__) 
    175190    $(B __LINE__)) 
    176191 
     
    274289$(GRAMMAR 
    275290$(GNAME AutoDeclaration): 
    276     $(I StorageClasses) $(I Identifier) $(B =) $(ASSIGNEXPRESSION) $(B ;) 
     291    $(GLINK StorageClasses) $(I AutoDeclarationX) $(B ;) 
     292 
     293$(GNAME AutoDeclarationX): 
     294        $(I Identifier) $(B =) $(GLINK Initializer) 
     295        $(I AutoDeclarationX) $(B ,) $(I Identifier) $(B =) $(GLINK Initializer) 
    277296) 
    278297 
  • trunk/docsrc/doc.ddoc

    r2139 r2140  
    360360NG_DMDScript = <a href="$(NEWS DMDScript,$0)">DMDScript/$0</a> 
    361361 
     362OPT=<sub>opt</sub> 
    362363GLINK=$(LINK2 #$0, $(I $0)) 
    363364GLINK2=$(LINK2 $1.html#$2, $(I $2)) 
  • trunk/docsrc/enum.dd

    r671 r2140  
    1414 
    1515$(GNAME EnumBaseType): 
    16     $(I Type
     16    $(LINK2 declaration.html#Type, $(I Type)
    1717 
    1818$(GNAME EnumBody): 
     
    2828    $(I Identifier) 
    2929    $(I Identifier) $(B =) $(ASSIGNEXPRESSION) 
    30 $(V2 
    31     $(I Type) $(I Identifier) $(B =) $(ASSIGNEXPRESSION)) 
     30$(V2          $(LINK2 declaration.html#Type, $(I Type)) $(B =) $(ASSIGNEXPRESSION)) 
    3231) 
    3332 
  • trunk/docsrc/expression.dd

    r2111 r2140  
    292292    Equality for floating point types is more complicated. -0 and 
    293293    +0 compare as equal. If either or both operands are NAN, then 
    294     == returns false and != returns true. Otherwise, the bit 
     294    both the == returns false and != returns true. Otherwise, the bit 
    295295    patterns are compared for equality. 
    296296    <p> 
     
    729729    $(B !) $(I UnaryExpression) 
    730730    $(B ~) $(I UnaryExpression) 
    731     $(B $(LPAREN)) $(I Type) $(B $(RPAREN) .) $(I Identifier) 
     731    $(B $(LPAREN)) $(LINK2 declaration.html#Type, $(I Type)) $(B $(RPAREN) .) $(I Identifier) 
    732732    $(GLINK NewExpression) 
    733733    $(GLINK DeleteExpression) 
     
    741741$(GRAMMAR 
    742742$(GNAME NewExpression): 
    743     $(I NewArguments) $(I Type) $(B [) $(GLINK AssignExpression) $(B ]) 
    744     $(I NewArguments) $(I Type) $(B $(LPAREN)) $(GLINK ArgumentList) $(B $(RPAREN)) 
    745     $(I NewArguments) $(I Type
    746     $(I NewArguments) $(I ClassArguments) $(I BaseClasslist)<sub>opt</sub> $(B {) $(I DeclDefs) $(B } ) 
     743    $(I NewArguments) $(LINK2 declaration.html#Type, $(I Type)) $(B [) $(GLINK AssignExpression) $(B ]) 
     744    $(I NewArguments) $(LINK2 declaration.html#Type, $(I Type)) $(B $(LPAREN)) $(GLINK ArgumentList) $(B $(RPAREN)) 
     745    $(I NewArguments) $(LINK2 declaration.html#Type, $(I Type)
     746    $(I NewArguments) $(I ClassArguments) $(GLINK BaseClasslist)$(OPT) $(B {) $(GLINK DeclDefs) $(B } ) 
    747747 
    748748$(GNAME NewArguments): 
     
    861861$(GRAMMAR 
    862862$(GNAME CastExpression): 
    863     $(B cast $(LPAREN)) $(I Type) $(B $(RPAREN)) $(GLINK UnaryExpression) 
     863    $(B cast $(LPAREN)) $(LINK2 declaration.html#Type, $(I Type)) $(B $(RPAREN)) $(GLINK UnaryExpression) 
     864    $(B cast $(LPAREN)) $(I CastParam) $(B $(RPAREN)) $(GLINK UnaryExpression) 
     865 
     866$(GNAME CastParam): 
     867        $(LINK2 declaration.html#Type, $(I Type)) 
     868    $(B const) 
     869    $(B const shared) 
     870    $(B shared const) 
     871    $(B inout) 
     872    $(B inout shared) 
     873    $(B shared inout) 
     874    $(B immutable) 
     875    $(B shared) 
    864876) 
    865877 
    866878    $(P A $(I CastExpression) converts the $(I UnaryExpression) 
    867     to $(I Type). 
     879    to $(LINK2 declaration.html#Type, $(I Type)). 
    868880    ) 
    869881 
     
    944956    $(GLINK PrimaryExpression) 
    945957    $(I PostfixExpression) $(B .) $(I Identifier) 
     958    $(I PostfixExpression) $(B .) $(LINK2 template.html#TemplateInstance, $(I TemplateInstance)) 
    946959    $(I PostfixExpression) $(B .) $(GLINK NewExpression) 
    947960    $(I PostfixExpression) $(B ++) 
     
    10381051    $(B false) 
    10391052    $(B $) 
    1040 $(V2 
    1041     $(B __FILE__) 
     1053$(V2          $(B __FILE__) 
    10421054    $(B __LINE__)) 
    10431055    $(GLINK2 lex, IntegerLiteral) 
     
    10511063    $(GLINK MixinExpression) 
    10521064    $(GLINK ImportExpression) 
    1053     $(I BasicType) $(B .) $(I Identifier) 
     1065    $(LINK2 declaration.html#BasicTypeX, $(I BasicType)) $(B .) $(I Identifier) 
    10541066    $(LINK2 declaration.html#Typeof, $(I Typeof)) 
    10551067    $(GLINK TypeidExpression) 
    10561068    $(GLINK IsExpression) 
    10571069    $(B $(LPAREN)) $(I Expression) $(B $(RPAREN)) 
    1058 $(V2 
    1059     $(LINK2 traits.html#TraitsExpression, $(I TraitsExpression))) 
     1070$(V2          $(LINK2 traits.html#TraitsExpression, $(I TraitsExpression))) 
    10601071) 
    10611072 
     
    12521263 
    12531264$(GNAME KeyExpression): 
    1254     $(GLINK ConditionalExpression) 
     1265    $(GLINK AssignExpression) 
    12551266 
    12561267$(GNAME ValueExpression): 
    1257     $(GLINK ConditionalExpression) 
     1268    $(GLINK AssignExpression) 
    12581269) 
    12591270 
     
    12861297$(GRAMMAR 
    12871298$(GNAME FunctionLiteral): 
    1288     $(B function) $(I Type)<sub>opt</sub> $(I ParameterAttributes) <sub>opt</sub> $(I FunctionBody
    1289     $(B delegate) $(I Type)<sub>opt</sub> $(I ParameterAttributes) <sub>opt</sub> $(I FunctionBody
    1290     $(I ParameterAttributes) $(I FunctionBody
    1291     $(I FunctionBody
     1299    $(B function) $(LINK2 declaration.html#Type, $(I Type))$(OPT) $(I ParameterAttributes) $(OPT) $(LINK2 function.html#FunctionBody, $(I FunctionBody)
     1300    $(B delegate) $(LINK2 declaration.html#Type, $(I Type))$(OPT) $(I ParameterAttributes) $(OPT) $(LINK2 function.html#FunctionBody, $(I FunctionBody)
     1301    $(I ParameterAttributes) $(LINK2 function.html#FunctionBody, $(I FunctionBody)
     1302    $(LINK2 function.html#FunctionBody, $(I FunctionBody)
    12921303 
    12931304$(GNAME ParameterAttributes): 
    12941305    $(LINK2 declaration.html#Parameters, $(I Parameters)) 
    1295 $(V2 
    1296     $(LINK2 declaration.html#Parameters, $(I Parameters)) $(LINK2 declaration.html#FunctionAttributes, $(I FunctionAttributes)) 
    1297 
     1306$(V2         $(LINK2 declaration.html#Parameters, $(I Parameters)) $(LINK2 declaration.html#FunctionAttributes, $(I FunctionAttributes))) 
    12981307) 
    12991308 
     
    15081517$(GRAMMAR 
    15091518$(GNAME TypeidExpression): 
    1510     $(B typeid $(LPAREN)) $(I Type) $(B $(RPAREN)) 
    1511 $(V2      $(B typeid $(LPAREN)) $(I Expression) $(B $(RPAREN))) 
     1519    $(B typeid $(LPAREN)) $(LINK2 declaration.html#Type, $(I Type)) $(B $(RPAREN)) 
     1520$(V2      $(B typeid $(LPAREN)) $(GLINK Expression) $(B $(RPAREN))) 
    15121521) 
    15131522 
     
    15561565$(GRAMMAR 
    15571566$(GNAME IsExpression): 
    1558     $(B is $(LPAREN)) $(I Type) $(B $(RPAREN)) 
    1559     $(B is $(LPAREN)) $(I Type) $(B :) $(I TypeSpecialization) $(B $(RPAREN)) 
    1560     $(B is $(LPAREN)) $(I Type) $(B ==) $(I TypeSpecialization) $(B $(RPAREN)) 
    1561     $(B is $(LPAREN)) $(I Type) $(I Identifier) $(B $(RPAREN)) 
    1562     $(B is $(LPAREN)) $(I Type) $(I Identifier) $(B :) $(I TypeSpecialization) $(B $(RPAREN)) 
    1563     $(B is $(LPAREN)) $(I Type) $(I Identifier) $(B ==) $(I TypeSpecialization) $(B $(RPAREN)) 
    1564     $(V2 $(B is $(LPAREN)) $(I Type) $(I Identifier) $(B :) $(I TypeSpecialization) $(B ,) $(I TemplateParameterList) $(B $(RPAREN)) 
    1565     $(B is $(LPAREN)) $(I Type) $(I Identifier) $(B ==) $(I TypeSpecialization) $(B ,) $(I TemplateParameterList) $(B $(RPAREN)) 
     1567    $(B is $(LPAREN)) $(LINK2 declaration.html#Type, $(I Type)) $(B $(RPAREN)) 
     1568    $(B is $(LPAREN)) $(LINK2 declaration.html#Type, $(I Type)) $(B :) $(I TypeSpecialization) $(B $(RPAREN)) 
     1569    $(B is $(LPAREN)) $(LINK2 declaration.html#Type, $(I Type)) $(B ==) $(I TypeSpecialization) $(B $(RPAREN)) 
     1570    $(B is $(LPAREN)) $(LINK2 declaration.html#Type, $(I Type)) $(I Identifier) $(B $(RPAREN)) 
     1571    $(B is $(LPAREN)) $(LINK2 declaration.html#Type, $(I Type)) $(I Identifier) $(B :) $(I TypeSpecialization) $(B $(RPAREN)) 
     1572    $(B is $(LPAREN)) $(LINK2 declaration.html#Type, $(I Type)) $(I Identifier) $(B ==) $(I TypeSpecialization) $(B $(RPAREN)) 
     1573    $(V2 $(B is $(LPAREN)) $(LINK2 declaration.html#Type, $(I Type)) $(I Identifier) $(B :) $(I TypeSpecialization) $(B ,) $(I TemplateParameterList) $(B $(RPAREN)) 
     1574    $(B is $(LPAREN)) $(LINK2 declaration.html#Type, $(I Type)) $(I Identifier) $(B ==) $(I TypeSpecialization) $(B ,) $(I TemplateParameterList) $(B $(RPAREN)) 
    15661575) 
    15671576 
    15681577$(GNAME TypeSpecialization): 
    1569     $(I Type
     1578    $(LINK2 declaration.html#Type, $(I Type)
    15701579$(V1    $(B typedef) 
    15711580)   $(B struct) 
     
    15771586    $(B delegate) 
    15781587    $(B super) 
    1579 $(V2 
    1580     $(B const) 
     1588$(V2          $(B const) 
    15811589    $(B immutable) 
    15821590    $(B inout) 
  • trunk/docsrc/lex.dd

    r2040 r2140  
    301301    $(B ~) 
    302302    $(B ~=) 
     303    $(V2 $(B @)) 
    303304) 
    304305 
     
    672673 
    673674$(GRAMMAR 
    674 $(I IntegerLiteral): 
     675$(GNAME IntegerLiteral): 
    675676    $(I Integer) 
    676677    $(I Integer) $(I IntegerSuffix) 
  • trunk/docsrc/statement.dd

    r2131 r2140  
    216216    $(EXPRESSION) 
    217217    $(B auto) $(I Identifier) $(B =) $(EXPRESSION) 
    218     $(I Declarator) $(B =) $(EXPRESSION) 
     218    $(GLINK2 declaration, BasicType) $(GLINK2 declaration, Declarator) $(B =) $(EXPRESSION) 
    219219 
    220220$(GNAME ThenStatement): 
     
    330330$(GRAMMAR 
    331331$(I ForStatement): 
    332     $(B for $(LPAREN))$(I Initialize) $(I Test) $(B ;) $(I Increment)$(B $(RPAREN)) $(PSSCOPE) 
     332    $(B for $(LPAREN))$(I Initialize) $(I Test)$(OPT) $(B ;) $(I Increment)$(OPT)$(B $(RPAREN)) $(PSSCOPE) 
    333333 
    334334$(GNAME Initialize): 
     
    337337 
    338338$(GNAME Test): 
    339     $(I empty) 
    340339    $(EXPRESSION) 
    341340 
    342341$(GNAME Increment): 
    343     $(I empty) 
    344342    $(EXPRESSION) 
    345343) 
     
    414412 
    415413$(GNAME ForeachType): 
    416     $(B ref) $(I Type) $(I Identifier) 
    417     $(I Type) $(I Identifier) 
     414    $(B ref) $(GLINK2 declaration, BasicType) $(GLINK2 declaration, Declarator) 
     415    $(GLINK2 declaration, BasicType) $(GLINK2 declaration, Declarator) 
    418416    $(B ref) $(I Identifier) 
    419417    $(I Identifier) 
     
    817815 
    818816$(I FirstExp): 
    819     $(I AssignExpression
     817    $(ASSIGNEXPRESSION
    820818 
    821819$(I LastExp): 
    822     $(I AssignExpression
     820    $(ASSIGNEXPRESSION
    823821) 
    824822$(GNAME DefaultStatement): 
     
    13191317 
    13201318$(GNAME CatchParameter): 
    1321     $(I BasicType) $(I Identifier) 
     1319    $(GLINK2 declaration, BasicType) $(I Identifier) 
    13221320 
    13231321$(GNAME FinallyStatement): 
  • trunk/docsrc/struct.dd

    r2136 r2140  
    580580$(GRAMMAR 
    581581$(GNAME StructPostblit): 
    582     $(B this(this)) $(I FunctionBody
     582    $(B this(this)) $(LINK2 function.html#FunctionBody, $(I FunctionBody)
    583583) 
    584584 
  • trunk/docsrc/template-mixin.dd

    r2040 r2140  
    1010$(GNAME TemplateMixinDeclaration): 
    1111    $(V2 $(B mixin)) $(B template) $(TEMPLATEIDENTIFIER) $(B $(LPAREN)) $(TEMPLATEPARAMETERLIST) $(B $(RPAREN)) $(V2 $(GLINK Constraint)$(SUB $(I opt))) 
    12         $(B {) DeclDefs $(B }) 
     12        $(B {) $(LINK2 module.html#DeclDefs, DeclDefs) $(B }) 
    1313 
    1414$(GNAME TemplateMixin): 
  • trunk/docsrc/template.dd

    r1939 r2140  
    1414$(GNAME TemplateDeclaration): 
    1515    $(B template) $(GLINK TemplateIdentifier) $(B $(LPAREN)) $(GLINK TemplateParameterList) $(B $(RPAREN)) $(V2 $(GLINK Constraint)$(SUB $(I opt))) 
    16         $(B {) DeclDefs $(B }) 
     16        $(B {) $(GLINK2 module, DeclDefs) $(B }) 
    1717 
    1818$(GNAME TemplateIdentifier): 
     
    2929    $(GLINK TemplateAliasParameter) 
    3030    $(GLINK TemplateTupleParameter) 
    31 $(V2 
    32     $(GLINK TemplateThisParameter)) 
     31$(V2          $(GLINK TemplateThisParameter)) 
    3332) 
    3433 
     
    6867$(GNAME TemplateInstance): 
    6968    $(GLINK TemplateIdentifier) $(B !$(LPAREN)) $(GLINK TemplateArgumentList) $(B $(RPAREN)) 
    70 $(V2 
    71     $(GLINK TemplateIdentifier) $(B !) $(GLINK TemplateSingleArgument) 
    72 
     69$(V2          $(GLINK TemplateIdentifier) $(B !) $(GLINK TemplateSingleArgument)) 
    7370 
    7471$(GNAME TemplateArgumentList): 
     
    7875 
    7976$(GNAME TemplateArgument): 
    80     $(I Type) 
     77    $(GLINK2 declaration, Type) 
    8178    $(ASSIGNEXPRESSION) 
    8279    $(I Symbol) 
     
    335332 
    336333$(GNAME TemplateTypeParameterSpecialization): 
    337      $(B :) $(I Type) 
     334     $(B :) $(GLINK2 declaration, Type) 
    338335 
    339336$(GNAME TemplateTypeParameterDefault): 
    340      $(B =) $(I Type) 
     337     $(B =) $(GLINK2 declaration, Type) 
    341338) 
    342339 
     
    415412$(GRAMMAR 
    416413$(GNAME TemplateValueParameter): 
    417     $(I Declaration
    418     $(I Declaration) $(I TemplateValueParameterSpecialization) 
    419     $(I Declaration) $(I TemplateValueParameterDefault) 
    420     $(I Declaration) $(I TemplateValueParameterSpecialization) $(I TemplateValueParameterDefault) 
     414    $(GLINK2 declaration, BasicType) $(GLINK2 declaration, Declarator
     415    $(GLINK2 declaration, BasicType) $(GLINK2 declaration, Declarator) $(I TemplateValueParameterSpecialization) 
     416    $(GLINK2 declaration, BasicType) $(GLINK2 declaration, Declarator) $(I TemplateValueParameterDefault) 
     417    $(GLINK2 declaration, BasicType) $(GLINK2 declaration, Declarator) $(I TemplateValueParameterSpecialization) $(I TemplateValueParameterDefault) 
    421418 
    422419$(GNAME TemplateValueParameterSpecialization): 
     
    424421 
    425422$(GNAME TemplateValueParameterDefault): 
    426 $(V2 
    427     $(B = __FILE__) 
     423$(V2      $(B = __FILE__) 
    428424    $(B = __LINE__)) 
    429     $(B =) $(LINK2 expression.html#ConditionalExpression, $(I ConditionalExpression)
     425    $(B =) $(ASSIGNEXPRESSION
    430426) 
    431427 
     
    474470$(GRAMMAR 
    475471$(GNAME TemplateAliasParameter): 
    476     $(B alias) $(I Identifier) $(I TemplateAliasParameterSpecialization)$(SUB $(I opt)) $(I TemplateAliasParameterDefault)$(SUB $(I opt)) 
     472    $(B alias) $(I Identifier) $(I TemplateAliasParameterSpecialization)$(OPT) $(I TemplateAliasParameterDefault)$(OPT) 
     473    $(B alias) $(GLINK2 declaration, BasicType) $(GLINK2 declaration, Declarator) $(I TemplateAliasParameterSpecialization)$(OPT) $(I TemplateAliasParameterDefault)$(OPT) 
    477474 
    478475$(GNAME TemplateAliasParameterSpecialization): 
    479      $(B :) $(I Type) 
     476     $(B :) $(GLINK2 declaration, Type) 
     477     $(B :) $(GLINK2 expression, ConditionalExpression) 
    480478 
    481479$(GNAME TemplateAliasParameterDefault): 
    482      $(B =) $(I Type) 
     480     $(B =) $(GLINK2 declaration, Type) 
     481     $(B =) $(GLINK2 expression, ConditionalExpression) 
    483482) 
    484483 
     
    784783$(GRAMMAR 
    785784$(GNAME ClassTemplateDeclaration): 
    786     $(B class) $(I Identifier) $(B $(LPAREN)) $(GLINK TemplateParameterList) $(B $(RPAREN)) $(I BaseClassList) $(I ClassBody) 
     785    $(B class) $(I Identifier) $(B $(LPAREN)) $(GLINK TemplateParameterList) $(B $(RPAREN)) $(GLINK Constraint)$(OPT) $(GLINK2 class, BaseClassList) $(GLINK2 class, ClassBody) 
     786 
     787$(GNAME TemplatedConstructor): 
     788    $(B this) $(B $(LPAREN)) $(GLINK2 template, TemplateParameterList) $(B $(RPAREN)) $(GLINK2 declaration, Parameters) $(GLINK Constraint)$(OPT) $(GLINK2 function, FunctionBody)) 
    787789) 
    788790 
  • trunk/docsrc/version.dd

    r1580 r2140  
    7171$(GRAMMAR 
    7272$(GNAME VersionCondition): 
    73     $(B version $(LPAREN)) $(I Integer) $(B $(RPAREN)) 
     73    $(B version $(LPAREN)) $(LINK2 lex.html#IntegerLiteral, $(I IntegerLiteral)) $(B $(RPAREN)) 
    7474    $(B version $(LPAREN)) $(I Identifier) $(B $(RPAREN)) 
    7575$(V2 
     
    7777) 
    7878 
    79     $(P The $(I VersionCondition) is satisfied if the $(I Integer
     79    $(P The $(I VersionCondition) is satisfied if the $(I IntegerLiteral
    8080    is greater than or equal to the current $(I version level), 
    8181    or if $(I Identifier) matches a $(I version identifier). 
     
    126126$(GNAME VersionSpecification): 
    127127    $(B version =) $(I Identifier) $(B ;) 
    128     $(B version =) $(I Integer) $(B ;) 
     128    $(B version =) $(LINK2 lex.html#IntegerLiteral, $(I IntegerLiteral)) $(B ;) 
    129129) 
    130130 
     
    201201 
    202202------ 
    203 version($(I n)) // add in version code if version level is >= $(I n) 
     203version($(I n)) // add in version code if version level is &gt;= $(I n) 
    204204{ 
    205205   ... version code ... 
     
    303303$(GNAME DebugCondition): 
    304304    $(B debug) 
    305     $(B debug $(LPAREN)) $(I Integer) $(B $(RPAREN)) 
     305    $(B debug $(LPAREN)) $(LINK2 lex.html#IntegerLiteral, $(I IntegerLiteral)) $(B $(RPAREN)) 
    306306    $(B debug $(LPAREN)) $(I Identifier) $(B $(RPAREN)) 
    307307) 
     
    311311    ) 
    312312 
    313     $(P The $(B debug $(LPAREN)) $(I Integer) $(B $(RPAREN)) condition is satisfied 
     313    $(P The $(B debug $(LPAREN)) $(I IntegerLiteral) $(B $(RPAREN)) condition is satisfied 
    314314    when the debug 
    315     level is &gt;= $(I Integer). 
     315    level is &gt;= $(I IntegerLiteral). 
    316316    ) 
    317317 
     
    335335$(GNAME DebugSpecification): 
    336336    $(B debug =) $(I Identifier) $(B ;) 
    337     $(B debug =) $(I Integer) $(B ;) 
     337    $(B debug =) $(LINK2 lex.html#IntegerLiteral, $(I IntegerLiteral)) $(B ;) 
    338338) 
    339339 
     
    363363 
    364364------ 
    365 debug($(I Integer)) { }    // add in debug code if debug level is >= $(I Integer
     365debug($(LINK2 lex.html#IntegerLiteral, $(I IntegerLiteral))) { }    // add in debug code if debug level is &gt;= $(LINK2 lex.html#IntegerLiteral, $(I IntegerLiteral)
    366366debug($(I identifier)) { } // add in debug code if debug keyword is $(I identifier) 
    367367------