mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-23 14:42:11 +02:00
fix for parsing example 162230, template specializations in class body
This commit is contained in:
parent
17931aa374
commit
df1f2e40e1
16 changed files with 8402 additions and 8470 deletions
|
@ -1578,6 +1578,7 @@ member_declaration
|
|||
/. $Build consumeMemberDeclarationQualifiedId(); $EndBuild ./
|
||||
| using_declaration
|
||||
| template_declaration
|
||||
| explicit_specialization -- is this spec?
|
||||
| visibility_label
|
||||
| ERROR_TOKEN
|
||||
/. $Build consumeDeclarationProblem(); $EndBuild ./
|
||||
|
|
|
@ -1981,296 +1981,296 @@ public CPPExpressionStatementParser(String[] mapFrom) { // constructor
|
|||
}
|
||||
|
||||
//
|
||||
// Rule 409: member_declaration ::= ERROR_TOKEN
|
||||
// Rule 410: member_declaration ::= ERROR_TOKEN
|
||||
//
|
||||
case 409: { action.builder.
|
||||
case 410: { action.builder.
|
||||
consumeDeclarationProblem(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 417: member_declarator ::= declarator constant_initializer
|
||||
// Rule 418: member_declarator ::= declarator constant_initializer
|
||||
//
|
||||
case 417: { action.builder.
|
||||
case 418: { action.builder.
|
||||
consumeMemberDeclaratorWithInitializer(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 418: member_declarator ::= bit_field_declarator : constant_expression
|
||||
// Rule 419: member_declarator ::= bit_field_declarator : constant_expression
|
||||
//
|
||||
case 418: { action.builder.
|
||||
case 419: { action.builder.
|
||||
consumeBitField(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 419: member_declarator ::= : constant_expression
|
||||
// Rule 420: member_declarator ::= : constant_expression
|
||||
//
|
||||
case 419: { action.builder.
|
||||
case 420: { action.builder.
|
||||
consumeBitField(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 420: bit_field_declarator ::= identifier_name
|
||||
// Rule 421: bit_field_declarator ::= identifier_name
|
||||
//
|
||||
case 420: { action.builder.
|
||||
case 421: { action.builder.
|
||||
consumeDirectDeclaratorIdentifier(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 421: constant_initializer ::= = constant_expression
|
||||
// Rule 422: constant_initializer ::= = constant_expression
|
||||
//
|
||||
case 421: { action.builder.
|
||||
case 422: { action.builder.
|
||||
consumeInitializer(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 427: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
|
||||
// Rule 428: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 427: { action.builder.
|
||||
case 428: { action.builder.
|
||||
consumeBaseSpecifier(false, false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 428: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 428: { action.builder.
|
||||
consumeBaseSpecifier(true, true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 429: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
|
||||
// Rule 429: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 429: { action.builder.
|
||||
consumeBaseSpecifier(true, true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 430: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
|
||||
// Rule 430: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 430: { action.builder.
|
||||
consumeBaseSpecifier(true, true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 431: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 431: { action.builder.
|
||||
consumeBaseSpecifier(true, false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 431: access_specifier_keyword ::= private
|
||||
//
|
||||
case 431: { action.builder.
|
||||
consumeAccessKeywordToken(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 432: access_specifier_keyword ::= protected
|
||||
// Rule 432: access_specifier_keyword ::= private
|
||||
//
|
||||
case 432: { action.builder.
|
||||
consumeAccessKeywordToken(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 433: access_specifier_keyword ::= public
|
||||
// Rule 433: access_specifier_keyword ::= protected
|
||||
//
|
||||
case 433: { action.builder.
|
||||
consumeAccessKeywordToken(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 435: access_specifier_keyword_opt ::= $Empty
|
||||
// Rule 434: access_specifier_keyword ::= public
|
||||
//
|
||||
case 435: { action.builder.
|
||||
case 434: { action.builder.
|
||||
consumeAccessKeywordToken(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 436: access_specifier_keyword_opt ::= $Empty
|
||||
//
|
||||
case 436: { action.builder.
|
||||
consumeEmpty(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 436: conversion_function_id_name ::= operator conversion_type_id
|
||||
// Rule 437: conversion_function_id_name ::= operator conversion_type_id
|
||||
//
|
||||
case 436: { action.builder.
|
||||
case 437: { action.builder.
|
||||
consumeConversionName(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 437: conversion_type_id ::= type_specifier_seq conversion_declarator
|
||||
// Rule 438: conversion_type_id ::= type_specifier_seq conversion_declarator
|
||||
//
|
||||
case 437: { action.builder.
|
||||
case 438: { action.builder.
|
||||
consumeTypeId(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 438: conversion_type_id ::= type_specifier_seq
|
||||
// Rule 439: conversion_type_id ::= type_specifier_seq
|
||||
//
|
||||
case 438: { action.builder.
|
||||
case 439: { action.builder.
|
||||
consumeTypeId(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 439: conversion_declarator ::= <openscope-ast> ptr_operator_seq
|
||||
// Rule 440: conversion_declarator ::= <openscope-ast> ptr_operator_seq
|
||||
//
|
||||
case 439: { action.builder.
|
||||
case 440: { action.builder.
|
||||
consumeDeclaratorWithPointer(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 445: mem_initializer ::= mem_initializer_name ( expression_list_opt )
|
||||
// Rule 446: mem_initializer ::= mem_initializer_name ( expression_list_opt )
|
||||
//
|
||||
case 445: { action.builder.
|
||||
case 446: { action.builder.
|
||||
consumeConstructorChainInitializer(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 446: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
|
||||
// Rule 447: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 446: { action.builder.
|
||||
case 447: { action.builder.
|
||||
consumeQualifiedId(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 449: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
|
||||
// Rule 450: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
|
||||
//
|
||||
case 449: { action.builder.
|
||||
case 450: { action.builder.
|
||||
consumeTemplateId(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 450: operator_id_name ::= operator overloadable_operator
|
||||
// Rule 451: operator_id_name ::= operator overloadable_operator
|
||||
//
|
||||
case 450: { action.builder.
|
||||
case 451: { action.builder.
|
||||
consumeOperatorName(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 493: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
|
||||
// Rule 494: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
|
||||
//
|
||||
case 493: { action.builder.
|
||||
case 494: { action.builder.
|
||||
consumeTemplateDeclaration(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 494: export_opt ::= export
|
||||
// Rule 495: export_opt ::= export
|
||||
//
|
||||
case 494: { action.builder.
|
||||
case 495: { action.builder.
|
||||
consumePlaceHolder(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 495: export_opt ::= $Empty
|
||||
// Rule 496: export_opt ::= $Empty
|
||||
//
|
||||
case 495: { action.builder.
|
||||
case 496: { action.builder.
|
||||
consumeEmpty(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 499: template_parameter ::= parameter_declaration
|
||||
// Rule 500: template_parameter ::= parameter_declaration
|
||||
//
|
||||
case 499: { action.builder.
|
||||
case 500: { action.builder.
|
||||
consumeTemplateParamterDeclaration(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 500: type_parameter ::= class identifier_name_opt
|
||||
//
|
||||
case 500: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 501: type_parameter ::= class identifier_name_opt = type_id
|
||||
// Rule 501: type_parameter ::= class identifier_name_opt
|
||||
//
|
||||
case 501: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 502: type_parameter ::= typename identifier_name_opt
|
||||
//
|
||||
case 502: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 503: type_parameter ::= typename identifier_name_opt = type_id
|
||||
// Rule 502: type_parameter ::= class identifier_name_opt = type_id
|
||||
//
|
||||
case 503: { action.builder.
|
||||
case 502: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 504: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
|
||||
// Rule 503: type_parameter ::= typename identifier_name_opt
|
||||
//
|
||||
case 503: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 504: type_parameter ::= typename identifier_name_opt = type_id
|
||||
//
|
||||
case 504: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 505: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
|
||||
//
|
||||
case 505: { action.builder.
|
||||
consumeTemplatedTypeTemplateParameter(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 505: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
|
||||
// Rule 506: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
|
||||
//
|
||||
case 505: { action.builder.
|
||||
case 506: { action.builder.
|
||||
consumeTemplatedTypeTemplateParameter(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 506: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
|
||||
// Rule 507: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
|
||||
//
|
||||
case 506: { action.builder.
|
||||
case 507: { action.builder.
|
||||
consumeTemplateId(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 514: explicit_instantiation ::= template declaration
|
||||
// Rule 515: explicit_instantiation ::= template declaration
|
||||
//
|
||||
case 514: { action.builder.
|
||||
case 515: { action.builder.
|
||||
consumeTemplateExplicitInstantiation(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 515: explicit_specialization ::= template < > declaration
|
||||
// Rule 516: explicit_specialization ::= template < > declaration
|
||||
//
|
||||
case 515: { action.builder.
|
||||
case 516: { action.builder.
|
||||
consumeTemplateExplicitSpecialization(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 516: try_block ::= try compound_statement <openscope-ast> handler_seq
|
||||
// Rule 517: try_block ::= try compound_statement <openscope-ast> handler_seq
|
||||
//
|
||||
case 516: { action.builder.
|
||||
case 517: { action.builder.
|
||||
consumeStatementTryBlock(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 519: handler ::= catch ( exception_declaration ) compound_statement
|
||||
// Rule 520: handler ::= catch ( exception_declaration ) compound_statement
|
||||
//
|
||||
case 519: { action.builder.
|
||||
case 520: { action.builder.
|
||||
consumeStatementCatchHandler(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 520: handler ::= catch ( ... ) compound_statement
|
||||
// Rule 521: handler ::= catch ( ... ) compound_statement
|
||||
//
|
||||
case 520: { action.builder.
|
||||
case 521: { action.builder.
|
||||
consumeStatementCatchHandler(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 521: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
||||
//
|
||||
case 521: { action.builder.
|
||||
consumeDeclarationSimple(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 522: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
||||
// Rule 522: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
||||
//
|
||||
case 522: { action.builder.
|
||||
consumeDeclarationSimple(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 523: exception_declaration ::= type_specifier_seq
|
||||
// Rule 523: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
||||
//
|
||||
case 523: { action.builder.
|
||||
consumeDeclarationSimple(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 524: exception_declaration ::= type_specifier_seq
|
||||
//
|
||||
case 524: { action.builder.
|
||||
consumeDeclarationSimple(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 531: expression_parser_start ::= ERROR_TOKEN
|
||||
// Rule 532: expression_parser_start ::= ERROR_TOKEN
|
||||
//
|
||||
case 531: { action.builder.
|
||||
case 532: { action.builder.
|
||||
consumeExpressionProblem(); break;
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -100,12 +100,12 @@ public interface CPPExpressionStatementParsersym {
|
|||
TK_Plus = 11,
|
||||
TK_Minus = 12,
|
||||
TK_Tilde = 5,
|
||||
TK_Bang = 29,
|
||||
TK_Bang = 30,
|
||||
TK_Slash = 91,
|
||||
TK_Percent = 92,
|
||||
TK_RightShift = 88,
|
||||
TK_LeftShift = 89,
|
||||
TK_LT = 30,
|
||||
TK_LT = 29,
|
||||
TK_GT = 62,
|
||||
TK_LE = 93,
|
||||
TK_GE = 94,
|
||||
|
@ -170,8 +170,8 @@ public interface CPPExpressionStatementParsersym {
|
|||
"PlusPlus",
|
||||
"MinusMinus",
|
||||
"stringlit",
|
||||
"Bang",
|
||||
"LT",
|
||||
"Bang",
|
||||
"template",
|
||||
"const_cast",
|
||||
"dynamic_cast",
|
||||
|
|
|
@ -1974,296 +1974,296 @@ public CPPNoCastExpressionParser(String[] mapFrom) { // constructor
|
|||
}
|
||||
|
||||
//
|
||||
// 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
|
||||
//
|
||||
case 427: { action.builder.
|
||||
consumeBaseSpecifier(true, true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 428: base_specifier ::= access_specifier_keyword virtual 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 428: { action.builder.
|
||||
consumeBaseSpecifier(true, true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 429: base_specifier ::= access_specifier_keyword 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 429: { action.builder.
|
||||
consumeBaseSpecifier(true, true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 430: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 430: { action.builder.
|
||||
consumeBaseSpecifier(true, false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 430: access_specifier_keyword ::= private
|
||||
//
|
||||
case 430: { action.builder.
|
||||
consumeAccessKeywordToken(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 431: access_specifier_keyword ::= protected
|
||||
// Rule 431: access_specifier_keyword ::= private
|
||||
//
|
||||
case 431: { action.builder.
|
||||
consumeAccessKeywordToken(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 432: access_specifier_keyword ::= public
|
||||
// Rule 432: access_specifier_keyword ::= protected
|
||||
//
|
||||
case 432: { action.builder.
|
||||
consumeAccessKeywordToken(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 434: access_specifier_keyword_opt ::= $Empty
|
||||
// Rule 433: access_specifier_keyword ::= public
|
||||
//
|
||||
case 434: { action.builder.
|
||||
case 433: { action.builder.
|
||||
consumeAccessKeywordToken(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 435: access_specifier_keyword_opt ::= $Empty
|
||||
//
|
||||
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
|
||||
//
|
||||
case 499: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 500: type_parameter ::= class identifier_name_opt = type_id
|
||||
// Rule 500: type_parameter ::= class identifier_name_opt
|
||||
//
|
||||
case 500: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 501: type_parameter ::= typename identifier_name_opt
|
||||
//
|
||||
case 501: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 502: type_parameter ::= typename identifier_name_opt = type_id
|
||||
// Rule 501: type_parameter ::= class identifier_name_opt = type_id
|
||||
//
|
||||
case 502: { action.builder.
|
||||
case 501: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 503: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
|
||||
// Rule 502: type_parameter ::= typename identifier_name_opt
|
||||
//
|
||||
case 502: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 503: type_parameter ::= typename identifier_name_opt = type_id
|
||||
//
|
||||
case 503: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 504: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
|
||||
//
|
||||
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
|
||||
//
|
||||
case 520: { action.builder.
|
||||
consumeDeclarationSimple(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 521: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
||||
// Rule 521: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
||||
//
|
||||
case 521: { action.builder.
|
||||
consumeDeclarationSimple(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 522: exception_declaration ::= type_specifier_seq
|
||||
// Rule 522: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
||||
//
|
||||
case 522: { action.builder.
|
||||
consumeDeclarationSimple(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 523: exception_declaration ::= type_specifier_seq
|
||||
//
|
||||
case 523: { action.builder.
|
||||
consumeDeclarationSimple(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 530: no_cast_start ::= ERROR_TOKEN
|
||||
// Rule 531: no_cast_start ::= ERROR_TOKEN
|
||||
//
|
||||
case 530: { action.builder.
|
||||
case 531: { action.builder.
|
||||
consumeExpressionProblem(); break;
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -100,12 +100,12 @@ public interface CPPNoCastExpressionParsersym {
|
|||
TK_Plus = 11,
|
||||
TK_Minus = 12,
|
||||
TK_Tilde = 5,
|
||||
TK_Bang = 29,
|
||||
TK_Bang = 30,
|
||||
TK_Slash = 91,
|
||||
TK_Percent = 92,
|
||||
TK_RightShift = 88,
|
||||
TK_LeftShift = 89,
|
||||
TK_LT = 30,
|
||||
TK_LT = 29,
|
||||
TK_GT = 62,
|
||||
TK_LE = 93,
|
||||
TK_GE = 94,
|
||||
|
@ -170,8 +170,8 @@ public interface CPPNoCastExpressionParsersym {
|
|||
"PlusPlus",
|
||||
"MinusMinus",
|
||||
"stringlit",
|
||||
"Bang",
|
||||
"LT",
|
||||
"Bang",
|
||||
"template",
|
||||
"const_cast",
|
||||
"dynamic_cast",
|
||||
|
|
|
@ -1974,296 +1974,296 @@ public CPPNoFunctionDeclaratorParser(String[] mapFrom) { // constructor
|
|||
}
|
||||
|
||||
//
|
||||
// Rule 407: member_declaration ::= ERROR_TOKEN
|
||||
// Rule 408: member_declaration ::= ERROR_TOKEN
|
||||
//
|
||||
case 407: { action.builder.
|
||||
case 408: { action.builder.
|
||||
consumeDeclarationProblem(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 415: member_declarator ::= declarator constant_initializer
|
||||
// Rule 416: member_declarator ::= declarator constant_initializer
|
||||
//
|
||||
case 415: { action.builder.
|
||||
case 416: { action.builder.
|
||||
consumeMemberDeclaratorWithInitializer(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 416: member_declarator ::= bit_field_declarator : constant_expression
|
||||
// Rule 417: member_declarator ::= bit_field_declarator : constant_expression
|
||||
//
|
||||
case 416: { action.builder.
|
||||
case 417: { action.builder.
|
||||
consumeBitField(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 417: member_declarator ::= : constant_expression
|
||||
// Rule 418: member_declarator ::= : constant_expression
|
||||
//
|
||||
case 417: { action.builder.
|
||||
case 418: { action.builder.
|
||||
consumeBitField(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 418: bit_field_declarator ::= identifier_name
|
||||
// Rule 419: bit_field_declarator ::= identifier_name
|
||||
//
|
||||
case 418: { action.builder.
|
||||
case 419: { action.builder.
|
||||
consumeDirectDeclaratorIdentifier(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 419: constant_initializer ::= = constant_expression
|
||||
// Rule 420: constant_initializer ::= = constant_expression
|
||||
//
|
||||
case 419: { action.builder.
|
||||
case 420: { action.builder.
|
||||
consumeInitializer(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 425: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
|
||||
// Rule 426: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 425: { action.builder.
|
||||
case 426: { action.builder.
|
||||
consumeBaseSpecifier(false, false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 426: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 426: { action.builder.
|
||||
consumeBaseSpecifier(true, true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 427: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
|
||||
// Rule 427: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 427: { action.builder.
|
||||
consumeBaseSpecifier(true, true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 428: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
|
||||
// Rule 428: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 428: { action.builder.
|
||||
consumeBaseSpecifier(true, true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 429: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 429: { action.builder.
|
||||
consumeBaseSpecifier(true, false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 429: access_specifier_keyword ::= private
|
||||
//
|
||||
case 429: { action.builder.
|
||||
consumeAccessKeywordToken(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 430: access_specifier_keyword ::= protected
|
||||
// Rule 430: access_specifier_keyword ::= private
|
||||
//
|
||||
case 430: { action.builder.
|
||||
consumeAccessKeywordToken(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 431: access_specifier_keyword ::= public
|
||||
// Rule 431: access_specifier_keyword ::= protected
|
||||
//
|
||||
case 431: { action.builder.
|
||||
consumeAccessKeywordToken(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 433: access_specifier_keyword_opt ::= $Empty
|
||||
// Rule 432: access_specifier_keyword ::= public
|
||||
//
|
||||
case 433: { action.builder.
|
||||
case 432: { action.builder.
|
||||
consumeAccessKeywordToken(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 434: access_specifier_keyword_opt ::= $Empty
|
||||
//
|
||||
case 434: { action.builder.
|
||||
consumeEmpty(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 434: conversion_function_id_name ::= operator conversion_type_id
|
||||
// Rule 435: conversion_function_id_name ::= operator conversion_type_id
|
||||
//
|
||||
case 434: { action.builder.
|
||||
case 435: { action.builder.
|
||||
consumeConversionName(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 435: conversion_type_id ::= type_specifier_seq conversion_declarator
|
||||
// Rule 436: conversion_type_id ::= type_specifier_seq conversion_declarator
|
||||
//
|
||||
case 435: { action.builder.
|
||||
case 436: { action.builder.
|
||||
consumeTypeId(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 436: conversion_type_id ::= type_specifier_seq
|
||||
// Rule 437: conversion_type_id ::= type_specifier_seq
|
||||
//
|
||||
case 436: { action.builder.
|
||||
case 437: { action.builder.
|
||||
consumeTypeId(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 437: conversion_declarator ::= <openscope-ast> ptr_operator_seq
|
||||
// Rule 438: conversion_declarator ::= <openscope-ast> ptr_operator_seq
|
||||
//
|
||||
case 437: { action.builder.
|
||||
case 438: { action.builder.
|
||||
consumeDeclaratorWithPointer(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 443: mem_initializer ::= mem_initializer_name ( expression_list_opt )
|
||||
// Rule 444: mem_initializer ::= mem_initializer_name ( expression_list_opt )
|
||||
//
|
||||
case 443: { action.builder.
|
||||
case 444: { action.builder.
|
||||
consumeConstructorChainInitializer(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 444: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
|
||||
// Rule 445: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 444: { action.builder.
|
||||
case 445: { action.builder.
|
||||
consumeQualifiedId(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 447: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
|
||||
// Rule 448: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
|
||||
//
|
||||
case 447: { action.builder.
|
||||
case 448: { action.builder.
|
||||
consumeTemplateId(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 448: operator_id_name ::= operator overloadable_operator
|
||||
// Rule 449: operator_id_name ::= operator overloadable_operator
|
||||
//
|
||||
case 448: { action.builder.
|
||||
case 449: { action.builder.
|
||||
consumeOperatorName(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 491: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
|
||||
// Rule 492: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
|
||||
//
|
||||
case 491: { action.builder.
|
||||
case 492: { action.builder.
|
||||
consumeTemplateDeclaration(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 492: export_opt ::= export
|
||||
// Rule 493: export_opt ::= export
|
||||
//
|
||||
case 492: { action.builder.
|
||||
case 493: { action.builder.
|
||||
consumePlaceHolder(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 493: export_opt ::= $Empty
|
||||
// Rule 494: export_opt ::= $Empty
|
||||
//
|
||||
case 493: { action.builder.
|
||||
case 494: { action.builder.
|
||||
consumeEmpty(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 497: template_parameter ::= parameter_declaration
|
||||
// Rule 498: template_parameter ::= parameter_declaration
|
||||
//
|
||||
case 497: { action.builder.
|
||||
case 498: { action.builder.
|
||||
consumeTemplateParamterDeclaration(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 498: type_parameter ::= class identifier_name_opt
|
||||
//
|
||||
case 498: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 499: type_parameter ::= class identifier_name_opt = type_id
|
||||
// Rule 499: type_parameter ::= class identifier_name_opt
|
||||
//
|
||||
case 499: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 500: type_parameter ::= typename identifier_name_opt
|
||||
//
|
||||
case 500: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 501: type_parameter ::= typename identifier_name_opt = type_id
|
||||
// Rule 500: type_parameter ::= class identifier_name_opt = type_id
|
||||
//
|
||||
case 501: { action.builder.
|
||||
case 500: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 502: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
|
||||
// Rule 501: type_parameter ::= typename identifier_name_opt
|
||||
//
|
||||
case 501: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 502: type_parameter ::= typename identifier_name_opt = type_id
|
||||
//
|
||||
case 502: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 503: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
|
||||
//
|
||||
case 503: { action.builder.
|
||||
consumeTemplatedTypeTemplateParameter(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 503: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
|
||||
// Rule 504: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
|
||||
//
|
||||
case 503: { action.builder.
|
||||
case 504: { action.builder.
|
||||
consumeTemplatedTypeTemplateParameter(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 504: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
|
||||
// Rule 505: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
|
||||
//
|
||||
case 504: { action.builder.
|
||||
case 505: { action.builder.
|
||||
consumeTemplateId(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 512: explicit_instantiation ::= template declaration
|
||||
// Rule 513: explicit_instantiation ::= template declaration
|
||||
//
|
||||
case 512: { action.builder.
|
||||
case 513: { action.builder.
|
||||
consumeTemplateExplicitInstantiation(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 513: explicit_specialization ::= template < > declaration
|
||||
// Rule 514: explicit_specialization ::= template < > declaration
|
||||
//
|
||||
case 513: { action.builder.
|
||||
case 514: { action.builder.
|
||||
consumeTemplateExplicitSpecialization(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 514: try_block ::= try compound_statement <openscope-ast> handler_seq
|
||||
// Rule 515: try_block ::= try compound_statement <openscope-ast> handler_seq
|
||||
//
|
||||
case 514: { action.builder.
|
||||
case 515: { action.builder.
|
||||
consumeStatementTryBlock(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 517: handler ::= catch ( exception_declaration ) compound_statement
|
||||
// Rule 518: handler ::= catch ( exception_declaration ) compound_statement
|
||||
//
|
||||
case 517: { action.builder.
|
||||
case 518: { action.builder.
|
||||
consumeStatementCatchHandler(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 518: handler ::= catch ( ... ) compound_statement
|
||||
// Rule 519: handler ::= catch ( ... ) compound_statement
|
||||
//
|
||||
case 518: { action.builder.
|
||||
case 519: { action.builder.
|
||||
consumeStatementCatchHandler(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 519: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
||||
//
|
||||
case 519: { action.builder.
|
||||
consumeDeclarationSimple(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 520: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
||||
// Rule 520: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
||||
//
|
||||
case 520: { action.builder.
|
||||
consumeDeclarationSimple(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 521: exception_declaration ::= type_specifier_seq
|
||||
// Rule 521: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
||||
//
|
||||
case 521: { action.builder.
|
||||
consumeDeclarationSimple(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 522: exception_declaration ::= type_specifier_seq
|
||||
//
|
||||
case 522: { action.builder.
|
||||
consumeDeclarationSimple(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 529: no_function_declarator_start ::= ERROR_TOKEN
|
||||
// Rule 530: no_function_declarator_start ::= ERROR_TOKEN
|
||||
//
|
||||
case 529: { action.builder.
|
||||
case 530: { action.builder.
|
||||
consumeDeclarationProblem(); break;
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -81,7 +81,7 @@ public interface CPPNoFunctionDeclaratorParsersym {
|
|||
TK_integer = 42,
|
||||
TK_floating = 43,
|
||||
TK_charconst = 44,
|
||||
TK_stringlit = 28,
|
||||
TK_stringlit = 29,
|
||||
TK_identifier = 1,
|
||||
TK_Completion = 2,
|
||||
TK_EndOfCompletion = 9,
|
||||
|
@ -105,7 +105,7 @@ public interface CPPNoFunctionDeclaratorParsersym {
|
|||
TK_Percent = 92,
|
||||
TK_RightShift = 88,
|
||||
TK_LeftShift = 89,
|
||||
TK_LT = 29,
|
||||
TK_LT = 28,
|
||||
TK_GT = 62,
|
||||
TK_LE = 93,
|
||||
TK_GE = 94,
|
||||
|
@ -169,8 +169,8 @@ public interface CPPNoFunctionDeclaratorParsersym {
|
|||
"wchar_t",
|
||||
"PlusPlus",
|
||||
"MinusMinus",
|
||||
"stringlit",
|
||||
"LT",
|
||||
"stringlit",
|
||||
"template",
|
||||
"Bang",
|
||||
"const_cast",
|
||||
|
|
|
@ -1981,289 +1981,289 @@ public CPPParser(String[] mapFrom) { // constructor
|
|||
}
|
||||
|
||||
//
|
||||
// Rule 409: member_declaration ::= ERROR_TOKEN
|
||||
// Rule 410: member_declaration ::= ERROR_TOKEN
|
||||
//
|
||||
case 409: { action.builder.
|
||||
case 410: { action.builder.
|
||||
consumeDeclarationProblem(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 417: member_declarator ::= declarator constant_initializer
|
||||
// Rule 418: member_declarator ::= declarator constant_initializer
|
||||
//
|
||||
case 417: { action.builder.
|
||||
case 418: { action.builder.
|
||||
consumeMemberDeclaratorWithInitializer(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 418: member_declarator ::= bit_field_declarator : constant_expression
|
||||
// Rule 419: member_declarator ::= bit_field_declarator : constant_expression
|
||||
//
|
||||
case 418: { action.builder.
|
||||
case 419: { action.builder.
|
||||
consumeBitField(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 419: member_declarator ::= : constant_expression
|
||||
// Rule 420: member_declarator ::= : constant_expression
|
||||
//
|
||||
case 419: { action.builder.
|
||||
case 420: { action.builder.
|
||||
consumeBitField(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 420: bit_field_declarator ::= identifier_name
|
||||
// Rule 421: bit_field_declarator ::= identifier_name
|
||||
//
|
||||
case 420: { action.builder.
|
||||
case 421: { action.builder.
|
||||
consumeDirectDeclaratorIdentifier(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 421: constant_initializer ::= = constant_expression
|
||||
// Rule 422: constant_initializer ::= = constant_expression
|
||||
//
|
||||
case 421: { action.builder.
|
||||
case 422: { action.builder.
|
||||
consumeInitializer(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 427: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
|
||||
// Rule 428: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 427: { action.builder.
|
||||
case 428: { action.builder.
|
||||
consumeBaseSpecifier(false, false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 428: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 428: { action.builder.
|
||||
consumeBaseSpecifier(true, true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 429: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
|
||||
// Rule 429: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 429: { action.builder.
|
||||
consumeBaseSpecifier(true, true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 430: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
|
||||
// Rule 430: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 430: { action.builder.
|
||||
consumeBaseSpecifier(true, true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 431: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 431: { action.builder.
|
||||
consumeBaseSpecifier(true, false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 431: access_specifier_keyword ::= private
|
||||
//
|
||||
case 431: { action.builder.
|
||||
consumeAccessKeywordToken(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 432: access_specifier_keyword ::= protected
|
||||
// Rule 432: access_specifier_keyword ::= private
|
||||
//
|
||||
case 432: { action.builder.
|
||||
consumeAccessKeywordToken(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 433: access_specifier_keyword ::= public
|
||||
// Rule 433: access_specifier_keyword ::= protected
|
||||
//
|
||||
case 433: { action.builder.
|
||||
consumeAccessKeywordToken(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 435: access_specifier_keyword_opt ::= $Empty
|
||||
// Rule 434: access_specifier_keyword ::= public
|
||||
//
|
||||
case 435: { action.builder.
|
||||
case 434: { action.builder.
|
||||
consumeAccessKeywordToken(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 436: access_specifier_keyword_opt ::= $Empty
|
||||
//
|
||||
case 436: { action.builder.
|
||||
consumeEmpty(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 436: conversion_function_id_name ::= operator conversion_type_id
|
||||
// Rule 437: conversion_function_id_name ::= operator conversion_type_id
|
||||
//
|
||||
case 436: { action.builder.
|
||||
case 437: { action.builder.
|
||||
consumeConversionName(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 437: conversion_type_id ::= type_specifier_seq conversion_declarator
|
||||
// Rule 438: conversion_type_id ::= type_specifier_seq conversion_declarator
|
||||
//
|
||||
case 437: { action.builder.
|
||||
case 438: { action.builder.
|
||||
consumeTypeId(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 438: conversion_type_id ::= type_specifier_seq
|
||||
// Rule 439: conversion_type_id ::= type_specifier_seq
|
||||
//
|
||||
case 438: { action.builder.
|
||||
case 439: { action.builder.
|
||||
consumeTypeId(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 439: conversion_declarator ::= <openscope-ast> ptr_operator_seq
|
||||
// Rule 440: conversion_declarator ::= <openscope-ast> ptr_operator_seq
|
||||
//
|
||||
case 439: { action.builder.
|
||||
case 440: { action.builder.
|
||||
consumeDeclaratorWithPointer(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 445: mem_initializer ::= mem_initializer_name ( expression_list_opt )
|
||||
// Rule 446: mem_initializer ::= mem_initializer_name ( expression_list_opt )
|
||||
//
|
||||
case 445: { action.builder.
|
||||
case 446: { action.builder.
|
||||
consumeConstructorChainInitializer(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 446: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
|
||||
// Rule 447: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 446: { action.builder.
|
||||
case 447: { action.builder.
|
||||
consumeQualifiedId(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 449: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
|
||||
// Rule 450: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
|
||||
//
|
||||
case 449: { action.builder.
|
||||
case 450: { action.builder.
|
||||
consumeTemplateId(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 450: operator_id_name ::= operator overloadable_operator
|
||||
// Rule 451: operator_id_name ::= operator overloadable_operator
|
||||
//
|
||||
case 450: { action.builder.
|
||||
case 451: { action.builder.
|
||||
consumeOperatorName(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 493: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
|
||||
// Rule 494: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
|
||||
//
|
||||
case 493: { action.builder.
|
||||
case 494: { action.builder.
|
||||
consumeTemplateDeclaration(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 494: export_opt ::= export
|
||||
// Rule 495: export_opt ::= export
|
||||
//
|
||||
case 494: { action.builder.
|
||||
case 495: { action.builder.
|
||||
consumePlaceHolder(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 495: export_opt ::= $Empty
|
||||
// Rule 496: export_opt ::= $Empty
|
||||
//
|
||||
case 495: { action.builder.
|
||||
case 496: { action.builder.
|
||||
consumeEmpty(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 499: template_parameter ::= parameter_declaration
|
||||
// Rule 500: template_parameter ::= parameter_declaration
|
||||
//
|
||||
case 499: { action.builder.
|
||||
case 500: { action.builder.
|
||||
consumeTemplateParamterDeclaration(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 500: type_parameter ::= class identifier_name_opt
|
||||
//
|
||||
case 500: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 501: type_parameter ::= class identifier_name_opt = type_id
|
||||
// Rule 501: type_parameter ::= class identifier_name_opt
|
||||
//
|
||||
case 501: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 502: type_parameter ::= typename identifier_name_opt
|
||||
//
|
||||
case 502: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 503: type_parameter ::= typename identifier_name_opt = type_id
|
||||
// Rule 502: type_parameter ::= class identifier_name_opt = type_id
|
||||
//
|
||||
case 503: { action.builder.
|
||||
case 502: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 504: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
|
||||
// Rule 503: type_parameter ::= typename identifier_name_opt
|
||||
//
|
||||
case 503: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 504: type_parameter ::= typename identifier_name_opt = type_id
|
||||
//
|
||||
case 504: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 505: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
|
||||
//
|
||||
case 505: { action.builder.
|
||||
consumeTemplatedTypeTemplateParameter(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 505: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
|
||||
// Rule 506: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
|
||||
//
|
||||
case 505: { action.builder.
|
||||
case 506: { action.builder.
|
||||
consumeTemplatedTypeTemplateParameter(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 506: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
|
||||
// Rule 507: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
|
||||
//
|
||||
case 506: { action.builder.
|
||||
case 507: { action.builder.
|
||||
consumeTemplateId(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 514: explicit_instantiation ::= template declaration
|
||||
// Rule 515: explicit_instantiation ::= template declaration
|
||||
//
|
||||
case 514: { action.builder.
|
||||
case 515: { action.builder.
|
||||
consumeTemplateExplicitInstantiation(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 515: explicit_specialization ::= template < > declaration
|
||||
// Rule 516: explicit_specialization ::= template < > declaration
|
||||
//
|
||||
case 515: { action.builder.
|
||||
case 516: { action.builder.
|
||||
consumeTemplateExplicitSpecialization(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 516: try_block ::= try compound_statement <openscope-ast> handler_seq
|
||||
// Rule 517: try_block ::= try compound_statement <openscope-ast> handler_seq
|
||||
//
|
||||
case 516: { action.builder.
|
||||
case 517: { action.builder.
|
||||
consumeStatementTryBlock(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 519: handler ::= catch ( exception_declaration ) compound_statement
|
||||
// Rule 520: handler ::= catch ( exception_declaration ) compound_statement
|
||||
//
|
||||
case 519: { action.builder.
|
||||
case 520: { action.builder.
|
||||
consumeStatementCatchHandler(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 520: handler ::= catch ( ... ) compound_statement
|
||||
// Rule 521: handler ::= catch ( ... ) compound_statement
|
||||
//
|
||||
case 520: { action.builder.
|
||||
case 521: { action.builder.
|
||||
consumeStatementCatchHandler(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 521: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
||||
//
|
||||
case 521: { action.builder.
|
||||
consumeDeclarationSimple(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 522: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
||||
// Rule 522: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
||||
//
|
||||
case 522: { action.builder.
|
||||
consumeDeclarationSimple(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 523: exception_declaration ::= type_specifier_seq
|
||||
// Rule 523: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
||||
//
|
||||
case 523: { action.builder.
|
||||
consumeDeclarationSimple(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 524: exception_declaration ::= type_specifier_seq
|
||||
//
|
||||
case 524: { action.builder.
|
||||
consumeDeclarationSimple(false); break;
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -81,7 +81,7 @@ public interface CPPParsersym {
|
|||
TK_integer = 52,
|
||||
TK_floating = 53,
|
||||
TK_charconst = 54,
|
||||
TK_stringlit = 29,
|
||||
TK_stringlit = 30,
|
||||
TK_identifier = 1,
|
||||
TK_Completion = 2,
|
||||
TK_EndOfCompletion = 9,
|
||||
|
@ -105,7 +105,7 @@ public interface CPPParsersym {
|
|||
TK_Percent = 92,
|
||||
TK_RightShift = 88,
|
||||
TK_LeftShift = 89,
|
||||
TK_LT = 30,
|
||||
TK_LT = 29,
|
||||
TK_GT = 63,
|
||||
TK_LE = 93,
|
||||
TK_GE = 94,
|
||||
|
@ -170,8 +170,8 @@ public interface CPPParsersym {
|
|||
"PlusPlus",
|
||||
"MinusMinus",
|
||||
"template",
|
||||
"stringlit",
|
||||
"LT",
|
||||
"stringlit",
|
||||
"virtual",
|
||||
"Bang",
|
||||
"const",
|
||||
|
|
|
@ -1967,296 +1967,296 @@ public CPPSizeofExpressionParser(String[] mapFrom) { // constructor
|
|||
}
|
||||
|
||||
//
|
||||
// Rule 407: member_declaration ::= ERROR_TOKEN
|
||||
// Rule 408: member_declaration ::= ERROR_TOKEN
|
||||
//
|
||||
case 407: { action.builder.
|
||||
case 408: { action.builder.
|
||||
consumeDeclarationProblem(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 415: member_declarator ::= declarator constant_initializer
|
||||
// Rule 416: member_declarator ::= declarator constant_initializer
|
||||
//
|
||||
case 415: { action.builder.
|
||||
case 416: { action.builder.
|
||||
consumeMemberDeclaratorWithInitializer(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 416: member_declarator ::= bit_field_declarator : constant_expression
|
||||
// Rule 417: member_declarator ::= bit_field_declarator : constant_expression
|
||||
//
|
||||
case 416: { action.builder.
|
||||
case 417: { action.builder.
|
||||
consumeBitField(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 417: member_declarator ::= : constant_expression
|
||||
// Rule 418: member_declarator ::= : constant_expression
|
||||
//
|
||||
case 417: { action.builder.
|
||||
case 418: { action.builder.
|
||||
consumeBitField(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 418: bit_field_declarator ::= identifier_name
|
||||
// Rule 419: bit_field_declarator ::= identifier_name
|
||||
//
|
||||
case 418: { action.builder.
|
||||
case 419: { action.builder.
|
||||
consumeDirectDeclaratorIdentifier(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 419: constant_initializer ::= = constant_expression
|
||||
// Rule 420: constant_initializer ::= = constant_expression
|
||||
//
|
||||
case 419: { action.builder.
|
||||
case 420: { action.builder.
|
||||
consumeInitializer(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 425: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
|
||||
// Rule 426: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 425: { action.builder.
|
||||
case 426: { action.builder.
|
||||
consumeBaseSpecifier(false, false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 426: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 426: { action.builder.
|
||||
consumeBaseSpecifier(true, true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 427: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
|
||||
// Rule 427: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 427: { action.builder.
|
||||
consumeBaseSpecifier(true, true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 428: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
|
||||
// Rule 428: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 428: { action.builder.
|
||||
consumeBaseSpecifier(true, true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 429: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 429: { action.builder.
|
||||
consumeBaseSpecifier(true, false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 429: access_specifier_keyword ::= private
|
||||
//
|
||||
case 429: { action.builder.
|
||||
consumeAccessKeywordToken(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 430: access_specifier_keyword ::= protected
|
||||
// Rule 430: access_specifier_keyword ::= private
|
||||
//
|
||||
case 430: { action.builder.
|
||||
consumeAccessKeywordToken(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 431: access_specifier_keyword ::= public
|
||||
// Rule 431: access_specifier_keyword ::= protected
|
||||
//
|
||||
case 431: { action.builder.
|
||||
consumeAccessKeywordToken(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 433: access_specifier_keyword_opt ::= $Empty
|
||||
// Rule 432: access_specifier_keyword ::= public
|
||||
//
|
||||
case 433: { action.builder.
|
||||
case 432: { action.builder.
|
||||
consumeAccessKeywordToken(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 434: access_specifier_keyword_opt ::= $Empty
|
||||
//
|
||||
case 434: { action.builder.
|
||||
consumeEmpty(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 434: conversion_function_id_name ::= operator conversion_type_id
|
||||
// Rule 435: conversion_function_id_name ::= operator conversion_type_id
|
||||
//
|
||||
case 434: { action.builder.
|
||||
case 435: { action.builder.
|
||||
consumeConversionName(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 435: conversion_type_id ::= type_specifier_seq conversion_declarator
|
||||
// Rule 436: conversion_type_id ::= type_specifier_seq conversion_declarator
|
||||
//
|
||||
case 435: { action.builder.
|
||||
case 436: { action.builder.
|
||||
consumeTypeId(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 436: conversion_type_id ::= type_specifier_seq
|
||||
// Rule 437: conversion_type_id ::= type_specifier_seq
|
||||
//
|
||||
case 436: { action.builder.
|
||||
case 437: { action.builder.
|
||||
consumeTypeId(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 437: conversion_declarator ::= <openscope-ast> ptr_operator_seq
|
||||
// Rule 438: conversion_declarator ::= <openscope-ast> ptr_operator_seq
|
||||
//
|
||||
case 437: { action.builder.
|
||||
case 438: { action.builder.
|
||||
consumeDeclaratorWithPointer(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 443: mem_initializer ::= mem_initializer_name ( expression_list_opt )
|
||||
// Rule 444: mem_initializer ::= mem_initializer_name ( expression_list_opt )
|
||||
//
|
||||
case 443: { action.builder.
|
||||
case 444: { action.builder.
|
||||
consumeConstructorChainInitializer(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 444: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
|
||||
// Rule 445: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
|
||||
//
|
||||
case 444: { action.builder.
|
||||
case 445: { action.builder.
|
||||
consumeQualifiedId(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 447: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
|
||||
// Rule 448: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
|
||||
//
|
||||
case 447: { action.builder.
|
||||
case 448: { action.builder.
|
||||
consumeTemplateId(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 448: operator_id_name ::= operator overloadable_operator
|
||||
// Rule 449: operator_id_name ::= operator overloadable_operator
|
||||
//
|
||||
case 448: { action.builder.
|
||||
case 449: { action.builder.
|
||||
consumeOperatorName(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 491: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
|
||||
// Rule 492: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
|
||||
//
|
||||
case 491: { action.builder.
|
||||
case 492: { action.builder.
|
||||
consumeTemplateDeclaration(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 492: export_opt ::= export
|
||||
// Rule 493: export_opt ::= export
|
||||
//
|
||||
case 492: { action.builder.
|
||||
case 493: { action.builder.
|
||||
consumePlaceHolder(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 493: export_opt ::= $Empty
|
||||
// Rule 494: export_opt ::= $Empty
|
||||
//
|
||||
case 493: { action.builder.
|
||||
case 494: { action.builder.
|
||||
consumeEmpty(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 497: template_parameter ::= parameter_declaration
|
||||
// Rule 498: template_parameter ::= parameter_declaration
|
||||
//
|
||||
case 497: { action.builder.
|
||||
case 498: { action.builder.
|
||||
consumeTemplateParamterDeclaration(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 498: type_parameter ::= class identifier_name_opt
|
||||
//
|
||||
case 498: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 499: type_parameter ::= class identifier_name_opt = type_id
|
||||
// Rule 499: type_parameter ::= class identifier_name_opt
|
||||
//
|
||||
case 499: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 500: type_parameter ::= typename identifier_name_opt
|
||||
//
|
||||
case 500: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 501: type_parameter ::= typename identifier_name_opt = type_id
|
||||
// Rule 500: type_parameter ::= class identifier_name_opt = type_id
|
||||
//
|
||||
case 501: { action.builder.
|
||||
case 500: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 502: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
|
||||
// Rule 501: type_parameter ::= typename identifier_name_opt
|
||||
//
|
||||
case 501: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 502: type_parameter ::= typename identifier_name_opt = type_id
|
||||
//
|
||||
case 502: { action.builder.
|
||||
consumeSimpleTypeTemplateParameter(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 503: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
|
||||
//
|
||||
case 503: { action.builder.
|
||||
consumeTemplatedTypeTemplateParameter(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 503: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
|
||||
// Rule 504: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
|
||||
//
|
||||
case 503: { action.builder.
|
||||
case 504: { action.builder.
|
||||
consumeTemplatedTypeTemplateParameter(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 504: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
|
||||
// Rule 505: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
|
||||
//
|
||||
case 504: { action.builder.
|
||||
case 505: { action.builder.
|
||||
consumeTemplateId(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 512: explicit_instantiation ::= template declaration
|
||||
// Rule 513: explicit_instantiation ::= template declaration
|
||||
//
|
||||
case 512: { action.builder.
|
||||
case 513: { action.builder.
|
||||
consumeTemplateExplicitInstantiation(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 513: explicit_specialization ::= template < > declaration
|
||||
// Rule 514: explicit_specialization ::= template < > declaration
|
||||
//
|
||||
case 513: { action.builder.
|
||||
case 514: { action.builder.
|
||||
consumeTemplateExplicitSpecialization(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 514: try_block ::= try compound_statement <openscope-ast> handler_seq
|
||||
// Rule 515: try_block ::= try compound_statement <openscope-ast> handler_seq
|
||||
//
|
||||
case 514: { action.builder.
|
||||
case 515: { action.builder.
|
||||
consumeStatementTryBlock(); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 517: handler ::= catch ( exception_declaration ) compound_statement
|
||||
// Rule 518: handler ::= catch ( exception_declaration ) compound_statement
|
||||
//
|
||||
case 517: { action.builder.
|
||||
case 518: { action.builder.
|
||||
consumeStatementCatchHandler(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 518: handler ::= catch ( ... ) compound_statement
|
||||
// Rule 519: handler ::= catch ( ... ) compound_statement
|
||||
//
|
||||
case 518: { action.builder.
|
||||
case 519: { action.builder.
|
||||
consumeStatementCatchHandler(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 519: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
||||
//
|
||||
case 519: { action.builder.
|
||||
consumeDeclarationSimple(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 520: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
||||
// Rule 520: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
||||
//
|
||||
case 520: { action.builder.
|
||||
consumeDeclarationSimple(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 521: exception_declaration ::= type_specifier_seq
|
||||
// Rule 521: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
||||
//
|
||||
case 521: { action.builder.
|
||||
consumeDeclarationSimple(true); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 522: exception_declaration ::= type_specifier_seq
|
||||
//
|
||||
case 522: { action.builder.
|
||||
consumeDeclarationSimple(false); break;
|
||||
}
|
||||
|
||||
//
|
||||
// Rule 529: no_sizeof_type_name_start ::= ERROR_TOKEN
|
||||
// Rule 530: no_sizeof_type_name_start ::= ERROR_TOKEN
|
||||
//
|
||||
case 529: { action.builder.
|
||||
case 530: { action.builder.
|
||||
consumeExpressionProblem(); break;
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -100,12 +100,12 @@ public interface CPPSizeofExpressionParsersym {
|
|||
TK_Plus = 11,
|
||||
TK_Minus = 12,
|
||||
TK_Tilde = 5,
|
||||
TK_Bang = 29,
|
||||
TK_Bang = 30,
|
||||
TK_Slash = 91,
|
||||
TK_Percent = 92,
|
||||
TK_RightShift = 88,
|
||||
TK_LeftShift = 89,
|
||||
TK_LT = 30,
|
||||
TK_LT = 29,
|
||||
TK_GT = 62,
|
||||
TK_LE = 93,
|
||||
TK_GE = 94,
|
||||
|
@ -170,8 +170,8 @@ public interface CPPSizeofExpressionParsersym {
|
|||
"PlusPlus",
|
||||
"MinusMinus",
|
||||
"stringlit",
|
||||
"Bang",
|
||||
"LT",
|
||||
"Bang",
|
||||
"template",
|
||||
"const_cast",
|
||||
"dynamic_cast",
|
||||
|
|
Loading…
Add table
Reference in a new issue