$(DDOC $(DDOC_BLANKLINE )
$(DDOC_BLANKLINE )
$(SPEC_S Grammar,
$(DDOC_BLANKLINE )
$(HEADERNAV_TOC $(HEADERNAV_ITEM modules, Modules)
$(HEADERNAV_ITEM declarations, Declarations)
$(HEADERNAV_ITEM types, Types)
$(HEADERNAV_ITEM attributes, Attributes)
$(HEADERNAV_ITEM pragmas, Pragmas)
$(HEADERNAV_ITEM expressions, Expressions)
$(HEADERNAV_ITEM statements, Statements)
$(HEADERNAV_ITEM structs and unions, Structs and Unions)
$(HEADERNAV_ITEM classes, Classes)
$(HEADERNAV_ITEM interfaces, Interfaces)
$(HEADERNAV_ITEM enums, Enums)
$(HEADERNAV_ITEM functions, Functions)
$(HEADERNAV_ITEM templates, Templates)
$(HEADERNAV_ITEM template mixins, Template Mixins)
$(HEADERNAV_ITEM conditional compilation, Conditional Compilation)
$(HEADERNAV_ITEM traits, Traits)
$(HEADERNAV_ITEM unit tests, Unit Tests)
$(HEADERNAV_ITEM d x86 inline assembler, D x86 Inline Assembler)
$(HEADERNAV_ITEM named character entities, Named Character Entities)
$(HEADERNAV_ITEM application binary interface, Application Binary Interface)
$(HEADERNAV_ITEM importc, ImportC)
)
$(DDOC_BLANKLINE )
Lexical Syntax
$(DDOC_BLANKLINE )
$(P Refer to the page for $(LINK2 lex.html, lexical syntax).)
$(DDOC_BLANKLINE )
$(LNAME2 modules, Modules)
$(GRAMMAR $(GNAME Module):
$(GLINK ModuleDeclaration)
$(GLINK ModuleDeclaration) $(GLINK DeclDefs)
$(GLINK DeclDefs)
$(DDOC_BLANKLINE )
$(GNAME DeclDefs):
$(GLINK DeclDef)
$(GLINK DeclDef) $(GSELF DeclDefs)
$(DDOC_BLANKLINE )
$(GNAME DeclDef):
$(GLINK AttributeSpecifier)
$(GLINK Declaration)
$(GLINK Constructor)
$(GLINK Destructor)
$(GLINK Postblit)
$(GLINK Invariant)
$(GLINK UnitTest)
$(GLINK AliasThis)
$(GLINK StaticConstructor)
$(GLINK StaticDestructor)
$(GLINK SharedStaticConstructor)
$(GLINK SharedStaticDestructor)
$(GLINK ConditionalDeclaration)
$(GLINK DebugSpecification)
$(GLINK VersionSpecification)
$(GLINK MixinDeclaration)
$(GLINK EmptyDeclaration)
$(DDOC_BLANKLINE )
$(GNAME EmptyDeclaration):
$(D ;)
)
$(GRAMMAR $(GNAME ModuleDeclaration):
$(GLINK ModuleAttributes)$(OPT ) $(D module) $(GLINK ModuleFullyQualifiedName) $(D ;)
$(DDOC_BLANKLINE )
$(GNAME ModuleAttributes):
$(GLINK ModuleAttribute)
$(GLINK ModuleAttribute) $(GSELF ModuleAttributes)
$(DDOC_BLANKLINE )
$(GNAME ModuleAttribute):
$(GLINK DeprecatedAttribute)
$(GLINK UserDefinedAttribute)
$(DDOC_BLANKLINE )
$(GNAME ModuleFullyQualifiedName):
$(GLINK ModuleName)
$(GLINK Packages) $(D .) $(GLINK ModuleName)
$(DDOC_BLANKLINE )
$(GNAME ModuleName):
$(GLINK_LEX Identifier)
)
$(GRAMMAR $(GNAME Packages):
$(GLINK PackageName)
$(GSELF Packages) $(D .) $(GLINK PackageName)
$(DDOC_BLANKLINE )
$(GNAME PackageName):
$(GLINK_LEX Identifier)
)
$(GRAMMAR $(GNAME ImportDeclaration):
$(D import) $(GLINK ImportList) $(D ;)
$(D static import) $(GLINK ImportList) $(D ;)
$(DDOC_BLANKLINE )
$(GNAME ImportList):
$(GLINK Import)
$(GLINK ImportBindings)
$(GLINK Import) $(D ,) $(GSELF ImportList)
$(DDOC_BLANKLINE )
$(GNAME Import):
$(GLINK ModuleFullyQualifiedName)
$(GLINK ModuleAliasIdentifier) $(D =) $(GLINK ModuleFullyQualifiedName)
$(DDOC_BLANKLINE )
$(GNAME ImportBindings):
$(GLINK Import) $(D :) $(GLINK ImportBindList)
$(DDOC_BLANKLINE )
$(GNAME ImportBindList):
$(GLINK ImportBind)
$(GLINK ImportBind) $(D ,) $(GSELF ImportBindList)
$(DDOC_BLANKLINE )
$(GNAME ImportBind):
$(GLINK_LEX Identifier)
$(GLINK_LEX Identifier) $(D =) $(GLINK_LEX Identifier)
$(DDOC_BLANKLINE )
$(GNAME ModuleAliasIdentifier):
$(GLINK_LEX Identifier)
)
$(GRAMMAR $(GNAME MixinDeclaration):
$(D mixin) $(D $(LPAREN)) $(GLINK ArgumentList) $(D $(RPAREN )) $(D ;)
)
$(LNAME2 declarations, Declarations)
$(GRAMMAR $(GNAME Declaration):
$(GLINK FuncDeclaration)
$(GLINK VarDeclarations)
$(GLINK AliasDeclaration)
$(GLINK AliasAssign)
$(GLINK AggregateDeclaration)
$(GLINK EnumDeclaration)
$(GLINK ImportDeclaration)
$(GLINK ConditionalDeclaration)
$(GLINK StaticForeachDeclaration)
$(GLINK StaticAssert)
$(GLINK TemplateDeclaration)
$(GLINK TemplateMixinDeclaration)
$(GLINK TemplateMixin)
)
$(GRAMMAR $(GNAME AggregateDeclaration):
$(GLINK ClassDeclaration)
$(GLINK InterfaceDeclaration)
$(GLINK StructDeclaration)
$(GLINK UnionDeclaration)
)
$(GRAMMAR $(GNAME VarDeclarations):
$(GLINK StorageClasses)$(OPT ) $(GLINK BasicType) $(GLINK TypeSuffixes)$(OPT ) $(GLINK IdentifierInitializers) $(D ;)
$(GLINK AutoDeclaration)
$(DDOC_BLANKLINE )
$(GNAME IdentifierInitializers): $(LEGACY_LNAME2 Declarators, DeclaratorIdentifierList)
$(GLINK IdentifierInitializer)
$(GLINK IdentifierInitializer) $(D ,) $(GSELF IdentifierInitializers)
$(DDOC_BLANKLINE )
$(GNAME IdentifierInitializer): $(LEGACY_LNAME2 DeclaratorInitializer, DeclaratorIdentifier)
$(GLINK_LEX Identifier)
$(GLINK_LEX Identifier) $(GLINK TemplateParameters)$(OPT ) $(D =) $(GLINK Initializer)
$(DDOC_BLANKLINE )
$(GNAME Declarator): $(LEGACY_LNAME2 VarDeclarator)
$(GLINK TypeSuffixes)$(OPT ) $(GLINK_LEX Identifier)
)
$(GRAMMAR $(GNAME StorageClasses):
$(GLINK StorageClass)
$(GLINK StorageClass) $(GSELF StorageClasses)
$(DDOC_BLANKLINE )
$(GNAME StorageClass):
$(GLINK LinkageAttribute)
$(GLINK AlignAttribute)
$(GLINK AtAttribute)
$(DDSUBLINK spec/attribute, deprecated, deprecated
)
$(DDSUBLINK spec/enum, manifest_constants, enum
)
$(DDSUBLINK spec/attribute, static, static
)
$(RELATIVE_LINK2 extern, $(D extern))
$(DDSUBLINK spec/class, abstract, abstract
)
$(DDSUBLINK spec/class, final, final
)
$(DDSUBLINK spec/function, virtual-functions, override
)
$(DDSUBLINK spec/class, synchronized-classes, synchronized
)
$(RELATIVE_LINK2 auto-declaration, auto
)
$(DDSUBLINK spec/attribute, scope, scope
)
$(DDLINK spec/const3, Type Qualifiers, const
)
$(DDLINK spec/const3, Type Qualifiers, immutable
)
$(DDSUBLINK spec/const3, inout, inout
)
$(DDSUBLINK spec/const3, shared, shared
)
$(DDSUBLINK spec/attribute, gshared, __gshared
)
$(GLINK Property)
$(DDSUBLINK spec/function, nothrow-functions, nothrow
)
$(DDSUBLINK spec/function, pure-functions, pure
)
$(RELATIVE_LINK2 ref-storage, ref
)
)
$(GRAMMAR $(GNAME Initializer):
$(GLINK VoidInitializer)
$(GLINK NonVoidInitializer)
$(DDOC_BLANKLINE )
$(GNAME NonVoidInitializer):
$(GLINK AssignExpression)$(LEGACY_LNAME2 ExpInitializer)
$(GLINK ArrayLiteral)$(LEGACY_LNAME2 ArrayInitializer)
$(GLINK StructInitializer)$(LEGACY_LNAME2 StructInitializer)
)
$(GRAMMAR $(GNAME AutoDeclaration):
$(GLINK StorageClasses) $(GLINK AutoAssignments) $(D ;)
$(DDOC_BLANKLINE )
$(GNAME AutoAssignments):
$(GLINK AutoAssignment)
$(GSELF AutoAssignments) $(D ,) $(GLINK AutoAssignment)
$(DDOC_BLANKLINE )
$(GNAME AutoAssignment):
$(GLINK_LEX Identifier) $(GLINK TemplateParameters)$(OPT ) $(D =) $(GLINK Initializer)
)
$(GRAMMAR $(GNAME AliasDeclaration):
$(D alias) $(GLINK StorageClasses)$(OPT ) $(GLINK BasicType) $(GLINK TypeSuffixes)$(OPT ) $(GLINK Identifiers) $(D ;)
$(D alias) $(GLINK StorageClasses)$(OPT ) $(GLINK BasicType) $(GLINK FuncDeclarator) $(D ;)
$(D alias) $(GLINK AliasAssignments) $(D ;)
$(DDOC_BLANKLINE )
$(GNAME Identifiers):
$(GLINK_LEX Identifier)
$(GLINK_LEX Identifier) ,
$(GSELF Identifiers)
$(DDOC_BLANKLINE )
$(GNAME AliasAssignments):
$(GLINK AliasAssignment)
$(GSELF AliasAssignments) $(D ,) $(GLINK AliasAssignment)
$(DDOC_BLANKLINE )
$(GNAME AliasAssignment):
$(GLINK_LEX Identifier) $(GLINK TemplateParameters)$(OPT ) $(D =) $(GLINK StorageClasses)$(OPT ) $(GLINK Type)
$(GLINK_LEX Identifier) $(GLINK TemplateParameters)$(OPT ) $(D =) $(GLINK FunctionLiteral)
$(GLINK_LEX Identifier) $(GLINK TemplateParameters)$(OPT ) $(D =) $(GLINK StorageClasses)$(OPT ) $(GLINK Type) $(GLINK Parameters) $(GLINK MemberFunctionAttributes)$(OPT )
)
$(GRAMMAR $(GNAME AliasAssign):
$(GLINK_LEX Identifier) $(D =) $(GLINK Type)
)
$(GRAMMAR $(GNAME AliasReassignment):
$(GLINK_LEX Identifier) $(D =) $(GLINK StorageClasses)$(OPT ) $(GLINK Type)
$(GLINK_LEX Identifier) $(D =) $(GLINK FunctionLiteral)
$(GLINK_LEX Identifier) $(D =) $(GLINK StorageClasses)$(OPT ) $(GLINK BasicType) $(GLINK Parameters) $(GLINK MemberFunctionAttributes)$(OPT )
)
$(GRAMMAR $(GNAME VoidInitializer):
$(D void)
)
$(LNAME2 types, Types)
$(GRAMMAR $(GNAME Type):
$(GLINK TypeCtors)$(OPT ) $(GLINK BasicType) $(GLINK TypeSuffixes)$(OPT )
$(DDOC_BLANKLINE )
$(GNAME TypeCtors):
$(GLINK TypeCtor)
$(GLINK TypeCtor) $(GSELF TypeCtors)
$(DDOC_BLANKLINE )
$(GNAME TypeCtor):
$(D const)
$(D immutable)
$(D inout)
$(D shared)
$(DDOC_BLANKLINE )
$(GNAME BasicType):
$(GLINK FundamentalType)
$(D .) $(GLINK QualifiedIdentifier)
$(GLINK QualifiedIdentifier)
$(GLINK Typeof)
$(GLINK Typeof) $(D .) $(GLINK QualifiedIdentifier)
$(GLINK TypeCtor) $(D $(LPAREN)) $(GLINK Type) $(D $(RPAREN ))
$(GLINK Vector)
$(GLINK TraitsExpression)
$(GLINK MixinType)
$(DDOC_BLANKLINE )
$(GNAME Vector):
$(D __vector) $(D $(LPAREN)) $(GLINK VectorBaseType) $(D $(RPAREN ))
$(DDOC_BLANKLINE )
$(GNAME VectorBaseType):
$(GLINK Type)
$(DDOC_BLANKLINE )
$(GNAME FundamentalType):
$(MULTICOLS 5,
$(D bool)
$(D byte)
$(D ubyte)
$(D short)
$(D ushort)
$(D int)
$(D uint)
$(D long)
$(D ulong)
$(D cent)
$(D ucent)
$(D char)
$(D wchar)
$(D dchar)
$(D float)
$(D double)
$(D real)
$(D ifloat)
$(D idouble)
$(D ireal)
$(D cfloat)
$(D cdouble)
$(D creal)
$(D void))
$(DDOC_BLANKLINE )
$(GNAME TypeSuffixes):
$(GLINK TypeSuffix) $(GSELF TypeSuffixes)$(OPT )
$(DDOC_BLANKLINE )
$(GNAME TypeSuffix):
$(D *)
$(D [ ])
$(D [) $(GLINK AssignExpression) $(D ])
$(D [) $(GLINK AssignExpression) $(D ..) $(GLINK AssignExpression) $(D ])
$(D [) $(GLINK Type) $(D ])
$(D delegate) $(GLINK Parameters) $(GLINK MemberFunctionAttributes)$(OPT )
$(D function) $(GLINK Parameters) $(GLINK FunctionAttributes)$(OPT )
$(DDOC_BLANKLINE )
$(GNAME QualifiedIdentifier):
$(GLINK_LEX Identifier)
$(GLINK_LEX Identifier) $(D .) $(GSELF QualifiedIdentifier)
$(GLINK TemplateInstance)
$(GLINK TemplateInstance) $(D .) $(GSELF QualifiedIdentifier)
$(GLINK_LEX Identifier) $(D [) $(GLINK AssignExpression) $(D ])
$(GLINK_LEX Identifier) $(D [) $(GLINK AssignExpression) $(D ] .) $(GSELF QualifiedIdentifier)
)
$(GRAMMAR_INFORMATIVE $(GLINK StorageClasses)$(OPT ) $(GLINK Type) $(GLINK Parameters) $(GLINK FunctionAttributes)$(OPT )
)
$(GRAMMAR_INFORMATIVE $(GLINK Type) function
$(GLINK Parameters) $(GLINK FunctionAttributes)$(OPT )
$(GLINK Type) delegate
$(GLINK Parameters) $(GLINK MemberFunctionAttributes)$(OPT )
)
$(GRAMMAR $(GNAME Typeof):
$(D typeof $(LPAREN)) $(GLINK Expression) $(D $(RPAREN ))
$(D typeof $(LPAREN)) $(D return) $(D $(RPAREN ))
)
$(GRAMMAR $(GNAME MixinType):
$(D mixin $(LPAREN)) $(GLINK ArgumentList) $(D $(RPAREN ))
)
$(LNAME2 attributes, Attributes)
$(GRAMMAR $(GNAME AttributeSpecifier):
$(GLINK Attribute) $(D :)
$(GLINK Attribute) $(GLINK DeclarationBlock)
$(DDOC_BLANKLINE )
$(GNAME Attribute):
$(GLINK AlignAttribute)
$(GLINK AtAttribute)
$(GLINK DeprecatedAttribute)
$(GLINK FunctionAttributeKwd)
$(GLINK LinkageAttribute)
$(GLINK Pragma)
$(GLINK VisibilityAttribute)
$(RELATIVE_LINK2 abstract, $(D abstract))
$(RELATIVE_LINK2 auto, $(D auto))
$(RELATIVE_LINK2 const, $(D const))
$(RELATIVE_LINK2 final, final
)
$(RELATIVE_LINK2 gshared, $(D __gshared))
$(RELATIVE_LINK2 linkage, $(D extern))
$(RELATIVE_LINK2 immutable, $(D immutable))
$(RELATIVE_LINK2 inout, $(D inout))
$(RELATIVE_LINK2 override, $(D override))
$(RELATIVE_LINK2 ref, $(D ref))
$(RELATIVE_LINK2 return, $(D return))
$(RELATIVE_LINK2 scope, $(D scope))
$(RELATIVE_LINK2 shared, $(D shared))
$(RELATIVE_LINK2 static, $(D static))
$(RELATIVE_LINK2 synchronized, synchronized
)
$(DDOC_BLANKLINE )
$(GNAME FunctionAttributeKwd):
$(RELATIVE_LINK2 nothrow, $(D nothrow))
$(RELATIVE_LINK2 pure, $(D pure))
$(DDOC_BLANKLINE )
$(GNAME AtAttribute):
$(D @) $(RELATIVE_LINK2 disable, $(D disable))
$(D @) $(RELATIVE_LINK2 nogc, $(D nogc))
$(D @) $(DDLINK spec/ob, Live Functions, live
)
$(GLINK Property)
$(D @) $(RELATIVE_LINK2 safe, $(D safe))
$(D @) $(RELATIVE_LINK2 safe, $(D system))
$(D @) $(RELATIVE_LINK2 safe, $(D trusted))
$(GLINK UserDefinedAttribute)
$(DDOC_BLANKLINE )
$(GNAME Property):
$(D @) $(RELATIVE_LINK2 property, $(D property))
$(DDOC_BLANKLINE )
$(GNAME DeclarationBlock):
$(GLINK DeclDef)
$(D {) $(GLINK DeclDefs)$(OPT ) $(D })
)
$(GRAMMAR $(GNAME LinkageAttribute):
$(D extern) $(D $(LPAREN)) $(GLINK LinkageType) $(D $(RPAREN ))
$(D extern) $(D $(LPAREN)) $(D C) $(D ++) $(D ,) $(D $(RPAREN ))
$(D extern) $(D $(LPAREN)) $(D C) $(D ++) $(D ,) $(GLINK QualifiedIdentifier) $(D $(RPAREN ))
$(D extern) $(D $(LPAREN)) $(D C) $(D ++) $(D ,) $(GLINK NamespaceList) $(D $(RPAREN ))
$(D extern) $(D $(LPAREN)) $(D C) $(D ++) $(D ,) $(D class) $(D $(RPAREN ))
$(D extern) $(D $(LPAREN)) $(D C) $(D ++) $(D ,) $(D struct) $(D $(RPAREN ))
$(DDOC_BLANKLINE )
$(GNAME LinkageType):
$(D C)
$(D C) $(D ++)
$(D D)
$(D Windows)
$(D System)
$(D Objective) $(D -) $(D C)
$(DDOC_BLANKLINE )
$(GNAME NamespaceList):
$(GLINK ConditionalExpression)
$(GLINK ConditionalExpression)$(D ,)
$(GLINK ConditionalExpression)$(D ,) $(GSELF NamespaceList)
)
$(GRAMMAR $(GNAME AlignAttribute):
$(D align)
$(D align) $(D $(LPAREN)) $(GLINK AssignExpression) $(D $(RPAREN ))
)
$(GRAMMAR $(GNAME DeprecatedAttribute):
$(D deprecated)
$(D deprecated $(LPAREN)) $(GLINK AssignExpression) $(D $(RPAREN ))
)
$(GRAMMAR $(GNAME VisibilityAttribute):
$(D export)
$(D package)
$(D package) $(D $(LPAREN)) $(GLINK QualifiedIdentifier) $(D $(RPAREN ))
$(D private)
$(D protected)
$(D public)
)
$(GRAMMAR $(GNAME UserDefinedAttribute):
$(D @ $(LPAREN)) $(GLINK TemplateArgumentList) $(D $(RPAREN ))
$(D @) $(GLINK TemplateSingleArgument)
$(D @) $(GLINK_LEX Identifier) $(D $(LPAREN)) $(GLINK NamedArgumentList)$(OPT ) $(D $(RPAREN ))
$(D @) $(GLINK TemplateInstance)
$(D @) $(GLINK TemplateInstance) $(D $(LPAREN)) $(GLINK NamedArgumentList)$(OPT ) $(D $(RPAREN ))
)
$(LNAME2 pragmas, Pragmas)
$(GRAMMAR $(GNAME PragmaDeclaration):
$(GLINK Pragma) $(D ;)
$(GLINK Pragma) $(GLINK DeclarationBlock)
$(DDOC_BLANKLINE )
$(GNAME PragmaStatement):
$(GLINK Pragma) $(D ;)
$(GLINK Pragma) $(GLINK NoScopeStatement)
$(DDOC_BLANKLINE )
$(GNAME Pragma):
$(D pragma) $(D $(LPAREN)) $(GLINK_LEX Identifier) $(D $(RPAREN ))
$(D pragma) $(D $(LPAREN)) $(GLINK_LEX Identifier) $(D ,) $(GLINK ArgumentList) $(D $(RPAREN ))
)
$(LNAME2 expressions, Expressions)
$(GRAMMAR $(GNAME Expression):
$(GLINK CommaExpression)
)
$(GRAMMAR $(GNAME CommaExpression):
$(GLINK AssignExpression)
$(GSELF CommaExpression) $(D ,) $(GLINK AssignExpression)
)
$(GRAMMAR $(GNAME AssignExpression):
$(GLINK ConditionalExpression)
$(GLINK ConditionalExpression) $(D =) $(GSELF AssignExpression)
$(GLINK ConditionalExpression) $(D +=) $(GSELF AssignExpression)
$(GLINK ConditionalExpression) $(D -=) $(GSELF AssignExpression)
$(GLINK ConditionalExpression) $(D *=) $(GSELF AssignExpression)
$(GLINK ConditionalExpression) $(D /=) $(GSELF AssignExpression)
$(GLINK ConditionalExpression) $(D %=) $(GSELF AssignExpression)
$(GLINK ConditionalExpression) $(D &=) $(GSELF AssignExpression)
$(GLINK ConditionalExpression) $(D |=) $(GSELF AssignExpression)
$(GLINK ConditionalExpression) $(D ^=) $(GSELF AssignExpression)
$(GLINK ConditionalExpression) $(D ~=) $(GSELF AssignExpression)
$(GLINK ConditionalExpression) $(D <<=) $(GSELF AssignExpression)
$(GLINK ConditionalExpression) $(D >>=) $(GSELF AssignExpression)
$(GLINK ConditionalExpression) $(D >>>=) $(GSELF AssignExpression)
$(GLINK ConditionalExpression) $(D ^^=) $(GSELF AssignExpression)
)
$(GRAMMAR $(GNAME ConditionalExpression):
$(GLINK OrOrExpression)
$(GLINK OrOrExpression) $(D ?) $(GLINK Expression) $(D :) $(GSELF ConditionalExpression)
)
$(GRAMMAR $(GNAME OrOrExpression):
$(GLINK AndAndExpression)
$(GSELF OrOrExpression) $(D ||) $(GLINK AndAndExpression)
)
$(GRAMMAR $(GNAME AndAndExpression):
$(GLINK OrExpression)
$(GSELF AndAndExpression) $(D $(AMP )$(AMP )) $(GLINK OrExpression)
)
$(GRAMMAR $(GNAME OrExpression):
$(GLINK XorExpression)
$(GSELF OrExpression) $(D |) $(GLINK XorExpression)
)
$(GRAMMAR $(GNAME XorExpression):
$(GLINK AndExpression)
$(GSELF XorExpression) $(D ^) $(GLINK AndExpression)
)
$(GRAMMAR $(GNAME AndExpression):
$(GLINK CmpExpression)
$(GSELF AndExpression) $(D &) $(GLINK CmpExpression)
)
$(GRAMMAR $(GNAME CmpExpression):
$(GLINK EqualExpression)
$(GLINK IdentityExpression)
$(GLINK RelExpression)
$(GLINK InExpression)
$(GLINK ShiftExpression)
)
$(GRAMMAR $(GNAME EqualExpression):
$(GLINK ShiftExpression) $(D ==) $(GLINK ShiftExpression)
$(GLINK ShiftExpression) $(D !=) $(GLINK ShiftExpression)
)
$(GRAMMAR $(GNAME IdentityExpression):
$(GLINK ShiftExpression) $(D is) $(GLINK ShiftExpression)
$(GLINK ShiftExpression) $(D ! is) $(GLINK ShiftExpression)
)
$(GRAMMAR $(GNAME RelExpression):
$(GLINK ShiftExpression) $(D <) $(GLINK ShiftExpression)
$(GLINK ShiftExpression) $(D <=) $(GLINK ShiftExpression)
$(GLINK ShiftExpression) $(D >) $(GLINK ShiftExpression)
$(GLINK ShiftExpression) $(D >=) $(GLINK ShiftExpression)
)
$(GRAMMAR $(GNAME InExpression):
$(GLINK ShiftExpression) $(D in) $(GLINK ShiftExpression)
$(GLINK ShiftExpression) $(D ! in) $(GLINK ShiftExpression)
)
$(GRAMMAR $(GNAME ShiftExpression):
$(GLINK AddExpression)
$(GSELF ShiftExpression) $(D <<) $(GLINK AddExpression)
$(GSELF ShiftExpression) $(D >>) $(GLINK AddExpression)
$(GSELF ShiftExpression) $(D >>>) $(GLINK AddExpression)
)
$(GRAMMAR $(GNAME AddExpression):
$(GLINK MulExpression)
$(GSELF AddExpression) $(D +) $(GLINK MulExpression)
$(GSELF AddExpression) $(D -) $(GLINK MulExpression)
$(GSELF AddExpression) $(D ~) $(GLINK MulExpression)
)
$(GRAMMAR $(GNAME MulExpression):
$(GLINK UnaryExpression)
$(GSELF MulExpression) $(D *) $(GLINK UnaryExpression)
$(GSELF MulExpression) $(D /) $(GLINK UnaryExpression)
$(GSELF MulExpression) $(D %) $(GLINK UnaryExpression)
)
$(GRAMMAR $(GNAME UnaryExpression):
$(D $(AMP )) $(GSELF UnaryExpression)
$(D ++) $(GSELF UnaryExpression)
$(D --) $(GSELF UnaryExpression)
$(D *) $(GSELF UnaryExpression)
$(D -) $(GSELF UnaryExpression)
$(D +) $(GSELF UnaryExpression)
$(D !) $(GSELF UnaryExpression)
$(GLINK ComplementExpression)
$(GLINK DeleteExpression)
$(GLINK CastExpression)
$(GLINK ThrowExpression)
$(GLINK PowExpression)
)
$(GRAMMAR $(GNAME ComplementExpression):
$(D ~) $(GLINK UnaryExpression)
)
$(GRAMMAR $(GNAME DeleteExpression):
$(D delete) $(GLINK UnaryExpression)
)
$(GRAMMAR $(GNAME CastExpression):
$(D cast $(LPAREN)) $(GLINK Type) $(D $(RPAREN )) $(GLINK UnaryExpression)
$(GLINK CastQual)
)
$(GRAMMAR $(GNAME CastQual):
$(D cast $(LPAREN)) $(GLINK TypeCtors)$(OPT ) $(D $(RPAREN )) $(GLINK UnaryExpression)
)
$(GRAMMAR $(GNAME ThrowExpression):
$(D throw) $(GLINK AssignExpression)
)
$(GRAMMAR $(GNAME PowExpression):
$(GLINK PostfixExpression)
$(GLINK PostfixExpression) $(D ^^) $(GLINK UnaryExpression)
)
$(GRAMMAR $(GNAME PostfixExpression):
$(GLINK PrimaryExpression)
$(GSELF PostfixExpression) $(D .) $(GLINK Identifier)
$(GSELF PostfixExpression) $(D .) $(GLINK TemplateInstance)
$(GSELF PostfixExpression) $(D .) $(GLINK NewExpression)
$(GSELF PostfixExpression) $(D ++)
$(GSELF PostfixExpression) $(D --)
$(GSELF PostfixExpression) $(D $(LPAREN)) $(GLINK NamedArgumentList)$(OPT ) $(D $(RPAREN ))
$(GLINK TypeCtors)$(OPT ) $(GLINK BasicType) $(D $(LPAREN)) $(GLINK NamedArgumentList)$(OPT ) $(D $(RPAREN ))
$(GSELF PostfixExpression) $(GLINK IndexOperation)
$(GSELF PostfixExpression) $(GLINK SliceOperation)
)
$(GRAMMAR $(GNAME ArgumentList):
$(GLINK AssignExpression)
$(GLINK AssignExpression) $(D ,)
$(GLINK AssignExpression) $(D ,) $(GSELF ArgumentList)
$(DDOC_BLANKLINE )
$(GNAME NamedArgumentList):
$(GLINK NamedArgument)
$(GLINK NamedArgument) $(D ,)
$(GLINK NamedArgument) $(D ,) $(I NamedArgumentList)
$(DDOC_BLANKLINE )
$(GNAME NamedArgument):
$(GLINK Identifier) $(D :) $(GLINK AssignExpression)
$(GLINK AssignExpression)
)
$(GRAMMAR $(GNAME IndexOperation):
$(D [) $(GLINK ArgumentList) $(D ])
)
$(GRAMMAR $(GNAME SliceOperation):
$(D [ ])
$(D [) $(GLINK Slice) $(D ,)$(OPT ) $(D ])
$(DDOC_BLANKLINE )
$(GNAME Slice):
$(GLINK AssignExpression)
$(GLINK AssignExpression) $(D ,) $(GSELF Slice)
$(GLINK AssignExpression) $(D ..) $(GLINK AssignExpression)
$(GLINK AssignExpression) $(D ..) $(GLINK AssignExpression) $(D ,) $(GSELF Slice)
)
$(GRAMMAR $(GNAME PrimaryExpression):
$(GLINK Identifier)
$(D .) $(GLINK Identifier)
$(GLINK TemplateInstance)
$(D .) $(GLINK TemplateInstance)
$(RELATIVE_LINK2 this, $(D this))
$(RELATIVE_LINK2 super, $(D super))
$(RELATIVE_LINK2 null, $(D null))
$(LEGACY_LNAME2 true_false)$(DDSUBLINK spec/type, bool, true
)
$(DDSUBLINK spec/type, bool, false
)
$(RELATIVE_LINK2 IndexOperation, $
)
$(GLINK_LEX IntegerLiteral)
$(GLINK_LEX FloatLiteral)
$(LEGACY_LNAME2 CharacterLiteral)$(LEGACY_LNAME2 character-literal)$(GLINK_LEX CharacterLiteral)
$(RELATIVE_LINK2 string_literals, StringLiteral)
$(GLINK ArrayLiteral)
$(GLINK AssocArrayLiteral)
$(GLINK FunctionLiteral)
$(GLINK AssertExpression)
$(GLINK MixinExpression)
$(GLINK ImportExpression)
$(GLINK NewExpression)
$(GLINK FundamentalType) $(D .) $(GLINK Identifier)
$(D $(LPAREN)) $(GLINK Type) $(D $(RPAREN ) .) $(GLINK Identifier)
$(D $(LPAREN)) $(GLINK Type) $(D $(RPAREN ) .) $(GLINK TemplateInstance)
$(GLINK FundamentalType) $(D $(LPAREN)) $(GLINK NamedArgumentList)$(OPT ) $(D $(RPAREN ))
$(GLINK TypeCtor) $(D $(LPAREN)) $(GLINK Type) $(D $(RPAREN )) $(D .) $(GLINK Identifier)
$(GLINK TypeCtor) $(D $(LPAREN)) $(GLINK Type) $(D $(RPAREN )) $(D $(LPAREN)) $(GLINK NamedArgumentList)$(OPT ) $(D $(RPAREN ))
$(GLINK Typeof)
$(GLINK TypeidExpression)
$(GLINK IsExpression)
$(D $(LPAREN)) $(GLINK Expression) $(D $(RPAREN ))
$(GLINK SpecialKeyword)
$(GLINK TraitsExpression)
)
$(GRAMMAR $(GNAME ArrayLiteral):
$(D [) $(I ArrayMemberInitializations)$(OPT ) $(D ])
$(DDOC_BLANKLINE )
$(GNAME ArrayMemberInitializations):
$(I ArrayMemberInitialization)
$(I ArrayMemberInitialization) $(D ,)
$(I ArrayMemberInitialization) $(D ,) $(GSELF ArrayMemberInitializations)
$(DDOC_BLANKLINE )
$(GNAME ArrayMemberInitialization):
$(GLINK NonVoidInitializer)
$(GLINK AssignExpression) $(D :) $(GLINK NonVoidInitializer)
)
$(GRAMMAR $(GNAME AssocArrayLiteral):
$(D [) $(GLINK KeyValuePairs) $(D ])
$(DDOC_BLANKLINE )
$(GNAME KeyValuePairs):
$(GLINK KeyValuePair)
$(GLINK KeyValuePair) $(D ,) $(GSELF KeyValuePairs)
$(DDOC_BLANKLINE )
$(GNAME KeyValuePair):
$(GLINK KeyExpression) $(D :) $(GLINK ValueExpression)
$(DDOC_BLANKLINE )
$(GNAME KeyExpression):
$(GLINK AssignExpression)
$(DDOC_BLANKLINE )
$(GNAME ValueExpression):
$(GLINK AssignExpression)
)
$(GRAMMAR $(GNAME FunctionLiteral):
$(D function) $(GLINK RefOrAutoRef)$(OPT ) $(GLINK Type)$(OPT ) $(GLINK ParameterWithAttributes)$(OPT ) $(GLINK FunctionLiteralBody2)
$(D delegate) $(GLINK RefOrAutoRef)$(OPT ) $(GLINK Type)$(OPT ) $(GLINK ParameterWithMemberAttributes)$(OPT ) $(GLINK FunctionLiteralBody2)
$(GLINK RefOrAutoRef)$(OPT ) $(GLINK ParameterWithMemberAttributes) $(GLINK FunctionLiteralBody2)
$(GLINK BlockStatement)
$(GLINK Identifier) $(D =>) $(GLINK AssignExpression)
$(DDOC_BLANKLINE )
$(GNAME ParameterWithAttributes):
$(GLINK Parameters) $(GLINK FunctionAttributes)$(OPT )
$(DDOC_BLANKLINE )
$(GNAME ParameterWithMemberAttributes):
$(GLINK Parameters) $(GLINK MemberFunctionAttributes)$(OPT )
$(DDOC_BLANKLINE )
$(GNAME FunctionLiteralBody2):
$(D =>) $(GLINK AssignExpression)
$(GLINK SpecifiedFunctionBody)
$(DDOC_BLANKLINE )
$(GNAME RefOrAutoRef):
$(D ref)
$(D auto ref)
)
$(GRAMMAR $(GNAME AssertExpression):
$(D assert $(LPAREN)) $(GLINK AssertArguments) $(D $(RPAREN ))
$(DDOC_BLANKLINE )
$(GNAME AssertArguments):
$(GLINK AssignExpression) $(D ,)$(OPT )
$(GLINK AssignExpression) $(D ,) $(GLINK AssignExpression) $(D ,)$(OPT )
)
$(GRAMMAR $(GNAME MixinExpression):
$(D mixin $(LPAREN)) $(GLINK ArgumentList) $(D $(RPAREN ))
)
$(GRAMMAR $(GNAME ImportExpression):
$(D import $(LPAREN)) $(GLINK AssignExpression) $(D $(RPAREN ))
)
$(GRAMMAR $(GNAME NewExpression):
$(D new) $(GLINK Type)
$(D new) $(GLINK Type) $(D [) $(GLINK AssignExpression) $(D ])
$(D new) $(GLINK Type) $(D $(LPAREN)) $(GLINK NamedArgumentList)$(OPT ) $(D $(RPAREN ))
$(GLINK NewAnonClassExpression)
)
$(GRAMMAR $(GNAME TypeidExpression):
$(D typeid $(LPAREN)) $(GLINK Type) $(D $(RPAREN ))
$(D typeid $(LPAREN)) $(GLINK Expression) $(D $(RPAREN ))
)
$(GRAMMAR $(GNAME IsExpression):
$(D is $(LPAREN)) $(GLINK Type) $(D $(RPAREN ))
$(D is $(LPAREN)) $(GLINK Type) $(D :) $(GLINK TypeSpecialization) $(D $(RPAREN ))
$(D is $(LPAREN)) $(GLINK Type) $(D ==) $(GLINK TypeSpecialization) $(D $(RPAREN ))
$(D is $(LPAREN)) $(GLINK Type) $(D :) $(GLINK TypeSpecialization) $(D ,) $(GLINK TemplateParameterList) $(D $(RPAREN ))
$(D is $(LPAREN)) $(GLINK Type) $(D ==) $(GLINK TypeSpecialization) $(D ,) $(GLINK TemplateParameterList) $(D $(RPAREN ))
$(D is $(LPAREN)) $(GLINK Type) $(GLINK Identifier) $(D $(RPAREN ))
$(D is $(LPAREN)) $(GLINK Type) $(GLINK Identifier) $(D :) $(GLINK TypeSpecialization) $(D $(RPAREN ))
$(D is $(LPAREN)) $(GLINK Type) $(GLINK Identifier) $(D ==) $(GLINK TypeSpecialization) $(D $(RPAREN ))
$(D is $(LPAREN)) $(GLINK Type) $(GLINK Identifier) $(D :) $(GLINK TypeSpecialization) $(D ,) $(GLINK TemplateParameterList) $(D $(RPAREN ))
$(D is $(LPAREN)) $(GLINK Type) $(GLINK Identifier) $(D ==) $(GLINK TypeSpecialization) $(D ,) $(GLINK TemplateParameterList) $(D $(RPAREN ))
$(DDOC_BLANKLINE )
$(DDOC_BLANKLINE )
$(GNAME TypeSpecialization):
$(GLINK Type)
$(GLINK TypeCtor)
$(D struct)
$(D union)
$(D class)
$(D interface)
$(D enum)
$(D __vector)
$(D function)
$(D delegate)
$(D super)
$(D return)
$(D __parameters)
$(D module)
$(D package)
)
$(GRAMMAR_INFORMATIVE $(D is $(LPAREN)) $(I Type) $(D :) $(I TypeSpecialization) $(D ,) $(GLINK TemplateParameterList) $(D $(RPAREN ))
$(D is $(LPAREN)) $(I Type) $(D ==) $(I TypeSpecialization) $(D ,) $(GLINK TemplateParameterList) $(D $(RPAREN ))
$(D is $(LPAREN)) $(I Type) $(I Identifier) $(D :) $(I TypeSpecialization) $(D ,) $(GLINK TemplateParameterList) $(D $(RPAREN ))
$(D is $(LPAREN)) $(I Type) $(I Identifier) $(D ==) $(I TypeSpecialization) $(D ,) $(GLINK TemplateParameterList) $(D $(RPAREN ))
)
$(GRAMMAR $(GNAME SpecialKeyword):
$(RELATIVE_LINK2 specialkeywords, $(D __FILE__))
$(RELATIVE_LINK2 specialkeywords, $(D __FILE_FULL_PATH__))
$(RELATIVE_LINK2 specialkeywords, $(D __MODULE__))
$(RELATIVE_LINK2 specialkeywords, $(D __LINE__))
$(RELATIVE_LINK2 specialkeywords, $(D __FUNCTION__))
$(RELATIVE_LINK2 specialkeywords, $(D __PRETTY_FUNCTION__))
)
$(LNAME2 statements, Statements)
$(GRAMMAR $(GNAME Statement):
$(GLINK EmptyStatement)
$(GLINK NonEmptyStatement)
$(GLINK ScopeBlockStatement)
$(DDOC_BLANKLINE )
$(GNAME EmptyStatement):
$(D ;)
$(DDOC_BLANKLINE )
$(GNAME NoScopeNonEmptyStatement):
$(GLINK NonEmptyStatement)
$(GLINK BlockStatement)
$(DDOC_BLANKLINE )
$(GNAME NoScopeStatement):
$(GLINK EmptyStatement)
$(GLINK NonEmptyStatement)
$(GLINK BlockStatement)
$(DDOC_BLANKLINE )
$(GNAME NonEmptyOrScopeBlockStatement):
$(GLINK NonEmptyStatement)
$(GLINK ScopeBlockStatement)
$(DDOC_BLANKLINE )
$(GNAME NonEmptyStatement):
$(GLINK NonEmptyStatementNoCaseNoDefault)
$(GLINK CaseStatement)
$(GLINK CaseRangeStatement)
$(GLINK DefaultStatement)
$(DDOC_BLANKLINE )
$(GNAME NonEmptyStatementNoCaseNoDefault):
$(GLINK LabeledStatement)
$(GLINK ExpressionStatement)
$(GLINK DeclarationStatement)
$(GLINK IfStatement)
$(GLINK WhileStatement)
$(GLINK DoStatement)
$(GLINK ForStatement)
$(GLINK ForeachStatement)
$(GLINK SwitchStatement)
$(GLINK FinalSwitchStatement)
$(GLINK ContinueStatement)
$(GLINK BreakStatement)
$(GLINK ReturnStatement)
$(GLINK GotoStatement)
$(GLINK WithStatement)
$(GLINK SynchronizedStatement)
$(GLINK TryStatement)
$(GLINK ScopeGuardStatement)
$(GLINK AsmStatement)
$(GLINK MixinStatement)
$(GLINK ForeachRangeStatement)
$(GLINK PragmaStatement)
$(GLINK ConditionalStatement)
$(GLINK StaticForeachStatement)
$(GLINK ImportDeclaration)
)
$(GRAMMAR $(GNAME ScopeStatement):
$(GLINK NonEmptyStatement)
$(GLINK BlockStatement)
)
$(GRAMMAR $(GNAME ScopeBlockStatement):
$(GLINK BlockStatement)
)
$(GRAMMAR $(GNAME LabeledStatement):
$(GLINK_LEX Identifier) $(D :)
$(GLINK_LEX Identifier) $(D :) $(GLINK Statement)
)
$(GRAMMAR $(GNAME BlockStatement):
$(D { })
$(D {) $(GLINK StatementList) $(D })
$(DDOC_BLANKLINE )
$(GNAME StatementList):
$(GLINK Statement)
$(GLINK Statement) $(GSELF StatementList)
)
$(GRAMMAR $(GNAME ExpressionStatement):
$(GLINK Expression) $(D ;)
)
$(GRAMMAR $(GNAME DeclarationStatement):
$(GLINK StorageClasses)$(OPT ) $(GLINK Declaration)
)
$(GRAMMAR $(GNAME IfStatement):
$(D if $(LPAREN)) $(GLINK IfCondition) $(D $(RPAREN )) $(GLINK ThenStatement)
$(D if $(LPAREN)) $(GLINK IfCondition) $(D $(RPAREN )) $(GLINK ThenStatement) $(D else) $(GLINK ElseStatement)
$(DDOC_BLANKLINE )
$(GNAME IfCondition):
$(GLINK Expression)
$(D auto) $(GLINK_LEX Identifier) $(D =) $(GLINK Expression)
$(D scope) $(GLINK_LEX Identifier) $(D =) $(GLINK Expression)
$(GLINK TypeCtors) $(GLINK_LEX Identifier) $(D =) $(GLINK Expression)
$(GLINK TypeCtors)$(OPT ) $(GLINK BasicType) $(GLINK Declarator) $(D =) $(GLINK Expression)
$(DDOC_BLANKLINE )
$(GNAME ThenStatement):
$(GLINK ScopeStatement)
$(DDOC_BLANKLINE )
$(GNAME ElseStatement):
$(GLINK ScopeStatement)
)
$(GRAMMAR $(GNAME WhileStatement):
$(D while $(LPAREN)) $(GLINK IfCondition) $(D $(RPAREN )) $(GLINK ScopeStatement)
)
$(GRAMMAR $(GNAME DoStatement):
$(D do) $(GLINK ScopeStatement) $(D while $(LPAREN)) $(GLINK Expression) $(D $(RPAREN )) $(D ;)
)
$(GRAMMAR $(GNAME ForStatement):
$(D for $(LPAREN)) $(GLINK Initialize) $(GLINK Test)$(OPT ) $(D ;) $(GLINK Increment)$(OPT ) $(D $(RPAREN )) $(GLINK ScopeStatement)
$(DDOC_BLANKLINE )
$(GNAME Initialize):
$(D ;)
$(GLINK NoScopeNonEmptyStatement)
$(DDOC_BLANKLINE )
$(GNAME Test):
$(GLINK Expression)
$(DDOC_BLANKLINE )
$(GNAME Increment):
$(GLINK Expression)
)
$(GRAMMAR $(GNAME AggregateForeach):
$(GLINK Foreach) $(D $(LPAREN)) $(GLINK ForeachTypeList) $(D ;) $(GLINK ForeachAggregate) $(D $(RPAREN ))
$(DDOC_BLANKLINE )
$(GNAME ForeachStatement):
$(GLINK AggregateForeach) $(GLINK NoScopeNonEmptyStatement)
$(DDOC_BLANKLINE )
$(GNAME Foreach):
$(D foreach)
$(D foreach_reverse)
$(DDOC_BLANKLINE )
$(GNAME ForeachTypeList):
$(GLINK ForeachType)
$(GLINK ForeachType) $(D ,) $(GSELF ForeachTypeList)
$(DDOC_BLANKLINE )
$(GNAME ForeachType):
$(GLINK ForeachTypeAttributes)$(OPT ) $(GLINK BasicType) $(GLINK Declarator)
$(GLINK ForeachTypeAttributes)$(OPT ) $(GLINK_LEX Identifier)
$(GLINK ForeachTypeAttributes)$(OPT ) $(D alias) $(GLINK_LEX Identifier)
$(DDOC_BLANKLINE )
$(GNAME ForeachTypeAttributes):
$(GLINK ForeachTypeAttribute)
$(GLINK ForeachTypeAttribute) $(GSELF ForeachTypeAttributes)
$(DDOC_BLANKLINE )
$(GNAME ForeachTypeAttribute):
$(D enum)
$(D ref)
$(D scope)
$(GLINK TypeCtor)
$(DDOC_BLANKLINE )
$(GNAME ForeachAggregate):
$(GLINK Expression)
)
$(GRAMMAR $(GNAME OpApplyDeclaration):
int opApply
$(LPAREN)
scope
int delegate
$(LPAREN)
$(I OpApplyParameters) $(RPAREN )
dg
$(RPAREN )
;
$(DDOC_BLANKLINE )
$(GNAME OpApplyParameters):
OpApplyParameter
OpApplyParameter, OpApplyParameters
$(DDOC_BLANKLINE )
$(GNAME OpApplyParameter):
$(GLINK ForeachTypeAttributes)$(OPT ) $(GLINK BasicType) $(GLINK Declarator)
)
$(GRAMMAR $(GNAME RangeForeach):
$(GLINK Foreach) $(D $(LPAREN)) $(GLINK ForeachType) $(D ;) $(GLINK LwrExpression) $(D ..) $(GLINK UprExpression) $(D $(RPAREN ))
$(DDOC_BLANKLINE )
$(GNAME LwrExpression):
$(GLINK Expression)
$(DDOC_BLANKLINE )
$(GNAME UprExpression):
$(GLINK Expression)
$(DDOC_BLANKLINE )
$(GNAME ForeachRangeStatement):
$(GLINK RangeForeach) $(GLINK ScopeStatement)
)
$(GRAMMAR $(GNAME SwitchStatement):
$(D switch $(LPAREN)) $(GLINK Expression) $(D $(RPAREN )) $(GLINK ScopeStatement)
$(DDOC_BLANKLINE )
$(GNAME CaseStatement):
$(D case) $(GLINK ArgumentList) $(D :) $(GLINK ScopeStatementList)$(OPT )
$(DDOC_BLANKLINE )
$(GNAME DefaultStatement):
$(D default :) $(GLINK ScopeStatementList)$(OPT )
$(DDOC_BLANKLINE )
$(GNAME ScopeStatementList):
$(GLINK StatementListNoCaseNoDefault)
$(DDOC_BLANKLINE )
$(GNAME StatementListNoCaseNoDefault):
$(GLINK StatementNoCaseNoDefault)
$(GLINK StatementNoCaseNoDefault) $(GSELF StatementListNoCaseNoDefault)
$(DDOC_BLANKLINE )
$(GNAME StatementNoCaseNoDefault):
$(GLINK EmptyStatement)
$(GLINK NonEmptyStatementNoCaseNoDefault)
$(GLINK ScopeBlockStatement)
)
$(GRAMMAR $(GNAME CaseRangeStatement):
$(D case) $(GLINK FirstExp) $(D : .. case) $(GLINK LastExp) $(D :) $(GLINK ScopeStatementList)$(OPT )
$(DDOC_BLANKLINE )
$(GNAME FirstExp):
$(GLINK AssignExpression)
$(DDOC_BLANKLINE )
$(GNAME LastExp):
$(GLINK AssignExpression)
)
$(GRAMMAR $(GNAME FinalSwitchStatement):
$(D final switch $(LPAREN)) $(GLINK Expression) $(D $(RPAREN )) $(GLINK ScopeStatement)
)
$(GRAMMAR $(GNAME ContinueStatement):
$(D continue) $(GLINK_LEX Identifier)$(OPT ) $(D ;)
)
$(GRAMMAR $(GNAME BreakStatement):
$(D break) $(GLINK_LEX Identifier)$(OPT ) $(D ;)
)
$(GRAMMAR $(GNAME ReturnStatement):
$(D return) $(GLINK Expression)$(OPT ) $(D ;)
)
$(GRAMMAR $(GNAME GotoStatement):
$(D goto) $(GLINK_LEX Identifier) $(D ;)
$(D goto) $(D default) $(D ;)
$(D goto) $(D case) $(D ;)
$(D goto) $(D case) $(GLINK Expression) $(D ;)
)
$(GRAMMAR $(GNAME WithStatement):
$(D with) $(D $(LPAREN)) $(GLINK Expression) $(D $(RPAREN )) $(GLINK ScopeStatement)
$(D with) $(D $(LPAREN)) $(GLINK Symbol) $(D $(RPAREN )) $(GLINK ScopeStatement)
$(D with) $(D $(LPAREN)) $(GLINK TemplateInstance) $(D $(RPAREN )) $(GLINK ScopeStatement)
)
$(GRAMMAR $(GNAME SynchronizedStatement):
$(D synchronized) $(GLINK ScopeStatement)
$(D synchronized $(LPAREN)) $(GLINK Expression) $(D $(RPAREN )) $(GLINK ScopeStatement)
)
$(GRAMMAR $(GNAME TryStatement):
$(D try) $(GLINK ScopeStatement) $(GLINK Catches)
$(D try) $(GLINK ScopeStatement) $(GLINK Catches) $(GLINK FinallyStatement)
$(D try) $(GLINK ScopeStatement) $(GLINK FinallyStatement)
$(DDOC_BLANKLINE )
$(GNAME Catches):
$(GLINK Catch)
$(GLINK Catch) $(GSELF Catches)
$(DDOC_BLANKLINE )
$(GNAME Catch):
$(D catch $(LPAREN)) $(GLINK CatchParameter) $(D $(RPAREN )) $(GLINK NoScopeNonEmptyStatement)
$(DDOC_BLANKLINE )
$(GNAME CatchParameter):
$(GLINK BasicType) $(GLINK_LEX Identifier)$(OPT )
$(DDOC_BLANKLINE )
$(GNAME FinallyStatement):
$(D finally) $(GLINK NoScopeNonEmptyStatement)
)
$(GRAMMAR $(GNAME ScopeGuardStatement):
$(D scope ( exit )) $(GLINK NonEmptyOrScopeBlockStatement)
$(D scope ( success )) $(GLINK NonEmptyOrScopeBlockStatement)
$(D scope ( failure )) $(GLINK NonEmptyOrScopeBlockStatement)
)
$(GRAMMAR $(GNAME AsmStatement):
$(D asm) $(GLINK FunctionAttributes)$(OPT ) $(D {) $(GLINK AsmInstructionList)$(OPT ) $(D })
$(DDOC_BLANKLINE )
$(GNAME AsmInstructionList):
$(GLINK AsmInstruction) $(D ;)
$(GLINK AsmInstruction) $(D ;) $(GSELF AsmInstructionList)
)
$(GRAMMAR $(GNAME MixinStatement):
$(D mixin) $(D $(LPAREN)) $(GLINK ArgumentList) $(D $(RPAREN )) $(D ;)
)
$(LNAME2 structs and unions, Structs and Unions)
$(GRAMMAR $(GNAME StructDeclaration):
$(D struct) $(GLINK_LEX Identifier) $(D ;)
$(D struct) $(GLINK_LEX Identifier) $(GLINK AggregateBody)
$(GLINK StructTemplateDeclaration)
$(I AnonStructDeclaration)
$(DDOC_BLANKLINE )
$(GNAME AnonStructDeclaration):
$(D struct) $(GLINK AggregateBody)
)
$(GRAMMAR $(GNAME UnionDeclaration):
$(D union) $(GLINK_LEX Identifier) $(D ;)
$(D union) $(GLINK_LEX Identifier) $(GLINK AggregateBody)
$(GLINK UnionTemplateDeclaration)
$(I AnonUnionDeclaration)
$(DDOC_BLANKLINE )
$(GNAME AnonUnionDeclaration):
$(D union) $(GLINK AggregateBody)
)
$(GRAMMAR $(GNAME AggregateBody):
$(D {) $(GLINK DeclDefs)$(OPT ) $(D })
)
$(GRAMMAR $(GNAME StructInitializer):
$(D {) $(I StructMemberInitializers)$(OPT ) $(D })
$(DDOC_BLANKLINE )
$(GNAME StructMemberInitializers):
$(I StructMemberInitializer)
$(I StructMemberInitializer) $(D ,)
$(I StructMemberInitializer) $(D ,) $(GSELF StructMemberInitializers)
$(DDOC_BLANKLINE )
$(GNAME StructMemberInitializer):
$(GLINK NonVoidInitializer)
$(GLINK_LEX Identifier) $(D :) $(GLINK NonVoidInitializer)
)
$(GRAMMAR $(GNAME Postblit):
$(D this $(LPAREN) this $(RPAREN )) $(GLINK MemberFunctionAttributes)$(OPT ) $(GLINK FunctionBody)
)
$(GRAMMAR $(GNAME Invariant):
$(D invariant $(LPAREN) $(RPAREN )) $(GLINK BlockStatement)
$(D invariant) $(GLINK BlockStatement)
$(D invariant $(LPAREN)) $(GLINK AssertArguments) $(D $(RPAREN ) ;)
)
$(GRAMMAR $(GNAME AliasThis):
$(D alias) $(GLINK_LEX Identifier) $(D this ;)
$(D alias) $(D this) $(D =) $(GLINK_LEX Identifier) $(D ;)
)
$(LNAME2 classes, Classes)
$(GRAMMAR $(GNAME ClassDeclaration):
$(D class) $(GLINK_LEX Identifier) $(D ;)
$(D class) $(GLINK_LEX Identifier) $(GLINK BaseClassList)$(OPT ) $(GLINK AggregateBody)
$(GLINK ClassTemplateDeclaration)
$(DDOC_BLANKLINE )
$(GNAME BaseClassList):
$(D :) $(GLINK SuperClassOrInterface)
$(D :) $(GLINK SuperClassOrInterface) $(D ,) $(GLINK Interfaces)
$(DDOC_BLANKLINE )
$(GNAME SuperClassOrInterface):
$(GLINK BasicType)
$(DDOC_BLANKLINE )
$(GNAME Interfaces):
$(GLINK Interface)
$(GLINK Interface) $(D ,) $(GSELF Interfaces)
$(DDOC_BLANKLINE )
$(GNAME Interface):
$(GLINK BasicType)
)
$(GRAMMAR $(GNAME Constructor):
$(D this) $(GLINK Parameters) $(GLINK MemberFunctionAttributes)$(OPT ) $(GLINK FunctionBody)
$(GLINK ConstructorTemplate)
)
$(GRAMMAR $(GNAME Destructor):
$(D ~ this ( )) $(GLINK MemberFunctionAttributes)$(OPT ) $(GLINK FunctionBody)
)
$(GRAMMAR $(GNAME StaticConstructor):
$(D static this ( )) $(GLINK MemberFunctionAttributes)$(OPT ) $(GLINK FunctionBody)
)
$(GRAMMAR $(GNAME StaticDestructor):
$(D static ~ this ( )) $(GLINK MemberFunctionAttributes)$(OPT ) $(GLINK FunctionBody)
)
$(GRAMMAR $(GNAME SharedStaticConstructor):
$(D shared static this ( )) $(GLINK MemberFunctionAttributes)$(OPT ) $(GLINK FunctionBody)
)
$(GRAMMAR $(GNAME SharedStaticDestructor):
$(D shared static ~ this ( )) $(GLINK MemberFunctionAttributes)$(OPT ) $(GLINK FunctionBody)
)
$(GRAMMAR $(GNAME Invariant):
$(D invariant $(LPAREN) $(RPAREN )) $(GLINK BlockStatement)
$(D invariant) $(GLINK BlockStatement)
$(D invariant $(LPAREN)) $(GLINK AssertArguments) $(D $(RPAREN ) ;)
)
$(GRAMMAR $(GNAME NewAnonClassExpression):
$(D new) $(D class) $(GLINK ConstructorArgs)$(OPT ) $(GLINK AnonBaseClassList)$(OPT ) $(GLINK AggregateBody)
$(DDOC_BLANKLINE )
$(GNAME ConstructorArgs):
$(D $(LPAREN)) $(GLINK NamedArgumentList)$(OPT ) $(D $(RPAREN ))
$(DDOC_BLANKLINE )
$(GNAME AnonBaseClassList):
$(GLINK SuperClassOrInterface)
$(GLINK SuperClassOrInterface) $(D ,) $(GLINK Interfaces)
)
$(GRAMMAR_INFORMATIVE $(D class) $(GLINK_LEX Identifier) $(D :) $(I AnonBaseClassList) $(I AggregateBody)
// ...
$(D new) $(I Identifier) $(I ConstructorArgs)
)
$(LNAME2 interfaces, Interfaces)
$(GRAMMAR $(GNAME InterfaceDeclaration):
$(D interface) $(GLINK_LEX Identifier) $(D ;)
$(D interface) $(GLINK_LEX Identifier) $(GLINK BaseInterfaceList)$(OPT ) $(GLINK AggregateBody)
$(GLINK InterfaceTemplateDeclaration)
$(DDOC_BLANKLINE )
$(GNAME BaseInterfaceList):
$(D :) $(GLINK Interfaces)
)
$(LNAME2 enums, Enums)
$(GRAMMAR $(GNAME EnumDeclaration):
$(D enum) $(GLINK_LEX Identifier) $(GLINK EnumBody)
$(D enum) $(GLINK_LEX Identifier) $(D :) $(GLINK EnumBaseType) $(GLINK EnumBody)
$(GLINK AnonymousEnumDeclaration)
$(DDOC_BLANKLINE )
$(GNAME EnumBaseType):
$(GLINK Type)
$(DDOC_BLANKLINE )
$(GNAME EnumBody):
$(D {) $(GLINK EnumMembers) $(D })
$(D ;)
$(DDOC_BLANKLINE )
$(GNAME EnumMembers):
$(GLINK EnumMember)
$(GLINK EnumMember) $(D ,)
$(GLINK EnumMember) $(D ,) $(GSELF EnumMembers)
$(DDOC_BLANKLINE )
$(GNAME EnumMember):
$(GLINK EnumMemberAttributes)$(OPT ) $(GLINK_LEX Identifier)
$(GLINK EnumMemberAttributes)$(OPT ) $(GLINK_LEX Identifier) $(D =) $(GLINK AssignExpression)
$(DDOC_BLANKLINE )
$(GNAME EnumMemberAttributes):
$(GLINK EnumMemberAttribute)
$(GLINK EnumMemberAttribute) $(GSELF EnumMemberAttributes)
$(DDOC_BLANKLINE )
$(GNAME EnumMemberAttribute):
$(GLINK DeprecatedAttribute)
$(GLINK UserDefinedAttribute)
$(D @)$(LINK2 attribute.html#disable, $(D disable))
)
$(GRAMMAR $(GNAME AnonymousEnumDeclaration):
$(D enum) $(D :) $(GLINK EnumBaseType) $(D {) $(GLINK EnumMembers) $(D })
$(D enum) $(D {) $(GLINK AnonymousEnumMembers) $(D })
$(DDOC_BLANKLINE )
$(GNAME AnonymousEnumMembers):
$(GLINK AnonymousEnumMember)
$(GLINK AnonymousEnumMember) $(D ,)
$(GLINK AnonymousEnumMember) $(D ,) $(GSELF AnonymousEnumMembers)
$(DDOC_BLANKLINE )
$(GNAME AnonymousEnumMember):
$(GLINK EnumMember)
$(GLINK EnumMemberAttributes)$(OPT ) $(GLINK Type) $(GLINK_LEX Identifier) $(D =) $(GLINK AssignExpression)
)
$(LNAME2 functions, Functions)
$(GRAMMAR $(GNAME FuncDeclaration):
$(GLINK StorageClasses)$(OPT ) $(GLINK BasicType) $(GLINK FuncDeclarator) $(GLINK FunctionBody)
$(GLINK AutoFuncDeclaration)
$(DDOC_BLANKLINE )
$(GNAME AutoFuncDeclaration):
$(GLINK StorageClasses) $(GLINK_LEX Identifier) $(GLINK FuncDeclaratorSuffix) $(GLINK FunctionBody)
$(DDOC_BLANKLINE )
$(GNAME FuncDeclarator):
$(GLINK TypeSuffixes)$(OPT ) $(GLINK_LEX Identifier) $(GLINK FuncDeclaratorSuffix)
$(DDOC_BLANKLINE )
$(GNAME FuncDeclaratorSuffix):
$(GLINK Parameters) $(GLINK MemberFunctionAttributes)$(OPT )
$(GLINK TemplateParameters) $(GLINK Parameters) $(GLINK MemberFunctionAttributes)$(OPT ) $(GLINK Constraint)$(OPT )
)
$(GRAMMAR $(GNAME Parameters):
$(D $(LPAREN)) $(GLINK ParameterList)$(OPT ) $(D $(RPAREN ))
$(DDOC_BLANKLINE )
$(GNAME ParameterList):
$(GLINK Parameter)
$(GLINK Parameter) $(D ,) $(GSELF ParameterList)$(OPT )
$(GLINK VariadicArgumentsAttributes)$(OPT ) $(D ...)
$(DDOC_BLANKLINE )
$(GNAME Parameter):
$(GLINK ParameterAttributes)$(OPT ) $(GLINK BasicType) $(GLINK Declarator)
$(GLINK ParameterAttributes)$(OPT ) $(GLINK BasicType) $(GLINK Declarator) $(D ...)
$(GLINK ParameterAttributes)$(OPT ) $(GLINK BasicType) $(GLINK Declarator) $(D =) $(GLINK AssignExpression)
$(GLINK ParameterAttributes)$(OPT ) $(GLINK Type)
$(GLINK ParameterAttributes)$(OPT ) $(GLINK Type) $(D ...)
$(GLINK ParameterAttributes)$(OPT ) $(GLINK Type) $(D =) $(GLINK AssignExpression)
$(DDOC_BLANKLINE )
$(GNAME ParameterAttributes):
$(GLINK ParameterStorageClass)
$(GLINK UserDefinedAttribute)
$(GSELF ParameterAttributes) $(GLINK ParameterStorageClass)
$(GSELF ParameterAttributes) $(GLINK UserDefinedAttribute)
$(DDOC_BLANKLINE )
$(GNAME ParameterStorageClass):
$(D auto)
$(GLINK TypeCtor)
$(D final)
$(D in)
$(D lazy)
$(D out)
$(D ref)
$(D return)
$(D scope)
$(DDOC_BLANKLINE )
$(GNAME VariadicArgumentsAttributes):
$(GLINK VariadicArgumentsAttribute)
$(GLINK VariadicArgumentsAttribute) $(GSELF VariadicArgumentsAttributes)
$(DDOC_BLANKLINE )
$(GNAME VariadicArgumentsAttribute):
$(D const)
$(D immutable)
$(D return)
$(D scope)
$(D shared)
)
$(GRAMMAR $(GNAME FunctionAttributes):
$(GLINK FunctionAttribute)
$(GLINK FunctionAttribute) $(GSELF FunctionAttributes)
$(DDOC_BLANKLINE )
$(GNAME FunctionAttribute):
$(GLINK FunctionAttributeKwd)
$(GLINK Property)
$(GLINK AtAttribute)
$(DDOC_BLANKLINE )
$(GNAME MemberFunctionAttributes):
$(GLINK MemberFunctionAttribute)
$(GLINK MemberFunctionAttribute) $(GSELF MemberFunctionAttributes)
$(DDOC_BLANKLINE )
$(GNAME MemberFunctionAttribute):
$(D const)
$(D immutable)
$(D inout)
$(D return)
$(D scope)
$(D shared)
$(GLINK FunctionAttribute)
)
$(GRAMMAR $(GNAME FunctionBody):
$(GLINK SpecifiedFunctionBody)
$(GLINK ShortenedFunctionBody)
$(GLINK MissingFunctionBody)
$(DDOC_BLANKLINE )
$(GNAME SpecifiedFunctionBody):
$(D do)$(OPT ) $(GLINK BlockStatement)
$(GLINK FunctionContracts)$(OPT ) $(GLINK InOutContractExpression) $(D do)$(OPT ) $(GLINK BlockStatement)
$(GLINK FunctionContracts)$(OPT ) $(GLINK InOutStatement) $(D do) $(GLINK BlockStatement)
$(DDOC_BLANKLINE )
$(GNAME ShortenedFunctionBody):
$(GLINK InOutContractExpressions)$(OPT ) $(D =>) $(GLINK AssignExpression) $(D ;)
)
$(GRAMMAR $(GNAME MissingFunctionBody):
$(D ;)
$(GLINK FunctionContracts)$(OPT ) $(GLINK InOutContractExpression) $(D ;)
$(GLINK FunctionContracts)$(OPT ) $(GLINK InOutStatement)
)
$(GRAMMAR $(GNAME FunctionContracts):
$(GLINK FunctionContract)
$(GLINK FunctionContract) $(GSELF FunctionContracts)
$(DDOC_BLANKLINE )
$(GNAME FunctionContract):
$(GLINK InOutContractExpression)
$(GLINK InOutStatement)
$(DDOC_BLANKLINE )
$(GNAME InOutContractExpressions):
$(GLINK InOutContractExpression)
$(GLINK InOutContractExpression) $(GSELF InOutContractExpressions)
$(DDOC_BLANKLINE )
$(GNAME InOutContractExpression):
$(GLINK InContractExpression)
$(GLINK OutContractExpression)
$(DDOC_BLANKLINE )
$(GNAME InOutStatement):
$(GLINK InStatement)
$(GLINK OutStatement)
$(DDOC_BLANKLINE )
$(GNAME InContractExpression):
$(D in $(LPAREN)) $(GLINK AssertArguments) $(D $(RPAREN ))
$(DDOC_BLANKLINE )
$(GNAME OutContractExpression):
$(D out $(LPAREN) ;) $(GLINK AssertArguments) $(D $(RPAREN ))
$(D out $(LPAREN)) $(GLINK_LEX Identifier) $(D ;) $(GLINK AssertArguments) $(D $(RPAREN ))
$(DDOC_BLANKLINE )
$(GNAME InStatement):
$(D in) $(GLINK BlockStatement)
$(DDOC_BLANKLINE )
$(GNAME OutStatement):
$(D out) $(GLINK BlockStatement)
$(D out) $(D $(LPAREN)) $(GLINK_LEX Identifier) $(D $(RPAREN )) $(GLINK BlockStatement)
)
$(GRAMMAR $(GNAME MainFunction):
$(GLINK MainReturnDecl) $(D main$(LPAREN)$(RPAREN )) $(GLINK MainFunctionBody)
$(GLINK MainReturnDecl) $(D main$(LPAREN)string[]) $(GLINK_LEX Identifier)$(D $(RPAREN )) $(GLINK MainFunctionBody)
$(DDOC_BLANKLINE )
$(GNAME MainReturnDecl):
$(D void)
$(D int)
$(GLINK noreturn)
$(RELATIVE_LINK2 auto-functions, $(D auto))
$(DDOC_BLANKLINE )
$(GNAME MainFunctionBody):
$(GLINK ShortenedFunctionBody)
$(GLINK SpecifiedFunctionBody)
)
$(GRAMMAR $(GNAME CMainFunction):
$(D extern (C)) $(GLINK MainReturnDecl) $(D main$(LPAREN)$(GLINK CmainParameters)$(OPT )$(RPAREN )) $(GLINK BlockStatement)
$(DDOC_BLANKLINE )
$(GNAME CmainParameters):
$(D int) $(GLINK_LEX Identifier), $(D char**) $(GLINK_LEX Identifier)
$(D int) $(GLINK_LEX Identifier), $(D char**) $(GLINK_LEX Identifier), $(D char**) $(GLINK_LEX Identifier)
)
$(LNAME2 templates, Templates)
$(GRAMMAR $(GNAME TemplateDeclaration):
$(D template) $(GLINK_LEX Identifier) $(GLINK TemplateParameters) $(GLINK Constraint)$(OPT ) $(D {) $(GLINK DeclDefs)$(OPT ) $(D })
$(DDOC_BLANKLINE )
$(GNAME TemplateParameters):
$(D $(LPAREN)) $(GLINK TemplateParameterList)$(OPT ) $(D $(RPAREN ))
$(DDOC_BLANKLINE )
$(GNAME TemplateParameterList):
$(GLINK TemplateParameter)
$(GLINK TemplateParameter) $(D ,)
$(GLINK TemplateParameter) $(D ,) $(GSELF TemplateParameterList)
)
$(GRAMMAR $(GNAME TemplateInstance):
$(GLINK_LEX Identifier) $(GLINK TemplateArguments)
$(DDOC_BLANKLINE )
$(GNAME TemplateArguments):
$(D ! $(LPAREN)) $(GLINK TemplateArgumentList)$(OPT ) $(D $(RPAREN ))
$(D !) $(GLINK TemplateSingleArgument)
$(DDOC_BLANKLINE )
$(GNAME TemplateArgumentList):
$(GLINK TemplateArgument)
$(GLINK TemplateArgument) $(D ,)
$(GLINK TemplateArgument) $(D ,) $(GSELF TemplateArgumentList)
$(DDOC_BLANKLINE )
$(GNAME TemplateArgument):
$(GLINK Type)
$(GLINK AssignExpression)
$(GLINK Symbol)
$(DDOC_BLANKLINE )
$(GNAME Symbol):
$(GLINK SymbolTail)
$(D .) $(GLINK SymbolTail)
$(DDOC_BLANKLINE )
$(GNAME SymbolTail):
$(GLINK_LEX Identifier)
$(GLINK_LEX Identifier) $(D .) $(GSELF SymbolTail)
$(GLINK TemplateInstance)
$(GLINK TemplateInstance) $(D .) $(GSELF SymbolTail)
$(DDOC_BLANKLINE )
$(GNAME TemplateSingleArgument):
$(GLINK_LEX Identifier)
$(GLINK FundamentalType)
$(GLINK_LEX CharacterLiteral)
$(GLINK_LEX StringLiteral)
$(GLINK_LEX IntegerLiteral)
$(GLINK_LEX FloatLiteral)
$(D true)
$(D false)
$(D null)
$(D this)
$(GLINK SpecialKeyword)
)
$(GRAMMAR $(GNAME TemplateParameter):
$(GLINK TemplateTypeParameter)
$(GLINK TemplateValueParameter)
$(GLINK TemplateAliasParameter)
$(GLINK TemplateSequenceParameter)
$(GLINK TemplateThisParameter)
)
$(GRAMMAR $(GNAME TemplateTypeParameter):
$(GLINK_LEX Identifier)
$(GLINK_LEX Identifier) $(GLINK TemplateTypeParameterSpecialization)
$(GLINK_LEX Identifier) $(GLINK TemplateTypeParameterDefault)
$(GLINK_LEX Identifier) $(GLINK TemplateTypeParameterSpecialization) $(GLINK TemplateTypeParameterDefault)
$(DDOC_BLANKLINE )
$(GNAME TemplateTypeParameterSpecialization):
$(D :) $(GLINK Type)
$(DDOC_BLANKLINE )
$(GNAME TemplateTypeParameterDefault):
$(D =) $(GLINK Type)
)
$(GRAMMAR $(GNAME TemplateThisParameter):
$(D this) $(GLINK TemplateTypeParameter)
)
$(GRAMMAR $(GNAME TemplateValueParameter):
$(GLINK BasicType) $(GLINK Declarator)
$(GLINK BasicType) $(GLINK Declarator) $(GLINK TemplateValueParameterSpecialization)
$(GLINK BasicType) $(GLINK Declarator) $(GLINK TemplateValueParameterDefault)
$(GLINK BasicType) $(GLINK Declarator) $(GLINK TemplateValueParameterSpecialization) $(GLINK TemplateValueParameterDefault)
$(DDOC_BLANKLINE )
$(GNAME TemplateValueParameterSpecialization):
$(D :) $(GLINK ConditionalExpression)
$(DDOC_BLANKLINE )
$(GNAME TemplateValueParameterDefault):
$(D =) $(GLINK AssignExpression)
$(D =) $(GLINK SpecialKeyword)
)
$(GRAMMAR $(GNAME TemplateAliasParameter):
$(D alias) $(GLINK_LEX Identifier) $(GLINK TemplateAliasParameterSpecialization)$(OPT ) $(GLINK TemplateAliasParameterDefault)$(OPT )
$(D alias) $(GLINK BasicType) $(GLINK Declarator) $(GLINK TemplateAliasParameterSpecialization)$(OPT ) $(GLINK TemplateAliasParameterDefault)$(OPT )
$(DDOC_BLANKLINE )
$(GNAME TemplateAliasParameterSpecialization):
$(D :) $(GLINK Type)
$(D :) $(GLINK ConditionalExpression)
$(DDOC_BLANKLINE )
$(GNAME TemplateAliasParameterDefault):
$(D =) $(GLINK Type)
$(D =) $(GLINK ConditionalExpression)
)
$(GRAMMAR $(GNAME TemplateSequenceParameter):
$(GLINK_LEX Identifier) $(D ...)
)
$(GRAMMAR $(GNAME ClassTemplateDeclaration):
$(D class) $(GLINK_LEX Identifier) $(GLINK TemplateParameters) $(D ;)
$(D class) $(GLINK_LEX Identifier) $(GLINK TemplateParameters) $(GLINK Constraint)$(OPT ) $(GLINK BaseClassList)$(OPT ) $(GLINK AggregateBody)
$(D class) $(GLINK_LEX Identifier) $(GLINK TemplateParameters) $(GLINK BaseClassList)$(OPT ) $(GLINK Constraint)$(OPT ) $(GLINK AggregateBody)
$(DDOC_BLANKLINE )
$(GNAME InterfaceTemplateDeclaration):
$(D interface) $(GLINK_LEX Identifier) $(GLINK TemplateParameters) $(D ;)
$(D interface) $(GLINK_LEX Identifier) $(GLINK TemplateParameters) $(GLINK Constraint)$(OPT ) $(GLINK BaseInterfaceList)$(OPT ) $(GLINK AggregateBody)
$(D interface) $(GLINK_LEX Identifier) $(GLINK TemplateParameters) $(GLINK BaseInterfaceList) $(GLINK Constraint) $(GLINK AggregateBody)
$(DDOC_BLANKLINE )
$(GNAME StructTemplateDeclaration):
$(D struct) $(GLINK_LEX Identifier) $(GLINK TemplateParameters) $(D ;)
$(D struct) $(GLINK_LEX Identifier) $(GLINK TemplateParameters) $(GLINK Constraint)$(OPT ) $(GLINK AggregateBody)
$(DDOC_BLANKLINE )
$(GNAME UnionTemplateDeclaration):
$(D union) $(GLINK_LEX Identifier) $(GLINK TemplateParameters) $(D ;)
$(D union) $(GLINK_LEX Identifier) $(GLINK TemplateParameters) $(GLINK Constraint)$(OPT ) $(GLINK AggregateBody)
)
$(GRAMMAR $(GNAME ConstructorTemplate):
$(D this) $(GLINK TemplateParameters) $(GLINK Parameters) $(GLINK MemberFunctionAttributes)$(OPT ) $(GLINK Constraint)$(OPT ) $(GLINK FunctionBody)
)
$(GRAMMAR $(GNAME Constraint):
$(D if) $(D $(LPAREN)) $(GLINK Expression) $(D $(RPAREN ))
)
$(LNAME2 template mixins, Template Mixins)
$(GRAMMAR $(GNAME TemplateMixinDeclaration):
$(D mixin) $(D template) $(GLINK_LEX Identifier) $(GLINK TemplateParameters) $(GLINK Constraint)$(OPT ) $(D {) $(GLINK DeclDefs)$(OPT ) $(D })
$(DDOC_BLANKLINE )
$(GNAME TemplateMixin):
$(D mixin) $(GLINK MixinTemplateName) $(GLINK TemplateArguments)$(OPT ) $(GLINK_LEX Identifier)$(OPT ) $(D ;)
$(DDOC_BLANKLINE )
$(GNAME MixinTemplateName):
$(D .) $(GLINK MixinQualifiedIdentifier)
$(GLINK MixinQualifiedIdentifier)
$(GLINK Typeof) $(D .) $(GLINK MixinQualifiedIdentifier)
$(DDOC_BLANKLINE )
$(GNAME MixinQualifiedIdentifier):
$(GLINK_LEX Identifier)
$(GLINK_LEX Identifier) $(D .) $(GSELF MixinQualifiedIdentifier)
$(GLINK TemplateInstance) $(D .) $(GSELF MixinQualifiedIdentifier)
)
$(LNAME2 conditional compilation, Conditional Compilation)
$(GRAMMAR $(GNAME ConditionalDeclaration):
$(GLINK Condition) $(GLINK DeclarationBlock)
$(GLINK Condition) $(GLINK DeclarationBlock) $(D else) $(GLINK DeclarationBlock)
$(GLINK Condition) $(D :) $(GLINK DeclDefs)$(OPT )
$(GLINK Condition) $(GLINK DeclarationBlock) $(D else) $(D :) $(GLINK DeclDefs)$(OPT )
$(DDOC_BLANKLINE )
$(GNAME ConditionalStatement):
$(GLINK Condition) $(GLINK NoScopeNonEmptyStatement)
$(GLINK Condition) $(GLINK NoScopeNonEmptyStatement) $(D else) $(GLINK NoScopeNonEmptyStatement)
)
$(GRAMMAR $(GNAME Condition):
$(GLINK VersionCondition)
$(GLINK DebugCondition)
$(GLINK StaticIfCondition)
)
$(GRAMMAR $(GNAME VersionCondition):
$(D version $(LPAREN)) $(GLINK_LEX Identifier) $(D $(RPAREN ))
$(D version $(LPAREN)) $(D unittest) $(D $(RPAREN ))
$(D version $(LPAREN)) $(D assert) $(D $(RPAREN ))
)
$(GRAMMAR $(GNAME VersionSpecification):
$(D version =) $(GLINK_LEX Identifier) $(D ;)
)
$(GRAMMAR $(GNAME DebugCondition):
$(D debug)
$(D debug $(LPAREN)) $(GLINK_LEX Identifier) $(D $(RPAREN ))
)
$(GRAMMAR $(GNAME DebugSpecification):
$(D debug =) $(GLINK_LEX Identifier) $(D ;)
)
$(GRAMMAR $(GNAME StaticIfCondition):
$(D static if $(LPAREN)) $(GLINK AssignExpression) $(D $(RPAREN ))
)
$(GRAMMAR $(GNAME StaticForeach):
$(D static) $(GLINK AggregateForeach)
$(D static) $(GLINK RangeForeach)
$(DDOC_BLANKLINE )
$(GNAME StaticForeachDeclaration):
$(GLINK StaticForeach) $(GLINK DeclarationBlock)
$(GLINK StaticForeach) $(D :) $(GLINK DeclDefs)$(OPT )
$(DDOC_BLANKLINE )
$(GNAME StaticForeachStatement):
$(GLINK StaticForeach) $(GLINK NoScopeNonEmptyStatement)
)
$(GRAMMAR $(GNAME StaticAssert):
$(D static assert $(LPAREN)) $(GLINK ArgumentList) $(D $(RPAREN ) ;)
)
$(LNAME2 traits, Traits)
$(GRAMMAR $(GNAME TraitsExpression):
$(D __traits) $(D $(LPAREN)) $(GLINK TraitsKeyword) $(D ,) $(GLINK TraitsArguments) $(D $(RPAREN ))
$(DDOC_BLANKLINE )
$(GNAME TraitsKeyword):
$(RELATIVE_LINK2 isAbstractClass, $(D isAbstractClass))
$(RELATIVE_LINK2 isArithmetic, $(D isArithmetic))
$(RELATIVE_LINK2 isAssociativeArray, $(D isAssociativeArray))
$(RELATIVE_LINK2 isFinalClass, $(D isFinalClass))
$(RELATIVE_LINK2 isPOD, $(D isPOD))
$(RELATIVE_LINK2 isNested, $(D isNested))
$(RELATIVE_LINK2 isFuture, $(D isFuture))
$(RELATIVE_LINK2 isDeprecated, $(D isDeprecated))
$(RELATIVE_LINK2 isFloating, $(D isFloating))
$(RELATIVE_LINK2 isIntegral, $(D isIntegral))
$(RELATIVE_LINK2 isScalar, $(D isScalar))
$(RELATIVE_LINK2 isStaticArray, $(D isStaticArray))
$(RELATIVE_LINK2 isUnsigned, $(D isUnsigned))
$(RELATIVE_LINK2 isDisabled, $(D isDisabled))
$(RELATIVE_LINK2 isVirtualFunction, $(D isVirtualFunction))
$(RELATIVE_LINK2 isVirtualMethod, $(D isVirtualMethod))
$(RELATIVE_LINK2 isAbstractFunction, $(D isAbstractFunction))
$(RELATIVE_LINK2 isFinalFunction, $(D isFinalFunction))
$(RELATIVE_LINK2 isStaticFunction, $(D isStaticFunction))
$(RELATIVE_LINK2 isOverrideFunction, $(D isOverrideFunction))
$(RELATIVE_LINK2 isTemplate, $(D isTemplate))
$(RELATIVE_LINK2 isRef, $(D isRef))
$(RELATIVE_LINK2 isOut, $(D isOut))
$(RELATIVE_LINK2 isLazy, $(D isLazy))
$(RELATIVE_LINK2 isReturnOnStack, $(D isReturnOnStack))
$(RELATIVE_LINK2 isCopyable, $(D isCopyable))
$(RELATIVE_LINK2 isZeroInit, $(D isZeroInit))
$(RELATIVE_LINK2 isModule, $(D isModule))
$(RELATIVE_LINK2 isPackage, $(D isPackage))
$(RELATIVE_LINK2 hasMember, $(D hasMember))
$(RELATIVE_LINK2 hasCopyConstructor, $(D hasCopyConstructor))
$(RELATIVE_LINK2 hasPostblit, $(D hasPostblit))
$(RELATIVE_LINK2 identifier, $(D identifier))
$(RELATIVE_LINK2 getAliasThis, $(D getAliasThis))
$(RELATIVE_LINK2 getAttributes, $(D getAttributes))
$(RELATIVE_LINK2 getFunctionAttributes, $(D getFunctionAttributes))
$(RELATIVE_LINK2 getFunctionVariadicStyle, $(D getFunctionVariadicStyle))
$(RELATIVE_LINK2 getLinkage, $(D getLinkage))
$(RELATIVE_LINK2 getLocation, $(D getLocation))
$(RELATIVE_LINK2 getMember, $(D getMember))
$(RELATIVE_LINK2 getOverloads, $(D getOverloads))
$(RELATIVE_LINK2 getParameterStorageClasses, $(D getParameterStorageClasses))
$(RELATIVE_LINK2 getPointerBitmap, $(D getPointerBitmap))
$(RELATIVE_LINK2 getCppNamespaces, $(D getCppNamespaces))
$(RELATIVE_LINK2 getVisibility, $(D getVisibility))
$(RELATIVE_LINK2 getProtection, $(D getProtection))
$(RELATIVE_LINK2 getTargetInfo, $(D getTargetInfo))
$(RELATIVE_LINK2 getVirtualFunctions, $(D getVirtualFunctions))
$(RELATIVE_LINK2 getVirtualMethods, $(D getVirtualMethods))
$(RELATIVE_LINK2 getUnitTests, $(D getUnitTests))
$(RELATIVE_LINK2 parent, $(D parent))
$(RELATIVE_LINK2 child, $(D child))
$(RELATIVE_LINK2 classInstanceSize, $(D classInstanceSize))
$(RELATIVE_LINK2 classInstanceAlignment, $(D classInstanceAlignment))
$(RELATIVE_LINK2 getVirtualIndex, $(D getVirtualIndex))
$(RELATIVE_LINK2 allMembers, $(D allMembers))
$(RELATIVE_LINK2 derivedMembers, $(D derivedMembers))
$(RELATIVE_LINK2 isSame, $(D isSame))
$(RELATIVE_LINK2 compiles, $(D compiles))
$(RELATIVE_LINK2 toType, $(D toType))
$(RELATIVE_LINK2 initSymbol, $(D initSymbol))
$(RELATIVE_LINK2 parameters, $(D parameters))
$(DDOC_BLANKLINE )
$(GNAME TraitsArguments):
$(GLINK TraitsArgument)
$(GLINK TraitsArgument) $(D ,) $(GSELF TraitsArguments)
$(DDOC_BLANKLINE )
$(GNAME TraitsArgument):
$(GLINK AssignExpression)
$(GLINK Type)
)
$(LNAME2 unit tests, Unit Tests)
$(GRAMMAR $(GNAME UnitTest):
$(D unittest) $(GLINK BlockStatement)
)
$(LNAME2 d x86 inline assembler, D x86 Inline Assembler)
$(GRAMMAR $(GNAME AsmStatement):
$(D asm) $(GLINK FunctionAttributes)$(OPT ) $(D {) $(GLINK AsmInstructionList)$(OPT ) $(D })
$(DDOC_BLANKLINE )
$(GNAME AsmInstructionList):
$(GLINK AsmInstruction) $(D ;)
$(GLINK AsmInstruction) $(D ;) $(GSELF AsmInstructionList)
)
$(GRAMMAR $(GNAME AsmInstruction):
$(GLINK_LEX Identifier) $(D :) $(GSELF AsmInstruction)
$(D align) $(GLINK IntegerExpression)
$(D even)
$(D naked)
$(D db) $(GLINK Operands)
$(D ds) $(GLINK Operands)
$(D di) $(GLINK Operands)
$(D dl) $(GLINK Operands)
$(D df) $(GLINK Operands)
$(D dd) $(GLINK Operands)
$(D de) $(GLINK Operands)
$(D db) $(GLINK_LEX StringLiteral)
$(D ds) $(GLINK_LEX StringLiteral)
$(D di) $(GLINK_LEX StringLiteral)
$(D dl) $(GLINK_LEX StringLiteral)
$(D dw) $(GLINK_LEX StringLiteral)
$(D dq) $(GLINK_LEX StringLiteral)
$(GLINK Opcode)
$(GLINK Opcode) $(GLINK Operands)
$(DDOC_BLANKLINE )
$(GNAME Opcode):
$(GLINK_LEX Identifier)
$(D int)
$(D in)
$(D out)
$(DDOC_BLANKLINE )
$(GNAME Operands):
$(GLINK Operand)
$(GLINK Operand) $(D ,) $(GSELF Operands)
)
$(GRAMMAR $(GNAME IntegerExpression):
$(GLINK_LEX IntegerLiteral)
$(GLINK_LEX Identifier)
)
$(GRAMMAR $(GNAME Register):
$(D AL)
$(D AH)
$(D AX)
$(D EAX)
$(DDOC_BLANKLINE )
$(D BL)
$(D BH)
$(D BX)
$(D EBX)
$(DDOC_BLANKLINE )
$(D CL)
$(D CH)
$(D CX)
$(D ECX)
$(DDOC_BLANKLINE )
$(D DL)
$(D DH)
$(D DX)
$(D EDX)
$(DDOC_BLANKLINE )
$(D BP)
$(D EBP)
$(DDOC_BLANKLINE )
$(D SP)
$(D ESP)
$(DDOC_BLANKLINE )
$(D DI)
$(D EDI)
$(DDOC_BLANKLINE )
$(D SI)
$(D ESI)
$(DDOC_BLANKLINE )
$(D ES)
$(D CS)
$(D SS)
$(D DS)
$(D GS)
$(D FS)
$(DDOC_BLANKLINE )
$(D CR0)
$(D CR2)
$(D CR3)
$(D CR4)
$(DDOC_BLANKLINE )
$(D DR0)
$(D DR1)
$(D DR2)
$(D DR3)
$(D DR6)
$(D DR7)
$(DDOC_BLANKLINE )
$(D TR3)
$(D TR4)
$(D TR5)
$(D TR6)
$(D TR7)
$(DDOC_BLANKLINE )
$(D ST)
$(DDOC_BLANKLINE )
$(D ST(0))
$(D ST(1))
$(D ST(2))
$(D ST(3))
$(D ST(4))
$(D ST(5))
$(D ST(6))
$(D ST(7))
$(DDOC_BLANKLINE )
$(D MM0)
$(D MM1)
$(D MM2)
$(D MM3)
$(D MM4)
$(D MM5)
$(D MM6)
$(D MM7)
$(DDOC_BLANKLINE )
$(D XMM0)
$(D XMM1)
$(D XMM2)
$(D XMM3)
$(D XMM4)
$(D XMM5)
$(D XMM6)
$(D XMM7)
)
$(GRAMMAR $(GNAME Register64):
$(D RAX)
$(D RBX)
$(D RCX)
$(D RDX)
$(DDOC_BLANKLINE )
$(D BPL)
$(D RBP)
$(DDOC_BLANKLINE )
$(D SPL)
$(D RSP)
$(DDOC_BLANKLINE )
$(D DIL)
$(D RDI)
$(DDOC_BLANKLINE )
$(D SIL)
$(D RSI)
$(DDOC_BLANKLINE )
$(D R8B)
$(D R8W)
$(D R8D)
$(D R8)
$(DDOC_BLANKLINE )
$(D R9B)
$(D R9W)
$(D R9D)
$(D R9)
$(DDOC_BLANKLINE )
$(D R10B)
$(D R10W)
$(D R10D)
$(D R10)
$(DDOC_BLANKLINE )
$(D R11B)
$(D R11W)
$(D R11D)
$(D R11)
$(DDOC_BLANKLINE )
$(D R12B)
$(D R12W)
$(D R12D)
$(D R12)
$(DDOC_BLANKLINE )
$(D R13B)
$(D R13W)
$(D R13D)
$(D R13)
$(DDOC_BLANKLINE )
$(D R14B)
$(D R14W)
$(D R14D)
$(D R14)
$(DDOC_BLANKLINE )
$(D R15B)
$(D R15W)
$(D R15D)
$(D R15)
$(DDOC_BLANKLINE )
$(D XMM8)
$(D XMM9)
$(D XMM10)
$(D XMM11)
$(D XMM12)
$(D XMM13)
$(D XMM14)
$(D XMM15)
$(DDOC_BLANKLINE )
$(D YMM0)
$(D YMM1)
$(D YMM2)
$(D YMM3)
$(D YMM4)
$(D YMM5)
$(D YMM6)
$(D YMM7)
$(DDOC_BLANKLINE )
$(D YMM8)
$(D YMM9)
$(D YMM10)
$(D YMM11)
$(D YMM12)
$(D YMM13)
$(D YMM14)
$(D YMM15)
)
$(GRAMMAR $(GNAME Operand):
$(GLINK AsmExp)
$(DDOC_BLANKLINE )
$(GNAME AsmExp):
$(GLINK AsmLogOrExp)
$(GLINK AsmLogOrExp) $(D ?) $(GSELF AsmExp) $(D :) $(GSELF AsmExp)
$(DDOC_BLANKLINE )
$(GNAME AsmLogOrExp):
$(GLINK AsmLogAndExp)
$(GSELF AsmLogOrExp) $(D ||) $(GLINK AsmLogAndExp)
$(DDOC_BLANKLINE )
$(GNAME AsmLogAndExp):
$(GLINK AsmOrExp)
$(GSELF AsmLogAndExp) $(D &&) $(GLINK AsmOrExp)
$(DDOC_BLANKLINE )
$(GNAME AsmOrExp):
$(GLINK AsmXorExp)
$(GSELF AsmOrExp) $(D |) $(GLINK AsmXorExp)
$(DDOC_BLANKLINE )
$(GNAME AsmXorExp):
$(GLINK AsmAndExp)
$(GSELF AsmXorExp) $(D ^) $(GLINK AsmAndExp)
$(DDOC_BLANKLINE )
$(GNAME AsmAndExp):
$(GLINK AsmEqualExp)
$(GSELF AsmAndExp) $(D &) $(GLINK AsmEqualExp)
$(DDOC_BLANKLINE )
$(GNAME AsmEqualExp):
$(GLINK AsmRelExp)
$(GSELF AsmEqualExp) $(D ==) $(GLINK AsmRelExp)
$(GSELF AsmEqualExp) $(D !=) $(GLINK AsmRelExp)
$(DDOC_BLANKLINE )
$(GNAME AsmRelExp):
$(GLINK AsmShiftExp)
$(GSELF AsmRelExp) $(D <) $(GLINK AsmShiftExp)
$(GSELF AsmRelExp) $(D <=) $(GLINK AsmShiftExp)
$(GSELF AsmRelExp) $(D >) $(GLINK AsmShiftExp)
$(GSELF AsmRelExp) $(D >=) $(GLINK AsmShiftExp)
$(DDOC_BLANKLINE )
$(GNAME AsmShiftExp):
$(GLINK AsmAddExp)
$(GSELF AsmShiftExp) $(D <<) $(GLINK AsmAddExp)
$(GSELF AsmShiftExp) $(D >>) $(GLINK AsmAddExp)
$(GSELF AsmShiftExp) $(D >>>) $(GLINK AsmAddExp)
$(DDOC_BLANKLINE )
$(GNAME AsmAddExp):
$(GLINK AsmMulExp)
$(GSELF AsmAddExp) $(D +) $(GLINK AsmMulExp)
$(GSELF AsmAddExp) $(D -) $(GLINK AsmMulExp)
$(DDOC_BLANKLINE )
$(GNAME AsmMulExp):
$(GLINK AsmBrExp)
$(GSELF AsmMulExp) $(D *) $(GLINK AsmBrExp)
$(GSELF AsmMulExp) $(D /) $(GLINK AsmBrExp)
$(GSELF AsmMulExp) $(D %) $(GLINK AsmBrExp)
$(DDOC_BLANKLINE )
$(GNAME AsmBrExp):
$(GLINK AsmUnaExp)
$(GSELF AsmBrExp) $(D [) $(GLINK AsmExp) $(D ])
$(DDOC_BLANKLINE )
$(GNAME AsmUnaExp):
$(GLINK AsmTypePrefix) $(GLINK AsmExp)
$(D offsetof) $(GLINK AsmExp)
$(D seg) $(GLINK AsmExp)
$(D +) $(GSELF AsmUnaExp)
$(D -) $(GSELF AsmUnaExp)
$(D !) $(GSELF AsmUnaExp)
$(D ~) $(GSELF AsmUnaExp)
$(GLINK AsmPrimaryExp)
$(DDOC_BLANKLINE )
$(GNAME AsmPrimaryExp):
$(GLINK_LEX IntegerLiteral)
$(GLINK_LEX FloatLiteral)
$(D __LOCAL_SIZE)
$(D $)
$(GLINK Register)
$(GLINK Register) $(D :) $(GLINK AsmExp)
$(GLINK Register64)
$(GLINK Register64) $(D :) $(GLINK AsmExp)
$(GLINK DotIdentifier)
$(D this)
$(DDOC_BLANKLINE )
$(GNAME DotIdentifier):
$(GLINK_LEX Identifier)
$(GLINK_LEX Identifier) $(D .) $(GSELF DotIdentifier)
$(GLINK FundamentalType) $(D .) $(GLINK_LEX Identifier)
)
$(GRAMMAR $(GNAME AsmTypePrefix):
$(D near ptr)
$(D far ptr)
$(D word ptr)
$(D dword ptr)
$(D qword ptr)
$(GLINK FundamentalType) $(D ptr)
)
$(GRAMMAR $(GNAME GccAsmStatement):
$(D asm) $(GLINK FunctionAttributes)$(OPT ) $(D {) $(GLINK GccAsmInstructionList) $(D })
$(DDOC_BLANKLINE )
$(GNAME GccAsmInstructionList):
$(GLINK GccAsmInstruction) $(D ;)
$(GLINK GccAsmInstruction) $(D ;) $(GSELF GccAsmInstructionList)
$(DDOC_BLANKLINE )
$(GNAME GccAsmInstruction):
$(GLINK GccBasicAsmInstruction)
$(GLINK GccExtAsmInstruction)
$(GLINK GccGotoAsmInstruction)
$(DDOC_BLANKLINE )
$(GNAME GccBasicAsmInstruction):
$(GLINK AssignExpression)
$(DDOC_BLANKLINE )
$(GNAME GccExtAsmInstruction):
$(GLINK AssignExpression) $(D :) $(GLINK GccAsmOperands)$(OPT )
$(GLINK AssignExpression) $(D :) $(GLINK GccAsmOperands)$(OPT ) $(D :) $(GLINK GccAsmOperands)$(OPT )
$(GLINK AssignExpression) $(D :) $(GLINK GccAsmOperands)$(OPT ) $(D :) $(GLINK GccAsmOperands)$(OPT ) $(D :) $(GLINK GccAsmClobbers)$(OPT )
$(DDOC_BLANKLINE )
$(GNAME GccGotoAsmInstruction):
$(GLINK AssignExpression) $(D :) $(D :) $(GLINK GccAsmOperands)$(OPT ) $(D :) $(GLINK GccAsmClobbers)$(OPT ) $(D :) $(GLINK GccAsmGotoLabels)$(OPT )
$(DDOC_BLANKLINE )
$(GNAME GccAsmOperands):
$(GLINK GccSymbolicName)$(OPT ) $(GLINK_LEX StringLiteral) $(D $(LPAREN)) $(GLINK AssignExpression) $(D $(RPAREN ))
$(GLINK GccSymbolicName)$(OPT ) $(GLINK_LEX StringLiteral) $(D $(LPAREN)) $(GLINK AssignExpression) $(D $(RPAREN )) $(D ,) $(GSELF GccAsmOperands)
$(DDOC_BLANKLINE )
$(GNAME GccSymbolicName):
$(D [) $(GLINK_LEX Identifier) $(D ])
$(DDOC_BLANKLINE )
$(GNAME GccAsmClobbers):
$(GLINK_LEX StringLiteral)
$(GLINK_LEX StringLiteral) $(D ,) $(GSELF GccAsmClobbers)
$(DDOC_BLANKLINE )
$(GNAME GccAsmGotoLabels):
$(GLINK_LEX Identifier)
$(GLINK_LEX Identifier) $(D ,) $(GSELF GccAsmGotoLabels)
)
$(LNAME2 named character entities, Named Character Entities)
$(GRAMMAR_LEX $(GNAME NamedCharacterEntity):
$(B $(AMP )) $(GLINK_LEX Identifier) $(B ;)
)
$(LNAME2 application binary interface, Application Binary Interface)
$(GRAMMAR $(GNAME MangledName):
$(B _D) $(GLINK QualifiedName) $(GLINK Type)
$(B _D) $(GLINK QualifiedName) $(B Z) $(GREEN // Internal)
)
$(GRAMMAR $(GNAME QualifiedName):
$(GLINK SymbolFunctionName)
$(GLINK SymbolFunctionName) $(GSELF QualifiedName)
$(DDOC_BLANKLINE )
$(GNAME SymbolFunctionName):
$(GLINK SymbolName)
$(GLINK SymbolName) $(GLINK TypeFunctionNoReturn)
$(GLINK SymbolName) $(B M) $(GLINK TypeModifiers)$(OPT ) $(GLINK TypeFunctionNoReturn)
)
$(GRAMMAR $(GNAME SymbolName):
$(GLINK LName)
$(GLINK TemplateInstanceName)
$(GLINK IdentifierBackRef)
$(B 0) $(GREEN // anonymous symbols)
)
$(GRAMMAR $(GNAME TemplateInstanceName):
$(GLINK TemplateID) $(GLINK LName) $(GLINK TemplateArgs) $(B Z)
$(DDOC_BLANKLINE )
$(GNAME TemplateID):
$(B __T)
$(B __U) $(GREEN // for symbols declared inside template constraint)
$(DDOC_BLANKLINE )
$(GNAME TemplateArgs):
$(GLINK TemplateArg)
$(GLINK TemplateArg) $(GSELF TemplateArgs)
$(DDOC_BLANKLINE )
$(GNAME TemplateArg):
$(GLINK TemplateArgX)
$(B H) $(GLINK TemplateArgX)
)
$(GRAMMAR $(GNAME TemplateArgX):
$(B T) $(GLINK Type)
$(B V) $(GLINK Type) $(GLINK Value)
$(B S) $(GLINK QualifiedName)
$(B X) $(GLINK Number) $(I ExternallyMangledName)
)
$(GRAMMAR $(GNAME Values):
$(GLINK Value)
$(GLINK Value) $(GSELF Values)
$(DDOC_BLANKLINE )
$(GNAME Value):
$(B n)
$(B i) $(GLINK Number)
$(B N) $(GLINK Number)
$(B e) $(GLINK HexFloat)
$(B c) $(GLINK HexFloat) $(B c) $(GLINK HexFloat)
$(GLINK CharWidth) $(GLINK Number) $(B _) $(GLINK HexDigits)
$(B A) $(GLINK Number) $(GLINK Values)
$(B S) $(GLINK Number) $(GLINK Values)
$(B f) $(GLINK MangledName)
$(DDOC_BLANKLINE )
$(GNAME HexFloat):
$(B NAN)
$(B INF)
$(B NINF)
$(B N) $(GLINK HexDigits) $(B P) $(GLINK Exponent)
$(GLINK HexDigits) $(B P) $(GLINK Exponent)
$(DDOC_BLANKLINE )
$(GNAME Exponent):
$(B N) $(GLINK Number)
$(GLINK Number)
$(DDOC_BLANKLINE )
$(GNAME HexDigits):
$(GLINK HexDigit)
$(GLINK HexDigit) $(GLINK HexDigits)
$(DDOC_BLANKLINE )
$(GNAME HexDigit):
$(GLINK Digit)
$(B A)
$(B B)
$(B C)
$(B D)
$(B E)
$(B F)
$(DDOC_BLANKLINE )
$(GNAME CharWidth):
$(B a)
$(B w)
$(B d)
)
$(GRAMMAR $(GNAME Name):
$(GLINK Namestart)
$(GLINK Namestart) $(GLINK Namechars)
$(DDOC_BLANKLINE )
$(GNAME Namestart):
$(B _)
$(I Alpha)
$(DDOC_BLANKLINE )
$(GNAME Namechar):
$(GLINK Namestart)
$(GLINK Digit)
$(DDOC_BLANKLINE )
$(GNAME Namechars):
$(GLINK Namechar)
$(GLINK Namechar) $(GSELF Namechars)
)
$(GRAMMAR $(GNAME LName):
$(GLINK Number) $(GLINK Name)
$(GLINK Number) $(B __S) $(GLINK Number) $(GREEN // function-local parent symbols)
$(DDOC_BLANKLINE )
$(GNAME Number):
$(GLINK Digit)
$(GLINK Digit) $(GSELF Number)
$(DDOC_BLANKLINE )
$(GNAME Digit):
$(B 0)
$(B 1)
$(B 2)
$(B 3)
$(B 4)
$(B 5)
$(B 6)
$(B 7)
$(B 8)
$(B 9)
)
$(GRAMMAR $(GNAME TypeBackRef):
$(B Q) $(GLINK NumberBackRef)
$(DDOC_BLANKLINE )
$(GNAME IdentifierBackRef):
$(B Q) $(GLINK NumberBackRef)
$(DDOC_BLANKLINE )
$(GNAME NumberBackRef):
$(I lower-case-letter)
$(I upper-case-letter) $(GLINK NumberBackRef)
)
$(GRAMMAR $(GNAME Type):
$(GLINK TypeModifiers)$(OPT ) $(GLINK TypeX)
$(GLINK TypeBackRef)
$(DDOC_BLANKLINE )
$(GNAME TypeX):
$(GLINK TypeArray)
$(GLINK TypeStaticArray)
$(GLINK TypeAssocArray)
$(GLINK TypePointer)
$(GLINK TypeFunction)
$(GLINK TypeIdent)
$(GLINK TypeClass)
$(GLINK TypeStruct)
$(GLINK TypeEnum)
$(GLINK TypeTypedef)
$(GLINK TypeDelegate)
$(GLINK TypeVoid)
$(GLINK TypeByte)
$(GLINK TypeUbyte)
$(GLINK TypeShort)
$(GLINK TypeUshort)
$(GLINK TypeInt)
$(GLINK TypeUint)
$(GLINK TypeLong)
$(GLINK TypeUlong)
$(GLINK TypeCent)
$(GLINK TypeUcent)
$(GLINK TypeFloat)
$(GLINK TypeDouble)
$(GLINK TypeReal)
$(GLINK TypeIfloat)
$(GLINK TypeIdouble)
$(GLINK TypeIreal)
$(GLINK TypeCfloat)
$(GLINK TypeCdouble)
$(GLINK TypeCreal)
$(GLINK TypeBool)
$(GLINK TypeChar)
$(GLINK TypeWchar)
$(GLINK TypeDchar)
$(GLINK TypeNoreturn)
$(GLINK TypeNull)
$(GLINK TypeTuple)
$(GLINK TypeVector)
$(DDOC_BLANKLINE )
$(GNAME TypeModifiers):
$(GLINK Const)
$(GLINK Wild)
$(GLINK Wild) $(GLINK Const)
$(GLINK Shared)
$(GLINK Shared) $(GLINK Const)
$(GLINK Shared) $(GLINK Wild)
$(GLINK Shared) $(GLINK Wild) $(GLINK Const)
$(GLINK Immutable)
$(DDOC_BLANKLINE )
$(GNAME Shared):
$(B O)
$(DDOC_BLANKLINE )
$(GNAME Const):
$(B x)
$(DDOC_BLANKLINE )
$(GNAME Immutable):
$(B y)
$(DDOC_BLANKLINE )
$(GNAME Wild):
$(B Ng)
$(DDOC_BLANKLINE )
$(GNAME TypeArray):
$(B A) $(GLINK Type)
$(DDOC_BLANKLINE )
$(GNAME TypeStaticArray):
$(B G) $(GLINK Number) $(GLINK Type)
$(DDOC_BLANKLINE )
$(GNAME TypeAssocArray):
$(B H) $(GLINK Type) $(GLINK Type)
$(DDOC_BLANKLINE )
$(GNAME TypePointer):
$(B P) $(GLINK Type)
$(DDOC_BLANKLINE )
$(GNAME TypeVector):
$(B Nh) $(GLINK Type)
$(DDOC_BLANKLINE )
$(GNAME TypeFunction):
$(GLINK TypeFunctionNoReturn) $(GLINK Type)
$(DDOC_BLANKLINE )
$(GNAME TypeFunctionNoReturn):
$(GLINK CallConvention) $(GLINK FuncAttrs)$(OPT ) $(GLINK Parameters)$(OPT ) $(GLINK ParamClose)
$(DDOC_BLANKLINE )
$(GNAME CallConvention):
$(B F) $(GREEN // D)
$(B U) $(GREEN // C)
$(B W) $(GREEN // Windows)
$(B R) $(GREEN // C++)
$(B Y) $(GREEN // Objective-C)
$(DDOC_BLANKLINE )
$(GNAME FuncAttrs):
$(GLINK FuncAttr)
$(GLINK FuncAttr) $(GSELF FuncAttrs)
$(DDOC_BLANKLINE )
$(GNAME FuncAttr):
$(GLINK FuncAttrPure)
$(GLINK FuncAttrNothrow)
$(GLINK FuncAttrRef)
$(GLINK FuncAttrProperty)
$(GLINK FuncAttrNogc)
$(GLINK FuncAttrReturn)
$(GLINK FuncAttrScope)
$(GLINK FuncAttrTrusted)
$(GLINK FuncAttrSafe)
$(GLINK FuncAttrLive)
)
$(GRAMMAR $(GNAME FuncAttrPure):
$(B Na)
$(DDOC_BLANKLINE )
$(GNAME FuncAttrNogc):
$(B Ni)
$(DDOC_BLANKLINE )
$(GNAME FuncAttrNothrow):
$(B Nb)
$(DDOC_BLANKLINE )
$(GNAME FuncAttrProperty):
$(B Nd)
$(DDOC_BLANKLINE )
$(GNAME FuncAttrRef):
$(B Nc)
$(DDOC_BLANKLINE )
$(GNAME FuncAttrReturn):
$(B Nj)
$(DDOC_BLANKLINE )
$(GNAME FuncAttrScope):
$(B Nl)
$(DDOC_BLANKLINE )
$(GNAME FuncAttrTrusted):
$(B Ne)
$(DDOC_BLANKLINE )
$(GNAME FuncAttrSafe):
$(B Nf)
$(DDOC_BLANKLINE )
$(GNAME FuncAttrLive):
$(B Nm)
$(DDOC_BLANKLINE )
$(GNAME Parameters):
$(GLINK Parameter)
$(GLINK Parameter) $(GSELF Parameters)
$(DDOC_BLANKLINE )
$(GNAME Parameter):
$(GLINK Parameter2)
$(B M) $(GLINK Parameter2) $(GREEN // scope)
$(B Nk) $(GLINK Parameter2) $(GREEN // return)
$(DDOC_BLANKLINE )
$(GNAME Parameter2):
$(GLINK Type)
$(B I) $(GLINK Type) $(GREEN // in)
$(B J) $(GLINK Type) $(GREEN // out)
$(B K) $(GLINK Type) $(GREEN // ref)
$(B L) $(GLINK Type) $(GREEN // lazy)
$(DDOC_BLANKLINE )
$(GNAME ParamClose):
$(B X) $(GREEN // variadic T t...$(RPAREN ) style)
$(B Y) $(GREEN // variadic T t,...$(RPAREN ) style)
$(B Z) $(GREEN // not variadic)
$(DDOC_BLANKLINE )
$(GNAME TypeIdent):
$(B I) $(GLINK QualifiedName)
$(DDOC_BLANKLINE )
$(GNAME TypeClass):
$(B C) $(GLINK QualifiedName)
$(DDOC_BLANKLINE )
$(GNAME TypeStruct):
$(B S) $(GLINK QualifiedName)
$(DDOC_BLANKLINE )
$(GNAME TypeEnum):
$(B E) $(GLINK QualifiedName)
$(DDOC_BLANKLINE )
$(GNAME TypeTypedef):
$(B T) $(GLINK QualifiedName)
$(DDOC_BLANKLINE )
$(GNAME TypeDelegate):
$(B D) $(GLINK TypeModifiers)$(OPT ) $(GLINK TypeFunction)
$(DDOC_BLANKLINE )
$(GNAME TypeVoid):
$(B v)
$(DDOC_BLANKLINE )
$(GNAME TypeByte):
$(B g)
$(DDOC_BLANKLINE )
$(GNAME TypeUbyte):
$(B h)
$(DDOC_BLANKLINE )
$(GNAME TypeShort):
$(B s)
$(DDOC_BLANKLINE )
$(GNAME TypeUshort):
$(B t)
$(DDOC_BLANKLINE )
$(GNAME TypeInt):
$(B i)
$(DDOC_BLANKLINE )
$(GNAME TypeUint):
$(B k)
$(DDOC_BLANKLINE )
$(GNAME TypeLong):
$(B l)
$(DDOC_BLANKLINE )
$(GNAME TypeUlong):
$(B m)
$(DDOC_BLANKLINE )
$(GNAME TypeCent):
$(B zi)
$(DDOC_BLANKLINE )
$(GNAME TypeUcent):
$(B zk)
$(DDOC_BLANKLINE )
$(GNAME TypeFloat):
$(B f)
$(DDOC_BLANKLINE )
$(GNAME TypeDouble):
$(B d)
$(DDOC_BLANKLINE )
$(GNAME TypeReal):
$(B e)
$(DDOC_BLANKLINE )
$(GNAME TypeIfloat):
$(B o)
$(DDOC_BLANKLINE )
$(GNAME TypeIdouble):
$(B p)
$(DDOC_BLANKLINE )
$(GNAME TypeIreal):
$(B j)
$(DDOC_BLANKLINE )
$(GNAME TypeCfloat):
$(B q)
$(DDOC_BLANKLINE )
$(GNAME TypeCdouble):
$(B r)
$(DDOC_BLANKLINE )
$(GNAME TypeCreal):
$(B c)
$(DDOC_BLANKLINE )
$(GNAME TypeBool):
$(B b)
$(DDOC_BLANKLINE )
$(GNAME TypeChar):
$(B a)
$(DDOC_BLANKLINE )
$(GNAME TypeWchar):
$(B u)
$(DDOC_BLANKLINE )
$(GNAME TypeDchar):
$(B w)
$(DDOC_BLANKLINE )
$(GNAME TypeNoreturn):
$(B Nn)
$(DDOC_BLANKLINE )
$(GNAME TypeNull):
$(B n)
$(DDOC_BLANKLINE )
$(GNAME TypeTuple):
$(B B) $(GLINK Parameters) $(B Z)
)
$(LNAME2 importc, ImportC)
$(GRAMMAR_INFORMATIVE #pragma STDC FENV_ACCESS on-off-switch
$(DDOC_BLANKLINE )
on-off-switch:
ON
OFF
DEFAULT
)
$(GRAMMAR $(GNAME EnumDeclaration):
$(D enum) $(GLINK Identifier) $(D :) $(GLINK EnumBaseType) $(GLINK EnumBody)
$(DDOC_BLANKLINE )
$(GNAME EnumBaseType):
$(GLINK Type)
)
$(GRAMMAR $(GNAME type-specifier):
$(GNAME typeof-specifier)
$(DDOC_BLANKLINE )
$(GNAME typeof-specifier):
$(D typeof $(LPAREN)) $(GNAME expression) $(D $(RPAREN ))
$(D typeof $(LPAREN)) $(GNAME type-name) $(D $(RPAREN ))
)
$(GRAMMAR $(GNAME CImportDeclaration):
$(D __import) $(GLINK ImportList) $(D ;)
)
$(DDOC_BLANKLINE )
$(SPEC_SUBNAV_PREV_NEXT lex, Lexical, module, Modules)
)
)