$(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) ) )