diff options
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.java | 295 |
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; } |