__EarlyStartSymbol: File TOK_EOF
__EarlyStartSymbol
         ::= File TOK_EOF
no referencesFile: TranslationUnit
File     ::= TranslationUnit
referenced by: __EarlyStartSymbol Identifier: TOK_NAME
         ::= TOK_NAME
referenced by: ClassHeadNameOpt Declarator Designator EnumSpecifier EnumeratorDefinition IdentifierOpt LabelAndColon NAD1 NAD2 NamespaceDecl PQTypeName_ncc PQualifiedId Statement TemplateId UnqualifiedId TranslationUnit: TFDeclaration ;
         ::= ( TFDeclaration | ';' )*
referenced by: File LinkageSpecification NamespaceDefinition PrimaryExpression: Literal this ( Expression ) IdExpression
         ::= Literal
           | 'this'
           | '(' Expression ')'
           | IdExpression
referenced by: CastExpression Literal: TOK_INT_LITERAL TOK_FLOAT_LITERAL StringLiteral TOK_CHAR_LITERAL true false
           | TOK_FLOAT_LITERAL
           | StringLiteral
           | TOK_CHAR_LITERAL
           | 'true'
           | 'false'
referenced by: PrimaryExpression PreprocString: TOK_STRING_LITERAL
         ::= TOK_STRING_LITERAL
referenced by: StringLiteral StringLiteral: PreprocString
         ::= PreprocString+
referenced by: AsmDefinition Literal IdExpression: :: PQualifiedId
         ::= '::'? PQualifiedId
referenced by: CastExpression Declarator MemberDeclaration NamespaceDecl PrimaryExpression PtrToMemberName UnqualifiedId: Identifier OperatorFunctionId ConversionFunctionId TemplateId
         ::= Identifier
           | OperatorFunctionId
           | ConversionFunctionId
           | TemplateId
referenced by: PQualifiedId PQualifiedId: Identifier < TemplateArgumentListOpt > template Identifier < TemplateArgumentListOpt > :: UnqualifiedId
         ::= ( ( Identifier ( '<' TemplateArgumentListOpt '>' )? | 'template' Identifier '<' TemplateArgumentListOpt '>' ) '::' )* UnqualifiedId
referenced by: IdExpression MemberDeclaration ArgumentList: ( ExpressionListOpt )
         ::= '(' ExpressionListOpt ')'
referenced by: CastExpression CtorExpressionType: PQTypeName char wchar_t bool short int long signed unsigned float double void
         ::= PQTypeName
           | 'char'
           | 'wchar_t'
           | 'bool'
           | 'short'
           | 'int'
           | 'long'
           | 'signed'
           | 'unsigned'
           | 'float'
           | 'double'
           | 'void'
referenced by: CastExpression CastKeyword: dynamic_cast static_cast reinterpret_cast const_cast
         ::= 'dynamic_cast'
           | 'static_cast'
           | 'reinterpret_cast'
           | 'const_cast'
referenced by: CastExpression ExpressionList: AssignmentExpression ,
         ::= AssignmentExpression ( ',' AssignmentExpression )*
referenced by: ExpressionListOpt Initializer NewPlacementOpt ExpressionListOpt: ExpressionList
         ::= ExpressionList?
referenced by: ArgumentList MemInitializer NewInitializerOpt ColonColonOpt: ::
         ::= '::'?
referenced by: DeleteExpression NewExpression NewExpression: ColonColonOpt new NewPlacementOpt NewTypeId ( TypeId ) NewInitializerOpt
         ::= ColonColonOpt 'new' NewPlacementOpt ( NewTypeId | '(' TypeId ')' ) NewInitializerOpt
referenced by: CastExpression NewPlacementOpt: ( ExpressionList )
         ::= ( '(' ExpressionList ')' )?
referenced by: NewExpression NewTypeId: TypeSpecifier PtrToMemberName * CVQualifierSeqOpt [ Expression ] ConstantExpression [
         ::= TypeSpecifier ( PtrToMemberName? '*' CVQualifierSeqOpt )* ( '[' Expression ']' ( '[' ConstantExpression ']' )* )?
referenced by: NewExpression NewInitializerOpt: ( ExpressionListOpt )
         ::= ( '(' ExpressionListOpt ')' )?
referenced by: NewExpression DeleteExpression: ColonColonOpt delete [ ] CastExpression
         ::= ColonColonOpt 'delete' ( '[' ']' )? CastExpression
referenced by: CastExpression NameAfterDot: NAD1 :: NAD2
         ::= NAD1
           | '::' NAD2
referenced by: CastExpression NAD1: template Identifier < TemplateArgumentListOpt > :: NAD2 template Identifier < TemplateArgumentListOpt > ~ Identifier < TemplateArgumentListOpt > ConversionFunctionId
NAD1     ::= ( 'template' Identifier '<' TemplateArgumentListOpt '>' '::' )* ( NAD2 | 'template' Identifier '<' TemplateArgumentListOpt '>' | '~' Identifier ( '<' TemplateArgumentListOpt '>' )? | ConversionFunctionId )
referenced by: NAD2 NameAfterDot NAD2: Identifier < TemplateArgumentListOpt > :: NAD1 OperatorFunctionId < TemplateArgumentListOpt > template OperatorFunctionId < TemplateArgumentListOpt >
NAD2     ::= Identifier ( '<' TemplateArgumentListOpt '>' )? ( '::' NAD1 )?
           | OperatorFunctionId ( '<' TemplateArgumentListOpt '>' )?
           | 'template' OperatorFunctionId '<' TemplateArgumentListOpt '>'
referenced by: NAD1 NameAfterDot CastExpression: ( TypeId ) sizeof PrimaryExpression typename IdExpression CtorExpressionType ArgumentList CastKeyword < TypeId > ( Expression typeid ( Expression TypeId ) [ Expression ] ArgumentList . -> NameAfterDot ++ -- ++ -- * & + - ! ~ CastExpression DeleteExpression sizeof ( TypeId ) NewExpression
         ::= ( '(' TypeId ')' )* 'sizeof'* ( ( PrimaryExpression | ( 'typename' IdExpression | CtorExpressionType ) ArgumentList | ( CastKeyword '<' TypeId '>' '(' Expression | 'typeid' '(' ( Expression | TypeId ) ) ')' ) ( '[' Expression ']' | ArgumentList | ( '.' | '->' ) NameAfterDot | '++' | '--' )* | ( '++' | '--' | '*' | '&' | '+' | '-' | '!' | '~' ) CastExpression | DeleteExpression | 'sizeof' '(' TypeId ')' | NewExpression )
referenced by: BinExp_high CastExpression DeleteExpression BinExp_high: CastExpression BinExp_high .* ->* * / % + - << >> BinExp_high
         ::= CastExpression
           | BinExp_high ( '.*' | '->*' | '*' | '/' | '%' | '+' | '-' | '<<' | '>>' ) BinExp_high
referenced by: BinExp_high BinaryExpression BinaryExpression: BinExp_high < > <= >= BinaryExpression == != & ^ | && || BinaryExpression
         ::= BinExp_high ( ( '<' | '>' | '<=' | '>=' ) BinExp_high )*
           | BinaryExpression ( '==' | '!=' | '&' | '^' | '|' | '&&' | '||' ) BinaryExpression
referenced by: AssignmentExpression BinaryExpression ConditionalExpression ConditionalExpression: BinaryExpression ? Expression : AssignmentExpression
         ::= BinaryExpression ( '?' Expression ':' AssignmentExpression )?
referenced by: AssignmentExpression AssignmentExpression: BinaryExpression AssignmentOperator ConditionalExpression ThrowExpression referenced by: Condition ConditionalExpression ConstantExpression Expression ExpressionList ParameterDeclarator SimpleInitializerClause TemplateArgument ThrowExpression AssignmentOperator: *= /= %= += -= >>= <<= &= ^= |= =
         ::= '*='
           | '/='
           | '%='
           | '+='
           | '-='
           | '>>='
           | '<<='
           | '&='
           | '^='
           | '|='
           | '='
referenced by: AssignmentExpression Expression: AssignmentExpression ,
         ::= AssignmentExpression ( ',' AssignmentExpression )*
referenced by: CastExpression Condition ConditionalExpression ExpressionOpt ExpressionStatement NewTypeId PrimaryExpression Statement ExpressionOpt: Expression
         ::= Expression?
referenced by: Statement ConstantExpression: AssignmentExpression
         ::= AssignmentExpression
referenced by: ConstantExpressionOpt Designator EnumeratorDefinition MemberDeclarator NewTypeId Statement ConstantExpressionOpt: ConstantExpression
         ::= ConstantExpression?
referenced by: Declarator DirectAbstractDeclarator LabelAndColon: Identifier :
         ::= Identifier ':'
referenced by: Statement Statement: LabelAndColon case ConstantExpression default : switch while ( Condition for ( ForInitStatement ConditionOpt ; ExpressionOpt ) if ( Condition ) Statement else Statement ExpressionStatement CompoundStatement do Statement while ( Expression ) break continue goto Identifier return Expression ; BlockDeclaration TryBlock AsmDefinition NamespaceDecl
         ::= ( LabelAndColon | ( 'case' ConstantExpression | 'default' ) ':' | ( ( 'switch' | 'while' ) '(' Condition | 'for' '(' ForInitStatement ConditionOpt ';' ExpressionOpt ) ')' | 'if' '(' Condition ')' ( Statement 'else' )? ) Statement
           | ExpressionStatement
           | CompoundStatement
           | ( 'do' Statement 'while' '(' Expression ')' | 'break' | 'continue' | 'goto' Identifier | 'return' Expression? ) ';'
           | BlockDeclaration
           | TryBlock
           | AsmDefinition
           | NamespaceDecl
referenced by: CompoundStatement Statement ExpressionStatement: Expression ;
         ::= Expression? ';'
referenced by: ForInitStatement Statement CompoundStatement: { Statement }
         ::= '{' Statement* '}'
referenced by: FunctionBody Handler Statement TryBlock Condition: Expression TypeSpecifier Declarator = AssignmentExpression
         ::= Expression
           | TypeSpecifier Declarator '=' AssignmentExpression
referenced by: ConditionOpt Statement ConditionOpt: Condition
         ::= Condition?
referenced by: Statement ForInitStatement: ExpressionStatement SimpleDeclaration
         ::= ExpressionStatement
           | SimpleDeclaration
referenced by: Statement TFDeclaration: BlockDeclaration FunctionDefinition TemplateDeclaration ExplicitInstantiation LinkageSpecification AsmDefinition NamespaceDefinition NamespaceDecl
         ::= BlockDeclaration
           | FunctionDefinition
           | TemplateDeclaration
           | ExplicitInstantiation
           | LinkageSpecification
           | AsmDefinition
           | NamespaceDefinition
           | NamespaceDecl
referenced by: LinkageSpecification TranslationUnit BlockDeclaration: SimpleDeclaration
         ::= SimpleDeclaration
referenced by: ExplicitInstantiation Statement TFDeclaration SimpleDeclaration: DeclSpecifier InitDeclarator , ;
         ::= DeclSpecifier ( InitDeclarator ( ',' InitDeclarator )* )? ';'
referenced by: BlockDeclaration ForInitStatement TemplateDeclaration DeclSpecifier: UberModifierSeq UberTypeKeyword UberModifier UberTypeKeyword PQTypeName ElaboratedOrSpecifier UberModifierSeqOpt referenced by: FunctionDefinition MemberDeclaration SimpleDeclaration ElaboratedOrSpecifier: ElaboratedTypeSpecifier ClassSpecifier EnumSpecifier
         ::= ElaboratedTypeSpecifier
           | ClassSpecifier
           | EnumSpecifier
referenced by: DeclSpecifier TypeSpecifier UberModifierSeq: UberModifier
         ::= UberModifier+
referenced by: DeclSpecifier UberModifierSeqOpt UberModifierSeqOpt: UberModifierSeq
         ::= UberModifierSeq?
referenced by: DeclSpecifier UberCVQualifierSeq: UberCVQualifier
         ::= UberCVQualifier+
referenced by: TypeSpecifier UberCVQualifierSeqOpt UberCVQualifierSeqOpt: UberCVQualifierSeq
         ::= UberCVQualifierSeq?
referenced by: TypeSpecifier UberModifier: auto register static extern mutable inline virtual friend typedef const volatile
         ::= 'auto'
           | 'register'
           | 'static'
           | 'extern'
           | 'mutable'
           | 'inline'
           | 'virtual'
           | 'friend'
           | 'typedef'
           | 'const'
           | 'volatile'
referenced by: DeclSpecifier UberModifierSeq UberCVQualifier: const volatile
         ::= 'const'
           | 'volatile'
referenced by: TypeSpecifier UberCVQualifierSeq UberTypeKeyword: char wchar_t bool short int long signed unsigned float double void
         ::= 'char'
           | 'wchar_t'
           | 'bool'
           | 'short'
           | 'int'
           | 'long'
           | 'signed'
           | 'unsigned'
           | 'float'
           | 'double'
           | 'void'
referenced by: DeclSpecifier TypeSpecifier ElaboratedTypeSpecifier: ClassKey enum typename PQTypeName
         ::= ( ClassKey | 'enum' | 'typename' ) PQTypeName
referenced by: ElaboratedOrSpecifier TypeSpecifier: UberCVQualifierSeq UberTypeKeyword UberCVQualifier UberTypeKeyword PQTypeName ElaboratedOrSpecifier UberCVQualifierSeqOpt referenced by: Condition ConversionTypeId HandlerParameter NewTypeId ParameterDeclaration TypeId PQTypeName: :: PQTypeName_ncc
         ::= '::'? PQTypeName_ncc
referenced by: CtorExpressionType DeclSpecifier ElaboratedTypeSpecifier MemInitializerId PQClassName TypeSpecifier PQTypeName_ncc: Identifier < TemplateArgumentListOpt > :: > TemplateArgumentListOpt < Identifier template PQTypeName_ncc template TemplateId TemplateId
         ::= Identifier ( ( '<' TemplateArgumentListOpt '>' )? '::' ( 'template' Identifier '<' TemplateArgumentListOpt '>' '::' )* ( PQTypeName_ncc | 'template' TemplateId ) )?
           | TemplateId
referenced by: PQTypeName PQTypeName_ncc EnumSpecifier: enum Identifier { EnumeratorDefinition , EnumeratorDefinition }
         ::= 'enum' Identifier? '{' ( EnumeratorDefinition ',' )* EnumeratorDefinition? '}'
referenced by: ElaboratedOrSpecifier EnumeratorDefinition: Identifier = ConstantExpression
         ::= Identifier ( '=' ConstantExpression )?
referenced by: EnumSpecifier AsmDefinition: asm ( StringLiteral ) ;
         ::= 'asm' '(' StringLiteral ')' ';'
referenced by: Statement TFDeclaration LinkageSpecification: extern TOK_STRING_LITERAL { TranslationUnit } TFDeclaration
         ::= 'extern' TOK_STRING_LITERAL ( '{' TranslationUnit '}' | TFDeclaration )
referenced by: TFDeclaration InitDeclarator: Declarator Initializer
         ::= Declarator Initializer?
referenced by: SimpleDeclaration Initializer: = SimpleInitializerClause ( ExpressionList )
         ::= '=' SimpleInitializerClause
           | '(' ExpressionList ')'
referenced by: InitDeclarator SimpleInitializerClause: AssignmentExpression CompoundInitializer
         ::= AssignmentExpression
           | CompoundInitializer
referenced by: Initializer InitializerClause InitializerClause: Designator = SimpleInitializerClause
         ::= ( Designator+ '=' )? SimpleInitializerClause
referenced by: CompoundInitializer CompoundInitializer: { InitializerClause , CommaOpt }
         ::= '{' ( InitializerClause ( ',' InitializerClause )* CommaOpt )? '}'
referenced by: SimpleInitializerClause CommaOpt: ,
CommaOpt ::= ','?
referenced by: CompoundInitializer Designator: . Identifier [ ConstantExpression ... ConstantExpression ]
         ::= '.' Identifier
           | '[' ConstantExpression ( '...' ConstantExpression )? ']'
referenced by: InitializerClause Declarator: PtrToMemberName * & CVQualifierSeqOpt IdExpression Identifier < TemplateArgumentListOpt > template Identifier < TemplateArgumentListOpt > :: ~ Identifier < TemplateArgumentListOpt > ( Declarator ) ( ParameterDeclarationClause ) CVQualifierSeqOpt ExceptionSpecificationOpt [ ConstantExpressionOpt ] referenced by: Condition Declarator FDDeclarator InitDeclarator MemberDeclarator UnqualifiedDeclarator PtrToMemberName: IdExpression ::
         ::= IdExpression '::'
referenced by: AbstractDeclarator ConversionTypeId Declarator NewTypeId CVQualifierSeqOpt: CVQualifier
         ::= CVQualifier*
referenced by: AbstractDeclarator ConversionTypeId Declarator DirectAbstractDeclarator NewTypeId CVQualifier: const volatile
         ::= 'const'
           | 'volatile'
referenced by: CVQualifierSeqOpt TypeId: TypeSpecifier AbstractDeclaratorOpt referenced by: CastExpression DefaultTypeOpt ExceptionSpecificationOpt NewExpression TemplateArgument AbstractDeclaratorOpt: AbstractDeclarator
         ::= AbstractDeclarator?
referenced by: AbstractDeclarator HandlerParameter ParameterDeclarator TypeId AbstractDeclarator: PtrToMemberName * & CVQualifierSeqOpt AbstractDeclaratorOpt DirectAbstractDeclarator
         ::= ( PtrToMemberName? '*' | '&' ) CVQualifierSeqOpt AbstractDeclaratorOpt
           | DirectAbstractDeclarator
referenced by: AbstractDeclaratorOpt DirectAbstractDeclarator DirectAbstractDeclaratorOpt: DirectAbstractDeclarator
         ::= DirectAbstractDeclarator?
referenced by: DirectAbstractDeclarator DirectAbstractDeclarator: DirectAbstractDeclaratorOpt ( ParameterDeclarationClause ) CVQualifierSeqOpt ExceptionSpecificationOpt [ ConstantExpressionOpt ] ( AbstractDeclarator )
           | '(' AbstractDeclarator ')'
referenced by: AbstractDeclarator DirectAbstractDeclaratorOpt ParameterDeclarationClause: ParameterDeclaration , ... ParameterDeclaration ...
         ::= ( ( ParameterDeclaration ',' )* ( '...' | ParameterDeclaration '...'? ) )?
referenced by: Declarator DirectAbstractDeclarator ParameterDeclaration: TypeSpecifier register register TypeSpecifier ParameterDeclarator
         ::= ( TypeSpecifier 'register'? | 'register' TypeSpecifier ) ParameterDeclarator
referenced by: ParameterDeclarationClause TemplateParameterList ParameterDeclarator: UnqualifiedDeclarator AbstractDeclaratorOpt = AssignmentExpression referenced by: ParameterDeclaration FunctionDefinition: DeclSpecifier FDDeclarator FunctionBody try FunctionBody HandlerSeq CDtorModifierSeq FDDeclarator CtorInitializerOpt FunctionBody try CtorInitializerOpt FunctionBody HandlerSeq referenced by: MemberDeclaration TFDeclaration TemplateDeclaration FDDeclarator: Declarator
         ::= Declarator
referenced by: FunctionDefinition FunctionBody: CompoundStatement
         ::= CompoundStatement
referenced by: FunctionDefinition CtorInitializerOpt: : MemInitializer ,
         ::= ( ':' MemInitializer ( ',' MemInitializer )* )?
referenced by: FunctionDefinition ClassSpecifier: ClassKey ClassHeadNameOpt BaseClauseOpt { ; MemberDeclaration AccessSpecifier : }
         ::= ClassKey ClassHeadNameOpt BaseClauseOpt '{' ( ';' | MemberDeclaration | AccessSpecifier ':' )* '}'
referenced by: ElaboratedOrSpecifier ClassHeadNameOpt: Identifier < TemplateArgumentListOpt > template Identifier < TemplateArgumentListOpt > :: Identifier TemplateId
         ::= ( ( ( Identifier ( '<' TemplateArgumentListOpt '>' )? | 'template' Identifier '<' TemplateArgumentListOpt '>' ) '::' )* ( Identifier | TemplateId ) )?
referenced by: ClassSpecifier ClassKey: class struct union
ClassKey ::= 'class'
           | 'struct'
           | 'union'
referenced by: ClassSpecifier ElaboratedTypeSpecifier AccessSpecifier: public private protected
         ::= 'public'
           | 'private'
           | 'protected'
referenced by: AccessSpecifierOpt BaseSpecifier ClassSpecifier MemberDeclaration: DeclSpecifier MemberDeclarator , PQualifiedId using IdExpression ; FunctionDefinition CDtorProtoDecl TemplateDeclaration
         ::= ( DeclSpecifier ( MemberDeclarator ( ',' MemberDeclarator )* )? | PQualifiedId | 'using' IdExpression ) ';'
           | FunctionDefinition
           | CDtorProtoDecl
           | TemplateDeclaration
referenced by: ClassSpecifier CDtorProtoDecl: CDtorModifierSeq MemberDeclarator ;
         ::= CDtorModifierSeq? MemberDeclarator ';'
referenced by: MemberDeclaration TemplateDeclaration MemberDeclarator: Declarator = ConstantExpression IdentifierOpt : ConstantExpression
         ::= Declarator ( '=' ConstantExpression )?
           | IdentifierOpt ':' ConstantExpression
referenced by: CDtorProtoDecl MemberDeclaration IdentifierOpt: Identifier
         ::= Identifier?
referenced by: MemberDeclarator NamespaceDefinition TemplateParameterList CDtorModifier: explicit virtual inline friend
         ::= 'explicit'
           | 'virtual'
           | 'inline'
           | 'friend'
referenced by: CDtorModifierSeq CDtorModifierSeq: CDtorModifier
         ::= CDtorModifier+
referenced by: CDtorProtoDecl FunctionDefinition BaseClauseOpt: : BaseSpecifier ,
         ::= ( ':' BaseSpecifier ( ',' BaseSpecifier )* )?
referenced by: ClassSpecifier BaseSpecifier: virtual AccessSpecifierOpt AccessSpecifier VirtualOpt PQClassName
         ::= ( 'virtual' AccessSpecifierOpt | AccessSpecifier VirtualOpt )? PQClassName
referenced by: BaseClauseOpt VirtualOpt: virtual
         ::= 'virtual'?
referenced by: BaseSpecifier AccessSpecifierOpt: AccessSpecifier
         ::= AccessSpecifier?
referenced by: BaseSpecifier PQClassName: PQTypeName
         ::= PQTypeName
referenced by: BaseSpecifier ConversionFunctionId: operator ConversionTypeId
         ::= 'operator' ConversionTypeId
referenced by: NAD1 UnqualifiedId ConversionTypeId: TypeSpecifier PtrToMemberName * & CVQualifierSeqOpt
         ::= TypeSpecifier ( ( PtrToMemberName? '*' | '&' ) CVQualifierSeqOpt )*
referenced by: ConversionFunctionId MemInitializer: MemInitializerId ( ExpressionListOpt )
         ::= MemInitializerId '(' ExpressionListOpt ')'
referenced by: CtorInitializerOpt MemInitializerId: PQTypeName
         ::= PQTypeName
referenced by: MemInitializer OperatorFunctionId: operator Operator
         ::= 'operator' Operator
referenced by: NAD2 TemplateId UnqualifiedId Operator: new delete [ ] ! ~ ++ -- + - * / % << >> & ^ | = += -= *= /= %= <<= >>= &= ^= |= == != < > <= >= && || -> ->* [ ] ( ) ,
Operator ::= ( 'new' | 'delete' ) ( '[' ']' )?
           | '!'
           | '~'
           | '++'
           | '--'
           | '+'
           | '-'
           | '*'
           | '/'
           | '%'
           | '<<'
           | '>>'
           | '&'
           | '^'
           | '|'
           | '='
           | '+='
           | '-='
           | '*='
           | '/='
           | '%='
           | '<<='
           | '>>='
           | '&='
           | '^='
           | '|='
           | '=='
           | '!='
           | '<'
           | '>'
           | '<='
           | '>='
           | '&&'
           | '||'
           | '->'
           | '->*'
           | '[' ']'
           | '(' ')'
           | ','
referenced by: OperatorFunctionId TemplateDeclaration: TemplatePreamble FunctionDefinition SimpleDeclaration CDtorProtoDecl referenced by: MemberDeclaration TFDeclaration TemplatePreamble: export template < TemplateParameterList >
         ::= 'export'? 'template' '<' TemplateParameterList? '>'
referenced by: TemplateDeclaration TemplateParameterList: ClassOrTypename IdentifierOpt DefaultTypeOpt ParameterDeclaration , referenced by: ClassOrTypename TemplatePreamble ClassOrTypename: template < TemplateParameterList > class typename
         ::= ( 'template' '<' TemplateParameterList '>' )? 'class'
           | 'typename'
referenced by: TemplateParameterList DefaultTypeOpt: = TypeId
         ::= ( '=' TypeId )?
referenced by: TemplateParameterList TemplateArgumentListOpt: TemplateArgumentList
         ::= TemplateArgumentList?
referenced by: ClassHeadNameOpt Declarator NAD1 NAD2 PQTypeName_ncc PQualifiedId TemplateId TemplateId: Identifier OperatorFunctionId < TemplateArgumentListOpt >
         ::= ( Identifier | OperatorFunctionId ) '<' TemplateArgumentListOpt '>'
referenced by: ClassHeadNameOpt PQTypeName_ncc UnqualifiedId TemplateArgumentList: TemplateArgument
         ::= TemplateArgument
referenced by: TemplateArgumentListOpt TemplateArgumentListTailOpt: , TemplateArgument
         ::= ( ',' TemplateArgument )?
referenced by: TemplateArgument TemplateArgument: TypeId AssignmentExpression TemplateArgumentListTailOpt referenced by: TemplateArgumentList TemplateArgumentListTailOpt ExplicitInstantiation: inline template BlockDeclaration
         ::= 'inline'? 'template' BlockDeclaration
referenced by: TFDeclaration TryBlock: try CompoundStatement HandlerSeq referenced by: Statement HandlerSeq: Handler
         ::= Handler+
referenced by: FunctionDefinition TryBlock Handler: catch ( HandlerParameter ... ) CompoundStatement
Handler  ::= 'catch' '(' ( HandlerParameter | '...' ) ')' CompoundStatement
referenced by: HandlerSeq HandlerParameter: TypeSpecifier UnqualifiedDeclarator AbstractDeclaratorOpt referenced by: Handler UnqualifiedDeclarator: Declarator
         ::= Declarator
referenced by: HandlerParameter ParameterDeclarator ThrowExpression: throw AssignmentExpression
         ::= 'throw' AssignmentExpression?
referenced by: AssignmentExpression ExceptionSpecificationOpt: throw ( TypeId , )
         ::= ( 'throw' '(' ( TypeId ( ',' TypeId )* )? ')' )?
referenced by: Declarator DirectAbstractDeclarator NamespaceDefinition: namespace IdentifierOpt { TranslationUnit }
         ::= 'namespace' IdentifierOpt '{' TranslationUnit '}'
referenced by: TFDeclaration NamespaceDecl: namespace Identifier = using namespace IdExpression ;
         ::= ( 'namespace' Identifier '=' | 'using' 'namespace'? ) IdExpression ';'
referenced by: Statement TFDeclaration   ... generated by RR - Railroad Diagram Generator R R