__EarlyStartSymbol: File TOK_EOF
__EarlyStartSymbol
         ::= File TOK_EOF
no referencesFile: TranslationUnit
File     ::= TranslationUnit
referenced by: __EarlyStartSymbol Identifier: TOK_NAME
         ::= TOK_NAME
referenced by: CastExpression ClassHeadNameOpt Declarator Designator EnumSpecifier EnumeratorDefinition FirstMemberDesignator GNUAsmOperand IdentifierOpt InitializerClause KandRIdentifier LabelAndColon NAD1 NAD2 NamespaceDecl PQTypeName_ncc PQualifiedId Statement TemplateId UnqualifiedId TranslationUnit: TFDeclaration ;
         ::= ( TFDeclaration | ';' )*
referenced by: File LinkageSpecification NamespaceDefinition Literal: TOK_INT_LITERAL TOK_FLOAT_LITERAL StringLiteral TOK_CHAR_LITERAL true false
           | TOK_FLOAT_LITERAL
           | StringLiteral
           | TOK_CHAR_LITERAL
           | 'true'
           | 'false'
referenced by: CastExpression PreprocString: TOK_STRING_LITERAL TOK___FUNCTION__ TOK___PRETTY_FUNCTION__
         ::= TOK_STRING_LITERAL
           | TOK___FUNCTION__
           | TOK___PRETTY_FUNCTION__
referenced by: StringLiteral StringLiteral: PreprocString
         ::= PreprocString+
referenced by: AsmDefinition Declarator GNUAsmClobberList GNUAsmOperand Literal IdExpression: :: PQualifiedId
         ::= '::'? PQualifiedId
referenced by: CastExpression Declarator MemberDeclaration NamespaceDecl 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 TOK_SIGNED unsigned float double void
         ::= PQTypeName
           | 'char'
           | 'wchar_t'
           | 'bool'
           | 'short'
           | 'int'
           | 'long'
           | TOK_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: CommaSepExpressionListOpt 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 ImplicitIntTypeId ) sizeof __real__ __imag__ Literal this ( Expression CompoundStatement ) TypeId ) CompoundInitializer IdExpression typename IdExpression CtorExpressionType ArgumentList CastKeyword < TypeId > ( Expression typeid ( Expression TypeId ) [ Expression ] ArgumentList . -> NameAfterDot ++ -- ++ -- * & + - ! ~ CastExpression DeleteExpression sizeof ( __builtin_va_arg ( Expression , TypeId __builtin_offsetof ( TypeId , MemberDesignator __offsetof__ ( __builtin_expect ( Expression , Expression TOK___ALIGNOF__ ( TypeId Expression ) NewExpression __builtin_constant_p ParenthesizedExpression && Identifier
         ::= ( '(' ( TypeId | ImplicitIntTypeId ) ')' )* 'sizeof'* ( ( ( '__real__' | '__imag__' )* ( Literal | 'this' | '(' ( ( Expression | CompoundStatement ) ')' | TypeId ')' CompoundInitializer ) | IdExpression ) | ( 'typename' IdExpression | CtorExpressionType ) ArgumentList | ( CastKeyword '<' TypeId '>' '(' Expression | 'typeid' '(' ( Expression | TypeId ) ) ')' ) ( '[' Expression ']' | ArgumentList | ( '.' | '->' ) NameAfterDot | '++' | '--' )* | ( '++' | '--' | '*' | '&' | '+' | '-' | '!' | '~' ) CastExpression | DeleteExpression | ( ( 'sizeof' '(' | '__builtin_va_arg' '(' Expression ',' ) TypeId | '__builtin_offsetof' '(' TypeId ',' MemberDesignator | ( '__offsetof__' '(' | '__builtin_expect' '(' Expression ',' ) Expression | TOK___ALIGNOF__ '(' ( TypeId | Expression ) ) ')' | NewExpression | '__builtin_constant_p' ParenthesizedExpression | '&&' Identifier )
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 < > <= >= TOK_MIN_OP TOK_MAX_OP BinaryExpression == != & ^ | && || BinaryExpression
         ::= BinExp_high ( ( '<' | '>' | '<=' | '>=' | TOK_MIN_OP | TOK_MAX_OP ) 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 GNUAsmOperand NewTypeId ParenthesizedExpression Statement TypeofExpr ExpressionOpt: Expression
         ::= Expression?
referenced by: Statement ConstantExpression: AssignmentExpression
         ::= AssignmentExpression
referenced by: ConstantExpressionOpt Declarator Designator DirectAbstractDeclarator EnumeratorDefinition MemberDeclarator NewTypeId Statement ConstantExpressionOpt: ConstantExpression
         ::= ConstantExpression?
referenced by: Declarator DirectAbstractDeclarator KandRDeclarator LabelAndColon: Identifier :
         ::= Identifier ':'
referenced by: Statement Statement: LabelAndColon default case ConstantExpression ... ConstantExpression : switch while ( Condition for ( ForInitStatement ConditionOpt ; ExpressionOpt ) Identifier : AttributeSpecifierList if ( Condition ) Statement else Statement ExpressionStatement CompoundStatement do Statement while ( Expression ) break continue UberModifierSeq InitDeclaratorList return Expression goto Identifier * Expression ; BlockDeclaration TryBlock AsmDefinition NamespaceDecl FunctionDefinition
         ::= ( LabelAndColon | ( 'default' | 'case' ConstantExpression ( '...' ConstantExpression )? ) ':' | ( ( 'switch' | 'while' ) '(' Condition | 'for' '(' ForInitStatement ConditionOpt ';' ExpressionOpt ) ')' | Identifier ':' AttributeSpecifierList | 'if' '(' Condition ')' ( Statement 'else' )? ) Statement
           | ExpressionStatement
           | CompoundStatement
           | ( 'do' Statement 'while' '(' Expression ')' | 'break' | 'continue' | UberModifierSeq InitDeclaratorList | 'return' Expression? | 'goto' ( Identifier | '*' Expression ) ) ';'
           | BlockDeclaration
           | TryBlock
           | AsmDefinition
           | NamespaceDecl
           | FunctionDefinition
referenced by: CompoundStatement Statement ExpressionStatement: Expression ;
         ::= Expression? ';'
referenced by: ForInitStatement Statement CompoundStatement: { Statement }
         ::= '{' Statement* '}'
referenced by: CastExpression 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 KandRFunctionDefinition KandRFunctionDefinition_implInt ImplIntFunctionDefinition UberModifierSeqOpt InitDeclaratorList ;
         ::= BlockDeclaration
           | FunctionDefinition
           | TemplateDeclaration
           | ExplicitInstantiation
           | LinkageSpecification
           | AsmDefinition
           | NamespaceDefinition
           | NamespaceDecl
           | KandRFunctionDefinition
           | KandRFunctionDefinition_implInt
           | ImplIntFunctionDefinition
           | UberModifierSeqOpt InitDeclaratorList ';'
referenced by: LinkageSpecification TranslationUnit BlockDeclaration: SimpleDeclaration
         ::= SimpleDeclaration
referenced by: ExplicitInstantiation Statement TFDeclaration SimpleDeclaration: DeclSpecifier InitDeclaratorList ;
         ::= DeclSpecifier InitDeclaratorList? ';'
referenced by: BlockDeclaration ForInitStatement TemplateDeclaration DeclSpecifier: AttributeSpecifierList PQTypeName ElaboratedOrSpecifier TypeofTypeSpecifier UberModifierSeqOpt AttributeSpecifier_UMAASLOpt UberModifierSeq PQTypeName ElaboratedOrSpecifier TypeofTypeSpecifier UberModifierSeqOpt AttributeSpecifier_UMAASLOpt UberTypeKeyword UberTypeAndModifierSeqOpt AttributeSpecifier_UTAMAASLOpt AttributeSpecifier_UMAASLOpt PQTypeName ElaboratedOrSpecifier TypeofTypeSpecifier UMAASLOpt UberTypeKeyword UTAMAASLOpt UberTypeKeyword UberTypeAndModifierSeqOpt AttributeSpecifier_UTAMAASLOpt referenced by: FunctionDefinition KandRFunctionDefinition KandRSimpleDeclaration MemberDeclaration SimpleDeclaration ElaboratedOrSpecifier: ElaboratedTypeSpecifier ClassSpecifier EnumSpecifier
         ::= ElaboratedTypeSpecifier
           | ClassSpecifier
           | EnumSpecifier
referenced by: DeclSpecifier TypeSpecifier UberModifierSeq: UberModifier
         ::= UberModifier+
referenced by: DeclSpecifier KandRFunctionDefinition_implInt Statement UberModifierSeqOpt UberModifierSeqOpt: UberModifierSeq
         ::= UberModifierSeq?
referenced by: DeclSpecifier TFDeclaration UberTypeAndModifierSeqOpt: UberModifier UberTypeKeyword
         ::= ( UberModifier | UberTypeKeyword )*
referenced by: DeclSpecifier UberCVQualifierSeq: UberCVQualifier
         ::= UberCVQualifier+
referenced by: ImplicitIntTypeSpecifier TypeSpecifier UberCVQualifierSeqOpt UberCVQualifierSeqOpt: UberCVQualifierSeq
         ::= UberCVQualifierSeq?
referenced by: TypeSpecifier UberTypeAndCVQualifierSeqOpt: UberCVQualifier UberTypeKeyword
         ::= ( UberCVQualifier | UberTypeKeyword )*
referenced by: TypeSpecifier UberModifier: auto register static extern mutable TOK_INLINE virtual friend typedef TOK_CONST TOK_VOLATILE TOK_RESTRICT
         ::= 'auto'
           | 'register'
           | 'static'
           | 'extern'
           | 'mutable'
           | TOK_INLINE
           | 'virtual'
           | 'friend'
           | 'typedef'
           | TOK_CONST
           | TOK_VOLATILE
           | TOK_RESTRICT
referenced by: UMAASLOpt UTAMAASLOpt UberModifierSeq UberTypeAndModifierSeqOpt UberCVQualifier: TOK_CONST TOK_VOLATILE TOK_RESTRICT
         ::= TOK_CONST
           | TOK_VOLATILE
           | TOK_RESTRICT
referenced by: UCVAASLOpt UTACVAASLOpt UberCVQualifierSeq UberTypeAndCVQualifierSeqOpt UberTypeKeyword: char wchar_t bool short int long TOK_SIGNED unsigned float double void TOK_COMPLEX TOK_IMAGINARY
         ::= 'char'
           | 'wchar_t'
           | 'bool'
           | 'short'
           | 'int'
           | 'long'
           | TOK_SIGNED
           | 'unsigned'
           | 'float'
           | 'double'
           | 'void'
           | TOK_COMPLEX
           | TOK_IMAGINARY
referenced by: DeclSpecifier TypeSpecifier UTACVAASLOpt UTAMAASLOpt UberTypeAndCVQualifierSeqOpt UberTypeAndModifierSeqOpt ElaboratedTypeSpecifier: ClassKey enum AttributeSpecifierList typename PQTypeName
         ::= ( ( ClassKey | 'enum' ) AttributeSpecifierList? | 'typename' ) PQTypeName
referenced by: ElaboratedOrSpecifier TypeSpecifier: AttributeSpecifierList PQTypeName ElaboratedOrSpecifier TypeofTypeSpecifier UberCVQualifierSeqOpt AttributeSpecifier_UCVAASLOpt UberCVQualifierSeq PQTypeName ElaboratedOrSpecifier TypeofTypeSpecifier UberCVQualifierSeqOpt AttributeSpecifier_UCVAASLOpt UberTypeKeyword UberTypeAndCVQualifierSeqOpt AttributeSpecifier_UTACVAASLOpt AttributeSpecifier_UCVAASLOpt PQTypeName ElaboratedOrSpecifier TypeofTypeSpecifier UCVAASLOpt UberTypeKeyword UTACVAASLOpt UberTypeKeyword UberTypeAndCVQualifierSeqOpt AttributeSpecifier_UTACVAASLOpt referenced by: Condition ConversionTypeId HandlerParameter NewTypeId ParameterDeclaration TypeId PQTypeName: :: PQTypeName_ncc
         ::= '::'? PQTypeName_ncc
referenced by: CtorExpressionType DeclSpecifier ElaboratedTypeSpecifier EnumSpecifier 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 AttributeSpecifierList PQTypeName { EnumeratorDefinition , EnumeratorDefinition }
         ::= 'enum' ( Identifier | AttributeSpecifierList PQTypeName? )? '{' ( EnumeratorDefinition ',' )* EnumeratorDefinition? '}'
referenced by: ElaboratedOrSpecifier EnumeratorDefinition: Identifier = ConstantExpression
         ::= Identifier ( '=' ConstantExpression )?
referenced by: EnumSpecifier AsmDefinition: TOK_ASM TOK_VOLATILE ( StringLiteral VolatileOpt ( StringLiteral : GNUAsmOperandListOpt : GNUAsmOperandListOpt GNUAsmClobberListOpt :: GNUAsmClobberList :: GNUAsmOperandListOpt GNUAsmClobberListOpt ) ; referenced by: Statement TFDeclaration LinkageSpecification: extern TOK_STRING_LITERAL { TranslationUnit } TFDeclaration
         ::= 'extern' TOK_STRING_LITERAL ( '{' TranslationUnit '}' | TFDeclaration )
referenced by: TFDeclaration InitDeclaratorList: InitDeclarator AttributeSpecifierList ,
         ::= InitDeclarator ( ',' AttributeSpecifierList? InitDeclarator )*
referenced by: SimpleDeclaration Statement TFDeclaration InitDeclarator: Declarator Initializer
         ::= Declarator Initializer?
referenced by: InitDeclaratorList Initializer: = SimpleInitializerClause ( ExpressionList )
         ::= '=' SimpleInitializerClause
           | '(' ExpressionList ')'
referenced by: InitDeclarator SimpleInitializerClause: AssignmentExpression CompoundInitializer
         ::= AssignmentExpression
           | CompoundInitializer
referenced by: Initializer InitializerClause InitializerClause: Identifier : DesignatorList = SimpleInitializerClause
         ::= ( Identifier ':' | DesignatorList '='? )? SimpleInitializerClause
referenced by: CompoundInitializer CompoundInitializer: { InitializerClause , CommaOpt }
         ::= '{' ( InitializerClause ( ',' InitializerClause )* CommaOpt )? '}'
referenced by: CastExpression SimpleInitializerClause CommaOpt: ,
CommaOpt ::= ','?
referenced by: CompoundInitializer DesignatorList: Designator
         ::= Designator+
referenced by: InitializerClause MemberDesignator Designator: . Identifier [ ConstantExpression ... ConstantExpression ]
         ::= '.' Identifier
           | '[' ConstantExpression ( '...' ConstantExpression )? ']'
referenced by: DesignatorList Declarator: * CVQualifierSeqOpt AttributeSpecifier_UCVAASLOpt & PtrToMemberName * CVQualifierSeqOpt IdExpression Identifier < TemplateArgumentListOpt > template Identifier < TemplateArgumentListOpt > :: ~ Identifier < TemplateArgumentListOpt > ( AttributeSpecifierList Declarator ) ( ParameterDeclarationClause ) CVQualifierSeqOpt ExceptionSpecificationOpt [ ConstantExpressionOpt static CVQualifierSeqOpt ConstantExpression CVQualifierSeq ConstantExpressionOpt static ConstantExpression ] TOK_ASM ( StringLiteral ) AttributeSpecifierList referenced by: Condition Declarator FDDeclarator ImplIntFunctionDefinition InitDeclarator KandRInitDeclarator MemberDeclarator UnqualifiedDeclarator PtrToMemberName: IdExpression ::
         ::= IdExpression '::'
referenced by: AbstractDeclarator ConversionTypeId Declarator NewTypeId CVQualifierSeqOpt: CVQualifierSeq
         ::= CVQualifierSeq?
referenced by: AbstractDeclarator ConversionTypeId Declarator DirectAbstractDeclarator KandRDeclarator NewTypeId CVQualifierSeq: CVQualifier
         ::= CVQualifier+
referenced by: CVQualifierSeqOpt Declarator DirectAbstractDeclarator CVQualifier: TOK_CONST TOK_VOLATILE TOK_RESTRICT
         ::= TOK_CONST
           | TOK_VOLATILE
           | TOK_RESTRICT
referenced by: CVQualifierSeq TypeId: TypeSpecifier AbstractDeclaratorOpt referenced by: CastExpression DefaultTypeOpt ExceptionSpecificationOpt NewExpression TemplateArgument TypeofType AbstractDeclaratorOpt: AbstractDeclarator
         ::= AbstractDeclarator?
referenced by: AbstractDeclarator HandlerParameter ParameterDeclarator TypeId AbstractDeclarator: * CVQualifierSeqOpt AttributeSpecifier_UCVAASLOpt & PtrToMemberName * CVQualifierSeqOpt AbstractDeclaratorOpt DirectAbstractDeclarator AttributeSpecifierList referenced by: AbstractDeclaratorOpt DirectAbstractDeclarator DirectAbstractDeclaratorOpt: DirectAbstractDeclarator
         ::= DirectAbstractDeclarator?
referenced by: DirectAbstractDeclarator DirectAbstractDeclarator: DirectAbstractDeclaratorOpt ( ParameterDeclarationClause ) CVQualifierSeqOpt ExceptionSpecificationOpt [ ConstantExpressionOpt static CVQualifierSeqOpt ConstantExpression CVQualifierSeq ConstantExpressionOpt static ConstantExpression ] ( AttributeSpecifierList AbstractDeclarator )
           | '(' AttributeSpecifierList? AbstractDeclarator ')'
referenced by: AbstractDeclarator DirectAbstractDeclaratorOpt ParameterDeclarationClause: ParameterDeclaration , ... ParameterDeclaration ...
         ::= ( ( ParameterDeclaration ',' )* ( '...' | ParameterDeclaration '...'? ) )?
referenced by: Declarator DirectAbstractDeclarator KandRDeclarator ParameterDeclaration: TypeSpecifier register ParameterDeclarator register TypeSpecifier ParameterDeclarator UnqualifiedDeclarator UnqualifiedDeclarator
         ::= TypeSpecifier 'register'? ParameterDeclarator
           | 'register' ( TypeSpecifier ParameterDeclarator | UnqualifiedDeclarator )
           | UnqualifiedDeclarator
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 Statement TFDeclaration TemplateDeclaration FDDeclarator: Declarator
         ::= Declarator
referenced by: FunctionDefinition FunctionBody: CompoundStatement
         ::= CompoundStatement
referenced by: FunctionDefinition ImplIntFunctionDefinition KandRFunctionDefinition KandRFunctionDefinition_implInt CtorInitializerOpt: : MemInitializer ,
         ::= ( ':' MemInitializer ( ',' MemInitializer )* )?
referenced by: FunctionDefinition ClassSpecifier: ClassKey AttributeSpecifierList 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 AttributeSpecifierList
         ::= Declarator ( '=' ConstantExpression )?
referenced by: CDtorProtoDecl MemberDeclaration IdentifierOpt: Identifier
         ::= Identifier?
referenced by: MemberDeclarator NamespaceDefinition TemplateParameterList CDtorModifier: explicit virtual TOK_INLINE friend
         ::= 'explicit'
           | 'virtual'
           | TOK_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 [ ] ! ~ ++ -- + - * / % << >> & ^ | = += -= *= /= %= <<= >>= &= ^= |= == != < > <= >= && || -> ->* [ ] ( ) , TOK_MIN_OP TOK_MAX_OP
Operator ::= ( 'new' | 'delete' ) ( '[' ']' )?
           | '!'
           | '~'
           | '++'
           | '--'
           | '+'
           | '-'
           | '*'
           | '/'
           | '%'
           | '<<'
           | '>>'
           | '&'
           | '^'
           | '|'
           | '='
           | '+='
           | '-='
           | '*='
           | '/='
           | '%='
           | '<<='
           | '>>='
           | '&='
           | '^='
           | '|='
           | '=='
           | '!='
           | '<'
           | '>'
           | '<='
           | '>='
           | '&&'
           | '||'
           | '->'
           | '->*'
           | '[' ']'
           | '(' ')'
           | ','
           | TOK_MIN_OP
           | TOK_MAX_OP
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: TOK_INLINE extern template BlockDeclaration
         ::= ( TOK_INLINE | 'extern' )? '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 ParameterDeclaration 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 = IdExpression using IdExpression namespace IdExpression AttributeSpecifierList ;
         ::= ( 'namespace' Identifier '=' IdExpression | 'using' ( IdExpression | 'namespace' IdExpression AttributeSpecifierList? ) ) ';'
referenced by: Statement TFDeclaration KandRFunctionDefinition: DeclSpecifier KandRDeclarator KandRSimpleDeclarationSeq FunctionBody referenced by: TFDeclaration KandRFunctionDefinition_implInt: UberModifierSeq KandRDeclarator KandRSimpleDeclarationSeq FunctionBody referenced by: TFDeclaration KandRSimpleDeclarationSeq: KandRSimpleDeclaration
         ::= KandRSimpleDeclaration+
referenced by: KandRFunctionDefinition KandRFunctionDefinition_implInt KandRSimpleDeclaration: DeclSpecifier register KandRInitDeclarator , ;
         ::= ( DeclSpecifier | 'register' ) KandRInitDeclarator ( ',' KandRInitDeclarator )* ';'
referenced by: KandRSimpleDeclarationSeq KandRInitDeclarator: Declarator
         ::= Declarator
referenced by: KandRSimpleDeclaration KandRDeclarator: * CVQualifierSeqOpt KandRIdExpression ( KandRIdentifierList ( KandRIdExpression ) ( KandRIdentifierList KandRDeclarator ) ( ParameterDeclarationClause ) [ ConstantExpressionOpt ] referenced by: KandRDeclarator KandRFunctionDefinition KandRFunctionDefinition_implInt KandRIdExpression: KandRIdentifier
         ::= KandRIdentifier
referenced by: KandRDeclarator KandRIdentifierList: KandRIdentifier ,
         ::= KandRIdentifier ( ',' KandRIdentifier )*
referenced by: KandRDeclarator KandRIdentifier: Identifier
         ::= Identifier
referenced by: KandRIdExpression KandRIdentifierList CFuncModifier_no_inline: static extern TOK_CONST TOK_VOLATILE
         ::= 'static'
           | 'extern'
           | TOK_CONST
           | TOK_VOLATILE
referenced by: CFuncModifier ImplIntFunctionDefinition CFuncModifier: CFuncModifier_no_inline TOK_INLINE
         ::= CFuncModifier_no_inline
           | TOK_INLINE
referenced by: CFuncModifierSeqOpt ImplIntFunctionDefinition CFuncModifierSeqOpt: CFuncModifier
         ::= CFuncModifier?
referenced by: ImplIntFunctionDefinition ImplIntFunctionDefinition: CFuncModifier_no_inline CFuncModifier TOK_INLINE CFuncModifier_no_inline CFuncModifierSeqOpt Declarator FunctionBody referenced by: TFDeclaration ImplicitIntTypeSpecifier: UberCVQualifierSeq
         ::= UberCVQualifierSeq
referenced by: ImplicitIntTypeId ImplicitIntTypeId: ImplicitIntTypeSpecifier
         ::= ImplicitIntTypeSpecifier
referenced by: CastExpression ParenthesizedExpression: ( Expression )
         ::= '(' Expression ')'
referenced by: CastExpression MemberDesignator: FirstMemberDesignator DesignatorList
         ::= FirstMemberDesignator DesignatorList?
referenced by: CastExpression FirstMemberDesignator: Identifier
         ::= Identifier
referenced by: MemberDesignator TypeofTypeSpecifier: TypeofExpr TypeofType
         ::= TypeofExpr
           | TypeofType
referenced by: DeclSpecifier TypeSpecifier TypeofExpr: TOK___TYPEOF__ ( Expression )
         ::= TOK___TYPEOF__ '(' Expression ')'
referenced by: TypeofTypeSpecifier TypeofType: TOK___TYPEOF__ ( TypeId )
         ::= TOK___TYPEOF__ '(' TypeId ')'
referenced by: TypeofTypeSpecifier VolatileOpt: TOK_VOLATILE
         ::= TOK_VOLATILE?
referenced by: AsmDefinition GNUAsmOperandListOpt: GNUAsmOperand ,
         ::= ( GNUAsmOperand ( ',' GNUAsmOperand )* )?
referenced by: AsmDefinition GNUAsmOperand: [ Identifier ] StringLiteral ( Expression )
         ::= ( '[' Identifier ']' )? StringLiteral '(' Expression ')'
referenced by: GNUAsmOperandListOpt GNUAsmClobberListOpt: : GNUAsmClobberList
         ::= ( ':' GNUAsmClobberList? )?
referenced by: AsmDefinition GNUAsmClobberList: StringLiteral ,
         ::= StringLiteral ( ',' StringLiteral )*
referenced by: AsmDefinition GNUAsmClobberListOpt AttributeSpecifier_UMAASLOpt: AttributeSpecifier UMAASLOpt
         ::= AttributeSpecifier UMAASLOpt
referenced by: DeclSpecifier UMAASLOpt: UberModifier AttributeSpecifier
         ::= ( UberModifier | AttributeSpecifier )*
referenced by: AttributeSpecifier_UMAASLOpt DeclSpecifier AttributeSpecifier_UTAMAASLOpt: AttributeSpecifier UTAMAASLOpt
         ::= AttributeSpecifier UTAMAASLOpt
referenced by: DeclSpecifier UTAMAASLOpt: UberModifier UberTypeKeyword AttributeSpecifier
         ::= ( UberModifier | UberTypeKeyword | AttributeSpecifier )*
referenced by: AttributeSpecifier_UTAMAASLOpt DeclSpecifier AttributeSpecifier_UCVAASLOpt: AttributeSpecifier UCVAASLOpt
         ::= AttributeSpecifier UCVAASLOpt
referenced by: AbstractDeclarator Declarator TypeSpecifier UCVAASLOpt: UberCVQualifier AttributeSpecifier
         ::= ( UberCVQualifier | AttributeSpecifier )*
referenced by: AttributeSpecifier_UCVAASLOpt TypeSpecifier AttributeSpecifier_UTACVAASLOpt: AttributeSpecifier UTACVAASLOpt
         ::= AttributeSpecifier UTACVAASLOpt
referenced by: TypeSpecifier UTACVAASLOpt: UberCVQualifier UberTypeKeyword AttributeSpecifier
         ::= ( UberCVQualifier | UberTypeKeyword | AttributeSpecifier )*
referenced by: AttributeSpecifier_UTACVAASLOpt TypeSpecifier AttributeWord: TOK_NAME TOK_ASM auto break bool case catch cdecl char class TOK_CONST const_cast continue default delete do double dynamic_cast else enum explicit export extern false float for friend goto if TOK_INLINE int long mutable namespace new operator pascal private protected public register reinterpret_cast return short TOK_SIGNED sizeof static static_cast struct switch template this throw true try typedef typeid typename union unsigned using virtual void TOK_VOLATILE wchar_t while
         ::= TOK_NAME
           | TOK_ASM
           | 'auto'
           | 'break'
           | 'bool'
           | 'case'
           | 'catch'
           | 'cdecl'
           | 'char'
           | 'class'
           | TOK_CONST
           | 'const_cast'
           | 'continue'
           | 'default'
           | 'delete'
           | 'do'
           | 'double'
           | 'dynamic_cast'
           | 'else'
           | 'enum'
           | 'explicit'
           | 'export'
           | 'extern'
           | 'false'
           | 'float'
           | 'for'
           | 'friend'
           | 'goto'
           | 'if'
           | TOK_INLINE
           | 'int'
           | 'long'
           | 'mutable'
           | 'namespace'
           | 'new'
           | 'operator'
           | 'pascal'
           | 'private'
           | 'protected'
           | 'public'
           | 'register'
           | 'reinterpret_cast'
           | 'return'
           | 'short'
           | TOK_SIGNED
           | 'sizeof'
           | 'static'
           | 'static_cast'
           | 'struct'
           | 'switch'
           | 'template'
           | 'this'
           | 'throw'
           | 'true'
           | 'try'
           | 'typedef'
           | 'typeid'
           | 'typename'
           | 'union'
           | 'unsigned'
           | 'using'
           | 'virtual'
           | 'void'
           | TOK_VOLATILE
           | 'wchar_t'
           | 'while'
referenced by: Attribute CommaSepExpressionListOpt: ExpressionList
         ::= ExpressionList?
referenced by: AttributeParameters AttributeParameters: CommaSepExpressionListOpt
         ::= CommaSepExpressionListOpt
referenced by: Attribute Attribute: AttributeWord ( AttributeParameters )
         ::= ( AttributeWord ( '(' AttributeParameters ')' )? )?
referenced by: AttributeSpecifier AttributeSpecifier: TOK___ATTRIBUTE__ ( ( Attribute , ) )
         ::= TOK___ATTRIBUTE__ '(' '(' Attribute ( ',' Attribute )* ')' ')'
referenced by: AttributeSpecifierList AttributeSpecifier_UCVAASLOpt AttributeSpecifier_UMAASLOpt AttributeSpecifier_UTACVAASLOpt AttributeSpecifier_UTAMAASLOpt UCVAASLOpt UMAASLOpt UTACVAASLOpt UTAMAASLOpt AttributeSpecifierList: AttributeSpecifier
         ::= AttributeSpecifier+
referenced by: AbstractDeclarator ClassSpecifier DeclSpecifier Declarator DirectAbstractDeclarator ElaboratedTypeSpecifier EnumSpecifier InitDeclaratorList MemberDeclarator NamespaceDecl Statement TypeSpecifier TOK_ASM: asm __asm __asm__
TOK_ASM  ::= 'asm'
           | '__asm'
           | '__asm__'
referenced by: AsmDefinition AttributeWord Declarator TOK_CONST: const __const __const__
         ::= 'const'
           | '__const'
           | '__const__'
referenced by: AttributeWord CFuncModifier_no_inline CVQualifier UberCVQualifier UberModifier TOK_INLINE: inline __inline __inline__
         ::= 'inline'
           | '__inline'
           | '__inline__'
referenced by: AttributeWord CDtorModifier CFuncModifier ExplicitInstantiation ImplIntFunctionDefinition UberModifier TOK_SIGNED: signed __signed __signed__
         ::= 'signed'
           | '__signed'
           | '__signed__'
referenced by: AttributeWord CtorExpressionType UberTypeKeyword TOK_VOLATILE: volatile __volatile __volatile__
         ::= 'volatile'
           | '__volatile'
           | '__volatile__'
referenced by: AsmDefinition AttributeWord CFuncModifier_no_inline CVQualifier UberCVQualifier UberModifier VolatileOpt TOK___ALIGNOF__: __alignof __alignof__
         ::= '__alignof'
           | '__alignof__'
referenced by: CastExpression TOK___ATTRIBUTE__: __attribute __attribute__
         ::= '__attribute'
           | '__attribute__'
referenced by: AttributeSpecifier TOK___TYPEOF__: typeof __typeof __typeof__
         ::= 'typeof'
           | '__typeof'
           | '__typeof__'
referenced by: TypeofExpr TypeofType TOK_RESTRICT: restrict __restrict __restrict__
         ::= 'restrict'
           | '__restrict'
           | '__restrict__'
referenced by: CVQualifier UberCVQualifier UberModifier TOK_COMPLEX: _Complex __complex__
         ::= '_Complex'
           | '__complex__'
referenced by: UberTypeKeyword TOK_IMAGINARY: _Imaginary __imaginary__
         ::= '_Imaginary'
           | '__imaginary__'
referenced by: UberTypeKeyword   ... generated by RR - Railroad Diagram Generator R R