diff options
Diffstat (limited to 'lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java')
-rw-r--r-- | lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java | 330 |
1 files changed, 168 insertions, 162 deletions
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java index 802494a54cd..8f90d94d036 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/gpp/GPPParser.java @@ -1603,495 +1603,501 @@ private GNUBuildASTParserAction gnuAction; } // - // Rule 378: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list , } end_initializer_list - // - case 378: { action. consumeInitializerList(); break; - } - - // - // Rule 379: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list } end_initializer_list + // Rule 379: initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq , } end_initializer_list // case 379: { action. consumeInitializerList(); break; } // - // Rule 380: initializer_clause ::= { <openscope-ast> } + // Rule 380: initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq } end_initializer_list // case 380: { action. consumeInitializerList(); break; } // - // Rule 381: start_initializer_list ::= $Empty + // Rule 381: initializer_list ::= { <openscope-ast> } // - case 381: { action. initializerListStart(); break; + case 381: { action. consumeInitializerList(); break; } // - // Rule 382: end_initializer_list ::= $Empty + // Rule 382: start_initializer_list ::= $Empty // - case 382: { action. initializerListEnd(); break; + case 382: { action. initializerListStart(); break; } // - // Rule 387: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } + // Rule 383: end_initializer_list ::= $Empty // - case 387: { action. consumeClassSpecifier(); break; + case 383: { action. initializerListEnd(); break; } // - // Rule 388: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt + // Rule 388: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } // - case 388: { action. consumeClassHead(false); break; + case 388: { action. consumeClassSpecifier(); break; } // - // Rule 389: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt + // Rule 389: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt // case 389: { action. consumeClassHead(false); break; } // - // Rule 390: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt + // Rule 390: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt // - case 390: { action. consumeClassHead(true); break; + case 390: { action. consumeClassHead(false); break; } // - // Rule 391: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt + // Rule 391: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt // case 391: { action. consumeClassHead(true); break; } // - // Rule 395: identifier_name_opt ::= $Empty + // Rule 392: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt // - case 395: { action. consumeEmpty(); break; - } + case 392: { action. consumeClassHead(true); break; + } // - // Rule 399: visibility_label ::= access_specifier_keyword : + // Rule 396: identifier_name_opt ::= $Empty // - case 399: { action. consumeVisibilityLabel(); break; - } + case 396: { action. consumeEmpty(); break; + } // - // Rule 400: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; + // Rule 400: visibility_label ::= access_specifier_keyword : // - case 400: { action. consumeDeclarationSimple(true); break; + case 400: { action. consumeVisibilityLabel(); break; } // - // Rule 401: member_declaration ::= declaration_specifiers_opt ; + // Rule 401: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; // - case 401: { action. consumeDeclarationSimple(false); break; + case 401: { action. consumeDeclarationSimple(true); break; } // - // Rule 404: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 402: member_declaration ::= declaration_specifiers_opt ; // - case 404: { action. consumeMemberDeclarationQualifiedId(); break; + case 402: { action. consumeDeclarationSimple(false); break; } // - // Rule 410: member_declaration ::= ERROR_TOKEN + // Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 410: { action. consumeDeclarationProblem(); break; + case 405: { action. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 419: member_declarator ::= declarator constant_initializer + // Rule 411: member_declaration ::= ERROR_TOKEN // - case 419: { action. consumeMemberDeclaratorWithInitializer(); break; + case 411: { action. consumeDeclarationProblem(); break; } // - // Rule 420: member_declarator ::= bit_field_declarator : constant_expression + // Rule 420: member_declarator ::= declarator constant_initializer // - case 420: { action. consumeBitField(true); break; + case 420: { action. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 421: member_declarator ::= : constant_expression + // Rule 421: member_declarator ::= bit_field_declarator : constant_expression // - case 421: { action. consumeBitField(false); break; + case 421: { action. consumeBitField(true); break; } // - // Rule 422: bit_field_declarator ::= identifier_name + // Rule 422: member_declarator ::= : constant_expression // - case 422: { action. consumeDirectDeclaratorIdentifier(); break; + case 422: { action. consumeBitField(false); break; } // - // Rule 423: constant_initializer ::= = constant_expression + // Rule 423: bit_field_declarator ::= identifier_name // - case 423: { action. consumeInitializer(); break; + case 423: { action. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 424: constant_initializer ::= = constant_expression // - case 429: { action. consumeBaseSpecifier(false, false); break; + case 424: { action. consumeInitializer(); break; } // - // Rule 430: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 430: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 430: { action. consumeBaseSpecifier(true, true); break; + case 430: { action. consumeBaseSpecifier(false, false); break; } // - // Rule 431: base_specifier ::= access_specifier_keyword virtual 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 431: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 432: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name + // Rule 432: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 432: { action. consumeBaseSpecifier(true, false); break; + case 432: { action. consumeBaseSpecifier(true, true); break; } // - // Rule 433: access_specifier_keyword ::= private + // Rule 433: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 433: { action. consumeToken(); break; + case 433: { action. consumeBaseSpecifier(true, false); break; } // - // Rule 434: access_specifier_keyword ::= protected + // Rule 434: access_specifier_keyword ::= private // case 434: { action. consumeToken(); break; } // - // Rule 435: access_specifier_keyword ::= public + // Rule 435: access_specifier_keyword ::= protected // case 435: { action. consumeToken(); break; } // - // Rule 437: access_specifier_keyword_opt ::= $Empty + // Rule 436: access_specifier_keyword ::= public // - case 437: { action. consumeEmpty(); break; + case 436: { action. consumeToken(); break; } // - // Rule 439: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > + // Rule 438: access_specifier_keyword_opt ::= $Empty // - case 439: { action. consumeTemplateId(); break; + case 438: { action. consumeEmpty(); break; } // - // Rule 440: conversion_function_id ::= operator conversion_type_id + // Rule 440: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > // - case 440: { action. consumeConversionName(); break; + case 440: { action. consumeTemplateId(); break; } // - // Rule 441: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 441: conversion_function_id ::= operator conversion_type_id // - case 441: { action. consumeTypeId(true); break; + case 441: { action. consumeConversionName(); break; } // - // Rule 442: conversion_type_id ::= type_specifier_seq + // Rule 442: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 442: { action. consumeTypeId(false); break; + case 442: { action. consumeTypeId(true); break; } // - // Rule 443: conversion_declarator ::= <openscope-ast> ptr_operator_seq + // Rule 443: conversion_type_id ::= type_specifier_seq // - case 443: { action. consumeDeclaratorWithPointer(false); break; + case 443: { action. consumeTypeId(false); break; } // - // Rule 449: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 444: conversion_declarator ::= <openscope-ast> ptr_operator_seq // - case 449: { action. consumeConstructorChainInitializer(); break; + case 444: { action. consumeDeclaratorWithPointer(false); break; } // - // Rule 450: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 450: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 450: { action. consumeQualifiedId(false); break; + case 450: { action. consumeConstructorChainInitializer(); break; } // - // Rule 453: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > + // Rule 451: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 453: { action. consumeTemplateId(); break; + case 451: { action. consumeQualifiedId(false); break; } // - // Rule 454: operator_id_name ::= operator overloadable_operator + // Rule 454: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > // - case 454: { action. consumeOperatorName(); break; + case 454: { action. consumeTemplateId(); break; } // - // Rule 497: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration + // Rule 455: operator_id_name ::= operator overloadable_operator // - case 497: { action. consumeTemplateDeclaration(); break; + case 455: { action. consumeOperatorName(); break; } // - // Rule 498: export_opt ::= export + // Rule 498: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration // - case 498: { action. consumePlaceHolder(); break; + case 498: { action. consumeTemplateDeclaration(); break; } // - // Rule 499: export_opt ::= $Empty + // Rule 499: export_opt ::= export // - case 499: { action. consumeEmpty(); break; + case 499: { action. consumePlaceHolder(); break; } // - // Rule 503: template_parameter ::= parameter_declaration + // Rule 500: export_opt ::= $Empty // - case 503: { action. consumeTemplateParamterDeclaration(); break; + case 500: { action. consumeEmpty(); break; } // - // Rule 504: type_parameter ::= class identifier_name_opt + // Rule 504: template_parameter ::= parameter_declaration // - case 504: { action. consumeSimpleTypeTemplateParameter(false); break; + case 504: { action. consumeTemplateParamterDeclaration(); break; } // - // Rule 505: type_parameter ::= class identifier_name_opt = type_id + // Rule 505: type_parameter ::= class identifier_name_opt // - case 505: { action. consumeSimpleTypeTemplateParameter(true); break; + case 505: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 506: type_parameter ::= typename identifier_name_opt + // Rule 506: type_parameter ::= class identifier_name_opt = type_id // - case 506: { action. consumeSimpleTypeTemplateParameter(false); break; + case 506: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 507: type_parameter ::= typename identifier_name_opt = type_id + // Rule 507: type_parameter ::= typename identifier_name_opt // - case 507: { action. consumeSimpleTypeTemplateParameter(true); break; + case 507: { action. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 508: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt + // Rule 508: type_parameter ::= typename identifier_name_opt = type_id // - case 508: { action. consumeTemplatedTypeTemplateParameter(false); break; + case 508: { action. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 509: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression + // Rule 509: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt // - case 509: { action. consumeTemplatedTypeTemplateParameter(true); break; + case 509: { action. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 510: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > + // Rule 510: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression // - case 510: { action. consumeTemplateId(); break; + case 510: { action. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 515: template_argument ::= assignment_expression + // Rule 511: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > // - case 515: { action. consumeTemplateArgumentExpression(); break; + case 511: { action. consumeTemplateId(); break; } // - // Rule 516: template_argument ::= type_id + // Rule 516: template_argument ::= assignment_expression // - case 516: { action. consumeTemplateArgumentTypeId(); break; + case 516: { action. consumeTemplateArgumentExpression(); break; } // - // Rule 517: explicit_instantiation ::= template declaration + // Rule 517: template_argument ::= type_id // - case 517: { action. consumeTemplateExplicitInstantiation(); break; + case 517: { action. consumeTemplateArgumentTypeId(); break; } // - // Rule 518: explicit_specialization ::= template < > declaration + // Rule 518: explicit_instantiation ::= template declaration // - case 518: { action. consumeTemplateExplicitSpecialization(); break; + case 518: { action. consumeTemplateExplicitInstantiation(); break; } // - // Rule 519: try_block ::= try compound_statement <openscope-ast> handler_seq + // Rule 519: explicit_specialization ::= template < > declaration // - case 519: { action. consumeStatementTryBlock(); break; + case 519: { action. consumeTemplateExplicitSpecialization(); break; } // - // Rule 522: handler ::= catch ( exception_declaration ) compound_statement + // Rule 520: try_block ::= try compound_statement <openscope-ast> handler_seq // - case 522: { action. consumeStatementCatchHandler(false); break; + case 520: { action. consumeStatementTryBlock(); break; } // - // Rule 523: handler ::= catch ( ... ) compound_statement + // Rule 523: handler ::= catch ( exception_declaration ) compound_statement // - case 523: { action. consumeStatementCatchHandler(true); break; + case 523: { action. consumeStatementCatchHandler(false); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq <openscope-ast> declarator + // Rule 524: handler ::= catch ( ... ) compound_statement // - case 524: { action. consumeDeclarationSimple(true); break; + case 524: { action. consumeStatementCatchHandler(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator + // Rule 525: exception_declaration ::= type_specifier_seq <openscope-ast> declarator // case 525: { action. consumeDeclarationSimple(true); break; } // - // Rule 526: exception_declaration ::= type_specifier_seq + // Rule 526: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator + // + case 526: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 527: exception_declaration ::= type_specifier_seq // - case 526: { action. consumeDeclarationSimple(false); break; + case 527: { action. consumeDeclarationSimple(false); break; } // - // Rule 528: exception_specification ::= throw ( ) + // Rule 529: exception_specification ::= throw ( ) // - case 528: { action. consumePlaceHolder(); break; + case 529: { action. consumePlaceHolder(); break; } // - // Rule 549: attribute_parameter ::= assignment_expression + // Rule 550: attribute_parameter ::= assignment_expression // - case 549: { action. consumeIgnore(); break; + case 550: { action. consumeIgnore(); break; } // - // Rule 559: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ; + // Rule 560: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ; // - case 559: { gnuAction.consumeDeclarationASM(); break; + case 560: { gnuAction.consumeDeclarationASM(); break; } // - // Rule 570: unary_expression ::= __alignof__ unary_expression + // Rule 571: unary_expression ::= __alignof__ unary_expression // - case 570: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break; + case 571: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break; } // - // Rule 571: unary_expression ::= __alignof__ ( type_id ) + // Rule 572: unary_expression ::= __alignof__ ( type_id ) // - case 571: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_alignof); break; + case 572: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_alignof); break; } // - // Rule 572: unary_expression ::= typeof unary_expression + // Rule 573: unary_expression ::= typeof unary_expression // - case 572: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; + case 573: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; } // - // Rule 573: unary_expression ::= typeof ( type_id ) + // Rule 574: unary_expression ::= typeof ( type_id ) // - case 573: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break; + case 574: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break; } // - // Rule 574: relational_expression ::= relational_expression >? shift_expression + // Rule 575: relational_expression ::= relational_expression >? shift_expression // - case 574: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_max); break; + case 575: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_max); break; } // - // Rule 575: relational_expression ::= relational_expression <? shift_expression + // Rule 576: relational_expression ::= relational_expression <? shift_expression // - case 575: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_min); break; + case 576: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_min); break; } // - // Rule 576: conditional_expression ::= logical_or_expression ? <empty> : assignment_expression + // Rule 577: conditional_expression ::= logical_or_expression ? <empty> : assignment_expression // - case 576: { action. consumeExpressionConditional(); break; + case 577: { action. consumeExpressionConditional(); break; } // - // Rule 577: primary_expression ::= ( compound_statement ) + // Rule 578: primary_expression ::= ( compound_statement ) // - case 577: { gnuAction.consumeCompoundStatementExpression(); break; + case 578: { gnuAction.consumeCompoundStatementExpression(); break; } // - // Rule 578: labeled_statement ::= case case_range_expression : statement + // Rule 579: labeled_statement ::= case case_range_expression : statement // - case 578: { action. consumeStatementCase(); break; + case 579: { action. consumeStatementCase(); break; } // - // Rule 579: case_range_expression ::= constant_expression ... constant_expression + // Rule 580: case_range_expression ::= constant_expression ... constant_expression // - case 579: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; + case 580: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; } // - // Rule 583: typeof_type_specifier ::= typeof unary_expression + // Rule 584: typeof_type_specifier ::= typeof unary_expression // - case 583: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; + case 584: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; } // - // Rule 584: typeof_type_specifier ::= typeof ( type_id ) + // Rule 585: typeof_type_specifier ::= typeof ( type_id ) // - case 584: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break; + case 585: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break; } // - // Rule 585: declaration_specifiers ::= <openscope-ast> typeof_declaration_specifiers + // Rule 586: declaration_specifiers ::= <openscope-ast> typeof_declaration_specifiers // - case 585: { action. consumeDeclarationSpecifiersTypeof(); break; + case 586: { action. consumeDeclarationSpecifiersTypeof(); break; } // - // Rule 598: declarator ::= <openscope-ast> ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator + // Rule 599: declarator ::= <openscope-ast> ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator // - case 598: { action. consumeDeclaratorWithPointer(true); break; + case 599: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 601: simple_type_specifier ::= _Complex + // Rule 602: simple_type_specifier ::= _Complex // - case 601: { action. consumeToken(); break; + case 602: { action. consumeToken(); break; } // - // Rule 602: simple_type_specifier ::= _Imaginary + // Rule 603: simple_type_specifier ::= _Imaginary // - case 602: { action. consumeToken(); break; + case 603: { action. consumeToken(); break; } // - // Rule 603: cv_qualifier ::= restrict + // Rule 604: cv_qualifier ::= restrict // - case 603: { action. consumeToken(); break; + case 604: { action. consumeToken(); break; + } + + // + // Rule 605: explicit_instantiation ::= extern template declaration + // + case 605: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_extern); break; } // - // Rule 604: explicit_instantiation ::= extern template declaration + // Rule 606: explicit_instantiation ::= static template declaration // - case 604: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_extern); break; + case 606: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_static); break; } // - // Rule 605: explicit_instantiation ::= static template declaration + // Rule 607: explicit_instantiation ::= inline template declaration // - case 605: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_static); break; + case 607: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_inline); break; } // - // Rule 606: explicit_instantiation ::= inline template declaration + // Rule 608: postfix_expression ::= ( type_id ) initializer_list // - case 606: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_inline); break; + case 608: { action. consumeExpressionTypeIdInitializer(); break; } |