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.java395
1 files changed, 201 insertions, 194 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 5c839d7952e..4377a7597b5 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
@@ -213,7 +213,7 @@ public int getKind(int i) {
int kind = super.getKind(i);
// There used to be a special token kind for zero used to parser pure virtual function declarations.
- // But it turned out to be easier to just parse them as an init_declarator and programaticaly check
+ // But it turned out to be easier to just parse them as an init_ declarator and programaticaly check
// for pure virtual, see consumeMemberDeclaratorWithInitializer().
//if(kind == CPPParsersym.TK_integer && "0".equals(getTokenText(i))) { //$NON-NLS-1$
@@ -1221,14 +1221,14 @@ public CPPParser(String[] mapFrom) { // constructor
// Rule 221: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
//
case 221: { action.builder.
- consumeDeclarationSimple(true); break;
+ consumeDeclarationSimple(true, true); break;
}
//
// Rule 222: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
//
case 222: { action.builder.
- consumeDeclarationSimple(true); break;
+ consumeDeclarationSimple(true, false); break;
}
//
@@ -1449,654 +1449,661 @@ public CPPParser(String[] mapFrom) { // constructor
}
//
- // Rule 312: init_declarator ::= declarator initializer
+ // Rule 311: init_declarator_complete ::= init_declarator
//
- case 312: { action.builder.
+ case 311: { action.builder.
+ consumeInitDeclaratorComplete(); break;
+ }
+
+ //
+ // Rule 313: init_declarator ::= declarator initializer
+ //
+ case 313: { action.builder.
consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 314: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
+ // Rule 315: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
//
- case 314: { action.builder.
+ case 315: { action.builder.
consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 316: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
+ // Rule 317: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
//
- case 316: { action.builder.
+ case 317: { action.builder.
consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 320: basic_direct_declarator ::= declarator_id_name
+ // Rule 321: basic_direct_declarator ::= declarator_id_name
//
- case 320: { action.builder.
+ case 321: { action.builder.
consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 321: basic_direct_declarator ::= ( declarator )
+ // Rule 322: basic_direct_declarator ::= ( declarator )
//
- case 321: { action.builder.
+ case 322: { action.builder.
consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 322: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ // Rule 323: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
- case 322: { action.builder.
+ case 323: { action.builder.
consumeDirectDeclaratorFunctionDeclarator(true); break;
}
//
- // Rule 323: array_direct_declarator ::= array_direct_declarator array_modifier
+ // Rule 324: array_direct_declarator ::= array_direct_declarator array_modifier
//
- case 323: { action.builder.
+ case 324: { action.builder.
consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 324: array_direct_declarator ::= basic_direct_declarator array_modifier
+ // Rule 325: array_direct_declarator ::= basic_direct_declarator array_modifier
//
- case 324: { action.builder.
+ case 325: { action.builder.
consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 325: array_modifier ::= [ constant_expression ]
+ // Rule 326: array_modifier ::= [ constant_expression ]
//
- case 325: { action.builder.
+ case 326: { action.builder.
consumeDirectDeclaratorArrayModifier(true); break;
}
//
- // Rule 326: array_modifier ::= [ ]
+ // Rule 327: array_modifier ::= [ ]
//
- case 326: { action.builder.
+ case 327: { action.builder.
consumeDirectDeclaratorArrayModifier(false); break;
}
//
- // Rule 327: ptr_operator ::= * <openscope-ast> cv_qualifier_seq_opt
+ // Rule 328: ptr_operator ::= * <openscope-ast> cv_qualifier_seq_opt
//
- case 327: { action.builder.
+ case 328: { action.builder.
consumePointer(); break;
}
//
- // Rule 328: ptr_operator ::= &
+ // Rule 329: ptr_operator ::= &
//
- case 328: { action.builder.
+ case 329: { action.builder.
consumeReferenceOperator(); break;
}
//
- // Rule 329: ptr_operator ::= dcolon_opt nested_name_specifier * <openscope-ast> cv_qualifier_seq_opt
+ // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier * <openscope-ast> cv_qualifier_seq_opt
//
- case 329: { action.builder.
+ case 330: { action.builder.
consumePointerToMember(); break;
}
//
- // Rule 335: cv_qualifier ::= const
+ // Rule 336: cv_qualifier ::= const
//
- case 335: { action.builder.
+ case 336: { action.builder.
consumeDeclSpecToken(); break;
}
//
- // Rule 336: cv_qualifier ::= volatile
+ // Rule 337: cv_qualifier ::= volatile
//
- case 336: { action.builder.
+ case 337: { action.builder.
consumeDeclSpecToken(); break;
}
//
- // Rule 338: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
+ // Rule 339: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
//
- case 338: { action.builder.
+ case 339: { action.builder.
consumeQualifiedId(false); break;
}
//
- // Rule 339: type_id ::= type_specifier_seq
+ // Rule 340: type_id ::= type_specifier_seq
//
- case 339: { action.builder.
+ case 340: { action.builder.
consumeTypeId(false); break;
}
//
- // Rule 340: type_id ::= type_specifier_seq abstract_declarator
+ // Rule 341: type_id ::= type_specifier_seq abstract_declarator
//
- case 340: { action.builder.
+ case 341: { action.builder.
consumeTypeId(true); break;
}
//
- // Rule 343: abstract_declarator ::= <openscope-ast> ptr_operator_seq
+ // Rule 344: abstract_declarator ::= <openscope-ast> ptr_operator_seq
//
- case 343: { action.builder.
+ case 344: { action.builder.
consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 344: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
+ // Rule 345: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
//
- case 344: { action.builder.
+ case 345: { action.builder.
consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 348: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ // Rule 349: basic_direct_abstract_declarator ::= ( abstract_declarator )
//
- case 348: { action.builder.
+ case 349: { action.builder.
consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 349: array_direct_abstract_declarator ::= array_modifier
+ // Rule 350: array_direct_abstract_declarator ::= array_modifier
//
- case 349: { action.builder.
+ case 350: { action.builder.
consumeDirectDeclaratorArrayDeclarator(false); break;
}
//
- // Rule 350: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ // Rule 351: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
//
- case 350: { action.builder.
+ case 351: { action.builder.
consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 351: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ // Rule 352: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
//
- case 351: { action.builder.
+ case 352: { action.builder.
consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 352: 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 353: 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 352: { action.builder.
+ case 353: { action.builder.
consumeDirectDeclaratorFunctionDeclarator(true); break;
}
//
- // Rule 353: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ // Rule 354: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
- case 353: { action.builder.
+ case 354: { action.builder.
consumeDirectDeclaratorFunctionDeclarator(false); break;
}
//
- // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt ...
+ // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt ...
//
- case 354: { action.builder.
+ case 355: { action.builder.
consumePlaceHolder(); break;
}
//
- // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt
+ // Rule 356: parameter_declaration_clause ::= parameter_declaration_list_opt
//
- case 355: { action.builder.
+ case 356: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 356: parameter_declaration_clause ::= parameter_declaration_list , ...
+ // Rule 357: parameter_declaration_clause ::= parameter_declaration_list , ...
//
- case 356: { action.builder.
+ case 357: { action.builder.
consumePlaceHolder(); break;
}
//
- // Rule 362: abstract_declarator_opt ::= $Empty
+ // Rule 363: abstract_declarator_opt ::= $Empty
//
- case 362: { action.builder.
+ case 363: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 363: parameter_declaration ::= declaration_specifiers parameter_init_declarator
+ // Rule 364: parameter_declaration ::= declaration_specifiers parameter_init_declarator
//
- case 363: { action.builder.
+ case 364: { action.builder.
consumeParameterDeclaration(); break;
}
//
- // Rule 364: parameter_declaration ::= declaration_specifiers
+ // Rule 365: parameter_declaration ::= declaration_specifiers
//
- case 364: { action.builder.
+ case 365: { action.builder.
consumeParameterDeclarationWithoutDeclarator(); break;
}
//
- // Rule 366: parameter_init_declarator ::= declarator = parameter_initializer
+ // Rule 367: parameter_init_declarator ::= declarator = parameter_initializer
//
- case 366: { action.builder.
+ case 367: { action.builder.
consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 368: parameter_init_declarator ::= abstract_declarator = parameter_initializer
+ // Rule 369: parameter_init_declarator ::= abstract_declarator = parameter_initializer
//
- case 368: { action.builder.
+ case 369: { action.builder.
consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 369: parameter_init_declarator ::= = parameter_initializer
+ // Rule 370: parameter_init_declarator ::= = parameter_initializer
//
- case 369: { action.builder.
+ case 370: { action.builder.
consumeDeclaratorWithInitializer(false); break;
}
//
- // Rule 370: parameter_initializer ::= assignment_expression
+ // Rule 371: parameter_initializer ::= assignment_expression
//
- case 370: { action.builder.
+ case 371: { action.builder.
consumeInitializer(); break;
}
//
- // Rule 371: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
+ // Rule 372: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
//
- case 371: { action.builder.
+ case 372: { action.builder.
consumeFunctionDefinition(false); break;
}
//
- // Rule 372: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
+ // Rule 373: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
//
- case 372: { action.builder.
+ case 373: { action.builder.
consumeFunctionDefinition(true); break;
}
//
- // Rule 375: initializer ::= ( expression_list )
+ // Rule 376: initializer ::= ( expression_list )
//
- case 375: { action.builder.
+ case 376: { action.builder.
consumeInitializerConstructor(); break;
}
//
- // Rule 376: initializer_clause ::= assignment_expression
+ // Rule 377: initializer_clause ::= assignment_expression
//
- case 376: { action.builder.
+ case 377: { action.builder.
consumeInitializer(); break;
}
//
- // Rule 377: initializer_clause ::= { <openscope-ast> initializer_list , }
+ // Rule 378: initializer_clause ::= { <openscope-ast> initializer_list , }
//
- case 377: { action.builder.
+ case 378: { action.builder.
consumeInitializerList(); break;
}
//
- // Rule 378: initializer_clause ::= { <openscope-ast> initializer_list }
+ // Rule 379: initializer_clause ::= { <openscope-ast> initializer_list }
//
- case 378: { action.builder.
+ case 379: { action.builder.
consumeInitializerList(); break;
}
//
- // Rule 379: initializer_clause ::= { <openscope-ast> }
+ // Rule 380: initializer_clause ::= { <openscope-ast> }
//
- case 379: { action.builder.
+ case 380: { action.builder.
consumeInitializerList(); break;
}
//
- // Rule 384: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
+ // Rule 385: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
//
- case 384: { action.builder.
+ case 385: { action.builder.
consumeClassSpecifier(); break;
}
//
- // Rule 385: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
+ // Rule 386: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
//
- case 385: { action.builder.
+ case 386: { action.builder.
consumeClassHead(false); break;
}
//
- // Rule 386: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt
+ // Rule 387: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt
//
- case 386: { action.builder.
+ case 387: { action.builder.
consumeClassHead(false); break;
}
//
- // Rule 387: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
+ // Rule 388: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
//
- case 387: { action.builder.
+ case 388: { action.builder.
consumeClassHead(true); break;
}
//
- // Rule 388: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt
+ // Rule 389: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt
//
- case 388: { action.builder.
+ case 389: { action.builder.
consumeClassHead(true); break;
}
//
- // Rule 390: identifier_name_opt ::= $Empty
+ // Rule 391: identifier_name_opt ::= $Empty
//
- case 390: { action.builder.
+ case 391: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 394: visibility_label ::= access_specifier_keyword :
+ // Rule 395: visibility_label ::= access_specifier_keyword :
//
- case 394: { action.builder.
+ case 395: { action.builder.
consumeVisibilityLabel(); break;
}
//
- // Rule 395: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
+ // Rule 396: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
//
- case 395: { action.builder.
- consumeDeclarationSimple(true); break;
+ case 396: { action.builder.
+ consumeDeclarationSimple(true, true); break;
}
//
- // Rule 396: member_declaration ::= declaration_specifiers_opt ;
+ // Rule 397: member_declaration ::= declaration_specifiers_opt ;
//
- case 396: { action.builder.
- consumeDeclarationSimple(false); break;
+ case 397: { action.builder.
+ consumeDeclarationSimple(false, false); break;
}
//
- // Rule 399: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
+ // Rule 400: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
//
- case 399: { action.builder.
+ case 400: { action.builder.
consumeMemberDeclarationQualifiedId(); break;
}
//
- // Rule 403: member_declaration ::= ERROR_TOKEN
+ // Rule 404: member_declaration ::= ERROR_TOKEN
//
- case 403: { action.builder.
+ case 404: { action.builder.
consumeDeclarationProblem(); break;
}
//
- // Rule 411: member_declarator ::= declarator constant_initializer
+ // Rule 412: member_declarator ::= declarator constant_initializer
//
- case 411: { action.builder.
+ case 412: { action.builder.
consumeMemberDeclaratorWithInitializer(); break;
}
//
- // Rule 412: member_declarator ::= bit_field_declarator : constant_expression
+ // Rule 413: member_declarator ::= bit_field_declarator : constant_expression
//
- case 412: { action.builder.
+ case 413: { action.builder.
consumeBitField(true); break;
}
//
- // Rule 413: member_declarator ::= : constant_expression
+ // Rule 414: member_declarator ::= : constant_expression
//
- case 413: { action.builder.
+ case 414: { action.builder.
consumeBitField(false); break;
}
//
- // Rule 414: bit_field_declarator ::= identifier_name
+ // Rule 415: bit_field_declarator ::= identifier_name
//
- case 414: { action.builder.
+ case 415: { action.builder.
consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 415: constant_initializer ::= = constant_expression
+ // Rule 416: constant_initializer ::= = constant_expression
//
- case 415: { action.builder.
+ case 416: { action.builder.
consumeInitializer(); break;
}
//
- // Rule 421: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
+ // Rule 422: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
//
- case 421: { action.builder.
+ case 422: { action.builder.
consumeBaseSpecifier(false, false); break;
}
//
- // Rule 422: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
+ // Rule 423: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
//
- case 422: { action.builder.
+ case 423: { action.builder.
consumeBaseSpecifier(true, true); break;
}
//
- // Rule 423: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
+ // Rule 424: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
//
- case 423: { action.builder.
+ case 424: { action.builder.
consumeBaseSpecifier(true, true); break;
}
//
- // Rule 424: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
+ // Rule 425: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
//
- case 424: { action.builder.
+ case 425: { action.builder.
consumeBaseSpecifier(true, false); break;
}
//
- // Rule 425: access_specifier_keyword ::= private
+ // Rule 426: access_specifier_keyword ::= private
//
- case 425: { action.builder.
+ case 426: { action.builder.
consumeAccessKeywordToken(); break;
}
//
- // Rule 426: access_specifier_keyword ::= protected
+ // Rule 427: access_specifier_keyword ::= protected
//
- case 426: { action.builder.
+ case 427: { action.builder.
consumeAccessKeywordToken(); break;
}
//
- // Rule 427: access_specifier_keyword ::= public
+ // Rule 428: access_specifier_keyword ::= public
//
- case 427: { action.builder.
+ case 428: { action.builder.
consumeAccessKeywordToken(); break;
}
//
- // Rule 429: access_specifier_keyword_opt ::= $Empty
+ // Rule 430: access_specifier_keyword_opt ::= $Empty
//
- case 429: { action.builder.
+ case 430: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 430: conversion_function_id_name ::= operator conversion_type_id
+ // Rule 431: conversion_function_id_name ::= operator conversion_type_id
//
- case 430: { action.builder.
+ case 431: { action.builder.
consumeConversionName(); break;
}
//
- // Rule 431: conversion_type_id ::= type_specifier_seq conversion_declarator
+ // Rule 432: conversion_type_id ::= type_specifier_seq conversion_declarator
//
- case 431: { action.builder.
+ case 432: { action.builder.
consumeTypeId(true); break;
}
//
- // Rule 432: conversion_type_id ::= type_specifier_seq
+ // Rule 433: conversion_type_id ::= type_specifier_seq
//
- case 432: { action.builder.
+ case 433: { action.builder.
consumeTypeId(false); break;
}
//
- // Rule 433: conversion_declarator ::= <openscope-ast> ptr_operator_seq
+ // Rule 434: conversion_declarator ::= <openscope-ast> ptr_operator_seq
//
- case 433: { action.builder.
+ case 434: { action.builder.
consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 439: mem_initializer ::= mem_initializer_name ( expression_list_opt )
+ // Rule 440: mem_initializer ::= mem_initializer_name ( expression_list_opt )
//
- case 439: { action.builder.
+ case 440: { action.builder.
consumeConstructorChainInitializer(); break;
}
//
- // Rule 440: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
+ // Rule 441: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
//
- case 440: { action.builder.
+ case 441: { action.builder.
consumeQualifiedId(false); break;
}
//
- // Rule 443: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
+ // Rule 444: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
//
- case 443: { action.builder.
+ case 444: { action.builder.
consumeTemplateId(); break;
}
//
- // Rule 444: operator_id_name ::= operator overloadable_operator
+ // Rule 445: operator_id_name ::= operator overloadable_operator
//
- case 444: { action.builder.
+ case 445: { action.builder.
consumeOperatorName(); break;
}
//
- // Rule 487: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
+ // Rule 488: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
//
- case 487: { action.builder.
+ case 488: { action.builder.
consumeTemplateDeclaration(); break;
}
//
- // Rule 488: export_opt ::= export
+ // Rule 489: export_opt ::= export
//
- case 488: { action.builder.
+ case 489: { action.builder.
consumePlaceHolder(); break;
}
//
- // Rule 489: export_opt ::= $Empty
+ // Rule 490: export_opt ::= $Empty
//
- case 489: { action.builder.
+ case 490: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 494: type_parameter ::= class identifier_name_opt
+ // Rule 495: type_parameter ::= class identifier_name_opt
//
- case 494: { action.builder.
+ case 495: { action.builder.
consumeSimpleTypeTemplateParameter(false); break;
}
//
- // Rule 495: type_parameter ::= class identifier_name_opt = type_id
+ // Rule 496: type_parameter ::= class identifier_name_opt = type_id
//
- case 495: { action.builder.
+ case 496: { action.builder.
consumeSimpleTypeTemplateParameter(true); break;
}
//
- // Rule 496: type_parameter ::= typename identifier_name_opt
+ // Rule 497: type_parameter ::= typename identifier_name_opt
//
- case 496: { action.builder.
+ case 497: { action.builder.
consumeSimpleTypeTemplateParameter(false); break;
}
//
- // Rule 497: type_parameter ::= typename identifier_name_opt = type_id
+ // Rule 498: type_parameter ::= typename identifier_name_opt = type_id
//
- case 497: { action.builder.
+ case 498: { action.builder.
consumeSimpleTypeTemplateParameter(true); break;
}
//
- // Rule 498: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
+ // Rule 499: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
//
- case 498: { action.builder.
+ case 499: { action.builder.
consumeTemplatedTypeTemplateParameter(false); break;
}
//
- // Rule 499: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
+ // Rule 500: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
//
- case 499: { action.builder.
+ case 500: { action.builder.
consumeTemplatedTypeTemplateParameter(true); break;
}
//
- // Rule 500: template_id_name ::= template_identifier < <openscope-ast> template_argument_list_opt >
+ // Rule 501: template_id_name ::= template_identifier < <openscope-ast> template_argument_list_opt >
//
- case 500: { action.builder.
+ case 501: { action.builder.
consumeTemplateId(); break;
}
//
- // Rule 509: explicit_instantiation ::= template declaration
+ // Rule 510: explicit_instantiation ::= template declaration
//
- case 509: { action.builder.
+ case 510: { action.builder.
consumeTemplateExplicitInstantiation(); break;
}
//
- // Rule 510: explicit_specialization ::= template < > declaration
+ // Rule 511: explicit_specialization ::= template < > declaration
//
- case 510: { action.builder.
+ case 511: { action.builder.
consumeTemplateExplicitSpecialization(); break;
}
//
- // Rule 511: try_block ::= try compound_statement <openscope-ast> handler_seq
+ // Rule 512: try_block ::= try compound_statement <openscope-ast> handler_seq
//
- case 511: { action.builder.
+ case 512: { action.builder.
consumeStatementTryBlock(); break;
}
//
- // Rule 514: handler ::= catch ( exception_declaration ) compound_statement
+ // Rule 515: handler ::= catch ( exception_declaration ) compound_statement
//
- case 514: { action.builder.
+ case 515: { action.builder.
consumeStatementCatchHandler(false); break;
}
//
- // Rule 515: handler ::= catch ( ... ) compound_statement
+ // Rule 516: handler ::= catch ( ... ) compound_statement
//
- case 515: { action.builder.
+ case 516: { action.builder.
consumeStatementCatchHandler(true); break;
}
//
- // Rule 516: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
+ // Rule 517: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
//
- case 516: { action.builder.
- consumeDeclarationSimple(true); break;
+ case 517: { action.builder.
+ consumeDeclarationSimple(true, false); break;
}
//
- // Rule 517: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
+ // Rule 518: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
//
- case 517: { action.builder.
- consumeDeclarationSimple(true); break;
+ case 518: { action.builder.
+ consumeDeclarationSimple(true, false); break;
}
//
- // Rule 518: exception_declaration ::= type_specifier_seq
+ // Rule 519: exception_declaration ::= type_specifier_seq
//
- case 518: { action.builder.
- consumeDeclarationSimple(false); break;
+ case 519: { action.builder.
+ consumeDeclarationSimple(false, false); break;
}

Back to the top