mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-23 22:52:11 +02:00
added support for empty abstract declarators
This commit is contained in:
parent
504602213a
commit
620f798dea
13 changed files with 8364 additions and 8331 deletions
|
@ -1420,6 +1420,8 @@ direct_abstract_declarator
|
||||||
basic_direct_abstract_declarator
|
basic_direct_abstract_declarator
|
||||||
::= '(' abstract_declarator ')'
|
::= '(' abstract_declarator ')'
|
||||||
/. $Build consumeDirectDeclaratorBracketed(); $EndBuild ./
|
/. $Build consumeDirectDeclaratorBracketed(); $EndBuild ./
|
||||||
|
| '(' ')'
|
||||||
|
/. $Build consumeAbstractDeclaratorEmpty(); $EndBuild ./
|
||||||
|
|
||||||
|
|
||||||
array_direct_abstract_declarator
|
array_direct_abstract_declarator
|
||||||
|
|
|
@ -91,6 +91,7 @@ import org.eclipse.cdt.core.dom.lrparser.IParser;
|
||||||
import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
|
import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
|
||||||
import org.eclipse.cdt.core.dom.lrparser.LPGTokenAdapter;
|
import org.eclipse.cdt.core.dom.lrparser.LPGTokenAdapter;
|
||||||
import org.eclipse.cdt.core.dom.lrparser.action.BuildASTParserAction;
|
import org.eclipse.cdt.core.dom.lrparser.action.BuildASTParserAction;
|
||||||
|
import org.eclipse.cdt.core.parser.util.ASTPrinter;
|
||||||
import org.eclipse.cdt.core.parser.util.DebugUtil;
|
import org.eclipse.cdt.core.parser.util.DebugUtil;
|
||||||
import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPExpressionStatementParser;
|
import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPExpressionStatementParser;
|
||||||
import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPNoCastExpressionParser;
|
import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPNoCastExpressionParser;
|
||||||
|
@ -1245,8 +1246,8 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
|
||||||
if(!(declarator instanceof IASTFunctionDeclarator))
|
if(!(declarator instanceof IASTFunctionDeclarator))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
IParser alternateParser = new CPPNoFunctionDeclaratorParser(parser.getOrderedTerminalSymbols());
|
IParser secondaryParser = new CPPNoFunctionDeclaratorParser(parser.getOrderedTerminalSymbols());
|
||||||
IASTNode alternateDeclarator = runSecondaryParser(alternateParser);
|
IASTNode alternateDeclarator = runSecondaryParser(secondaryParser);
|
||||||
|
|
||||||
if(alternateDeclarator == null || alternateDeclarator instanceof IASTProblemDeclaration)
|
if(alternateDeclarator == null || alternateDeclarator instanceof IASTProblemDeclaration)
|
||||||
return;
|
return;
|
||||||
|
@ -1262,33 +1263,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns true iff the given AST contains at least one constructor initializer node.
|
|
||||||
* Can be called on any AST node but is mean to be called on declarations or declarators.
|
|
||||||
*
|
|
||||||
* TODO how freaking inefficient is this?
|
|
||||||
*/
|
|
||||||
private static boolean hasConstructorInitializer(IASTNode declaration) {
|
|
||||||
final boolean[] found = {false};
|
|
||||||
|
|
||||||
ASTVisitor detector = new ASTVisitor() {
|
|
||||||
{shouldVisitInitializers = true;}
|
|
||||||
@Override
|
|
||||||
public int visit(IASTInitializer initializer) {
|
|
||||||
if(initializer instanceof ICPPASTConstructorInitializer) {
|
|
||||||
found[0] = true; // who said Java doesn't have closures
|
|
||||||
return PROCESS_ABORT;
|
|
||||||
}
|
|
||||||
return PROCESS_CONTINUE;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
declaration.accept(detector);
|
|
||||||
System.out.println("hasConstructorInitializer: " + found[0]);
|
|
||||||
return found[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* visibility_label
|
* visibility_label
|
||||||
* ::= access_specifier_keyword ':'
|
* ::= access_specifier_keyword ':'
|
||||||
|
@ -1565,6 +1539,22 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Consume an empty bracketed abstract declarator.
|
||||||
|
*/
|
||||||
|
public void consumeAbstractDeclaratorEmpty() {
|
||||||
|
if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
|
||||||
|
|
||||||
|
IASTName name = nodeFactory.newName();
|
||||||
|
setOffsetAndLength(name, offset(parser.getLeftIToken())+1, 0);
|
||||||
|
IASTDeclarator declarator = nodeFactory.newDeclarator(name);
|
||||||
|
setOffsetAndLength(declarator);
|
||||||
|
astStack.push(declarator);
|
||||||
|
|
||||||
|
if(TRACE_AST_STACK) System.out.println(astStack);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* mem_initializer
|
* mem_initializer
|
||||||
* ::= mem_initializer_id '(' expression_list_opt ')'
|
* ::= mem_initializer_id '(' expression_list_opt ')'
|
||||||
|
|
|
@ -1750,520 +1750,527 @@ public CPPExpressionStatementParser(String[] mapFrom) { // constructor
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 354: array_direct_abstract_declarator ::= array_modifier
|
// Rule 354: basic_direct_abstract_declarator ::= ( )
|
||||||
//
|
//
|
||||||
case 354: { action.builder.
|
case 354: { action.builder.
|
||||||
|
consumeAbstractDeclaratorEmpty(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 355: array_direct_abstract_declarator ::= array_modifier
|
||||||
|
//
|
||||||
|
case 355: { action.builder.
|
||||||
consumeDirectDeclaratorArrayDeclarator(false); break;
|
consumeDirectDeclaratorArrayDeclarator(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 355: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
|
// Rule 356: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
|
||||||
//
|
|
||||||
case 355: { action.builder.
|
|
||||||
consumeDirectDeclaratorArrayDeclarator(true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 356: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
|
|
||||||
//
|
//
|
||||||
case 356: { action.builder.
|
case 356: { action.builder.
|
||||||
consumeDirectDeclaratorArrayDeclarator(true); break;
|
consumeDirectDeclaratorArrayDeclarator(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 357: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
|
// Rule 357: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
|
||||||
//
|
//
|
||||||
case 357: { action.builder.
|
case 357: { action.builder.
|
||||||
|
consumeDirectDeclaratorArrayDeclarator(true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 358: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
|
||||||
|
//
|
||||||
|
case 358: { action.builder.
|
||||||
consumeDirectDeclaratorFunctionDeclarator(true); break;
|
consumeDirectDeclaratorFunctionDeclarator(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 358: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
|
// Rule 359: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
|
||||||
//
|
//
|
||||||
case 358: { action.builder.
|
case 359: { action.builder.
|
||||||
consumeDirectDeclaratorFunctionDeclarator(false); break;
|
consumeDirectDeclaratorFunctionDeclarator(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt ...
|
// Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt ...
|
||||||
//
|
|
||||||
case 359: { action.builder.
|
|
||||||
consumePlaceHolder(); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt
|
|
||||||
//
|
//
|
||||||
case 360: { action.builder.
|
case 360: { action.builder.
|
||||||
consumeEmpty(); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 361: parameter_declaration_clause ::= parameter_declaration_list , ...
|
|
||||||
//
|
|
||||||
case 361: { action.builder.
|
|
||||||
consumePlaceHolder(); break;
|
consumePlaceHolder(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 367: abstract_declarator_opt ::= $Empty
|
// Rule 361: parameter_declaration_clause ::= parameter_declaration_list_opt
|
||||||
//
|
//
|
||||||
case 367: { action.builder.
|
case 361: { action.builder.
|
||||||
consumeEmpty(); break;
|
consumeEmpty(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 368: parameter_declaration ::= declaration_specifiers parameter_init_declarator
|
// Rule 362: parameter_declaration_clause ::= parameter_declaration_list , ...
|
||||||
|
//
|
||||||
|
case 362: { action.builder.
|
||||||
|
consumePlaceHolder(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 368: abstract_declarator_opt ::= $Empty
|
||||||
//
|
//
|
||||||
case 368: { action.builder.
|
case 368: { action.builder.
|
||||||
|
consumeEmpty(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 369: parameter_declaration ::= declaration_specifiers parameter_init_declarator
|
||||||
|
//
|
||||||
|
case 369: { action.builder.
|
||||||
consumeParameterDeclaration(); break;
|
consumeParameterDeclaration(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 369: parameter_declaration ::= declaration_specifiers
|
// Rule 370: parameter_declaration ::= declaration_specifiers
|
||||||
//
|
//
|
||||||
case 369: { action.builder.
|
case 370: { action.builder.
|
||||||
consumeParameterDeclarationWithoutDeclarator(); break;
|
consumeParameterDeclarationWithoutDeclarator(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 371: parameter_init_declarator ::= declarator = parameter_initializer
|
// Rule 372: parameter_init_declarator ::= declarator = parameter_initializer
|
||||||
//
|
//
|
||||||
case 371: { action.builder.
|
case 372: { action.builder.
|
||||||
consumeDeclaratorWithInitializer(true); break;
|
consumeDeclaratorWithInitializer(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 373: parameter_init_declarator ::= abstract_declarator = parameter_initializer
|
// Rule 374: parameter_init_declarator ::= abstract_declarator = parameter_initializer
|
||||||
//
|
|
||||||
case 373: { action.builder.
|
|
||||||
consumeDeclaratorWithInitializer(true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 374: parameter_init_declarator ::= = parameter_initializer
|
|
||||||
//
|
//
|
||||||
case 374: { action.builder.
|
case 374: { action.builder.
|
||||||
|
consumeDeclaratorWithInitializer(true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 375: parameter_init_declarator ::= = parameter_initializer
|
||||||
|
//
|
||||||
|
case 375: { action.builder.
|
||||||
consumeDeclaratorWithInitializer(false); break;
|
consumeDeclaratorWithInitializer(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 375: parameter_initializer ::= assignment_expression
|
// Rule 376: parameter_initializer ::= assignment_expression
|
||||||
//
|
//
|
||||||
case 375: { action.builder.
|
case 376: { action.builder.
|
||||||
consumeInitializer(); break;
|
consumeInitializer(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 376: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
|
// Rule 377: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
|
||||||
//
|
//
|
||||||
case 376: { action.builder.
|
case 377: { action.builder.
|
||||||
consumeFunctionDefinition(false); break;
|
consumeFunctionDefinition(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 377: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
|
// Rule 378: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
|
||||||
//
|
//
|
||||||
case 377: { action.builder.
|
case 378: { action.builder.
|
||||||
consumeFunctionDefinition(true); break;
|
consumeFunctionDefinition(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 380: initializer ::= ( expression_list )
|
// Rule 381: initializer ::= ( expression_list )
|
||||||
//
|
//
|
||||||
case 380: { action.builder.
|
case 381: { action.builder.
|
||||||
consumeInitializerConstructor(); break;
|
consumeInitializerConstructor(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 381: initializer_clause ::= assignment_expression
|
// Rule 382: initializer_clause ::= assignment_expression
|
||||||
//
|
//
|
||||||
case 381: { action.builder.
|
case 382: { action.builder.
|
||||||
consumeInitializer(); break;
|
consumeInitializer(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 382: initializer_clause ::= { <openscope-ast> initializer_list , }
|
// Rule 383: initializer_clause ::= { <openscope-ast> initializer_list , }
|
||||||
//
|
|
||||||
case 382: { action.builder.
|
|
||||||
consumeInitializerList(); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 383: initializer_clause ::= { <openscope-ast> initializer_list }
|
|
||||||
//
|
//
|
||||||
case 383: { action.builder.
|
case 383: { action.builder.
|
||||||
consumeInitializerList(); break;
|
consumeInitializerList(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 384: initializer_clause ::= { <openscope-ast> }
|
// Rule 384: initializer_clause ::= { <openscope-ast> initializer_list }
|
||||||
//
|
//
|
||||||
case 384: { action.builder.
|
case 384: { action.builder.
|
||||||
consumeInitializerList(); break;
|
consumeInitializerList(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 389: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
|
// Rule 385: initializer_clause ::= { <openscope-ast> }
|
||||||
//
|
//
|
||||||
case 389: { action.builder.
|
case 385: { action.builder.
|
||||||
|
consumeInitializerList(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 390: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
|
||||||
|
//
|
||||||
|
case 390: { action.builder.
|
||||||
consumeClassSpecifier(); break;
|
consumeClassSpecifier(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 390: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
|
// Rule 391: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
|
||||||
//
|
|
||||||
case 390: { action.builder.
|
|
||||||
consumeClassHead(false); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 391: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt
|
|
||||||
//
|
//
|
||||||
case 391: { action.builder.
|
case 391: { action.builder.
|
||||||
consumeClassHead(false); break;
|
consumeClassHead(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 392: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
|
// Rule 392: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt
|
||||||
//
|
//
|
||||||
case 392: { action.builder.
|
case 392: { action.builder.
|
||||||
consumeClassHead(true); break;
|
consumeClassHead(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 393: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt
|
// Rule 393: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
|
||||||
//
|
//
|
||||||
case 393: { action.builder.
|
case 393: { action.builder.
|
||||||
consumeClassHead(true); break;
|
consumeClassHead(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 395: identifier_name_opt ::= $Empty
|
// Rule 394: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt
|
||||||
//
|
//
|
||||||
case 395: { action.builder.
|
case 394: { action.builder.
|
||||||
|
consumeClassHead(true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 396: identifier_name_opt ::= $Empty
|
||||||
|
//
|
||||||
|
case 396: { action.builder.
|
||||||
consumeEmpty(); break;
|
consumeEmpty(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 399: visibility_label ::= access_specifier_keyword :
|
// Rule 400: visibility_label ::= access_specifier_keyword :
|
||||||
//
|
//
|
||||||
case 399: { action.builder.
|
case 400: { action.builder.
|
||||||
consumeVisibilityLabel(); break;
|
consumeVisibilityLabel(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 400: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
|
// Rule 401: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
|
||||||
//
|
//
|
||||||
case 400: { action.builder.
|
case 401: { action.builder.
|
||||||
consumeDeclarationSimple(true); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 401: member_declaration ::= declaration_specifiers_opt ;
|
// Rule 402: member_declaration ::= declaration_specifiers_opt ;
|
||||||
//
|
//
|
||||||
case 401: { action.builder.
|
case 402: { action.builder.
|
||||||
consumeDeclarationSimple(false); break;
|
consumeDeclarationSimple(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 404: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
|
// Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
|
||||||
//
|
//
|
||||||
case 404: { action.builder.
|
case 405: { action.builder.
|
||||||
consumeMemberDeclarationQualifiedId(); break;
|
consumeMemberDeclarationQualifiedId(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 408: member_declaration ::= ERROR_TOKEN
|
// Rule 409: member_declaration ::= ERROR_TOKEN
|
||||||
//
|
//
|
||||||
case 408: { action.builder.
|
case 409: { action.builder.
|
||||||
consumeDeclarationProblem(); break;
|
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;
|
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;
|
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;
|
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;
|
consumeDirectDeclaratorIdentifier(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 420: constant_initializer ::= = constant_expression
|
// Rule 421: constant_initializer ::= = constant_expression
|
||||||
//
|
//
|
||||||
case 420: { action.builder.
|
case 421: { action.builder.
|
||||||
consumeInitializer(); break;
|
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;
|
consumeBaseSpecifier(false, false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 427: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
|
// Rule 428: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
|
||||||
//
|
|
||||||
case 427: { action.builder.
|
|
||||||
consumeBaseSpecifier(true, true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 428: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
|
|
||||||
//
|
//
|
||||||
case 428: { action.builder.
|
case 428: { action.builder.
|
||||||
consumeBaseSpecifier(true, true); break;
|
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.
|
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;
|
consumeBaseSpecifier(true, false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 430: access_specifier_keyword ::= private
|
// Rule 431: access_specifier_keyword ::= private
|
||||||
//
|
|
||||||
case 430: { action.builder.
|
|
||||||
consumeAccessKeywordToken(); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 431: access_specifier_keyword ::= protected
|
|
||||||
//
|
//
|
||||||
case 431: { action.builder.
|
case 431: { action.builder.
|
||||||
consumeAccessKeywordToken(); break;
|
consumeAccessKeywordToken(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 432: access_specifier_keyword ::= public
|
// Rule 432: access_specifier_keyword ::= protected
|
||||||
//
|
//
|
||||||
case 432: { action.builder.
|
case 432: { action.builder.
|
||||||
consumeAccessKeywordToken(); break;
|
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;
|
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;
|
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;
|
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;
|
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;
|
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;
|
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;
|
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;
|
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;
|
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;
|
consumeTemplateDeclaration(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 493: export_opt ::= export
|
// Rule 494: export_opt ::= export
|
||||||
//
|
//
|
||||||
case 493: { action.builder.
|
case 494: { action.builder.
|
||||||
consumePlaceHolder(); break;
|
consumePlaceHolder(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 494: export_opt ::= $Empty
|
// Rule 495: export_opt ::= $Empty
|
||||||
//
|
//
|
||||||
case 494: { action.builder.
|
case 495: { action.builder.
|
||||||
consumeEmpty(); break;
|
consumeEmpty(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 498: template_parameter ::= parameter_declaration
|
// Rule 499: template_parameter ::= parameter_declaration
|
||||||
//
|
//
|
||||||
case 498: { action.builder.
|
case 499: { action.builder.
|
||||||
consumeTemplateParamterDeclaration(); break;
|
consumeTemplateParamterDeclaration(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 499: type_parameter ::= class identifier_name_opt
|
// Rule 500: type_parameter ::= class identifier_name_opt
|
||||||
//
|
|
||||||
case 499: { action.builder.
|
|
||||||
consumeSimpleTypeTemplateParameter(false); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 500: type_parameter ::= class identifier_name_opt = type_id
|
|
||||||
//
|
//
|
||||||
case 500: { action.builder.
|
case 500: { action.builder.
|
||||||
consumeSimpleTypeTemplateParameter(true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 501: type_parameter ::= typename identifier_name_opt
|
|
||||||
//
|
|
||||||
case 501: { action.builder.
|
|
||||||
consumeSimpleTypeTemplateParameter(false); break;
|
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;
|
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.
|
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;
|
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;
|
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;
|
consumeTemplateId(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 513: explicit_instantiation ::= template declaration
|
// Rule 514: explicit_instantiation ::= template declaration
|
||||||
//
|
//
|
||||||
case 513: { action.builder.
|
case 514: { action.builder.
|
||||||
consumeTemplateExplicitInstantiation(); break;
|
consumeTemplateExplicitInstantiation(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 514: explicit_specialization ::= template < > declaration
|
// Rule 515: explicit_specialization ::= template < > declaration
|
||||||
//
|
//
|
||||||
case 514: { action.builder.
|
case 515: { action.builder.
|
||||||
consumeTemplateExplicitSpecialization(); break;
|
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;
|
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;
|
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;
|
consumeStatementCatchHandler(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 520: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
// Rule 521: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
||||||
//
|
|
||||||
case 520: { action.builder.
|
|
||||||
consumeDeclarationSimple(true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 521: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
|
||||||
//
|
//
|
||||||
case 521: { action.builder.
|
case 521: { action.builder.
|
||||||
consumeDeclarationSimple(true); break;
|
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.
|
case 522: { action.builder.
|
||||||
|
consumeDeclarationSimple(true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 523: exception_declaration ::= type_specifier_seq
|
||||||
|
//
|
||||||
|
case 523: { action.builder.
|
||||||
consumeDeclarationSimple(false); break;
|
consumeDeclarationSimple(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 530: expression_parser_start ::= ERROR_TOKEN
|
// Rule 531: expression_parser_start ::= ERROR_TOKEN
|
||||||
//
|
//
|
||||||
case 530: { action.builder.
|
case 531: { action.builder.
|
||||||
consumeExpressionProblem(); break;
|
consumeExpressionProblem(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1743,520 +1743,527 @@ public CPPNoCastExpressionParser(String[] mapFrom) { // constructor
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 353: array_direct_abstract_declarator ::= array_modifier
|
// Rule 353: basic_direct_abstract_declarator ::= ( )
|
||||||
//
|
//
|
||||||
case 353: { action.builder.
|
case 353: { action.builder.
|
||||||
|
consumeAbstractDeclaratorEmpty(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 354: array_direct_abstract_declarator ::= array_modifier
|
||||||
|
//
|
||||||
|
case 354: { action.builder.
|
||||||
consumeDirectDeclaratorArrayDeclarator(false); break;
|
consumeDirectDeclaratorArrayDeclarator(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 354: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
|
// Rule 355: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
|
||||||
//
|
|
||||||
case 354: { action.builder.
|
|
||||||
consumeDirectDeclaratorArrayDeclarator(true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 355: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
|
|
||||||
//
|
//
|
||||||
case 355: { action.builder.
|
case 355: { action.builder.
|
||||||
consumeDirectDeclaratorArrayDeclarator(true); break;
|
consumeDirectDeclaratorArrayDeclarator(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 356: 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 356: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
|
||||||
//
|
//
|
||||||
case 356: { action.builder.
|
case 356: { action.builder.
|
||||||
|
consumeDirectDeclaratorArrayDeclarator(true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 357: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
|
||||||
|
//
|
||||||
|
case 357: { action.builder.
|
||||||
consumeDirectDeclaratorFunctionDeclarator(true); break;
|
consumeDirectDeclaratorFunctionDeclarator(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 357: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
|
// Rule 358: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
|
||||||
//
|
//
|
||||||
case 357: { action.builder.
|
case 358: { action.builder.
|
||||||
consumeDirectDeclaratorFunctionDeclarator(false); break;
|
consumeDirectDeclaratorFunctionDeclarator(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt ...
|
// Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt ...
|
||||||
//
|
|
||||||
case 358: { action.builder.
|
|
||||||
consumePlaceHolder(); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt
|
|
||||||
//
|
//
|
||||||
case 359: { action.builder.
|
case 359: { action.builder.
|
||||||
consumeEmpty(); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 360: parameter_declaration_clause ::= parameter_declaration_list , ...
|
|
||||||
//
|
|
||||||
case 360: { action.builder.
|
|
||||||
consumePlaceHolder(); break;
|
consumePlaceHolder(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 366: abstract_declarator_opt ::= $Empty
|
// Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt
|
||||||
//
|
//
|
||||||
case 366: { action.builder.
|
case 360: { action.builder.
|
||||||
consumeEmpty(); break;
|
consumeEmpty(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator
|
// Rule 361: parameter_declaration_clause ::= parameter_declaration_list , ...
|
||||||
|
//
|
||||||
|
case 361: { action.builder.
|
||||||
|
consumePlaceHolder(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 367: abstract_declarator_opt ::= $Empty
|
||||||
//
|
//
|
||||||
case 367: { action.builder.
|
case 367: { action.builder.
|
||||||
|
consumeEmpty(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 368: parameter_declaration ::= declaration_specifiers parameter_init_declarator
|
||||||
|
//
|
||||||
|
case 368: { action.builder.
|
||||||
consumeParameterDeclaration(); break;
|
consumeParameterDeclaration(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 368: parameter_declaration ::= declaration_specifiers
|
// Rule 369: parameter_declaration ::= declaration_specifiers
|
||||||
//
|
//
|
||||||
case 368: { action.builder.
|
case 369: { action.builder.
|
||||||
consumeParameterDeclarationWithoutDeclarator(); break;
|
consumeParameterDeclarationWithoutDeclarator(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 370: parameter_init_declarator ::= declarator = parameter_initializer
|
// Rule 371: parameter_init_declarator ::= declarator = parameter_initializer
|
||||||
//
|
//
|
||||||
case 370: { action.builder.
|
case 371: { action.builder.
|
||||||
consumeDeclaratorWithInitializer(true); break;
|
consumeDeclaratorWithInitializer(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 372: parameter_init_declarator ::= abstract_declarator = parameter_initializer
|
// Rule 373: parameter_init_declarator ::= abstract_declarator = parameter_initializer
|
||||||
//
|
|
||||||
case 372: { action.builder.
|
|
||||||
consumeDeclaratorWithInitializer(true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 373: parameter_init_declarator ::= = parameter_initializer
|
|
||||||
//
|
//
|
||||||
case 373: { action.builder.
|
case 373: { action.builder.
|
||||||
|
consumeDeclaratorWithInitializer(true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 374: parameter_init_declarator ::= = parameter_initializer
|
||||||
|
//
|
||||||
|
case 374: { action.builder.
|
||||||
consumeDeclaratorWithInitializer(false); break;
|
consumeDeclaratorWithInitializer(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 374: parameter_initializer ::= assignment_expression
|
// Rule 375: parameter_initializer ::= assignment_expression
|
||||||
//
|
//
|
||||||
case 374: { action.builder.
|
case 375: { action.builder.
|
||||||
consumeInitializer(); break;
|
consumeInitializer(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 375: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
|
// Rule 376: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
|
||||||
//
|
//
|
||||||
case 375: { action.builder.
|
case 376: { action.builder.
|
||||||
consumeFunctionDefinition(false); break;
|
consumeFunctionDefinition(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 376: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
|
// Rule 377: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
|
||||||
//
|
//
|
||||||
case 376: { action.builder.
|
case 377: { action.builder.
|
||||||
consumeFunctionDefinition(true); break;
|
consumeFunctionDefinition(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 379: initializer ::= ( expression_list )
|
// Rule 380: initializer ::= ( expression_list )
|
||||||
//
|
//
|
||||||
case 379: { action.builder.
|
case 380: { action.builder.
|
||||||
consumeInitializerConstructor(); break;
|
consumeInitializerConstructor(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 380: initializer_clause ::= assignment_expression
|
// Rule 381: initializer_clause ::= assignment_expression
|
||||||
//
|
//
|
||||||
case 380: { action.builder.
|
case 381: { action.builder.
|
||||||
consumeInitializer(); break;
|
consumeInitializer(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 381: initializer_clause ::= { <openscope-ast> initializer_list , }
|
// Rule 382: initializer_clause ::= { <openscope-ast> initializer_list , }
|
||||||
//
|
|
||||||
case 381: { action.builder.
|
|
||||||
consumeInitializerList(); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 382: initializer_clause ::= { <openscope-ast> initializer_list }
|
|
||||||
//
|
//
|
||||||
case 382: { action.builder.
|
case 382: { action.builder.
|
||||||
consumeInitializerList(); break;
|
consumeInitializerList(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 383: initializer_clause ::= { <openscope-ast> }
|
// Rule 383: initializer_clause ::= { <openscope-ast> initializer_list }
|
||||||
//
|
//
|
||||||
case 383: { action.builder.
|
case 383: { action.builder.
|
||||||
consumeInitializerList(); break;
|
consumeInitializerList(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 388: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
|
// Rule 384: initializer_clause ::= { <openscope-ast> }
|
||||||
//
|
//
|
||||||
case 388: { action.builder.
|
case 384: { action.builder.
|
||||||
|
consumeInitializerList(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 389: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
|
||||||
|
//
|
||||||
|
case 389: { action.builder.
|
||||||
consumeClassSpecifier(); break;
|
consumeClassSpecifier(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 389: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
|
// Rule 390: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
|
||||||
//
|
|
||||||
case 389: { action.builder.
|
|
||||||
consumeClassHead(false); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 390: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt
|
|
||||||
//
|
//
|
||||||
case 390: { action.builder.
|
case 390: { action.builder.
|
||||||
consumeClassHead(false); break;
|
consumeClassHead(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 391: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
|
// Rule 391: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt
|
||||||
//
|
//
|
||||||
case 391: { action.builder.
|
case 391: { action.builder.
|
||||||
consumeClassHead(true); break;
|
consumeClassHead(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 392: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt
|
// Rule 392: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
|
||||||
//
|
//
|
||||||
case 392: { action.builder.
|
case 392: { action.builder.
|
||||||
consumeClassHead(true); break;
|
consumeClassHead(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 394: identifier_name_opt ::= $Empty
|
// Rule 393: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt
|
||||||
//
|
//
|
||||||
case 394: { action.builder.
|
case 393: { action.builder.
|
||||||
|
consumeClassHead(true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 395: identifier_name_opt ::= $Empty
|
||||||
|
//
|
||||||
|
case 395: { action.builder.
|
||||||
consumeEmpty(); break;
|
consumeEmpty(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 398: visibility_label ::= access_specifier_keyword :
|
// Rule 399: visibility_label ::= access_specifier_keyword :
|
||||||
//
|
//
|
||||||
case 398: { action.builder.
|
case 399: { action.builder.
|
||||||
consumeVisibilityLabel(); break;
|
consumeVisibilityLabel(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 399: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
|
// Rule 400: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
|
||||||
//
|
//
|
||||||
case 399: { action.builder.
|
case 400: { action.builder.
|
||||||
consumeDeclarationSimple(true); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 400: member_declaration ::= declaration_specifiers_opt ;
|
// Rule 401: member_declaration ::= declaration_specifiers_opt ;
|
||||||
//
|
//
|
||||||
case 400: { action.builder.
|
case 401: { action.builder.
|
||||||
consumeDeclarationSimple(false); break;
|
consumeDeclarationSimple(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 403: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
|
// Rule 404: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
|
||||||
//
|
//
|
||||||
case 403: { action.builder.
|
case 404: { action.builder.
|
||||||
consumeMemberDeclarationQualifiedId(); break;
|
consumeMemberDeclarationQualifiedId(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 407: member_declaration ::= ERROR_TOKEN
|
// Rule 408: member_declaration ::= ERROR_TOKEN
|
||||||
//
|
//
|
||||||
case 407: { action.builder.
|
case 408: { action.builder.
|
||||||
consumeDeclarationProblem(); break;
|
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;
|
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;
|
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;
|
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;
|
consumeDirectDeclaratorIdentifier(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 419: constant_initializer ::= = constant_expression
|
// Rule 420: constant_initializer ::= = constant_expression
|
||||||
//
|
//
|
||||||
case 419: { action.builder.
|
case 420: { action.builder.
|
||||||
consumeInitializer(); break;
|
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;
|
consumeBaseSpecifier(false, false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 426: base_specifier ::= virtual access_specifier_keyword_opt 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 426: { action.builder.
|
|
||||||
consumeBaseSpecifier(true, true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 427: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
|
|
||||||
//
|
//
|
||||||
case 427: { action.builder.
|
case 427: { action.builder.
|
||||||
consumeBaseSpecifier(true, true); break;
|
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.
|
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;
|
consumeBaseSpecifier(true, false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 429: access_specifier_keyword ::= private
|
// Rule 430: access_specifier_keyword ::= private
|
||||||
//
|
|
||||||
case 429: { action.builder.
|
|
||||||
consumeAccessKeywordToken(); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 430: access_specifier_keyword ::= protected
|
|
||||||
//
|
//
|
||||||
case 430: { action.builder.
|
case 430: { action.builder.
|
||||||
consumeAccessKeywordToken(); break;
|
consumeAccessKeywordToken(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 431: access_specifier_keyword ::= public
|
// Rule 431: access_specifier_keyword ::= protected
|
||||||
//
|
//
|
||||||
case 431: { action.builder.
|
case 431: { action.builder.
|
||||||
consumeAccessKeywordToken(); break;
|
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;
|
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;
|
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;
|
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;
|
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;
|
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;
|
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;
|
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;
|
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;
|
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;
|
consumeTemplateDeclaration(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 492: export_opt ::= export
|
// Rule 493: export_opt ::= export
|
||||||
//
|
//
|
||||||
case 492: { action.builder.
|
case 493: { action.builder.
|
||||||
consumePlaceHolder(); break;
|
consumePlaceHolder(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 493: export_opt ::= $Empty
|
// Rule 494: export_opt ::= $Empty
|
||||||
//
|
//
|
||||||
case 493: { action.builder.
|
case 494: { action.builder.
|
||||||
consumeEmpty(); break;
|
consumeEmpty(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 497: template_parameter ::= parameter_declaration
|
// Rule 498: template_parameter ::= parameter_declaration
|
||||||
//
|
//
|
||||||
case 497: { action.builder.
|
case 498: { action.builder.
|
||||||
consumeTemplateParamterDeclaration(); break;
|
consumeTemplateParamterDeclaration(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 498: type_parameter ::= class identifier_name_opt
|
// Rule 499: type_parameter ::= class identifier_name_opt
|
||||||
//
|
|
||||||
case 498: { action.builder.
|
|
||||||
consumeSimpleTypeTemplateParameter(false); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 499: type_parameter ::= class identifier_name_opt = type_id
|
|
||||||
//
|
//
|
||||||
case 499: { action.builder.
|
case 499: { action.builder.
|
||||||
consumeSimpleTypeTemplateParameter(true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 500: type_parameter ::= typename identifier_name_opt
|
|
||||||
//
|
|
||||||
case 500: { action.builder.
|
|
||||||
consumeSimpleTypeTemplateParameter(false); break;
|
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;
|
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.
|
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;
|
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;
|
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;
|
consumeTemplateId(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 512: explicit_instantiation ::= template declaration
|
// Rule 513: explicit_instantiation ::= template declaration
|
||||||
//
|
//
|
||||||
case 512: { action.builder.
|
case 513: { action.builder.
|
||||||
consumeTemplateExplicitInstantiation(); break;
|
consumeTemplateExplicitInstantiation(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 513: explicit_specialization ::= template < > declaration
|
// Rule 514: explicit_specialization ::= template < > declaration
|
||||||
//
|
//
|
||||||
case 513: { action.builder.
|
case 514: { action.builder.
|
||||||
consumeTemplateExplicitSpecialization(); break;
|
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;
|
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;
|
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;
|
consumeStatementCatchHandler(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 519: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
// Rule 520: 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
|
|
||||||
//
|
//
|
||||||
case 520: { action.builder.
|
case 520: { action.builder.
|
||||||
consumeDeclarationSimple(true); break;
|
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.
|
case 521: { action.builder.
|
||||||
|
consumeDeclarationSimple(true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 522: exception_declaration ::= type_specifier_seq
|
||||||
|
//
|
||||||
|
case 522: { action.builder.
|
||||||
consumeDeclarationSimple(false); break;
|
consumeDeclarationSimple(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 529: no_cast_start ::= ERROR_TOKEN
|
// Rule 530: no_cast_start ::= ERROR_TOKEN
|
||||||
//
|
//
|
||||||
case 529: { action.builder.
|
case 530: { action.builder.
|
||||||
consumeExpressionProblem(); break;
|
consumeExpressionProblem(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1743,520 +1743,527 @@ public CPPNoFunctionDeclaratorParser(String[] mapFrom) { // constructor
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 352: array_direct_abstract_declarator ::= array_modifier
|
// Rule 352: basic_direct_abstract_declarator ::= ( )
|
||||||
//
|
//
|
||||||
case 352: { action.builder.
|
case 352: { action.builder.
|
||||||
|
consumeAbstractDeclaratorEmpty(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 353: array_direct_abstract_declarator ::= array_modifier
|
||||||
|
//
|
||||||
|
case 353: { action.builder.
|
||||||
consumeDirectDeclaratorArrayDeclarator(false); break;
|
consumeDirectDeclaratorArrayDeclarator(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 353: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
|
// Rule 354: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
|
||||||
//
|
|
||||||
case 353: { action.builder.
|
|
||||||
consumeDirectDeclaratorArrayDeclarator(true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 354: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
|
|
||||||
//
|
//
|
||||||
case 354: { action.builder.
|
case 354: { action.builder.
|
||||||
consumeDirectDeclaratorArrayDeclarator(true); break;
|
consumeDirectDeclaratorArrayDeclarator(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 355: 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 355: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
|
||||||
//
|
//
|
||||||
case 355: { action.builder.
|
case 355: { action.builder.
|
||||||
|
consumeDirectDeclaratorArrayDeclarator(true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 356: 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 356: { action.builder.
|
||||||
consumeDirectDeclaratorFunctionDeclarator(true); break;
|
consumeDirectDeclaratorFunctionDeclarator(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 356: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
|
// Rule 357: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
|
||||||
//
|
//
|
||||||
case 356: { action.builder.
|
case 357: { action.builder.
|
||||||
consumeDirectDeclaratorFunctionDeclarator(false); break;
|
consumeDirectDeclaratorFunctionDeclarator(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 357: parameter_declaration_clause ::= parameter_declaration_list_opt ...
|
// Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt ...
|
||||||
//
|
|
||||||
case 357: { action.builder.
|
|
||||||
consumePlaceHolder(); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt
|
|
||||||
//
|
//
|
||||||
case 358: { action.builder.
|
case 358: { action.builder.
|
||||||
consumeEmpty(); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 359: parameter_declaration_clause ::= parameter_declaration_list , ...
|
|
||||||
//
|
|
||||||
case 359: { action.builder.
|
|
||||||
consumePlaceHolder(); break;
|
consumePlaceHolder(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 365: abstract_declarator_opt ::= $Empty
|
// Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt
|
||||||
//
|
//
|
||||||
case 365: { action.builder.
|
case 359: { action.builder.
|
||||||
consumeEmpty(); break;
|
consumeEmpty(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 366: parameter_declaration ::= declaration_specifiers parameter_init_declarator
|
// Rule 360: parameter_declaration_clause ::= parameter_declaration_list , ...
|
||||||
|
//
|
||||||
|
case 360: { action.builder.
|
||||||
|
consumePlaceHolder(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 366: abstract_declarator_opt ::= $Empty
|
||||||
//
|
//
|
||||||
case 366: { action.builder.
|
case 366: { action.builder.
|
||||||
|
consumeEmpty(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator
|
||||||
|
//
|
||||||
|
case 367: { action.builder.
|
||||||
consumeParameterDeclaration(); break;
|
consumeParameterDeclaration(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 367: parameter_declaration ::= declaration_specifiers
|
// Rule 368: parameter_declaration ::= declaration_specifiers
|
||||||
//
|
//
|
||||||
case 367: { action.builder.
|
case 368: { action.builder.
|
||||||
consumeParameterDeclarationWithoutDeclarator(); break;
|
consumeParameterDeclarationWithoutDeclarator(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 369: parameter_init_declarator ::= declarator = parameter_initializer
|
// Rule 370: parameter_init_declarator ::= declarator = parameter_initializer
|
||||||
//
|
//
|
||||||
case 369: { action.builder.
|
case 370: { action.builder.
|
||||||
consumeDeclaratorWithInitializer(true); break;
|
consumeDeclaratorWithInitializer(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 371: parameter_init_declarator ::= abstract_declarator = parameter_initializer
|
// Rule 372: parameter_init_declarator ::= abstract_declarator = parameter_initializer
|
||||||
//
|
|
||||||
case 371: { action.builder.
|
|
||||||
consumeDeclaratorWithInitializer(true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 372: parameter_init_declarator ::= = parameter_initializer
|
|
||||||
//
|
//
|
||||||
case 372: { action.builder.
|
case 372: { action.builder.
|
||||||
|
consumeDeclaratorWithInitializer(true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 373: parameter_init_declarator ::= = parameter_initializer
|
||||||
|
//
|
||||||
|
case 373: { action.builder.
|
||||||
consumeDeclaratorWithInitializer(false); break;
|
consumeDeclaratorWithInitializer(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 373: parameter_initializer ::= assignment_expression
|
// Rule 374: parameter_initializer ::= assignment_expression
|
||||||
//
|
//
|
||||||
case 373: { action.builder.
|
case 374: { action.builder.
|
||||||
consumeInitializer(); break;
|
consumeInitializer(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 374: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
|
// Rule 375: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
|
||||||
//
|
//
|
||||||
case 374: { action.builder.
|
case 375: { action.builder.
|
||||||
consumeFunctionDefinition(false); break;
|
consumeFunctionDefinition(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 375: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
|
// Rule 376: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
|
||||||
//
|
//
|
||||||
case 375: { action.builder.
|
case 376: { action.builder.
|
||||||
consumeFunctionDefinition(true); break;
|
consumeFunctionDefinition(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 378: initializer ::= ( expression_list )
|
// Rule 379: initializer ::= ( expression_list )
|
||||||
//
|
//
|
||||||
case 378: { action.builder.
|
case 379: { action.builder.
|
||||||
consumeInitializerConstructor(); break;
|
consumeInitializerConstructor(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 379: initializer_clause ::= assignment_expression
|
// Rule 380: initializer_clause ::= assignment_expression
|
||||||
//
|
//
|
||||||
case 379: { action.builder.
|
case 380: { action.builder.
|
||||||
consumeInitializer(); break;
|
consumeInitializer(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 380: initializer_clause ::= { <openscope-ast> initializer_list , }
|
// Rule 381: initializer_clause ::= { <openscope-ast> initializer_list , }
|
||||||
//
|
|
||||||
case 380: { action.builder.
|
|
||||||
consumeInitializerList(); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 381: initializer_clause ::= { <openscope-ast> initializer_list }
|
|
||||||
//
|
//
|
||||||
case 381: { action.builder.
|
case 381: { action.builder.
|
||||||
consumeInitializerList(); break;
|
consumeInitializerList(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 382: initializer_clause ::= { <openscope-ast> }
|
// Rule 382: initializer_clause ::= { <openscope-ast> initializer_list }
|
||||||
//
|
//
|
||||||
case 382: { action.builder.
|
case 382: { action.builder.
|
||||||
consumeInitializerList(); break;
|
consumeInitializerList(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 387: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
|
// Rule 383: initializer_clause ::= { <openscope-ast> }
|
||||||
//
|
//
|
||||||
case 387: { action.builder.
|
case 383: { action.builder.
|
||||||
|
consumeInitializerList(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 388: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
|
||||||
|
//
|
||||||
|
case 388: { action.builder.
|
||||||
consumeClassSpecifier(); break;
|
consumeClassSpecifier(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 388: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
|
// Rule 389: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
|
||||||
//
|
|
||||||
case 388: { action.builder.
|
|
||||||
consumeClassHead(false); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 389: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt
|
|
||||||
//
|
//
|
||||||
case 389: { action.builder.
|
case 389: { action.builder.
|
||||||
consumeClassHead(false); break;
|
consumeClassHead(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 390: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
|
// Rule 390: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt
|
||||||
//
|
//
|
||||||
case 390: { action.builder.
|
case 390: { action.builder.
|
||||||
consumeClassHead(true); break;
|
consumeClassHead(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 391: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt
|
// Rule 391: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
|
||||||
//
|
//
|
||||||
case 391: { action.builder.
|
case 391: { action.builder.
|
||||||
consumeClassHead(true); break;
|
consumeClassHead(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 393: identifier_name_opt ::= $Empty
|
// Rule 392: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt
|
||||||
//
|
//
|
||||||
case 393: { action.builder.
|
case 392: { action.builder.
|
||||||
|
consumeClassHead(true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 394: identifier_name_opt ::= $Empty
|
||||||
|
//
|
||||||
|
case 394: { action.builder.
|
||||||
consumeEmpty(); break;
|
consumeEmpty(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 397: visibility_label ::= access_specifier_keyword :
|
// Rule 398: visibility_label ::= access_specifier_keyword :
|
||||||
//
|
//
|
||||||
case 397: { action.builder.
|
case 398: { action.builder.
|
||||||
consumeVisibilityLabel(); break;
|
consumeVisibilityLabel(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 398: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
|
// Rule 399: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
|
||||||
//
|
//
|
||||||
case 398: { action.builder.
|
case 399: { action.builder.
|
||||||
consumeDeclarationSimple(true); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 399: member_declaration ::= declaration_specifiers_opt ;
|
// Rule 400: member_declaration ::= declaration_specifiers_opt ;
|
||||||
//
|
//
|
||||||
case 399: { action.builder.
|
case 400: { action.builder.
|
||||||
consumeDeclarationSimple(false); break;
|
consumeDeclarationSimple(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 402: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
|
// Rule 403: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
|
||||||
//
|
//
|
||||||
case 402: { action.builder.
|
case 403: { action.builder.
|
||||||
consumeMemberDeclarationQualifiedId(); break;
|
consumeMemberDeclarationQualifiedId(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 406: member_declaration ::= ERROR_TOKEN
|
// Rule 407: member_declaration ::= ERROR_TOKEN
|
||||||
//
|
//
|
||||||
case 406: { action.builder.
|
case 407: { action.builder.
|
||||||
consumeDeclarationProblem(); break;
|
consumeDeclarationProblem(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 414: member_declarator ::= declarator constant_initializer
|
// Rule 415: member_declarator ::= declarator constant_initializer
|
||||||
//
|
//
|
||||||
case 414: { action.builder.
|
case 415: { action.builder.
|
||||||
consumeMemberDeclaratorWithInitializer(); break;
|
consumeMemberDeclaratorWithInitializer(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 415: member_declarator ::= bit_field_declarator : constant_expression
|
// Rule 416: member_declarator ::= bit_field_declarator : constant_expression
|
||||||
//
|
//
|
||||||
case 415: { action.builder.
|
case 416: { action.builder.
|
||||||
consumeBitField(true); break;
|
consumeBitField(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 416: member_declarator ::= : constant_expression
|
// Rule 417: member_declarator ::= : constant_expression
|
||||||
//
|
//
|
||||||
case 416: { action.builder.
|
case 417: { action.builder.
|
||||||
consumeBitField(false); break;
|
consumeBitField(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 417: bit_field_declarator ::= identifier_name
|
// Rule 418: bit_field_declarator ::= identifier_name
|
||||||
//
|
//
|
||||||
case 417: { action.builder.
|
case 418: { action.builder.
|
||||||
consumeDirectDeclaratorIdentifier(); break;
|
consumeDirectDeclaratorIdentifier(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 418: constant_initializer ::= = constant_expression
|
// Rule 419: constant_initializer ::= = constant_expression
|
||||||
//
|
//
|
||||||
case 418: { action.builder.
|
case 419: { action.builder.
|
||||||
consumeInitializer(); break;
|
consumeInitializer(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 424: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
|
// Rule 425: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
|
||||||
//
|
//
|
||||||
case 424: { action.builder.
|
case 425: { action.builder.
|
||||||
consumeBaseSpecifier(false, false); break;
|
consumeBaseSpecifier(false, false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 425: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
|
// Rule 426: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
|
||||||
//
|
|
||||||
case 425: { action.builder.
|
|
||||||
consumeBaseSpecifier(true, true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 426: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
|
|
||||||
//
|
//
|
||||||
case 426: { action.builder.
|
case 426: { action.builder.
|
||||||
consumeBaseSpecifier(true, true); break;
|
consumeBaseSpecifier(true, true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 427: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
|
// Rule 427: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
|
||||||
//
|
//
|
||||||
case 427: { action.builder.
|
case 427: { action.builder.
|
||||||
|
consumeBaseSpecifier(true, true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 428: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
|
||||||
|
//
|
||||||
|
case 428: { action.builder.
|
||||||
consumeBaseSpecifier(true, false); break;
|
consumeBaseSpecifier(true, false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 428: access_specifier_keyword ::= private
|
// Rule 429: access_specifier_keyword ::= private
|
||||||
//
|
|
||||||
case 428: { action.builder.
|
|
||||||
consumeAccessKeywordToken(); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 429: access_specifier_keyword ::= protected
|
|
||||||
//
|
//
|
||||||
case 429: { action.builder.
|
case 429: { action.builder.
|
||||||
consumeAccessKeywordToken(); break;
|
consumeAccessKeywordToken(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 430: access_specifier_keyword ::= public
|
// Rule 430: access_specifier_keyword ::= protected
|
||||||
//
|
//
|
||||||
case 430: { action.builder.
|
case 430: { action.builder.
|
||||||
consumeAccessKeywordToken(); break;
|
consumeAccessKeywordToken(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 432: access_specifier_keyword_opt ::= $Empty
|
// Rule 431: access_specifier_keyword ::= public
|
||||||
//
|
//
|
||||||
case 432: { action.builder.
|
case 431: { action.builder.
|
||||||
|
consumeAccessKeywordToken(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 433: access_specifier_keyword_opt ::= $Empty
|
||||||
|
//
|
||||||
|
case 433: { action.builder.
|
||||||
consumeEmpty(); break;
|
consumeEmpty(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 433: conversion_function_id_name ::= operator conversion_type_id
|
// Rule 434: conversion_function_id_name ::= operator conversion_type_id
|
||||||
//
|
//
|
||||||
case 433: { action.builder.
|
case 434: { action.builder.
|
||||||
consumeConversionName(); break;
|
consumeConversionName(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 434: conversion_type_id ::= type_specifier_seq conversion_declarator
|
// Rule 435: conversion_type_id ::= type_specifier_seq conversion_declarator
|
||||||
//
|
//
|
||||||
case 434: { action.builder.
|
case 435: { action.builder.
|
||||||
consumeTypeId(true); break;
|
consumeTypeId(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 435: conversion_type_id ::= type_specifier_seq
|
// Rule 436: conversion_type_id ::= type_specifier_seq
|
||||||
//
|
//
|
||||||
case 435: { action.builder.
|
case 436: { action.builder.
|
||||||
consumeTypeId(false); break;
|
consumeTypeId(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 436: conversion_declarator ::= <openscope-ast> ptr_operator_seq
|
// Rule 437: conversion_declarator ::= <openscope-ast> ptr_operator_seq
|
||||||
//
|
//
|
||||||
case 436: { action.builder.
|
case 437: { action.builder.
|
||||||
consumeDeclaratorWithPointer(false); break;
|
consumeDeclaratorWithPointer(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 442: mem_initializer ::= mem_initializer_name ( expression_list_opt )
|
// Rule 443: mem_initializer ::= mem_initializer_name ( expression_list_opt )
|
||||||
//
|
//
|
||||||
case 442: { action.builder.
|
case 443: { action.builder.
|
||||||
consumeConstructorChainInitializer(); break;
|
consumeConstructorChainInitializer(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 443: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
|
// Rule 444: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
|
||||||
//
|
//
|
||||||
case 443: { action.builder.
|
case 444: { action.builder.
|
||||||
consumeQualifiedId(false); break;
|
consumeQualifiedId(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 446: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
|
// Rule 447: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
|
||||||
//
|
//
|
||||||
case 446: { action.builder.
|
case 447: { action.builder.
|
||||||
consumeTemplateId(); break;
|
consumeTemplateId(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 447: operator_id_name ::= operator overloadable_operator
|
// Rule 448: operator_id_name ::= operator overloadable_operator
|
||||||
//
|
//
|
||||||
case 447: { action.builder.
|
case 448: { action.builder.
|
||||||
consumeOperatorName(); break;
|
consumeOperatorName(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 490: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
|
// Rule 491: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
|
||||||
//
|
//
|
||||||
case 490: { action.builder.
|
case 491: { action.builder.
|
||||||
consumeTemplateDeclaration(); break;
|
consumeTemplateDeclaration(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 491: export_opt ::= export
|
// Rule 492: export_opt ::= export
|
||||||
//
|
//
|
||||||
case 491: { action.builder.
|
case 492: { action.builder.
|
||||||
consumePlaceHolder(); break;
|
consumePlaceHolder(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 492: export_opt ::= $Empty
|
// Rule 493: export_opt ::= $Empty
|
||||||
//
|
//
|
||||||
case 492: { action.builder.
|
case 493: { action.builder.
|
||||||
consumeEmpty(); break;
|
consumeEmpty(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 496: template_parameter ::= parameter_declaration
|
// Rule 497: template_parameter ::= parameter_declaration
|
||||||
//
|
//
|
||||||
case 496: { action.builder.
|
case 497: { action.builder.
|
||||||
consumeTemplateParamterDeclaration(); break;
|
consumeTemplateParamterDeclaration(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 497: type_parameter ::= class identifier_name_opt
|
// Rule 498: type_parameter ::= class identifier_name_opt
|
||||||
//
|
|
||||||
case 497: { action.builder.
|
|
||||||
consumeSimpleTypeTemplateParameter(false); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 498: type_parameter ::= class identifier_name_opt = type_id
|
|
||||||
//
|
//
|
||||||
case 498: { action.builder.
|
case 498: { action.builder.
|
||||||
consumeSimpleTypeTemplateParameter(true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 499: type_parameter ::= typename identifier_name_opt
|
|
||||||
//
|
|
||||||
case 499: { action.builder.
|
|
||||||
consumeSimpleTypeTemplateParameter(false); break;
|
consumeSimpleTypeTemplateParameter(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 500: type_parameter ::= typename identifier_name_opt = type_id
|
// Rule 499: type_parameter ::= class identifier_name_opt = type_id
|
||||||
//
|
//
|
||||||
case 500: { action.builder.
|
case 499: { action.builder.
|
||||||
consumeSimpleTypeTemplateParameter(true); break;
|
consumeSimpleTypeTemplateParameter(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 501: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
|
// 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
|
||||||
//
|
//
|
||||||
case 501: { action.builder.
|
case 501: { action.builder.
|
||||||
|
consumeSimpleTypeTemplateParameter(true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 502: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
|
||||||
|
//
|
||||||
|
case 502: { action.builder.
|
||||||
consumeTemplatedTypeTemplateParameter(false); break;
|
consumeTemplatedTypeTemplateParameter(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 502: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
|
// Rule 503: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
|
||||||
//
|
//
|
||||||
case 502: { action.builder.
|
case 503: { action.builder.
|
||||||
consumeTemplatedTypeTemplateParameter(true); break;
|
consumeTemplatedTypeTemplateParameter(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 503: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
|
// Rule 504: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
|
||||||
//
|
//
|
||||||
case 503: { action.builder.
|
case 504: { action.builder.
|
||||||
consumeTemplateId(); break;
|
consumeTemplateId(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 511: explicit_instantiation ::= template declaration
|
// Rule 512: explicit_instantiation ::= template declaration
|
||||||
//
|
//
|
||||||
case 511: { action.builder.
|
case 512: { action.builder.
|
||||||
consumeTemplateExplicitInstantiation(); break;
|
consumeTemplateExplicitInstantiation(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 512: explicit_specialization ::= template < > declaration
|
// Rule 513: explicit_specialization ::= template < > declaration
|
||||||
//
|
//
|
||||||
case 512: { action.builder.
|
case 513: { action.builder.
|
||||||
consumeTemplateExplicitSpecialization(); break;
|
consumeTemplateExplicitSpecialization(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 513: try_block ::= try compound_statement <openscope-ast> handler_seq
|
// Rule 514: try_block ::= try compound_statement <openscope-ast> handler_seq
|
||||||
//
|
//
|
||||||
case 513: { action.builder.
|
case 514: { action.builder.
|
||||||
consumeStatementTryBlock(); break;
|
consumeStatementTryBlock(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 516: handler ::= catch ( exception_declaration ) compound_statement
|
// Rule 517: handler ::= catch ( exception_declaration ) compound_statement
|
||||||
//
|
//
|
||||||
case 516: { action.builder.
|
case 517: { action.builder.
|
||||||
consumeStatementCatchHandler(false); break;
|
consumeStatementCatchHandler(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 517: handler ::= catch ( ... ) compound_statement
|
// Rule 518: handler ::= catch ( ... ) compound_statement
|
||||||
//
|
//
|
||||||
case 517: { action.builder.
|
case 518: { action.builder.
|
||||||
consumeStatementCatchHandler(true); break;
|
consumeStatementCatchHandler(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 518: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
// Rule 519: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
||||||
//
|
|
||||||
case 518: { action.builder.
|
|
||||||
consumeDeclarationSimple(true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 519: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
|
||||||
//
|
//
|
||||||
case 519: { action.builder.
|
case 519: { action.builder.
|
||||||
consumeDeclarationSimple(true); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 520: exception_declaration ::= type_specifier_seq
|
// Rule 520: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
||||||
//
|
//
|
||||||
case 520: { action.builder.
|
case 520: { action.builder.
|
||||||
|
consumeDeclarationSimple(true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 521: exception_declaration ::= type_specifier_seq
|
||||||
|
//
|
||||||
|
case 521: { action.builder.
|
||||||
consumeDeclarationSimple(false); break;
|
consumeDeclarationSimple(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 528: no_function_declarator_start ::= ERROR_TOKEN
|
// Rule 529: no_function_declarator_start ::= ERROR_TOKEN
|
||||||
//
|
//
|
||||||
case 528: { action.builder.
|
case 529: { action.builder.
|
||||||
consumeDeclarationProblem(); break;
|
consumeDeclarationProblem(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1750,513 +1750,520 @@ public CPPParser(String[] mapFrom) { // constructor
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 354: array_direct_abstract_declarator ::= array_modifier
|
// Rule 354: basic_direct_abstract_declarator ::= ( )
|
||||||
//
|
//
|
||||||
case 354: { action.builder.
|
case 354: { action.builder.
|
||||||
|
consumeAbstractDeclaratorEmpty(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 355: array_direct_abstract_declarator ::= array_modifier
|
||||||
|
//
|
||||||
|
case 355: { action.builder.
|
||||||
consumeDirectDeclaratorArrayDeclarator(false); break;
|
consumeDirectDeclaratorArrayDeclarator(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 355: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
|
// Rule 356: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
|
||||||
//
|
|
||||||
case 355: { action.builder.
|
|
||||||
consumeDirectDeclaratorArrayDeclarator(true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 356: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
|
|
||||||
//
|
//
|
||||||
case 356: { action.builder.
|
case 356: { action.builder.
|
||||||
consumeDirectDeclaratorArrayDeclarator(true); break;
|
consumeDirectDeclaratorArrayDeclarator(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 357: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
|
// Rule 357: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
|
||||||
//
|
//
|
||||||
case 357: { action.builder.
|
case 357: { action.builder.
|
||||||
|
consumeDirectDeclaratorArrayDeclarator(true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 358: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
|
||||||
|
//
|
||||||
|
case 358: { action.builder.
|
||||||
consumeDirectDeclaratorFunctionDeclarator(true); break;
|
consumeDirectDeclaratorFunctionDeclarator(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 358: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
|
// Rule 359: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
|
||||||
//
|
//
|
||||||
case 358: { action.builder.
|
case 359: { action.builder.
|
||||||
consumeDirectDeclaratorFunctionDeclarator(false); break;
|
consumeDirectDeclaratorFunctionDeclarator(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt ...
|
// Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt ...
|
||||||
//
|
|
||||||
case 359: { action.builder.
|
|
||||||
consumePlaceHolder(); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt
|
|
||||||
//
|
//
|
||||||
case 360: { action.builder.
|
case 360: { action.builder.
|
||||||
consumeEmpty(); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 361: parameter_declaration_clause ::= parameter_declaration_list , ...
|
|
||||||
//
|
|
||||||
case 361: { action.builder.
|
|
||||||
consumePlaceHolder(); break;
|
consumePlaceHolder(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 367: abstract_declarator_opt ::= $Empty
|
// Rule 361: parameter_declaration_clause ::= parameter_declaration_list_opt
|
||||||
//
|
//
|
||||||
case 367: { action.builder.
|
case 361: { action.builder.
|
||||||
consumeEmpty(); break;
|
consumeEmpty(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 368: parameter_declaration ::= declaration_specifiers parameter_init_declarator
|
// Rule 362: parameter_declaration_clause ::= parameter_declaration_list , ...
|
||||||
|
//
|
||||||
|
case 362: { action.builder.
|
||||||
|
consumePlaceHolder(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 368: abstract_declarator_opt ::= $Empty
|
||||||
//
|
//
|
||||||
case 368: { action.builder.
|
case 368: { action.builder.
|
||||||
|
consumeEmpty(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 369: parameter_declaration ::= declaration_specifiers parameter_init_declarator
|
||||||
|
//
|
||||||
|
case 369: { action.builder.
|
||||||
consumeParameterDeclaration(); break;
|
consumeParameterDeclaration(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 369: parameter_declaration ::= declaration_specifiers
|
// Rule 370: parameter_declaration ::= declaration_specifiers
|
||||||
//
|
//
|
||||||
case 369: { action.builder.
|
case 370: { action.builder.
|
||||||
consumeParameterDeclarationWithoutDeclarator(); break;
|
consumeParameterDeclarationWithoutDeclarator(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 371: parameter_init_declarator ::= declarator = parameter_initializer
|
// Rule 372: parameter_init_declarator ::= declarator = parameter_initializer
|
||||||
//
|
//
|
||||||
case 371: { action.builder.
|
case 372: { action.builder.
|
||||||
consumeDeclaratorWithInitializer(true); break;
|
consumeDeclaratorWithInitializer(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 373: parameter_init_declarator ::= abstract_declarator = parameter_initializer
|
// Rule 374: parameter_init_declarator ::= abstract_declarator = parameter_initializer
|
||||||
//
|
|
||||||
case 373: { action.builder.
|
|
||||||
consumeDeclaratorWithInitializer(true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 374: parameter_init_declarator ::= = parameter_initializer
|
|
||||||
//
|
//
|
||||||
case 374: { action.builder.
|
case 374: { action.builder.
|
||||||
|
consumeDeclaratorWithInitializer(true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 375: parameter_init_declarator ::= = parameter_initializer
|
||||||
|
//
|
||||||
|
case 375: { action.builder.
|
||||||
consumeDeclaratorWithInitializer(false); break;
|
consumeDeclaratorWithInitializer(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 375: parameter_initializer ::= assignment_expression
|
// Rule 376: parameter_initializer ::= assignment_expression
|
||||||
//
|
//
|
||||||
case 375: { action.builder.
|
case 376: { action.builder.
|
||||||
consumeInitializer(); break;
|
consumeInitializer(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 376: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
|
// Rule 377: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
|
||||||
//
|
//
|
||||||
case 376: { action.builder.
|
case 377: { action.builder.
|
||||||
consumeFunctionDefinition(false); break;
|
consumeFunctionDefinition(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 377: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
|
// Rule 378: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
|
||||||
//
|
//
|
||||||
case 377: { action.builder.
|
case 378: { action.builder.
|
||||||
consumeFunctionDefinition(true); break;
|
consumeFunctionDefinition(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 380: initializer ::= ( expression_list )
|
// Rule 381: initializer ::= ( expression_list )
|
||||||
//
|
//
|
||||||
case 380: { action.builder.
|
case 381: { action.builder.
|
||||||
consumeInitializerConstructor(); break;
|
consumeInitializerConstructor(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 381: initializer_clause ::= assignment_expression
|
// Rule 382: initializer_clause ::= assignment_expression
|
||||||
//
|
//
|
||||||
case 381: { action.builder.
|
case 382: { action.builder.
|
||||||
consumeInitializer(); break;
|
consumeInitializer(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 382: initializer_clause ::= { <openscope-ast> initializer_list , }
|
// Rule 383: initializer_clause ::= { <openscope-ast> initializer_list , }
|
||||||
//
|
|
||||||
case 382: { action.builder.
|
|
||||||
consumeInitializerList(); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 383: initializer_clause ::= { <openscope-ast> initializer_list }
|
|
||||||
//
|
//
|
||||||
case 383: { action.builder.
|
case 383: { action.builder.
|
||||||
consumeInitializerList(); break;
|
consumeInitializerList(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 384: initializer_clause ::= { <openscope-ast> }
|
// Rule 384: initializer_clause ::= { <openscope-ast> initializer_list }
|
||||||
//
|
//
|
||||||
case 384: { action.builder.
|
case 384: { action.builder.
|
||||||
consumeInitializerList(); break;
|
consumeInitializerList(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 389: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
|
// Rule 385: initializer_clause ::= { <openscope-ast> }
|
||||||
//
|
//
|
||||||
case 389: { action.builder.
|
case 385: { action.builder.
|
||||||
|
consumeInitializerList(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 390: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
|
||||||
|
//
|
||||||
|
case 390: { action.builder.
|
||||||
consumeClassSpecifier(); break;
|
consumeClassSpecifier(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 390: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
|
// Rule 391: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
|
||||||
//
|
|
||||||
case 390: { action.builder.
|
|
||||||
consumeClassHead(false); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 391: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt
|
|
||||||
//
|
//
|
||||||
case 391: { action.builder.
|
case 391: { action.builder.
|
||||||
consumeClassHead(false); break;
|
consumeClassHead(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 392: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
|
// Rule 392: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt
|
||||||
//
|
//
|
||||||
case 392: { action.builder.
|
case 392: { action.builder.
|
||||||
consumeClassHead(true); break;
|
consumeClassHead(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 393: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt
|
// Rule 393: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
|
||||||
//
|
//
|
||||||
case 393: { action.builder.
|
case 393: { action.builder.
|
||||||
consumeClassHead(true); break;
|
consumeClassHead(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 395: identifier_name_opt ::= $Empty
|
// Rule 394: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt
|
||||||
//
|
//
|
||||||
case 395: { action.builder.
|
case 394: { action.builder.
|
||||||
|
consumeClassHead(true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 396: identifier_name_opt ::= $Empty
|
||||||
|
//
|
||||||
|
case 396: { action.builder.
|
||||||
consumeEmpty(); break;
|
consumeEmpty(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 399: visibility_label ::= access_specifier_keyword :
|
// Rule 400: visibility_label ::= access_specifier_keyword :
|
||||||
//
|
//
|
||||||
case 399: { action.builder.
|
case 400: { action.builder.
|
||||||
consumeVisibilityLabel(); break;
|
consumeVisibilityLabel(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 400: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
|
// Rule 401: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
|
||||||
//
|
//
|
||||||
case 400: { action.builder.
|
case 401: { action.builder.
|
||||||
consumeDeclarationSimple(true); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 401: member_declaration ::= declaration_specifiers_opt ;
|
// Rule 402: member_declaration ::= declaration_specifiers_opt ;
|
||||||
//
|
//
|
||||||
case 401: { action.builder.
|
case 402: { action.builder.
|
||||||
consumeDeclarationSimple(false); break;
|
consumeDeclarationSimple(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 404: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
|
// Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
|
||||||
//
|
//
|
||||||
case 404: { action.builder.
|
case 405: { action.builder.
|
||||||
consumeMemberDeclarationQualifiedId(); break;
|
consumeMemberDeclarationQualifiedId(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 408: member_declaration ::= ERROR_TOKEN
|
// Rule 409: member_declaration ::= ERROR_TOKEN
|
||||||
//
|
//
|
||||||
case 408: { action.builder.
|
case 409: { action.builder.
|
||||||
consumeDeclarationProblem(); break;
|
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;
|
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;
|
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;
|
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;
|
consumeDirectDeclaratorIdentifier(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 420: constant_initializer ::= = constant_expression
|
// Rule 421: constant_initializer ::= = constant_expression
|
||||||
//
|
//
|
||||||
case 420: { action.builder.
|
case 421: { action.builder.
|
||||||
consumeInitializer(); break;
|
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;
|
consumeBaseSpecifier(false, false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 427: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
|
// Rule 428: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
|
||||||
//
|
|
||||||
case 427: { action.builder.
|
|
||||||
consumeBaseSpecifier(true, true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 428: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
|
|
||||||
//
|
//
|
||||||
case 428: { action.builder.
|
case 428: { action.builder.
|
||||||
consumeBaseSpecifier(true, true); break;
|
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.
|
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;
|
consumeBaseSpecifier(true, false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 430: access_specifier_keyword ::= private
|
// Rule 431: access_specifier_keyword ::= private
|
||||||
//
|
|
||||||
case 430: { action.builder.
|
|
||||||
consumeAccessKeywordToken(); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 431: access_specifier_keyword ::= protected
|
|
||||||
//
|
//
|
||||||
case 431: { action.builder.
|
case 431: { action.builder.
|
||||||
consumeAccessKeywordToken(); break;
|
consumeAccessKeywordToken(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 432: access_specifier_keyword ::= public
|
// Rule 432: access_specifier_keyword ::= protected
|
||||||
//
|
//
|
||||||
case 432: { action.builder.
|
case 432: { action.builder.
|
||||||
consumeAccessKeywordToken(); break;
|
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;
|
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;
|
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;
|
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;
|
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;
|
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;
|
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;
|
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;
|
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;
|
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;
|
consumeTemplateDeclaration(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 493: export_opt ::= export
|
// Rule 494: export_opt ::= export
|
||||||
//
|
//
|
||||||
case 493: { action.builder.
|
case 494: { action.builder.
|
||||||
consumePlaceHolder(); break;
|
consumePlaceHolder(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 494: export_opt ::= $Empty
|
// Rule 495: export_opt ::= $Empty
|
||||||
//
|
//
|
||||||
case 494: { action.builder.
|
case 495: { action.builder.
|
||||||
consumeEmpty(); break;
|
consumeEmpty(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 498: template_parameter ::= parameter_declaration
|
// Rule 499: template_parameter ::= parameter_declaration
|
||||||
//
|
//
|
||||||
case 498: { action.builder.
|
case 499: { action.builder.
|
||||||
consumeTemplateParamterDeclaration(); break;
|
consumeTemplateParamterDeclaration(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 499: type_parameter ::= class identifier_name_opt
|
// Rule 500: type_parameter ::= class identifier_name_opt
|
||||||
//
|
|
||||||
case 499: { action.builder.
|
|
||||||
consumeSimpleTypeTemplateParameter(false); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 500: type_parameter ::= class identifier_name_opt = type_id
|
|
||||||
//
|
//
|
||||||
case 500: { action.builder.
|
case 500: { action.builder.
|
||||||
consumeSimpleTypeTemplateParameter(true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 501: type_parameter ::= typename identifier_name_opt
|
|
||||||
//
|
|
||||||
case 501: { action.builder.
|
|
||||||
consumeSimpleTypeTemplateParameter(false); break;
|
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;
|
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.
|
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;
|
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;
|
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;
|
consumeTemplateId(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 513: explicit_instantiation ::= template declaration
|
// Rule 514: explicit_instantiation ::= template declaration
|
||||||
//
|
//
|
||||||
case 513: { action.builder.
|
case 514: { action.builder.
|
||||||
consumeTemplateExplicitInstantiation(); break;
|
consumeTemplateExplicitInstantiation(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 514: explicit_specialization ::= template < > declaration
|
// Rule 515: explicit_specialization ::= template < > declaration
|
||||||
//
|
//
|
||||||
case 514: { action.builder.
|
case 515: { action.builder.
|
||||||
consumeTemplateExplicitSpecialization(); break;
|
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;
|
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;
|
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;
|
consumeStatementCatchHandler(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 520: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
// Rule 521: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
||||||
//
|
|
||||||
case 520: { action.builder.
|
|
||||||
consumeDeclarationSimple(true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 521: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
|
||||||
//
|
//
|
||||||
case 521: { action.builder.
|
case 521: { action.builder.
|
||||||
consumeDeclarationSimple(true); break;
|
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.
|
case 522: { action.builder.
|
||||||
|
consumeDeclarationSimple(true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 523: exception_declaration ::= type_specifier_seq
|
||||||
|
//
|
||||||
|
case 523: { action.builder.
|
||||||
consumeDeclarationSimple(false); break;
|
consumeDeclarationSimple(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -34,7 +34,7 @@ public interface CPPParsersym {
|
||||||
TK_else = 122,
|
TK_else = 122,
|
||||||
TK_enum = 66,
|
TK_enum = 66,
|
||||||
TK_explicit = 38,
|
TK_explicit = 38,
|
||||||
TK_export = 74,
|
TK_export = 75,
|
||||||
TK_extern = 12,
|
TK_extern = 12,
|
||||||
TK_false = 39,
|
TK_false = 39,
|
||||||
TK_float = 16,
|
TK_float = 16,
|
||||||
|
@ -133,10 +133,10 @@ public interface CPPParsersym {
|
||||||
TK_Comma = 64,
|
TK_Comma = 64,
|
||||||
TK_zero = 55,
|
TK_zero = 55,
|
||||||
TK_RightBracket = 118,
|
TK_RightBracket = 118,
|
||||||
TK_RightParen = 75,
|
TK_RightParen = 73,
|
||||||
TK_RightBrace = 71,
|
TK_RightBrace = 71,
|
||||||
TK_SemiColon = 11,
|
TK_SemiColon = 11,
|
||||||
TK_ERROR_TOKEN = 73,
|
TK_ERROR_TOKEN = 74,
|
||||||
TK_original_namespace_name = 123,
|
TK_original_namespace_name = 123,
|
||||||
TK_EOF_TOKEN = 121;
|
TK_EOF_TOKEN = 121;
|
||||||
|
|
||||||
|
@ -214,9 +214,9 @@ public interface CPPParsersym {
|
||||||
"Assign",
|
"Assign",
|
||||||
"RightBrace",
|
"RightBrace",
|
||||||
"Colon",
|
"Colon",
|
||||||
|
"RightParen",
|
||||||
"ERROR_TOKEN",
|
"ERROR_TOKEN",
|
||||||
"export",
|
"export",
|
||||||
"RightParen",
|
|
||||||
"try",
|
"try",
|
||||||
"while",
|
"while",
|
||||||
"break",
|
"break",
|
||||||
|
|
|
@ -1736,520 +1736,527 @@ public CPPSizeofExpressionParser(String[] mapFrom) { // constructor
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 352: array_direct_abstract_declarator ::= array_modifier
|
// Rule 352: basic_direct_abstract_declarator ::= ( )
|
||||||
//
|
//
|
||||||
case 352: { action.builder.
|
case 352: { action.builder.
|
||||||
|
consumeAbstractDeclaratorEmpty(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 353: array_direct_abstract_declarator ::= array_modifier
|
||||||
|
//
|
||||||
|
case 353: { action.builder.
|
||||||
consumeDirectDeclaratorArrayDeclarator(false); break;
|
consumeDirectDeclaratorArrayDeclarator(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 353: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
|
// Rule 354: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
|
||||||
//
|
|
||||||
case 353: { action.builder.
|
|
||||||
consumeDirectDeclaratorArrayDeclarator(true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 354: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
|
|
||||||
//
|
//
|
||||||
case 354: { action.builder.
|
case 354: { action.builder.
|
||||||
consumeDirectDeclaratorArrayDeclarator(true); break;
|
consumeDirectDeclaratorArrayDeclarator(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 355: 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 355: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
|
||||||
//
|
//
|
||||||
case 355: { action.builder.
|
case 355: { action.builder.
|
||||||
|
consumeDirectDeclaratorArrayDeclarator(true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 356: 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 356: { action.builder.
|
||||||
consumeDirectDeclaratorFunctionDeclarator(true); break;
|
consumeDirectDeclaratorFunctionDeclarator(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 356: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
|
// Rule 357: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
|
||||||
//
|
//
|
||||||
case 356: { action.builder.
|
case 357: { action.builder.
|
||||||
consumeDirectDeclaratorFunctionDeclarator(false); break;
|
consumeDirectDeclaratorFunctionDeclarator(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 357: parameter_declaration_clause ::= parameter_declaration_list_opt ...
|
// Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt ...
|
||||||
//
|
|
||||||
case 357: { action.builder.
|
|
||||||
consumePlaceHolder(); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt
|
|
||||||
//
|
//
|
||||||
case 358: { action.builder.
|
case 358: { action.builder.
|
||||||
consumeEmpty(); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 359: parameter_declaration_clause ::= parameter_declaration_list , ...
|
|
||||||
//
|
|
||||||
case 359: { action.builder.
|
|
||||||
consumePlaceHolder(); break;
|
consumePlaceHolder(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 365: abstract_declarator_opt ::= $Empty
|
// Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt
|
||||||
//
|
//
|
||||||
case 365: { action.builder.
|
case 359: { action.builder.
|
||||||
consumeEmpty(); break;
|
consumeEmpty(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 366: parameter_declaration ::= declaration_specifiers parameter_init_declarator
|
// Rule 360: parameter_declaration_clause ::= parameter_declaration_list , ...
|
||||||
|
//
|
||||||
|
case 360: { action.builder.
|
||||||
|
consumePlaceHolder(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 366: abstract_declarator_opt ::= $Empty
|
||||||
//
|
//
|
||||||
case 366: { action.builder.
|
case 366: { action.builder.
|
||||||
|
consumeEmpty(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator
|
||||||
|
//
|
||||||
|
case 367: { action.builder.
|
||||||
consumeParameterDeclaration(); break;
|
consumeParameterDeclaration(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 367: parameter_declaration ::= declaration_specifiers
|
// Rule 368: parameter_declaration ::= declaration_specifiers
|
||||||
//
|
//
|
||||||
case 367: { action.builder.
|
case 368: { action.builder.
|
||||||
consumeParameterDeclarationWithoutDeclarator(); break;
|
consumeParameterDeclarationWithoutDeclarator(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 369: parameter_init_declarator ::= declarator = parameter_initializer
|
// Rule 370: parameter_init_declarator ::= declarator = parameter_initializer
|
||||||
//
|
//
|
||||||
case 369: { action.builder.
|
case 370: { action.builder.
|
||||||
consumeDeclaratorWithInitializer(true); break;
|
consumeDeclaratorWithInitializer(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 371: parameter_init_declarator ::= abstract_declarator = parameter_initializer
|
// Rule 372: parameter_init_declarator ::= abstract_declarator = parameter_initializer
|
||||||
//
|
|
||||||
case 371: { action.builder.
|
|
||||||
consumeDeclaratorWithInitializer(true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 372: parameter_init_declarator ::= = parameter_initializer
|
|
||||||
//
|
//
|
||||||
case 372: { action.builder.
|
case 372: { action.builder.
|
||||||
|
consumeDeclaratorWithInitializer(true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 373: parameter_init_declarator ::= = parameter_initializer
|
||||||
|
//
|
||||||
|
case 373: { action.builder.
|
||||||
consumeDeclaratorWithInitializer(false); break;
|
consumeDeclaratorWithInitializer(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 373: parameter_initializer ::= assignment_expression
|
// Rule 374: parameter_initializer ::= assignment_expression
|
||||||
//
|
//
|
||||||
case 373: { action.builder.
|
case 374: { action.builder.
|
||||||
consumeInitializer(); break;
|
consumeInitializer(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 374: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
|
// Rule 375: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
|
||||||
//
|
//
|
||||||
case 374: { action.builder.
|
case 375: { action.builder.
|
||||||
consumeFunctionDefinition(false); break;
|
consumeFunctionDefinition(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 375: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
|
// Rule 376: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
|
||||||
//
|
//
|
||||||
case 375: { action.builder.
|
case 376: { action.builder.
|
||||||
consumeFunctionDefinition(true); break;
|
consumeFunctionDefinition(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 378: initializer ::= ( expression_list )
|
// Rule 379: initializer ::= ( expression_list )
|
||||||
//
|
//
|
||||||
case 378: { action.builder.
|
case 379: { action.builder.
|
||||||
consumeInitializerConstructor(); break;
|
consumeInitializerConstructor(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 379: initializer_clause ::= assignment_expression
|
// Rule 380: initializer_clause ::= assignment_expression
|
||||||
//
|
//
|
||||||
case 379: { action.builder.
|
case 380: { action.builder.
|
||||||
consumeInitializer(); break;
|
consumeInitializer(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 380: initializer_clause ::= { <openscope-ast> initializer_list , }
|
// Rule 381: initializer_clause ::= { <openscope-ast> initializer_list , }
|
||||||
//
|
|
||||||
case 380: { action.builder.
|
|
||||||
consumeInitializerList(); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 381: initializer_clause ::= { <openscope-ast> initializer_list }
|
|
||||||
//
|
//
|
||||||
case 381: { action.builder.
|
case 381: { action.builder.
|
||||||
consumeInitializerList(); break;
|
consumeInitializerList(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 382: initializer_clause ::= { <openscope-ast> }
|
// Rule 382: initializer_clause ::= { <openscope-ast> initializer_list }
|
||||||
//
|
//
|
||||||
case 382: { action.builder.
|
case 382: { action.builder.
|
||||||
consumeInitializerList(); break;
|
consumeInitializerList(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 387: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
|
// Rule 383: initializer_clause ::= { <openscope-ast> }
|
||||||
//
|
//
|
||||||
case 387: { action.builder.
|
case 383: { action.builder.
|
||||||
|
consumeInitializerList(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 388: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
|
||||||
|
//
|
||||||
|
case 388: { action.builder.
|
||||||
consumeClassSpecifier(); break;
|
consumeClassSpecifier(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 388: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
|
// Rule 389: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
|
||||||
//
|
|
||||||
case 388: { action.builder.
|
|
||||||
consumeClassHead(false); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 389: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt
|
|
||||||
//
|
//
|
||||||
case 389: { action.builder.
|
case 389: { action.builder.
|
||||||
consumeClassHead(false); break;
|
consumeClassHead(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 390: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
|
// Rule 390: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt
|
||||||
//
|
//
|
||||||
case 390: { action.builder.
|
case 390: { action.builder.
|
||||||
consumeClassHead(true); break;
|
consumeClassHead(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 391: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt
|
// Rule 391: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
|
||||||
//
|
//
|
||||||
case 391: { action.builder.
|
case 391: { action.builder.
|
||||||
consumeClassHead(true); break;
|
consumeClassHead(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 393: identifier_name_opt ::= $Empty
|
// Rule 392: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt
|
||||||
//
|
//
|
||||||
case 393: { action.builder.
|
case 392: { action.builder.
|
||||||
|
consumeClassHead(true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 394: identifier_name_opt ::= $Empty
|
||||||
|
//
|
||||||
|
case 394: { action.builder.
|
||||||
consumeEmpty(); break;
|
consumeEmpty(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 397: visibility_label ::= access_specifier_keyword :
|
// Rule 398: visibility_label ::= access_specifier_keyword :
|
||||||
//
|
//
|
||||||
case 397: { action.builder.
|
case 398: { action.builder.
|
||||||
consumeVisibilityLabel(); break;
|
consumeVisibilityLabel(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 398: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
|
// Rule 399: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
|
||||||
//
|
//
|
||||||
case 398: { action.builder.
|
case 399: { action.builder.
|
||||||
consumeDeclarationSimple(true); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 399: member_declaration ::= declaration_specifiers_opt ;
|
// Rule 400: member_declaration ::= declaration_specifiers_opt ;
|
||||||
//
|
//
|
||||||
case 399: { action.builder.
|
case 400: { action.builder.
|
||||||
consumeDeclarationSimple(false); break;
|
consumeDeclarationSimple(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 402: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
|
// Rule 403: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
|
||||||
//
|
//
|
||||||
case 402: { action.builder.
|
case 403: { action.builder.
|
||||||
consumeMemberDeclarationQualifiedId(); break;
|
consumeMemberDeclarationQualifiedId(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 406: member_declaration ::= ERROR_TOKEN
|
// Rule 407: member_declaration ::= ERROR_TOKEN
|
||||||
//
|
//
|
||||||
case 406: { action.builder.
|
case 407: { action.builder.
|
||||||
consumeDeclarationProblem(); break;
|
consumeDeclarationProblem(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 414: member_declarator ::= declarator constant_initializer
|
// Rule 415: member_declarator ::= declarator constant_initializer
|
||||||
//
|
//
|
||||||
case 414: { action.builder.
|
case 415: { action.builder.
|
||||||
consumeMemberDeclaratorWithInitializer(); break;
|
consumeMemberDeclaratorWithInitializer(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 415: member_declarator ::= bit_field_declarator : constant_expression
|
// Rule 416: member_declarator ::= bit_field_declarator : constant_expression
|
||||||
//
|
//
|
||||||
case 415: { action.builder.
|
case 416: { action.builder.
|
||||||
consumeBitField(true); break;
|
consumeBitField(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 416: member_declarator ::= : constant_expression
|
// Rule 417: member_declarator ::= : constant_expression
|
||||||
//
|
//
|
||||||
case 416: { action.builder.
|
case 417: { action.builder.
|
||||||
consumeBitField(false); break;
|
consumeBitField(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 417: bit_field_declarator ::= identifier_name
|
// Rule 418: bit_field_declarator ::= identifier_name
|
||||||
//
|
//
|
||||||
case 417: { action.builder.
|
case 418: { action.builder.
|
||||||
consumeDirectDeclaratorIdentifier(); break;
|
consumeDirectDeclaratorIdentifier(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 418: constant_initializer ::= = constant_expression
|
// Rule 419: constant_initializer ::= = constant_expression
|
||||||
//
|
//
|
||||||
case 418: { action.builder.
|
case 419: { action.builder.
|
||||||
consumeInitializer(); break;
|
consumeInitializer(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 424: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
|
// Rule 425: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
|
||||||
//
|
//
|
||||||
case 424: { action.builder.
|
case 425: { action.builder.
|
||||||
consumeBaseSpecifier(false, false); break;
|
consumeBaseSpecifier(false, false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 425: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
|
// Rule 426: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
|
||||||
//
|
|
||||||
case 425: { action.builder.
|
|
||||||
consumeBaseSpecifier(true, true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 426: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
|
|
||||||
//
|
//
|
||||||
case 426: { action.builder.
|
case 426: { action.builder.
|
||||||
consumeBaseSpecifier(true, true); break;
|
consumeBaseSpecifier(true, true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 427: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
|
// Rule 427: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
|
||||||
//
|
//
|
||||||
case 427: { action.builder.
|
case 427: { action.builder.
|
||||||
|
consumeBaseSpecifier(true, true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 428: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
|
||||||
|
//
|
||||||
|
case 428: { action.builder.
|
||||||
consumeBaseSpecifier(true, false); break;
|
consumeBaseSpecifier(true, false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 428: access_specifier_keyword ::= private
|
// Rule 429: access_specifier_keyword ::= private
|
||||||
//
|
|
||||||
case 428: { action.builder.
|
|
||||||
consumeAccessKeywordToken(); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 429: access_specifier_keyword ::= protected
|
|
||||||
//
|
//
|
||||||
case 429: { action.builder.
|
case 429: { action.builder.
|
||||||
consumeAccessKeywordToken(); break;
|
consumeAccessKeywordToken(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 430: access_specifier_keyword ::= public
|
// Rule 430: access_specifier_keyword ::= protected
|
||||||
//
|
//
|
||||||
case 430: { action.builder.
|
case 430: { action.builder.
|
||||||
consumeAccessKeywordToken(); break;
|
consumeAccessKeywordToken(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 432: access_specifier_keyword_opt ::= $Empty
|
// Rule 431: access_specifier_keyword ::= public
|
||||||
//
|
//
|
||||||
case 432: { action.builder.
|
case 431: { action.builder.
|
||||||
|
consumeAccessKeywordToken(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 433: access_specifier_keyword_opt ::= $Empty
|
||||||
|
//
|
||||||
|
case 433: { action.builder.
|
||||||
consumeEmpty(); break;
|
consumeEmpty(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 433: conversion_function_id_name ::= operator conversion_type_id
|
// Rule 434: conversion_function_id_name ::= operator conversion_type_id
|
||||||
//
|
//
|
||||||
case 433: { action.builder.
|
case 434: { action.builder.
|
||||||
consumeConversionName(); break;
|
consumeConversionName(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 434: conversion_type_id ::= type_specifier_seq conversion_declarator
|
// Rule 435: conversion_type_id ::= type_specifier_seq conversion_declarator
|
||||||
//
|
//
|
||||||
case 434: { action.builder.
|
case 435: { action.builder.
|
||||||
consumeTypeId(true); break;
|
consumeTypeId(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 435: conversion_type_id ::= type_specifier_seq
|
// Rule 436: conversion_type_id ::= type_specifier_seq
|
||||||
//
|
//
|
||||||
case 435: { action.builder.
|
case 436: { action.builder.
|
||||||
consumeTypeId(false); break;
|
consumeTypeId(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 436: conversion_declarator ::= <openscope-ast> ptr_operator_seq
|
// Rule 437: conversion_declarator ::= <openscope-ast> ptr_operator_seq
|
||||||
//
|
//
|
||||||
case 436: { action.builder.
|
case 437: { action.builder.
|
||||||
consumeDeclaratorWithPointer(false); break;
|
consumeDeclaratorWithPointer(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 442: mem_initializer ::= mem_initializer_name ( expression_list_opt )
|
// Rule 443: mem_initializer ::= mem_initializer_name ( expression_list_opt )
|
||||||
//
|
//
|
||||||
case 442: { action.builder.
|
case 443: { action.builder.
|
||||||
consumeConstructorChainInitializer(); break;
|
consumeConstructorChainInitializer(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 443: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
|
// Rule 444: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
|
||||||
//
|
//
|
||||||
case 443: { action.builder.
|
case 444: { action.builder.
|
||||||
consumeQualifiedId(false); break;
|
consumeQualifiedId(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 446: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
|
// Rule 447: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
|
||||||
//
|
//
|
||||||
case 446: { action.builder.
|
case 447: { action.builder.
|
||||||
consumeTemplateId(); break;
|
consumeTemplateId(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 447: operator_id_name ::= operator overloadable_operator
|
// Rule 448: operator_id_name ::= operator overloadable_operator
|
||||||
//
|
//
|
||||||
case 447: { action.builder.
|
case 448: { action.builder.
|
||||||
consumeOperatorName(); break;
|
consumeOperatorName(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 490: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
|
// Rule 491: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
|
||||||
//
|
//
|
||||||
case 490: { action.builder.
|
case 491: { action.builder.
|
||||||
consumeTemplateDeclaration(); break;
|
consumeTemplateDeclaration(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 491: export_opt ::= export
|
// Rule 492: export_opt ::= export
|
||||||
//
|
//
|
||||||
case 491: { action.builder.
|
case 492: { action.builder.
|
||||||
consumePlaceHolder(); break;
|
consumePlaceHolder(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 492: export_opt ::= $Empty
|
// Rule 493: export_opt ::= $Empty
|
||||||
//
|
//
|
||||||
case 492: { action.builder.
|
case 493: { action.builder.
|
||||||
consumeEmpty(); break;
|
consumeEmpty(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 496: template_parameter ::= parameter_declaration
|
// Rule 497: template_parameter ::= parameter_declaration
|
||||||
//
|
//
|
||||||
case 496: { action.builder.
|
case 497: { action.builder.
|
||||||
consumeTemplateParamterDeclaration(); break;
|
consumeTemplateParamterDeclaration(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 497: type_parameter ::= class identifier_name_opt
|
// Rule 498: type_parameter ::= class identifier_name_opt
|
||||||
//
|
|
||||||
case 497: { action.builder.
|
|
||||||
consumeSimpleTypeTemplateParameter(false); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 498: type_parameter ::= class identifier_name_opt = type_id
|
|
||||||
//
|
//
|
||||||
case 498: { action.builder.
|
case 498: { action.builder.
|
||||||
consumeSimpleTypeTemplateParameter(true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 499: type_parameter ::= typename identifier_name_opt
|
|
||||||
//
|
|
||||||
case 499: { action.builder.
|
|
||||||
consumeSimpleTypeTemplateParameter(false); break;
|
consumeSimpleTypeTemplateParameter(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 500: type_parameter ::= typename identifier_name_opt = type_id
|
// Rule 499: type_parameter ::= class identifier_name_opt = type_id
|
||||||
//
|
//
|
||||||
case 500: { action.builder.
|
case 499: { action.builder.
|
||||||
consumeSimpleTypeTemplateParameter(true); break;
|
consumeSimpleTypeTemplateParameter(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 501: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
|
// 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
|
||||||
//
|
//
|
||||||
case 501: { action.builder.
|
case 501: { action.builder.
|
||||||
|
consumeSimpleTypeTemplateParameter(true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 502: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
|
||||||
|
//
|
||||||
|
case 502: { action.builder.
|
||||||
consumeTemplatedTypeTemplateParameter(false); break;
|
consumeTemplatedTypeTemplateParameter(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 502: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
|
// Rule 503: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
|
||||||
//
|
//
|
||||||
case 502: { action.builder.
|
case 503: { action.builder.
|
||||||
consumeTemplatedTypeTemplateParameter(true); break;
|
consumeTemplatedTypeTemplateParameter(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 503: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
|
// Rule 504: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
|
||||||
//
|
//
|
||||||
case 503: { action.builder.
|
case 504: { action.builder.
|
||||||
consumeTemplateId(); break;
|
consumeTemplateId(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 511: explicit_instantiation ::= template declaration
|
// Rule 512: explicit_instantiation ::= template declaration
|
||||||
//
|
//
|
||||||
case 511: { action.builder.
|
case 512: { action.builder.
|
||||||
consumeTemplateExplicitInstantiation(); break;
|
consumeTemplateExplicitInstantiation(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 512: explicit_specialization ::= template < > declaration
|
// Rule 513: explicit_specialization ::= template < > declaration
|
||||||
//
|
//
|
||||||
case 512: { action.builder.
|
case 513: { action.builder.
|
||||||
consumeTemplateExplicitSpecialization(); break;
|
consumeTemplateExplicitSpecialization(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 513: try_block ::= try compound_statement <openscope-ast> handler_seq
|
// Rule 514: try_block ::= try compound_statement <openscope-ast> handler_seq
|
||||||
//
|
//
|
||||||
case 513: { action.builder.
|
case 514: { action.builder.
|
||||||
consumeStatementTryBlock(); break;
|
consumeStatementTryBlock(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 516: handler ::= catch ( exception_declaration ) compound_statement
|
// Rule 517: handler ::= catch ( exception_declaration ) compound_statement
|
||||||
//
|
//
|
||||||
case 516: { action.builder.
|
case 517: { action.builder.
|
||||||
consumeStatementCatchHandler(false); break;
|
consumeStatementCatchHandler(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 517: handler ::= catch ( ... ) compound_statement
|
// Rule 518: handler ::= catch ( ... ) compound_statement
|
||||||
//
|
//
|
||||||
case 517: { action.builder.
|
case 518: { action.builder.
|
||||||
consumeStatementCatchHandler(true); break;
|
consumeStatementCatchHandler(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 518: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
// Rule 519: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
|
||||||
//
|
|
||||||
case 518: { action.builder.
|
|
||||||
consumeDeclarationSimple(true); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Rule 519: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
|
||||||
//
|
//
|
||||||
case 519: { action.builder.
|
case 519: { action.builder.
|
||||||
consumeDeclarationSimple(true); break;
|
consumeDeclarationSimple(true); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 520: exception_declaration ::= type_specifier_seq
|
// Rule 520: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
|
||||||
//
|
//
|
||||||
case 520: { action.builder.
|
case 520: { action.builder.
|
||||||
|
consumeDeclarationSimple(true); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Rule 521: exception_declaration ::= type_specifier_seq
|
||||||
|
//
|
||||||
|
case 521: { action.builder.
|
||||||
consumeDeclarationSimple(false); break;
|
consumeDeclarationSimple(false); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Rule 528: no_sizeof_type_name_start ::= ERROR_TOKEN
|
// Rule 529: no_sizeof_type_name_start ::= ERROR_TOKEN
|
||||||
//
|
//
|
||||||
case 528: { action.builder.
|
case 529: { action.builder.
|
||||||
consumeExpressionProblem(); break;
|
consumeExpressionProblem(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue