Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java')
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java525
1 files changed, 280 insertions, 245 deletions
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java
index 263d475fb43..64c5363d8bd 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java
@@ -1210,856 +1210,891 @@ public CPPExpressionStatementParser(String[] mapFrom) { // constructor
}
//
- // Rule 222: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
+ // Rule 206: declaration_statement ::= function_definition
//
- case 222: { action.builder.
- consumeDeclarationSimple(true); break;
+ case 206: { action.builder.
+ consumeStatementDeclaration(); break;
}
//
- // Rule 223: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
+ // Rule 223: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
//
case 223: { action.builder.
- consumeDeclarationSpecifiersSimple(); break;
+ consumeDeclarationSimple(true); break;
}
//
- // Rule 224: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers
+ // Rule 224: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
//
case 224: { action.builder.
- consumeDeclarationSpecifiersComposite(); break;
+ consumeDeclarationSpecifiersSimple(); break;
}
//
- // Rule 225: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
+ // Rule 225: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers
//
case 225: { action.builder.
consumeDeclarationSpecifiersComposite(); break;
}
//
- // Rule 226: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
+ // Rule 226: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
//
case 226: { action.builder.
consumeDeclarationSpecifiersComposite(); break;
}
//
- // Rule 227: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers
+ // Rule 227: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
//
case 227: { action.builder.
- consumeDeclarationSpecifiersTypeName(); break;
+ consumeDeclarationSpecifiersComposite(); break;
}
//
- // Rule 229: declaration_specifiers_opt ::= $Empty
+ // Rule 228: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers
//
- case 229: { action.builder.
- consumeEmpty(); break;
+ case 228: { action.builder.
+ consumeDeclarationSpecifiersTypeName(); break;
}
//
- // Rule 233: no_type_declaration_specifier ::= friend
+ // Rule 230: declaration_specifiers_opt ::= $Empty
//
- case 233: { action.builder.
- consumeDeclSpecToken(); break;
+ case 230: { action.builder.
+ consumeEmpty(); break;
}
//
- // Rule 234: no_type_declaration_specifier ::= typedef
+ // Rule 234: no_type_declaration_specifier ::= friend
//
case 234: { action.builder.
consumeDeclSpecToken(); break;
}
//
- // Rule 263: simple_type_specifier ::= simple_type_specifier_token
+ // Rule 235: no_type_declaration_specifier ::= typedef
//
- case 263: { action.builder.
+ case 235: { action.builder.
consumeDeclSpecToken(); break;
}
//
- // Rule 279: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name
+ // Rule 264: simple_type_specifier ::= simple_type_specifier_token
//
- case 279: { action.builder.
- consumeQualifiedId(false); break;
+ case 264: { action.builder.
+ consumeDeclSpecToken(); break;
}
//
- // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name
+ // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name
//
case 280: { action.builder.
consumeQualifiedId(false); break;
}
//
- // Rule 281: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name
+ // Rule 281: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name
//
case 281: { action.builder.
consumeQualifiedId(false); break;
}
//
- // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
+ // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name
//
case 282: { action.builder.
- consumeQualifiedId(true); break;
+ consumeQualifiedId(false); break;
}
//
- // Rule 283: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name
+ // Rule 283: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
//
case 283: { action.builder.
- consumeTypeSpecifierElaborated(false); break;
+ consumeQualifiedId(true); break;
}
//
- // Rule 284: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name
+ // Rule 284: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name
//
case 284: { action.builder.
- consumeTypeSpecifierElaborated(true); break;
+ consumeTypeSpecifierElaborated(false); break;
}
//
- // Rule 285: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name
+ // Rule 285: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name
//
case 285: { action.builder.
+ consumeTypeSpecifierElaborated(true); break;
+ }
+
+ //
+ // Rule 286: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name
+ //
+ case 286: { action.builder.
consumeTypeSpecifierElaborated(false); break;
}
//
- // Rule 287: enum_specifier ::= enum { <openscope-ast> enumerator_list_opt }
+ // Rule 288: enum_specifier ::= enum { <openscope-ast> enumerator_list_opt }
//
- case 287: { action.builder.
+ case 288: { action.builder.
consumeTypeSpecifierEnumeration(false); break;
}
//
- // Rule 288: enum_specifier ::= enum identifier_token { <openscope-ast> enumerator_list_opt }
+ // Rule 289: enum_specifier ::= enum identifier_token { <openscope-ast> enumerator_list_opt }
//
- case 288: { action.builder.
+ case 289: { action.builder.
consumeTypeSpecifierEnumeration(true); break;
}
//
- // Rule 293: enumerator_definition ::= enumerator
+ // Rule 294: enumerator_definition ::= enumerator
//
- case 293: { action.builder.
+ case 294: { action.builder.
consumeEnumerator(false); break;
}
//
- // Rule 294: enumerator_definition ::= enumerator = constant_expression
+ // Rule 295: enumerator_definition ::= enumerator = constant_expression
//
- case 294: { action.builder.
+ case 295: { action.builder.
consumeEnumerator(true); break;
}
//
- // Rule 303: original_namespace_definition ::= namespace identifier_name { <openscope-ast> declaration_seq_opt }
+ // Rule 304: original_namespace_definition ::= namespace identifier_name { <openscope-ast> declaration_seq_opt }
//
- case 303: { action.builder.
+ case 304: { action.builder.
consumeNamespaceDefinition(true); break;
}
//
- // Rule 304: extension_namespace_definition ::= namespace original_namespace_name { <openscope-ast> declaration_seq_opt }
+ // Rule 305: extension_namespace_definition ::= namespace original_namespace_name { <openscope-ast> declaration_seq_opt }
//
- case 304: { action.builder.
+ case 305: { action.builder.
consumeNamespaceDefinition(true); break;
}
//
- // Rule 305: unnamed_namespace_definition ::= namespace { <openscope-ast> declaration_seq_opt }
+ // Rule 306: unnamed_namespace_definition ::= namespace { <openscope-ast> declaration_seq_opt }
//
- case 305: { action.builder.
+ case 306: { action.builder.
consumeNamespaceDefinition(false); break;
}
//
- // Rule 307: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ;
+ // Rule 308: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ;
//
- case 307: { action.builder.
+ case 308: { action.builder.
consumeNamespaceAliasDefinition(); break;
}
//
- // Rule 308: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ;
+ // Rule 309: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ;
//
- case 308: { action.builder.
+ case 309: { action.builder.
consumeUsingDeclaration(); break;
}
//
- // Rule 309: typename_opt ::= typename
+ // Rule 310: typename_opt ::= typename
//
- case 309: { action.builder.
+ case 310: { action.builder.
consumePlaceHolder(); break;
}
//
- // Rule 310: typename_opt ::= $Empty
+ // Rule 311: typename_opt ::= $Empty
//
- case 310: { action.builder.
+ case 311: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 311: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ;
+ // Rule 312: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ;
//
- case 311: { action.builder.
+ case 312: { action.builder.
consumeUsingDirective(); break;
}
//
- // Rule 312: asm_definition ::= asm ( stringlit ) ;
+ // Rule 313: asm_definition ::= asm ( stringlit ) ;
//
- case 312: { action.builder.
+ case 313: { action.builder.
consumeDeclarationASM(); break;
}
//
- // Rule 313: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt }
+ // Rule 314: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt }
//
- case 313: { action.builder.
+ case 314: { action.builder.
consumeLinkageSpecification(); break;
}
//
- // Rule 314: linkage_specification ::= extern stringlit <openscope-ast> declaration
+ // Rule 315: linkage_specification ::= extern stringlit <openscope-ast> declaration
//
- case 314: { action.builder.
+ case 315: { action.builder.
consumeLinkageSpecification(); break;
}
//
- // Rule 320: init_declarator ::= declarator initializer
+ // Rule 321: init_declarator ::= declarator initializer
//
- case 320: { action.builder.
+ case 321: { action.builder.
consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 322: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
+ // Rule 323: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
//
- case 322: { action.builder.
+ case 323: { action.builder.
consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 324: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
+ // Rule 325: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
//
- case 324: { action.builder.
+ case 325: { action.builder.
consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 328: basic_direct_declarator ::= declarator_id_name
+ // Rule 329: basic_direct_declarator ::= declarator_id_name
//
- case 328: { action.builder.
+ case 329: { action.builder.
consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 329: basic_direct_declarator ::= ( declarator )
+ // Rule 330: basic_direct_declarator ::= ( declarator )
//
- case 329: { action.builder.
+ case 330: { action.builder.
consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 330: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ // Rule 331: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
- case 330: { action.builder.
+ case 331: { action.builder.
consumeDirectDeclaratorFunctionDeclarator(true); break;
}
//
- // Rule 331: array_direct_declarator ::= array_direct_declarator array_modifier
+ // Rule 332: array_direct_declarator ::= array_direct_declarator array_modifier
//
- case 331: { action.builder.
+ case 332: { action.builder.
consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 332: array_direct_declarator ::= basic_direct_declarator array_modifier
+ // Rule 333: array_direct_declarator ::= basic_direct_declarator array_modifier
//
- case 332: { action.builder.
+ case 333: { action.builder.
consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 333: array_modifier ::= [ constant_expression ]
+ // Rule 334: array_modifier ::= [ constant_expression ]
//
- case 333: { action.builder.
+ case 334: { action.builder.
consumeDirectDeclaratorArrayModifier(true); break;
}
//
- // Rule 334: array_modifier ::= [ ]
+ // Rule 335: array_modifier ::= [ ]
//
- case 334: { action.builder.
+ case 335: { action.builder.
consumeDirectDeclaratorArrayModifier(false); break;
}
//
- // Rule 335: ptr_operator ::= * <openscope-ast> cv_qualifier_seq_opt
+ // Rule 336: ptr_operator ::= * <openscope-ast> cv_qualifier_seq_opt
//
- case 335: { action.builder.
+ case 336: { action.builder.
consumePointer(); break;
}
//
- // Rule 336: ptr_operator ::= &
+ // Rule 337: ptr_operator ::= &
//
- case 336: { action.builder.
+ case 337: { action.builder.
consumeReferenceOperator(); break;
}
//
- // Rule 337: ptr_operator ::= dcolon_opt nested_name_specifier * <openscope-ast> cv_qualifier_seq_opt
+ // Rule 338: ptr_operator ::= dcolon_opt nested_name_specifier * <openscope-ast> cv_qualifier_seq_opt
//
- case 337: { action.builder.
+ case 338: { action.builder.
consumePointerToMember(); break;
}
//
- // Rule 343: cv_qualifier ::= const
+ // Rule 344: cv_qualifier ::= const
//
- case 343: { action.builder.
+ case 344: { action.builder.
consumeDeclSpecToken(); break;
}
//
- // Rule 344: cv_qualifier ::= volatile
+ // Rule 345: cv_qualifier ::= volatile
//
- case 344: { action.builder.
+ case 345: { action.builder.
consumeDeclSpecToken(); break;
}
//
- // Rule 346: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
+ // Rule 347: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
//
- case 346: { action.builder.
+ case 347: { action.builder.
consumeQualifiedId(false); break;
}
//
- // Rule 347: type_id ::= type_specifier_seq
+ // Rule 348: type_id ::= type_specifier_seq
//
- case 347: { action.builder.
+ case 348: { action.builder.
consumeTypeId(false); break;
}
//
- // Rule 348: type_id ::= type_specifier_seq abstract_declarator
+ // Rule 349: type_id ::= type_specifier_seq abstract_declarator
//
- case 348: { action.builder.
+ case 349: { action.builder.
consumeTypeId(true); break;
}
//
- // Rule 351: abstract_declarator ::= <openscope-ast> ptr_operator_seq
+ // Rule 352: abstract_declarator ::= <openscope-ast> ptr_operator_seq
//
- case 351: { action.builder.
+ case 352: { action.builder.
consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 352: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
+ // Rule 353: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
//
- case 352: { action.builder.
+ case 353: { action.builder.
consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 356: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ // Rule 357: basic_direct_abstract_declarator ::= ( abstract_declarator )
//
- case 356: { action.builder.
+ case 357: { action.builder.
consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 357: array_direct_abstract_declarator ::= array_modifier
+ // Rule 358: array_direct_abstract_declarator ::= array_modifier
//
- case 357: { action.builder.
+ case 358: { action.builder.
consumeDirectDeclaratorArrayDeclarator(false); break;
}
//
- // Rule 358: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ // Rule 359: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
//
- case 358: { action.builder.
+ case 359: { action.builder.
consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 359: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ // Rule 360: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
//
- case 359: { action.builder.
+ case 360: { action.builder.
consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 360: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ // Rule 361: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
- case 360: { action.builder.
+ case 361: { action.builder.
consumeDirectDeclaratorFunctionDeclarator(true); break;
}
//
- // Rule 361: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ // Rule 362: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
- case 361: { action.builder.
+ case 362: { action.builder.
consumeDirectDeclaratorFunctionDeclarator(false); break;
}
//
- // Rule 362: parameter_declaration_clause ::= parameter_declaration_list_opt ...
+ // Rule 363: parameter_declaration_clause ::= parameter_declaration_list_opt ...
//
- case 362: { action.builder.
+ case 363: { action.builder.
consumePlaceHolder(); break;
}
//
- // Rule 363: parameter_declaration_clause ::= parameter_declaration_list_opt
+ // Rule 364: parameter_declaration_clause ::= parameter_declaration_list_opt
//
- case 363: { action.builder.
+ case 364: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 364: parameter_declaration_clause ::= parameter_declaration_list , ...
+ // Rule 365: parameter_declaration_clause ::= parameter_declaration_list , ...
//
- case 364: { action.builder.
+ case 365: { action.builder.
consumePlaceHolder(); break;
}
//
- // Rule 370: abstract_declarator_opt ::= $Empty
+ // Rule 371: abstract_declarator_opt ::= $Empty
//
- case 370: { action.builder.
+ case 371: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 371: parameter_declaration ::= declaration_specifiers parameter_init_declarator
+ // Rule 372: parameter_declaration ::= declaration_specifiers parameter_init_declarator
//
- case 371: { action.builder.
+ case 372: { action.builder.
consumeParameterDeclaration(); break;
}
//
- // Rule 372: parameter_declaration ::= declaration_specifiers
+ // Rule 373: parameter_declaration ::= declaration_specifiers
//
- case 372: { action.builder.
+ case 373: { action.builder.
consumeParameterDeclarationWithoutDeclarator(); break;
}
//
- // Rule 374: parameter_init_declarator ::= declarator = parameter_initializer
+ // Rule 375: parameter_init_declarator ::= declarator = parameter_initializer
//
- case 374: { action.builder.
+ case 375: { action.builder.
consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 376: parameter_init_declarator ::= abstract_declarator = parameter_initializer
+ // Rule 377: parameter_init_declarator ::= abstract_declarator = parameter_initializer
//
- case 376: { action.builder.
+ case 377: { action.builder.
consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 377: parameter_init_declarator ::= = parameter_initializer
+ // Rule 378: parameter_init_declarator ::= = parameter_initializer
//
- case 377: { action.builder.
+ case 378: { action.builder.
consumeDeclaratorWithInitializer(false); break;
}
//
- // Rule 378: parameter_initializer ::= assignment_expression
+ // Rule 379: parameter_initializer ::= assignment_expression
//
- case 378: { action.builder.
+ case 379: { action.builder.
consumeInitializer(); break;
}
//
- // Rule 379: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
+ // Rule 380: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
//
- case 379: { action.builder.
+ case 380: { action.builder.
consumeFunctionDefinition(false); break;
}
//
- // Rule 380: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
+ // Rule 381: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
//
- case 380: { action.builder.
+ case 381: { action.builder.
consumeFunctionDefinition(true); break;
}
//
- // Rule 383: initializer ::= ( expression_list )
+ // Rule 384: initializer ::= ( expression_list )
//
- case 383: { action.builder.
+ case 384: { action.builder.
consumeInitializerConstructor(); break;
}
//
- // Rule 384: initializer_clause ::= assignment_expression
+ // Rule 385: initializer_clause ::= assignment_expression
//
- case 384: { action.builder.
+ case 385: { action.builder.
consumeInitializer(); break;
}
//
- // Rule 385: initializer_clause ::= { <openscope-ast> initializer_list , }
+ // Rule 386: initializer_clause ::= { <openscope-ast> initializer_list , }
//
- case 385: { action.builder.
+ case 386: { action.builder.
consumeInitializerList(); break;
}
//
- // Rule 386: initializer_clause ::= { <openscope-ast> initializer_list }
+ // Rule 387: initializer_clause ::= { <openscope-ast> initializer_list }
//
- case 386: { action.builder.
+ case 387: { action.builder.
consumeInitializerList(); break;
}
//
- // Rule 387: initializer_clause ::= { <openscope-ast> }
+ // Rule 388: initializer_clause ::= { <openscope-ast> }
//
- case 387: { action.builder.
+ case 388: { action.builder.
consumeInitializerList(); break;
}
//
- // Rule 392: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
+ // Rule 393: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
//
- case 392: { action.builder.
+ case 393: { action.builder.
consumeClassSpecifier(); break;
}
//
- // Rule 393: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
+ // Rule 394: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
//
- case 393: { action.builder.
+ case 394: { action.builder.
consumeClassHead(false); break;
}
//
- // Rule 394: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt
+ // Rule 395: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt
//
- case 394: { action.builder.
+ case 395: { action.builder.
consumeClassHead(false); break;
}
//
- // Rule 395: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
+ // Rule 396: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
//
- case 395: { action.builder.
+ case 396: { action.builder.
consumeClassHead(true); break;
}
//
- // Rule 396: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt
+ // Rule 397: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt
//
- case 396: { action.builder.
+ case 397: { action.builder.
consumeClassHead(true); break;
}
//
- // Rule 398: identifier_name_opt ::= $Empty
+ // Rule 399: identifier_name_opt ::= $Empty
//
- case 398: { action.builder.
+ case 399: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 402: visibility_label ::= access_specifier_keyword :
+ // Rule 403: visibility_label ::= access_specifier_keyword :
//
- case 402: { action.builder.
+ case 403: { action.builder.
consumeVisibilityLabel(); break;
}
//
- // Rule 403: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
+ // Rule 404: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
//
- case 403: { action.builder.
+ case 404: { action.builder.
consumeDeclarationSimple(true); break;
}
//
- // Rule 404: member_declaration ::= declaration_specifiers_opt ;
+ // Rule 405: member_declaration ::= declaration_specifiers_opt ;
//
- case 404: { action.builder.
+ case 405: { action.builder.
consumeDeclarationSimple(false); break;
}
//
- // Rule 407: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
+ // Rule 408: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
//
- case 407: { action.builder.
+ case 408: { action.builder.
consumeMemberDeclarationQualifiedId(); break;
}
//
- // Rule 411: member_declaration ::= ERROR_TOKEN
+ // Rule 412: member_declaration ::= ERROR_TOKEN
//
- case 411: { action.builder.
+ case 412: { action.builder.
consumeDeclarationProblem(); break;
}
//
- // Rule 419: member_declarator ::= declarator constant_initializer
+ // Rule 420: member_declarator ::= declarator constant_initializer
//
- case 419: { action.builder.
+ case 420: { action.builder.
consumeMemberDeclaratorWithInitializer(); break;
}
//
- // Rule 420: member_declarator ::= bit_field_declarator : constant_expression
+ // Rule 421: member_declarator ::= bit_field_declarator : constant_expression
//
- case 420: { action.builder.
+ case 421: { action.builder.
consumeBitField(true); break;
}
//
- // Rule 421: member_declarator ::= : constant_expression
+ // Rule 422: member_declarator ::= : constant_expression
//
- case 421: { action.builder.
+ case 422: { action.builder.
consumeBitField(false); break;
}
//
- // Rule 422: bit_field_declarator ::= identifier_name
+ // Rule 423: bit_field_declarator ::= identifier_name
//
- case 422: { action.builder.
+ case 423: { action.builder.
consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 423: constant_initializer ::= = constant_expression
+ // Rule 424: constant_initializer ::= = constant_expression
//
- case 423: { action.builder.
+ case 424: { action.builder.
consumeInitializer(); break;
}
//
- // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
+ // Rule 430: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
//
- case 429: { action.builder.
- consumeBaseSpecifier(false); break;
+ case 430: { action.builder.
+ consumeBaseSpecifier(false, false); break;
}
//
- // Rule 430: base_specifier ::= virtual_opt access_specifier_keyword virtual_opt dcolon_opt nested_name_specifier_opt class_name
+ // Rule 431: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
//
- case 430: { action.builder.
- consumeBaseSpecifier(true); break;
+ case 431: { action.builder.
+ consumeBaseSpecifier(true, true); break;
}
//
- // Rule 431: virtual_opt ::= virtual
+ // Rule 432: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
//
- case 431: { action.builder.
- consumePlaceHolder(); break;
+ case 432: { action.builder.
+ consumeBaseSpecifier(true, true); break;
}
//
- // Rule 432: virtual_opt ::= $Empty
+ // Rule 433: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
//
- case 432: { action.builder.
- consumeEmpty(); break;
+ case 433: { action.builder.
+ consumeBaseSpecifier(true, false); break;
+ }
+
+ //
+ // Rule 434: access_specifier_keyword ::= private
+ //
+ case 434: { action.builder.
+ consumeAccessKeywordToken(); break;
+ }
+
+ //
+ // Rule 435: access_specifier_keyword ::= protected
+ //
+ case 435: { action.builder.
+ consumeAccessKeywordToken(); break;
+ }
+
+ //
+ // Rule 436: access_specifier_keyword ::= public
+ //
+ case 436: { action.builder.
+ consumeAccessKeywordToken(); break;
}
//
- // Rule 438: conversion_function_id_name ::= operator conversion_type_id
+ // Rule 438: access_specifier_keyword_opt ::= $Empty
//
case 438: { action.builder.
- consumeConversionName(); break;
+ consumeEmpty(); break;
}
//
- // Rule 439: conversion_type_id ::= type_specifier_seq conversion_declarator
+ // Rule 439: conversion_function_id_name ::= operator conversion_type_id
//
case 439: { action.builder.
- consumeTypeId(true); break;
+ consumeConversionName(); break;
}
//
- // Rule 440: conversion_type_id ::= type_specifier_seq
+ // Rule 440: conversion_type_id ::= type_specifier_seq conversion_declarator
//
case 440: { action.builder.
- consumeTypeId(false); break;
+ consumeTypeId(true); break;
}
//
- // Rule 441: conversion_declarator ::= <openscope-ast> ptr_operator_seq
+ // Rule 441: conversion_type_id ::= type_specifier_seq
//
case 441: { action.builder.
+ consumeTypeId(false); break;
+ }
+
+ //
+ // Rule 442: conversion_declarator ::= <openscope-ast> ptr_operator_seq
+ //
+ case 442: { action.builder.
consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 447: mem_initializer ::= mem_initializer_name ( expression_list_opt )
+ // Rule 448: mem_initializer ::= mem_initializer_name ( expression_list_opt )
//
- case 447: { action.builder.
+ case 448: { action.builder.
consumeConstructorChainInitializer(); break;
}
//
- // Rule 448: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
+ // Rule 449: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
//
- case 448: { action.builder.
+ case 449: { action.builder.
consumeQualifiedId(false); break;
}
//
- // Rule 451: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
+ // Rule 452: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
//
- case 451: { action.builder.
+ case 452: { action.builder.
consumeTemplateId(); break;
}
//
- // Rule 452: operator_id_name ::= operator overloadable_operator
+ // Rule 453: operator_id_name ::= operator overloadable_operator
//
- case 452: { action.builder.
+ case 453: { action.builder.
consumeOperatorName(); break;
}
//
- // Rule 495: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
+ // Rule 496: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
//
- case 495: { action.builder.
+ case 496: { action.builder.
consumeTemplateDeclaration(); break;
}
//
- // Rule 496: export_opt ::= export
+ // Rule 497: export_opt ::= export
//
- case 496: { action.builder.
+ case 497: { action.builder.
consumePlaceHolder(); break;
}
//
- // Rule 497: export_opt ::= $Empty
+ // Rule 498: export_opt ::= $Empty
//
- case 497: { action.builder.
+ case 498: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 502: type_parameter ::= class identifier_name_opt
+ // Rule 503: type_parameter ::= class identifier_name_opt
//
- case 502: { action.builder.
+ case 503: { action.builder.
consumeSimpleTypeTemplateParameter(false); break;
}
//
- // Rule 503: type_parameter ::= class identifier_name_opt = type_id
+ // Rule 504: type_parameter ::= class identifier_name_opt = type_id
//
- case 503: { action.builder.
+ case 504: { action.builder.
consumeSimpleTypeTemplateParameter(true); break;
}
//
- // Rule 504: type_parameter ::= typename identifier_name_opt
+ // Rule 505: type_parameter ::= typename identifier_name_opt
//
- case 504: { action.builder.
+ case 505: { action.builder.
consumeSimpleTypeTemplateParameter(false); break;
}
//
- // Rule 505: type_parameter ::= typename identifier_name_opt = type_id
+ // Rule 506: type_parameter ::= typename identifier_name_opt = type_id
//
- case 505: { action.builder.
+ case 506: { action.builder.
consumeSimpleTypeTemplateParameter(true); break;
}
//
- // Rule 506: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
+ // Rule 507: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
//
- case 506: { action.builder.
+ case 507: { action.builder.
consumeTemplatedTypeTemplateParameter(false); break;
}
//
- // Rule 507: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
+ // Rule 508: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
//
- case 507: { action.builder.
+ case 508: { action.builder.
consumeTemplatedTypeTemplateParameter(true); break;
}
//
- // Rule 508: template_id_name ::= template_identifier < <openscope-ast> template_argument_list_opt >
+ // Rule 509: template_id_name ::= template_identifier < <openscope-ast> template_argument_list_opt >
//
- case 508: { action.builder.
+ case 509: { action.builder.
consumeTemplateId(); break;
}
//
- // Rule 517: explicit_instantiation ::= template declaration
+ // Rule 518: explicit_instantiation ::= template declaration
//
- case 517: { action.builder.
+ case 518: { action.builder.
consumeTemplateExplicitInstantiation(); break;
}
//
- // Rule 518: explicit_specialization ::= template < > declaration
+ // Rule 519: explicit_specialization ::= template < > declaration
//
- case 518: { action.builder.
+ case 519: { action.builder.
consumeTemplateExplicitSpecialization(); break;
}
//
- // Rule 519: try_block ::= try compound_statement <openscope-ast> handler_seq
+ // Rule 520: try_block ::= try compound_statement <openscope-ast> handler_seq
//
- case 519: { action.builder.
+ case 520: { action.builder.
consumeStatementTryBlock(); break;
}
//
- // Rule 522: handler ::= catch ( exception_declaration ) compound_statement
+ // Rule 523: handler ::= catch ( exception_declaration ) compound_statement
//
- case 522: { action.builder.
+ case 523: { action.builder.
consumeStatementCatchHandler(false); break;
}
//
- // Rule 523: handler ::= catch ( ... ) compound_statement
+ // Rule 524: handler ::= catch ( ... ) compound_statement
//
- case 523: { action.builder.
+ case 524: { action.builder.
consumeStatementCatchHandler(true); break;
}
//
- // Rule 524: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
+ // Rule 525: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
//
- case 524: { action.builder.
+ case 525: { action.builder.
consumeDeclarationSimple(true); break;
}
//
- // Rule 525: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
+ // Rule 526: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
//
- case 525: { action.builder.
+ case 526: { action.builder.
consumeDeclarationSimple(true); break;
}
//
- // Rule 526: exception_declaration ::= type_specifier_seq
+ // Rule 527: exception_declaration ::= type_specifier_seq
//
- case 526: { action.builder.
+ case 527: { action.builder.
consumeDeclarationSimple(false); break;
}
//
- // Rule 534: expression_parser_start ::= ERROR_TOKEN
+ // Rule 535: expression_parser_start ::= ERROR_TOKEN
//
- case 534: { action.builder.
+ case 535: { action.builder.
consumeExpressionProblem(); break;
}

Back to the top