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/CPPParser.java')
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java295
1 files changed, 151 insertions, 144 deletions
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java
index a5ff5ddd619..98bc4616431 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java
@@ -1750,513 +1750,520 @@ public CPPParser(String[] mapFrom) { // constructor
}
//
- // Rule 354: array_direct_abstract_declarator ::= array_modifier
+ // Rule 354: basic_direct_abstract_declarator ::= ( )
//
case 354: { action.builder.
- consumeDirectDeclaratorArrayDeclarator(false); break;
+ consumeAbstractDeclaratorEmpty(); break;
}
//
- // Rule 355: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ // Rule 355: array_direct_abstract_declarator ::= array_modifier
//
case 355: { action.builder.
- consumeDirectDeclaratorArrayDeclarator(true); break;
+ consumeDirectDeclaratorArrayDeclarator(false); break;
}
//
- // Rule 356: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ // Rule 356: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
//
case 356: { action.builder.
consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 357: 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 357: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
//
case 357: { action.builder.
- consumeDirectDeclaratorFunctionDeclarator(true); break;
+ consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 358: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ // Rule 358: 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 358: { action.builder.
- consumeDirectDeclaratorFunctionDeclarator(false); break;
+ consumeDirectDeclaratorFunctionDeclarator(true); break;
}
//
- // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt ...
+ // Rule 359: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
case 359: { action.builder.
- consumePlaceHolder(); break;
+ consumeDirectDeclaratorFunctionDeclarator(false); break;
}
//
- // Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt
+ // Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt ...
//
case 360: { action.builder.
- consumeEmpty(); break;
+ consumePlaceHolder(); break;
}
//
- // Rule 361: parameter_declaration_clause ::= parameter_declaration_list , ...
+ // Rule 361: parameter_declaration_clause ::= parameter_declaration_list_opt
//
case 361: { action.builder.
+ consumeEmpty(); break;
+ }
+
+ //
+ // Rule 362: parameter_declaration_clause ::= parameter_declaration_list , ...
+ //
+ case 362: { action.builder.
consumePlaceHolder(); break;
}
//
- // Rule 367: abstract_declarator_opt ::= $Empty
+ // Rule 368: abstract_declarator_opt ::= $Empty
//
- case 367: { action.builder.
+ case 368: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 368: parameter_declaration ::= declaration_specifiers parameter_init_declarator
+ // Rule 369: parameter_declaration ::= declaration_specifiers parameter_init_declarator
//
- case 368: { action.builder.
+ case 369: { action.builder.
consumeParameterDeclaration(); break;
}
//
- // Rule 369: parameter_declaration ::= declaration_specifiers
+ // Rule 370: parameter_declaration ::= declaration_specifiers
//
- case 369: { action.builder.
+ case 370: { action.builder.
consumeParameterDeclarationWithoutDeclarator(); break;
}
//
- // Rule 371: parameter_init_declarator ::= declarator = parameter_initializer
+ // Rule 372: parameter_init_declarator ::= declarator = parameter_initializer
//
- case 371: { action.builder.
+ case 372: { action.builder.
consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 373: parameter_init_declarator ::= abstract_declarator = parameter_initializer
+ // Rule 374: parameter_init_declarator ::= abstract_declarator = parameter_initializer
//
- case 373: { action.builder.
+ case 374: { action.builder.
consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 374: parameter_init_declarator ::= = parameter_initializer
+ // Rule 375: parameter_init_declarator ::= = parameter_initializer
//
- case 374: { action.builder.
+ case 375: { action.builder.
consumeDeclaratorWithInitializer(false); break;
}
//
- // Rule 375: parameter_initializer ::= assignment_expression
+ // Rule 376: parameter_initializer ::= assignment_expression
//
- case 375: { action.builder.
+ case 376: { action.builder.
consumeInitializer(); break;
}
//
- // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
+ // Rule 377: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
//
- case 376: { action.builder.
+ case 377: { action.builder.
consumeFunctionDefinition(false); break;
}
//
- // Rule 377: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
+ // Rule 378: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
//
- case 377: { action.builder.
+ case 378: { action.builder.
consumeFunctionDefinition(true); break;
}
//
- // Rule 380: initializer ::= ( expression_list )
+ // Rule 381: initializer ::= ( expression_list )
//
- case 380: { action.builder.
+ case 381: { action.builder.
consumeInitializerConstructor(); break;
}
//
- // Rule 381: initializer_clause ::= assignment_expression
+ // Rule 382: initializer_clause ::= assignment_expression
//
- case 381: { action.builder.
+ case 382: { action.builder.
consumeInitializer(); break;
}
//
- // Rule 382: initializer_clause ::= { <openscope-ast> initializer_list , }
+ // Rule 383: initializer_clause ::= { <openscope-ast> initializer_list , }
//
- case 382: { action.builder.
+ case 383: { action.builder.
consumeInitializerList(); break;
}
//
- // Rule 383: initializer_clause ::= { <openscope-ast> initializer_list }
+ // Rule 384: initializer_clause ::= { <openscope-ast> initializer_list }
//
- case 383: { action.builder.
+ case 384: { action.builder.
consumeInitializerList(); break;
}
//
- // Rule 384: initializer_clause ::= { <openscope-ast> }
+ // Rule 385: initializer_clause ::= { <openscope-ast> }
//
- case 384: { action.builder.
+ case 385: { action.builder.
consumeInitializerList(); break;
}
//
- // Rule 389: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
+ // Rule 390: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
//
- case 389: { action.builder.
+ case 390: { action.builder.
consumeClassSpecifier(); break;
}
//
- // Rule 390: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
+ // Rule 391: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
//
- case 390: { action.builder.
+ case 391: { action.builder.
consumeClassHead(false); break;
}
//
- // Rule 391: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt
+ // Rule 392: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt
//
- case 391: { action.builder.
+ case 392: { action.builder.
consumeClassHead(false); break;
}
//
- // Rule 392: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
+ // Rule 393: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
//
- case 392: { action.builder.
+ case 393: { action.builder.
consumeClassHead(true); break;
}
//
- // Rule 393: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt
+ // Rule 394: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt
//
- case 393: { action.builder.
+ case 394: { action.builder.
consumeClassHead(true); break;
}
//
- // Rule 395: identifier_name_opt ::= $Empty
+ // Rule 396: identifier_name_opt ::= $Empty
//
- case 395: { action.builder.
+ case 396: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 399: visibility_label ::= access_specifier_keyword :
+ // Rule 400: visibility_label ::= access_specifier_keyword :
//
- case 399: { action.builder.
+ case 400: { action.builder.
consumeVisibilityLabel(); break;
}
//
- // Rule 400: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
+ // Rule 401: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
//
- case 400: { action.builder.
+ case 401: { action.builder.
consumeDeclarationSimple(true); break;
}
//
- // Rule 401: member_declaration ::= declaration_specifiers_opt ;
+ // Rule 402: member_declaration ::= declaration_specifiers_opt ;
//
- case 401: { action.builder.
+ case 402: { action.builder.
consumeDeclarationSimple(false); break;
}
//
- // Rule 404: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
+ // Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
//
- case 404: { action.builder.
+ case 405: { action.builder.
consumeMemberDeclarationQualifiedId(); break;
}
//
- // Rule 408: member_declaration ::= ERROR_TOKEN
+ // Rule 409: member_declaration ::= ERROR_TOKEN
//
- case 408: { action.builder.
+ case 409: { action.builder.
consumeDeclarationProblem(); break;
}
//
- // Rule 416: member_declarator ::= declarator constant_initializer
+ // Rule 417: member_declarator ::= declarator constant_initializer
//
- case 416: { action.builder.
+ case 417: { action.builder.
consumeMemberDeclaratorWithInitializer(); break;
}
//
- // Rule 417: member_declarator ::= bit_field_declarator : constant_expression
+ // Rule 418: member_declarator ::= bit_field_declarator : constant_expression
//
- case 417: { action.builder.
+ case 418: { action.builder.
consumeBitField(true); break;
}
//
- // Rule 418: member_declarator ::= : constant_expression
+ // Rule 419: member_declarator ::= : constant_expression
//
- case 418: { action.builder.
+ case 419: { action.builder.
consumeBitField(false); break;
}
//
- // Rule 419: bit_field_declarator ::= identifier_name
+ // Rule 420: bit_field_declarator ::= identifier_name
//
- case 419: { action.builder.
+ case 420: { action.builder.
consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 420: constant_initializer ::= = constant_expression
+ // Rule 421: constant_initializer ::= = constant_expression
//
- case 420: { action.builder.
+ case 421: { action.builder.
consumeInitializer(); break;
}
//
- // Rule 426: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
+ // Rule 427: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
//
- case 426: { action.builder.
+ case 427: { action.builder.
consumeBaseSpecifier(false, false); break;
}
//
- // Rule 427: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
+ // Rule 428: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
//
- case 427: { action.builder.
+ case 428: { action.builder.
consumeBaseSpecifier(true, true); break;
}
//
- // Rule 428: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
+ // Rule 429: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
//
- case 428: { action.builder.
+ case 429: { action.builder.
consumeBaseSpecifier(true, true); break;
}
//
- // Rule 429: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
+ // Rule 430: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
//
- case 429: { action.builder.
+ case 430: { action.builder.
consumeBaseSpecifier(true, false); break;
}
//
- // Rule 430: access_specifier_keyword ::= private
+ // Rule 431: access_specifier_keyword ::= private
//
- case 430: { action.builder.
+ case 431: { action.builder.
consumeAccessKeywordToken(); break;
}
//
- // Rule 431: access_specifier_keyword ::= protected
+ // Rule 432: access_specifier_keyword ::= protected
//
- case 431: { action.builder.
+ case 432: { action.builder.
consumeAccessKeywordToken(); break;
}
//
- // Rule 432: access_specifier_keyword ::= public
+ // Rule 433: access_specifier_keyword ::= public
//
- case 432: { action.builder.
+ case 433: { action.builder.
consumeAccessKeywordToken(); break;
}
//
- // Rule 434: access_specifier_keyword_opt ::= $Empty
+ // Rule 435: access_specifier_keyword_opt ::= $Empty
//
- case 434: { action.builder.
+ case 435: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 435: conversion_function_id_name ::= operator conversion_type_id
+ // Rule 436: conversion_function_id_name ::= operator conversion_type_id
//
- case 435: { action.builder.
+ case 436: { action.builder.
consumeConversionName(); break;
}
//
- // Rule 436: conversion_type_id ::= type_specifier_seq conversion_declarator
+ // Rule 437: conversion_type_id ::= type_specifier_seq conversion_declarator
//
- case 436: { action.builder.
+ case 437: { action.builder.
consumeTypeId(true); break;
}
//
- // Rule 437: conversion_type_id ::= type_specifier_seq
+ // Rule 438: conversion_type_id ::= type_specifier_seq
//
- case 437: { action.builder.
+ case 438: { action.builder.
consumeTypeId(false); break;
}
//
- // Rule 438: conversion_declarator ::= <openscope-ast> ptr_operator_seq
+ // Rule 439: conversion_declarator ::= <openscope-ast> ptr_operator_seq
//
- case 438: { action.builder.
+ case 439: { action.builder.
consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 444: mem_initializer ::= mem_initializer_name ( expression_list_opt )
+ // Rule 445: mem_initializer ::= mem_initializer_name ( expression_list_opt )
//
- case 444: { action.builder.
+ case 445: { action.builder.
consumeConstructorChainInitializer(); break;
}
//
- // Rule 445: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
+ // Rule 446: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
//
- case 445: { action.builder.
+ case 446: { action.builder.
consumeQualifiedId(false); break;
}
//
- // Rule 448: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
+ // Rule 449: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
//
- case 448: { action.builder.
+ case 449: { action.builder.
consumeTemplateId(); break;
}
//
- // Rule 449: operator_id_name ::= operator overloadable_operator
+ // Rule 450: operator_id_name ::= operator overloadable_operator
//
- case 449: { action.builder.
+ case 450: { action.builder.
consumeOperatorName(); break;
}
//
- // Rule 492: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
+ // Rule 493: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
//
- case 492: { action.builder.
+ case 493: { action.builder.
consumeTemplateDeclaration(); break;
}
//
- // Rule 493: export_opt ::= export
+ // Rule 494: export_opt ::= export
//
- case 493: { action.builder.
+ case 494: { action.builder.
consumePlaceHolder(); break;
}
//
- // Rule 494: export_opt ::= $Empty
+ // Rule 495: export_opt ::= $Empty
//
- case 494: { action.builder.
+ case 495: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 498: template_parameter ::= parameter_declaration
+ // Rule 499: template_parameter ::= parameter_declaration
//
- case 498: { action.builder.
+ case 499: { action.builder.
consumeTemplateParamterDeclaration(); break;
}
//
- // Rule 499: type_parameter ::= class identifier_name_opt
+ // Rule 500: type_parameter ::= class identifier_name_opt
//
- case 499: { action.builder.
+ case 500: { action.builder.
consumeSimpleTypeTemplateParameter(false); break;
}
//
- // Rule 500: type_parameter ::= class identifier_name_opt = type_id
+ // Rule 501: type_parameter ::= class identifier_name_opt = type_id
//
- case 500: { action.builder.
+ case 501: { action.builder.
consumeSimpleTypeTemplateParameter(true); break;
}
//
- // Rule 501: type_parameter ::= typename identifier_name_opt
+ // Rule 502: type_parameter ::= typename identifier_name_opt
//
- case 501: { action.builder.
+ case 502: { action.builder.
consumeSimpleTypeTemplateParameter(false); break;
}
//
- // Rule 502: type_parameter ::= typename identifier_name_opt = type_id
+ // Rule 503: type_parameter ::= typename identifier_name_opt = type_id
//
- case 502: { action.builder.
+ case 503: { action.builder.
consumeSimpleTypeTemplateParameter(true); break;
}
//
- // Rule 503: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
+ // Rule 504: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
//
- case 503: { action.builder.
+ case 504: { action.builder.
consumeTemplatedTypeTemplateParameter(false); break;
}
//
- // Rule 504: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
+ // Rule 505: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
//
- case 504: { action.builder.
+ case 505: { action.builder.
consumeTemplatedTypeTemplateParameter(true); break;
}
//
- // Rule 505: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
+ // Rule 506: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
//
- case 505: { action.builder.
+ case 506: { action.builder.
consumeTemplateId(); break;
}
//
- // Rule 513: explicit_instantiation ::= template declaration
+ // Rule 514: explicit_instantiation ::= template declaration
//
- case 513: { action.builder.
+ case 514: { action.builder.
consumeTemplateExplicitInstantiation(); break;
}
//
- // Rule 514: explicit_specialization ::= template < > declaration
+ // Rule 515: explicit_specialization ::= template < > declaration
//
- case 514: { action.builder.
+ case 515: { action.builder.
consumeTemplateExplicitSpecialization(); break;
}
//
- // Rule 515: try_block ::= try compound_statement <openscope-ast> handler_seq
+ // Rule 516: try_block ::= try compound_statement <openscope-ast> handler_seq
//
- case 515: { action.builder.
+ case 516: { action.builder.
consumeStatementTryBlock(); break;
}
//
- // Rule 518: handler ::= catch ( exception_declaration ) compound_statement
+ // Rule 519: handler ::= catch ( exception_declaration ) compound_statement
//
- case 518: { action.builder.
+ case 519: { action.builder.
consumeStatementCatchHandler(false); break;
}
//
- // Rule 519: handler ::= catch ( ... ) compound_statement
+ // Rule 520: handler ::= catch ( ... ) compound_statement
//
- case 519: { action.builder.
+ case 520: { action.builder.
consumeStatementCatchHandler(true); break;
}
//
- // Rule 520: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
+ // Rule 521: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
//
- case 520: { action.builder.
+ case 521: { action.builder.
consumeDeclarationSimple(true); break;
}
//
- // Rule 521: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
+ // Rule 522: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
//
- case 521: { action.builder.
+ case 522: { action.builder.
consumeDeclarationSimple(true); break;
}
//
- // Rule 522: exception_declaration ::= type_specifier_seq
+ // Rule 523: exception_declaration ::= type_specifier_seq
//
- case 522: { action.builder.
+ case 523: { action.builder.
consumeDeclarationSimple(false); break;
}

Back to the top