Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java')
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java986
1 files changed, 610 insertions, 376 deletions
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java
index abf24e58f61..063bcac846a 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java
@@ -248,7 +248,13 @@ public void setTokens(List<IToken> tokens) {
public CPPNoCastExpressionParser(ITokenStream stream, Map<String,String> properties) { // constructor for creating secondary parser
initActions(properties);
tokenMap = new TokenMap(CPPNoCastExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols());
-}
+}
+
+ public CPPNoCastExpressionParser(ITokenStream stream, IScanner scanner, IBuiltinBindingsProvider builtinBindingsProvider, IIndex index, Map<String,String> properties) { // constructor for creating secondary parser
+ initActions(properties);
+ action.initializeTranslationUnit(scanner, builtinBindingsProvider, index);
+ tokenMap = new TokenMap(CPPNoCastExpressionParsersym.orderedTerminalSymbols, stream.getOrderedTerminalSymbols());
+}
public void ruleAction(int ruleNumber)
@@ -809,1131 +815,1359 @@ public CPPNoCastExpressionParser(ITokenStream stream, Map<String,String> propert
}
//
- // Rule 140: throw_expression ::= throw
+ // Rule 141: relational_expression_inTemplate ::= relational_expression_inTemplate < shift_expression
//
- case 140: { action. consumeExpressionThrow(false); break;
+ case 141: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break;
}
//
- // Rule 141: throw_expression ::= throw assignment_expression
+ // Rule 142: relational_expression_inTemplate ::= ( relational_expression_inTemplate > shift_expression )
//
- case 141: { action. consumeExpressionThrow(true); break;
+ case 142: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break;
}
//
- // Rule 144: assignment_expression ::= logical_or_expression = assignment_expression
+ // Rule 143: relational_expression_inTemplate ::= relational_expression_inTemplate <= shift_expression
//
- case 144: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break;
+ case 143: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break;
}
//
- // Rule 145: assignment_expression ::= logical_or_expression *= assignment_expression
+ // Rule 144: relational_expression_inTemplate ::= relational_expression_inTemplate >= shift_expression
//
- case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break;
+ case 144: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break;
}
//
- // Rule 146: assignment_expression ::= logical_or_expression /= assignment_expression
+ // Rule 146: equality_expression_inTemplate ::= equality_expression_inTemplate == relational_expression_inTemplate
//
- case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break;
+ case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break;
}
//
- // Rule 147: assignment_expression ::= logical_or_expression %= assignment_expression
+ // Rule 147: equality_expression_inTemplate ::= equality_expression_inTemplate != relational_expression_inTemplate
//
- case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break;
+ case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break;
}
//
- // Rule 148: assignment_expression ::= logical_or_expression += assignment_expression
+ // Rule 149: and_expression_inTemplate ::= and_expression_inTemplate & equality_expression_inTemplate
//
- case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break;
+ case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break;
}
//
- // Rule 149: assignment_expression ::= logical_or_expression -= assignment_expression
+ // Rule 151: exclusive_or_expression_inTemplate ::= exclusive_or_expression_inTemplate ^ and_expression_inTemplate
//
- case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break;
+ case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break;
}
//
- // Rule 150: assignment_expression ::= logical_or_expression >>= assignment_expression
+ // Rule 153: inclusive_or_expression_inTemplate ::= inclusive_or_expression_inTemplate | exclusive_or_expression_inTemplate
//
- case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break;
+ case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break;
}
//
- // Rule 151: assignment_expression ::= logical_or_expression <<= assignment_expression
+ // Rule 155: logical_and_expression_inTemplate ::= logical_and_expression_inTemplate && inclusive_or_expression_inTemplate
//
- case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break;
+ case 155: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break;
}
//
- // Rule 152: assignment_expression ::= logical_or_expression &= assignment_expression
+ // Rule 157: logical_or_expression_inTemplate ::= logical_or_expression_inTemplate || logical_and_expression_inTemplate
//
- case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break;
+ case 157: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break;
}
//
- // Rule 153: assignment_expression ::= logical_or_expression ^= assignment_expression
+ // Rule 159: conditional_expression_inTemplate ::= logical_or_expression_inTemplate ? expression : assignment_expression_inTemplate
//
- case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break;
+ case 159: { action. consumeExpressionConditional(); break;
}
//
- // Rule 154: assignment_expression ::= logical_or_expression |= assignment_expression
+ // Rule 162: assignment_expression_inTemplate ::= logical_or_expression_inTemplate = assignment_expression_inTemplate
//
- case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break;
+ case 162: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break;
}
//
- // Rule 156: expression_list ::= <openscope-ast> expression_list_actual
+ // Rule 163: assignment_expression_inTemplate ::= logical_or_expression_inTemplate *= assignment_expression_inTemplate
//
- case 156: { action. consumeExpressionList(); break;
+ case 163: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break;
}
//
- // Rule 160: expression_list_opt ::= $Empty
+ // Rule 164: assignment_expression_inTemplate ::= logical_or_expression_inTemplate /= assignment_expression_inTemplate
//
- case 160: { action. consumeEmpty(); break;
+ case 164: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break;
}
//
- // Rule 162: expression_opt ::= $Empty
+ // Rule 165: assignment_expression_inTemplate ::= logical_or_expression_inTemplate %= assignment_expression_inTemplate
//
- case 162: { action. consumeEmpty(); break;
+ case 165: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break;
}
//
- // Rule 165: constant_expression_opt ::= $Empty
+ // Rule 166: assignment_expression_inTemplate ::= logical_or_expression_inTemplate += assignment_expression_inTemplate
//
- case 165: { action. consumeEmpty(); break;
+ case 166: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break;
}
//
- // Rule 174: statement ::= ERROR_TOKEN
+ // Rule 167: assignment_expression_inTemplate ::= logical_or_expression_inTemplate -= assignment_expression_inTemplate
//
- case 174: { action. consumeStatementProblem(); break;
+ case 167: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break;
}
//
- // Rule 175: labeled_statement ::= identifier : statement
+ // Rule 168: assignment_expression_inTemplate ::= logical_or_expression_inTemplate >>= assignment_expression_inTemplate
//
- case 175: { action. consumeStatementLabeled(); break;
+ case 168: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break;
}
//
- // Rule 176: labeled_statement ::= case constant_expression : statement
+ // Rule 169: assignment_expression_inTemplate ::= logical_or_expression_inTemplate <<= assignment_expression_inTemplate
//
- case 176: { action. consumeStatementCase(); break;
+ case 169: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break;
}
//
- // Rule 177: labeled_statement ::= default : statement
+ // Rule 170: assignment_expression_inTemplate ::= logical_or_expression_inTemplate &= assignment_expression_inTemplate
//
- case 177: { action. consumeStatementDefault(); break;
+ case 170: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break;
}
//
- // Rule 178: expression_statement ::= expression ;
+ // Rule 171: assignment_expression_inTemplate ::= logical_or_expression_inTemplate ^= assignment_expression_inTemplate
//
- case 178: { action. consumeStatementExpression(); break;
+ case 171: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break;
}
//
- // Rule 179: expression_statement ::= ;
+ // Rule 172: assignment_expression_inTemplate ::= logical_or_expression_inTemplate |= assignment_expression_inTemplate
//
- case 179: { action. consumeStatementNull(); break;
+ case 172: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break;
}
//
- // Rule 180: compound_statement ::= { <openscope-ast> statement_seq }
+ // Rule 173: throw_expression ::= throw
//
- case 180: { action. consumeStatementCompoundStatement(true); break;
+ case 173: { action. consumeExpressionThrow(false); break;
}
//
- // Rule 181: compound_statement ::= { }
+ // Rule 174: throw_expression ::= throw assignment_expression
//
- case 181: { action. consumeStatementCompoundStatement(false); break;
+ case 174: { action. consumeExpressionThrow(true); break;
}
//
- // Rule 184: selection_statement ::= if ( condition ) statement
+ // Rule 177: assignment_expression ::= logical_or_expression = assignment_expression
//
- case 184: { action. consumeStatementIf(false); break;
+ case 177: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break;
}
//
- // Rule 185: selection_statement ::= if ( condition ) statement else statement
+ // Rule 178: assignment_expression ::= logical_or_expression *= assignment_expression
//
- case 185: { action. consumeStatementIf(true); break;
+ case 178: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break;
}
//
- // Rule 186: selection_statement ::= switch ( condition ) statement
+ // Rule 179: assignment_expression ::= logical_or_expression /= assignment_expression
//
- case 186: { action. consumeStatementSwitch(); break;
+ case 179: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break;
}
//
- // Rule 188: condition ::= type_specifier_seq declarator = assignment_expression
+ // Rule 180: assignment_expression ::= logical_or_expression %= assignment_expression
//
- case 188: { action. consumeConditionDeclaration(); break;
+ case 180: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break;
}
//
- // Rule 190: condition_opt ::= $Empty
+ // Rule 181: assignment_expression ::= logical_or_expression += assignment_expression
//
- case 190: { action. consumeEmpty(); break;
+ case 181: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break;
}
//
- // Rule 191: iteration_statement ::= while ( condition ) statement
+ // Rule 182: assignment_expression ::= logical_or_expression -= assignment_expression
//
- case 191: { action. consumeStatementWhileLoop(); break;
+ case 182: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break;
}
//
- // Rule 192: iteration_statement ::= do statement while ( expression ) ;
+ // Rule 183: assignment_expression ::= logical_or_expression >>= assignment_expression
//
- case 192: { action. consumeStatementDoLoop(true); break;
+ case 183: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break;
}
//
- // Rule 193: iteration_statement ::= do statement
+ // Rule 184: assignment_expression ::= logical_or_expression <<= assignment_expression
//
- case 193: { action. consumeStatementDoLoop(false); break;
+ case 184: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break;
}
//
- // Rule 194: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement
+ // Rule 185: assignment_expression ::= logical_or_expression &= assignment_expression
//
- case 194: { action. consumeStatementForLoop(); break;
+ case 185: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break;
}
//
- // Rule 196: for_init_statement ::= simple_declaration_with_declspec
+ // Rule 186: assignment_expression ::= logical_or_expression ^= assignment_expression
//
- case 196: { action. consumeStatementDeclaration(); break;
+ case 186: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break;
}
//
- // Rule 197: jump_statement ::= break ;
+ // Rule 187: assignment_expression ::= logical_or_expression |= assignment_expression
//
- case 197: { action. consumeStatementBreak(); break;
+ case 187: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break;
}
//
- // Rule 198: jump_statement ::= continue ;
+ // Rule 189: expression_list ::= <openscope-ast> expression_list_actual
//
- case 198: { action. consumeStatementContinue(); break;
+ case 189: { action. consumeExpressionList(); break;
}
//
- // Rule 199: jump_statement ::= return expression ;
+ // Rule 193: expression_list_opt ::= $Empty
//
- case 199: { action. consumeStatementReturn(true); break;
+ case 193: { action. consumeEmpty(); break;
}
//
- // Rule 200: jump_statement ::= return ;
+ // Rule 195: expression_opt ::= $Empty
//
- case 200: { action. consumeStatementReturn(false); break;
+ case 195: { action. consumeEmpty(); break;
}
//
- // Rule 201: jump_statement ::= goto identifier_token ;
+ // Rule 198: constant_expression_opt ::= $Empty
//
- case 201: { action. consumeStatementGoto(); break;
+ case 198: { action. consumeEmpty(); break;
}
//
- // Rule 202: declaration_statement ::= block_declaration
+ // Rule 207: statement ::= ERROR_TOKEN
//
- case 202: { action. consumeStatementDeclarationWithDisambiguation(); break;
+ case 207: { action. consumeStatementProblem(); break;
}
//
- // Rule 203: declaration_statement ::= function_definition
+ // Rule 208: labeled_statement ::= identifier : statement
//
- case 203: { action. consumeStatementDeclaration(); break;
+ case 208: { action. consumeStatementLabeled(); break;
}
//
- // Rule 211: declaration ::= ERROR_TOKEN
+ // Rule 209: labeled_statement ::= case constant_expression : statement
//
- case 211: { action. consumeDeclarationProblem(); break;
+ case 209: { action. consumeStatementCase(); break;
}
//
- // Rule 221: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
+ // Rule 210: labeled_statement ::= default : statement
//
- case 221: { action. consumeDeclarationSimple(true); break;
+ case 210: { action. consumeStatementDefault(); break;
}
//
- // Rule 222: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
+ // Rule 211: expression_statement ::= expression ;
//
- case 222: { action. consumeDeclarationSimple(true); break;
+ case 211: { action. consumeStatementExpression(); break;
}
//
- // Rule 223: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
+ // Rule 212: expression_statement ::= ;
//
- case 223: { action. consumeDeclarationSpecifiersSimple(); break;
+ case 212: { action. consumeStatementNull(); break;
}
//
- // Rule 224: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers
+ // Rule 213: compound_statement ::= { <openscope-ast> statement_seq }
//
- case 224: { action. consumeDeclarationSpecifiersComposite(); break;
+ case 213: { action. consumeStatementCompoundStatement(true); break;
}
//
- // Rule 225: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
+ // Rule 214: compound_statement ::= { }
//
- case 225: { action. consumeDeclarationSpecifiersComposite(); break;
+ case 214: { action. consumeStatementCompoundStatement(false); break;
}
//
- // Rule 226: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
+ // Rule 217: selection_statement ::= if ( condition ) statement
//
- case 226: { action. consumeDeclarationSpecifiersComposite(); break;
+ case 217: { action. consumeStatementIf(false); break;
}
//
- // Rule 227: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers
+ // Rule 218: selection_statement ::= if ( condition ) statement else statement
//
- case 227: { action. consumeDeclarationSpecifiersTypeName(); break;
+ case 218: { action. consumeStatementIf(true); break;
}
//
- // Rule 229: declaration_specifiers_opt ::= $Empty
+ // Rule 219: selection_statement ::= switch ( condition ) statement
//
- case 229: { action. consumeEmpty(); break;
+ case 219: { action. consumeStatementSwitch(); break;
}
//
- // Rule 233: no_type_declaration_specifier ::= friend
+ // Rule 221: condition ::= type_specifier_seq declarator = assignment_expression
//
- case 233: { action. consumeToken(); break;
+ case 221: { action. consumeConditionDeclaration(); break;
}
//
- // Rule 234: no_type_declaration_specifier ::= typedef
+ // Rule 223: condition_opt ::= $Empty
//
- case 234: { action. consumeToken(); break;
+ case 223: { action. consumeEmpty(); break;
}
//
- // Rule 254: storage_class_specifier ::= auto
+ // Rule 224: iteration_statement ::= while ( condition ) statement
//
- case 254: { action. consumeToken(); break;
+ case 224: { action. consumeStatementWhileLoop(); break;
}
//
- // Rule 255: storage_class_specifier ::= register
+ // Rule 225: iteration_statement ::= do statement while ( expression ) ;
//
- case 255: { action. consumeToken(); break;
+ case 225: { action. consumeStatementDoLoop(true); break;
}
//
- // Rule 256: storage_class_specifier ::= static
+ // Rule 226: iteration_statement ::= do statement
//
- case 256: { action. consumeToken(); break;
+ case 226: { action. consumeStatementDoLoop(false); break;
}
//
- // Rule 257: storage_class_specifier ::= extern
+ // Rule 227: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement
//
- case 257: { action. consumeToken(); break;
+ case 227: { action. consumeStatementForLoop(); break;
}
//
- // Rule 258: storage_class_specifier ::= mutable
+ // Rule 229: for_init_statement ::= simple_declaration_with_declspec
//
- case 258: { action. consumeToken(); break;
+ case 229: { action. consumeStatementDeclaration(); break;
}
//
- // Rule 259: function_specifier ::= inline
+ // Rule 230: jump_statement ::= break ;
//
- case 259: { action. consumeToken(); break;
+ case 230: { action. consumeStatementBreak(); break;
}
//
- // Rule 260: function_specifier ::= virtual
+ // Rule 231: jump_statement ::= continue ;
//
- case 260: { action. consumeToken(); break;
+ case 231: { action. consumeStatementContinue(); break;
}
//
- // Rule 261: function_specifier ::= explicit
+ // Rule 232: jump_statement ::= return expression ;
//
- case 261: { action. consumeToken(); break;
+ case 232: { action. consumeStatementReturn(true); break;
}
//
- // Rule 262: simple_type_specifier ::= simple_type_specifier_token
+ // Rule 233: jump_statement ::= return ;
//
- case 262: { action. consumeToken(); break;
+ case 233: { action. consumeStatementReturn(false); break;
}
//
- // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name
+ // Rule 234: jump_statement ::= goto identifier_token ;
//
- case 276: { action. consumeQualifiedId(false); break;
+ case 234: { action. consumeStatementGoto(); break;
}
//
- // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name
+ // Rule 235: declaration_statement ::= block_declaration
//
- case 277: { action. consumeQualifiedId(false); break;
+ case 235: { action. consumeStatementDeclarationWithDisambiguation(); break;
}
//
- // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name
+ // Rule 236: declaration_statement ::= function_definition
//
- case 278: { action. consumeQualifiedId(false); break;
+ case 236: { action. consumeStatementDeclaration(); break;
}
//
- // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
+ // Rule 244: declaration ::= ERROR_TOKEN
//
- case 279: { action. consumeQualifiedId(true); break;
+ case 244: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 281: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
+ // Rule 254: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
//
- case 281: { action. consumeTypeSpecifierElaborated(false); break;
+ case 254: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 282: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name
+ // Rule 255: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
//
- case 282: { action. consumeTypeSpecifierElaborated(true); break;
+ case 255: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 283: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
+ // Rule 256: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
//
- case 283: { action. consumeTypeSpecifierElaborated(false); break;
+ case 256: { action. consumeDeclarationSpecifiersSimple(); break;
}
//
- // Rule 287: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
+ // Rule 257: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers
//
- case 287: { action. consumeTypeSpecifierEnumeration(false); break;
+ case 257: { action. consumeDeclarationSpecifiersComposite(); break;
}
//
- // Rule 288: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
+ // Rule 258: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
//
- case 288: { action. consumeTypeSpecifierEnumeration(true); break;
+ case 258: { action. consumeDeclarationSpecifiersComposite(); break;
}
//
- // Rule 294: enumerator_definition ::= identifier_token
+ // Rule 259: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
//
- case 294: { action. consumeEnumerator(false); break;
+ case 259: { action. consumeDeclarationSpecifiersComposite(); break;
}
//
- // Rule 295: enumerator_definition ::= identifier_token = constant_expression
+ // Rule 260: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers
//
- case 295: { action. consumeEnumerator(true); break;
+ case 260: { action. consumeDeclarationSpecifiersTypeName(); break;
}
//
- // Rule 297: namespace_definition ::= namespace namespace_name namespace_definition_hook { <openscope-ast> declaration_seq_opt }
+ // Rule 262: declaration_specifiers_opt ::= $Empty
//
- case 297: { action. consumeNamespaceDefinition(true); break;
+ case 262: { action. consumeEmpty(); break;
}
//
- // Rule 298: namespace_definition ::= namespace namespace_definition_hook { <openscope-ast> declaration_seq_opt }
+ // Rule 266: no_type_declaration_specifier ::= friend
//
- case 298: { action. consumeNamespaceDefinition(false); break;
+ case 266: { action. consumeToken(); break;
}
//
- // Rule 300: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ;
+ // Rule 267: no_type_declaration_specifier ::= typedef
//
- case 300: { action. consumeNamespaceAliasDefinition(); break;
+ case 267: { action. consumeToken(); break;
}
//
- // Rule 301: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ;
+ // Rule 287: storage_class_specifier ::= auto
//
- case 301: { action. consumeUsingDeclaration(); break;
+ case 287: { action. consumeToken(); break;
}
//
- // Rule 302: typename_opt ::= typename
+ // Rule 288: storage_class_specifier ::= register
//
- case 302: { action. consumePlaceHolder(); break;
+ case 288: { action. consumeToken(); break;
}
//
- // Rule 303: typename_opt ::= $Empty
+ // Rule 289: storage_class_specifier ::= static
//
- case 303: { action. consumeEmpty(); break;
+ case 289: { action. consumeToken(); break;
}
//
- // Rule 304: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ;
+ // Rule 290: storage_class_specifier ::= extern
//
- case 304: { action. consumeUsingDirective(); break;
+ case 290: { action. consumeToken(); break;
}
//
- // Rule 305: asm_definition ::= asm ( stringlit ) ;
+ // Rule 291: storage_class_specifier ::= mutable
//
- case 305: { action. consumeDeclarationASM(); break;
+ case 291: { action. consumeToken(); break;
}
//
- // Rule 306: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt }
+ // Rule 292: function_specifier ::= inline
//
- case 306: { action. consumeLinkageSpecification(); break;
+ case 292: { action. consumeToken(); break;
}
//
- // Rule 307: linkage_specification ::= extern stringlit <openscope-ast> declaration
+ // Rule 293: function_specifier ::= virtual
//
- case 307: { action. consumeLinkageSpecification(); break;
+ case 293: { action. consumeToken(); break;
}
//
- // Rule 312: init_declarator_complete ::= init_declarator
+ // Rule 294: function_specifier ::= explicit
//
- case 312: { action. consumeInitDeclaratorComplete(); break;
+ case 294: { action. consumeToken(); break;
}
//
- // Rule 314: init_declarator ::= complete_declarator initializer
+ // Rule 295: simple_type_specifier ::= simple_type_specifier_token
//
- case 314: { action. consumeDeclaratorWithInitializer(true); break;
+ case 295: { action. consumeToken(); break;
}
//
- // Rule 317: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
+ // Rule 309: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name
//
- case 317: { action. consumeDeclaratorWithPointer(true); break;
+ case 309: { action. consumeQualifiedId(false); break;
}
//
- // Rule 319: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
+ // Rule 310: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name
//
- case 319: { action. consumeDeclaratorWithPointer(true); break;
+ case 310: { action. consumeQualifiedId(false); break;
}
//
- // Rule 323: basic_direct_declarator ::= declarator_id_name
+ // Rule 311: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name
//
- case 323: { action. consumeDirectDeclaratorIdentifier(); break;
+ case 311: { action. consumeQualifiedId(false); break;
}
//
- // Rule 324: basic_direct_declarator ::= ( declarator )
+ // Rule 312: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
//
- case 324: { action. consumeDirectDeclaratorBracketed(); break;
+ case 312: { action. consumeQualifiedId(true); break;
}
//
- // Rule 325: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ // Rule 314: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
//
- case 325: { action. consumeDirectDeclaratorFunctionDeclarator(true); break;
+ case 314: { action. consumeTypeSpecifierElaborated(false); break;
}
//
- // Rule 326: array_direct_declarator ::= array_direct_declarator array_modifier
+ // Rule 315: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name
//
- case 326: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 315: { action. consumeTypeSpecifierElaborated(true); break;
}
//
- // Rule 327: array_direct_declarator ::= basic_direct_declarator array_modifier
+ // Rule 316: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
//
- case 327: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 316: { action. consumeTypeSpecifierElaborated(false); break;
}
//
- // Rule 328: array_modifier ::= [ constant_expression ]
+ // Rule 320: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 328: { action. consumeDirectDeclaratorArrayModifier(true); break;
+ case 320: { action. consumeTypeSpecifierEnumeration(false); break;
}
//
- // Rule 329: array_modifier ::= [ ]
+ // Rule 321: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 329: { action. consumeDirectDeclaratorArrayModifier(false); break;
+ case 321: { action. consumeTypeSpecifierEnumeration(true); break;
}
//
- // Rule 330: ptr_operator ::= pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
+ // Rule 327: enumerator_definition ::= identifier_token
//
- case 330: { action. consumePointer(); break;
+ case 327: { action. consumeEnumerator(false); break;
}
//
- // Rule 331: ptr_operator ::= pointer_hook & pointer_hook
+ // Rule 328: enumerator_definition ::= identifier_token = constant_expression
//
- case 331: { action. consumeReferenceOperator(); break;
+ case 328: { action. consumeEnumerator(true); break;
}
//
- // Rule 332: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
+ // Rule 330: namespace_definition ::= namespace namespace_name namespace_definition_hook { <openscope-ast> declaration_seq_opt }
//
- case 332: { action. consumePointerToMember(); break;
+ case 330: { action. consumeNamespaceDefinition(true); break;
}
//
- // Rule 339: cv_qualifier ::= const
+ // Rule 331: namespace_definition ::= namespace namespace_definition_hook { <openscope-ast> declaration_seq_opt }
//
- case 339: { action. consumeToken(); break;
+ case 331: { action. consumeNamespaceDefinition(false); break;
}
//
- // Rule 340: cv_qualifier ::= volatile
+ // Rule 333: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ;
//
- case 340: { action. consumeToken(); break;
+ case 333: { action. consumeNamespaceAliasDefinition(); break;
}
//
- // Rule 342: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
+ // Rule 334: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ;
//
- case 342: { action. consumeQualifiedId(false); break;
+ case 334: { action. consumeUsingDeclaration(); break;
}
//
- // Rule 343: type_id ::= type_specifier_seq
+ // Rule 335: typename_opt ::= typename
//
- case 343: { action. consumeTypeId(false); break;
+ case 335: { action. consumePlaceHolder(); break;
}
//
- // Rule 344: type_id ::= type_specifier_seq abstract_declarator
+ // Rule 336: typename_opt ::= $Empty
//
- case 344: { action. consumeTypeId(true); break;
+ case 336: { action. consumeEmpty(); break;
}
//
- // Rule 347: abstract_declarator ::= <openscope-ast> ptr_operator_seq
+ // Rule 337: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ;
//
- case 347: { action. consumeDeclaratorWithPointer(false); break;
+ case 337: { action. consumeUsingDirective(); break;
}
//
- // Rule 348: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
+ // Rule 338: asm_definition ::= asm ( stringlit ) ;
//
- case 348: { action. consumeDeclaratorWithPointer(true); break;
+ case 338: { action. consumeDeclarationASM(); break;
}
//
- // Rule 352: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ // Rule 339: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt }
//
- case 352: { action. consumeDirectDeclaratorBracketed(); break;
+ case 339: { action. consumeLinkageSpecification(); break;
}
//
- // Rule 353: basic_direct_abstract_declarator ::= ( )
+ // Rule 340: linkage_specification ::= extern stringlit <openscope-ast> declaration
//
- case 353: { action. consumeAbstractDeclaratorEmpty(); break;
+ case 340: { action. consumeLinkageSpecification(); break;
}
//
- // Rule 354: array_direct_abstract_declarator ::= array_modifier
+ // Rule 345: init_declarator_complete ::= init_declarator
//
- case 354: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
+ case 345: { action. consumeInitDeclaratorComplete(); break;
}
//
- // Rule 355: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ // Rule 347: init_declarator ::= complete_declarator initializer
//
- case 355: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 347: { action. consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 356: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ // Rule 350: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
//
- case 356: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 350: { action. consumeDeclaratorWithPointer(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 352: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
//
- case 357: { action. consumeDirectDeclaratorFunctionDeclarator(true); break;
+ case 352: { action. consumeDeclaratorWithPointer(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 356: basic_direct_declarator ::= declarator_id_name
//
- case 358: { action. consumeDirectDeclaratorFunctionDeclarator(false); break;
+ case 356: { action. consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt ...
+ // Rule 357: basic_direct_declarator ::= ( declarator )
//
- case 359: { action. consumePlaceHolder(); break;
+ case 357: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt
+ // Rule 358: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
- case 360: { action. consumeEmpty(); break;
+ case 358: { action. consumeDirectDeclaratorFunctionDeclarator(true); break;
}
//
- // Rule 361: parameter_declaration_clause ::= parameter_declaration_list , ...
+ // Rule 359: array_direct_declarator ::= array_direct_declarator array_modifier
//
- case 361: { action. consumePlaceHolder(); break;
+ case 359: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 367: abstract_declarator_opt ::= $Empty
+ // Rule 360: array_direct_declarator ::= basic_direct_declarator array_modifier
//
- case 367: { action. consumeEmpty(); break;
+ case 360: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 368: parameter_declaration ::= declaration_specifiers parameter_init_declarator
+ // Rule 361: array_modifier ::= [ constant_expression ]
//
- case 368: { action. consumeParameterDeclaration(); break;
+ case 361: { action. consumeDirectDeclaratorArrayModifier(true); break;
}
//
- // Rule 369: parameter_declaration ::= declaration_specifiers
+ // Rule 362: array_modifier ::= [ ]
//
- case 369: { action. consumeParameterDeclarationWithoutDeclarator(); break;
+ case 362: { action. consumeDirectDeclaratorArrayModifier(false); break;
}
//
- // Rule 371: parameter_init_declarator ::= declarator = parameter_initializer
+ // Rule 363: ptr_operator ::= pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
//
- case 371: { action. consumeDeclaratorWithInitializer(true); break;
+ case 363: { action. consumePointer(); break;
}
//
- // Rule 373: parameter_init_declarator ::= abstract_declarator = parameter_initializer
+ // Rule 364: ptr_operator ::= pointer_hook & pointer_hook
//
- case 373: { action. consumeDeclaratorWithInitializer(true); break;
+ case 364: { action. consumeReferenceOperator(); break;
}
//
- // Rule 374: parameter_init_declarator ::= = parameter_initializer
+ // Rule 365: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
//
- case 374: { action. consumeDeclaratorWithInitializer(false); break;
+ case 365: { action. consumePointerToMember(); break;
}
//
- // Rule 375: parameter_initializer ::= assignment_expression
+ // Rule 372: cv_qualifier ::= const
//
- case 375: { action. consumeInitializer(); break;
+ case 372: { action. consumeToken(); break;
}
//
- // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
+ // Rule 373: cv_qualifier ::= volatile
//
- case 376: { action. consumeFunctionDefinition(false); break;
+ case 373: { action. consumeToken(); break;
}
//
- // Rule 377: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
+ // Rule 375: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
//
- case 377: { action. consumeFunctionDefinition(true); break;
+ case 375: { action. consumeQualifiedId(false); break;
}
//
- // Rule 380: initializer ::= ( expression_list )
+ // Rule 376: type_id ::= type_specifier_seq
//
- case 380: { action. consumeInitializerConstructor(); break;
+ case 376: { action. consumeTypeId(false); break;
}
//
- // Rule 381: initializer_clause ::= assignment_expression
+ // Rule 377: type_id ::= type_specifier_seq abstract_declarator
//
- case 381: { action. consumeInitializer(); break;
+ case 377: { action. consumeTypeId(true); break;
}
//
- // Rule 382: initializer_clause ::= initializer_list
+ // Rule 380: abstract_declarator ::= <openscope-ast> ptr_operator_seq
//
- case 382: { action. consumeInitializer(); break;
+ case 380: { action. consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 383: initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq , } end_initializer_list
+ // Rule 381: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
//
- case 383: { action. consumeInitializerList(); break;
+ case 381: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 384: initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq } end_initializer_list
+ // Rule 385: basic_direct_abstract_declarator ::= ( abstract_declarator )
//
- case 384: { action. consumeInitializerList(); break;
+ case 385: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 385: initializer_list ::= { <openscope-ast> }
+ // Rule 386: basic_direct_abstract_declarator ::= ( )
//
- case 385: { action. consumeInitializerList(); break;
+ case 386: { action. consumeAbstractDeclaratorEmpty(); break;
}
//
- // Rule 386: start_initializer_list ::= $Empty
+ // Rule 387: array_direct_abstract_declarator ::= array_modifier
//
- case 386: { action. initializerListStart(); break;
+ case 387: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
}
//
- // Rule 387: end_initializer_list ::= $Empty
+ // Rule 388: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
//
- case 387: { action. initializerListEnd(); break;
+ case 388: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 392: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
+ // Rule 389: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
//
- case 392: { action. consumeClassSpecifier(); break;
+ case 389: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 393: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt
+ // Rule 390: 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 393: { action. consumeClassHead(false); break;
+ case 390: { action. consumeDirectDeclaratorFunctionDeclarator(true); break;
}
//
- // Rule 394: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
+ // Rule 391: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
- case 394: { action. consumeClassHead(false); break;
+ case 391: { action. consumeDirectDeclaratorFunctionDeclarator(false); break;
}
//
- // Rule 395: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt
+ // Rule 392: parameter_declaration_clause ::= parameter_declaration_list_opt ...
//
- case 395: { action. consumeClassHead(true); break;
+ case 392: { action. consumePlaceHolder(); break;
}
//
- // Rule 396: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
+ // Rule 393: parameter_declaration_clause ::= parameter_declaration_list_opt
//
- case 396: { action. consumeClassHead(true); break;
+ case 393: { action. consumeEmpty(); break;
}
//
- // Rule 400: identifier_name_opt ::= $Empty
+ // Rule 394: parameter_declaration_clause ::= parameter_declaration_list , ...
+ //
+ case 394: { action. consumePlaceHolder(); break;
+ }
+
+ //
+ // Rule 400: abstract_declarator_opt ::= $Empty
//
case 400: { action. consumeEmpty(); break;
+ }
+
+ //
+ // Rule 401: parameter_declaration ::= declaration_specifiers parameter_init_declarator
+ //
+ case 401: { action. consumeParameterDeclaration(); break;
+ }
+
+ //
+ // Rule 402: parameter_declaration ::= declaration_specifiers
+ //
+ case 402: { action. consumeParameterDeclarationWithoutDeclarator(); break;
+ }
+
+ //
+ // Rule 404: parameter_init_declarator ::= declarator = parameter_initializer
+ //
+ case 404: { action. consumeDeclaratorWithInitializer(true); break;
+ }
+
+ //
+ // Rule 406: parameter_init_declarator ::= abstract_declarator = parameter_initializer
+ //
+ case 406: { action. consumeDeclaratorWithInitializer(true); break;
+ }
+
+ //
+ // Rule 407: parameter_init_declarator ::= = parameter_initializer
+ //
+ case 407: { action. consumeDeclaratorWithInitializer(false); break;
+ }
+
+ //
+ // Rule 408: parameter_initializer ::= assignment_expression
+ //
+ case 408: { action. consumeInitializer(); break;
+ }
+
+ //
+ // Rule 409: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
+ //
+ case 409: { action. consumeFunctionDefinition(false); break;
+ }
+
+ //
+ // Rule 410: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
+ //
+ case 410: { action. consumeFunctionDefinition(true); break;
+ }
+
+ //
+ // Rule 413: initializer ::= ( expression_list )
+ //
+ case 413: { action. consumeInitializerConstructor(); break;
+ }
+
+ //
+ // Rule 414: initializer_clause ::= assignment_expression
+ //
+ case 414: { action. consumeInitializer(); break;
+ }
+
+ //
+ // Rule 415: initializer_clause ::= initializer_list
+ //
+ case 415: { action. consumeInitializer(); break;
+ }
+
+ //
+ // Rule 416: initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq , } end_initializer_list
+ //
+ case 416: { action. consumeInitializerList(); break;
+ }
+
+ //
+ // Rule 417: initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq } end_initializer_list
+ //
+ case 417: { action. consumeInitializerList(); break;
+ }
+
+ //
+ // Rule 418: initializer_list ::= { <openscope-ast> }
+ //
+ case 418: { action. consumeInitializerList(); break;
+ }
+
+ //
+ // Rule 419: start_initializer_list ::= $Empty
+ //
+ case 419: { action. initializerListStart(); break;
+ }
+
+ //
+ // Rule 420: end_initializer_list ::= $Empty
+ //
+ case 420: { action. initializerListEnd(); break;
+ }
+
+ //
+ // Rule 425: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
+ //
+ case 425: { action. consumeClassSpecifier(); break;
+ }
+
+ //
+ // Rule 426: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt
+ //
+ case 426: { action. consumeClassHead(false); break;
+ }
+
+ //
+ // Rule 427: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
+ //
+ case 427: { action. consumeClassHead(false); break;
+ }
+
+ //
+ // Rule 428: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt
+ //
+ case 428: { action. consumeClassHead(true); break;
+ }
+
+ //
+ // Rule 429: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
+ //
+ case 429: { action. consumeClassHead(true); break;
+ }
+
+ //
+ // Rule 433: identifier_name_opt ::= $Empty
+ //
+ case 433: { action. consumeEmpty(); break;
}
//
- // Rule 404: visibility_label ::= access_specifier_keyword :
+ // Rule 437: visibility_label ::= access_specifier_keyword :
+ //
+ case 437: { action. consumeVisibilityLabel(); break;
+ }
+
+ //
+ // Rule 438: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
+ //
+ case 438: { action. consumeDeclarationSimple(true); break;
+ }
+
+ //
+ // Rule 439: member_declaration ::= declaration_specifiers_opt ;
+ //
+ case 439: { action. consumeDeclarationSimple(false); break;
+ }
+
+ //
+ // Rule 442: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
+ //
+ case 442: { action. consumeMemberDeclarationQualifiedId(); break;
+ }
+
+ //
+ // Rule 448: member_declaration ::= ERROR_TOKEN
+ //
+ case 448: { action. consumeDeclarationProblem(); break;
+ }
+
+ //
+ // Rule 457: member_declarator ::= declarator constant_initializer
+ //
+ case 457: { action. consumeMemberDeclaratorWithInitializer(); break;
+ }
+
+ //
+ // Rule 458: member_declarator ::= bit_field_declarator : constant_expression
+ //
+ case 458: { action. consumeBitField(true); break;
+ }
+
+ //
+ // Rule 459: member_declarator ::= : constant_expression
+ //
+ case 459: { action. consumeBitField(false); break;
+ }
+
+ //
+ // Rule 460: bit_field_declarator ::= identifier_name
+ //
+ case 460: { action. consumeDirectDeclaratorIdentifier(); break;
+ }
+
+ //
+ // Rule 461: constant_initializer ::= = constant_expression
+ //
+ case 461: { action. consumeInitializer(); break;
+ }
+
+ //
+ // Rule 467: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
+ //
+ case 467: { action. consumeBaseSpecifier(false, false); break;
+ }
+
+ //
+ // Rule 468: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
+ //
+ case 468: { action. consumeBaseSpecifier(true, true); break;
+ }
+
+ //
+ // Rule 469: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
+ //
+ case 469: { action. consumeBaseSpecifier(true, true); break;
+ }
+
+ //
+ // Rule 470: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
+ //
+ case 470: { action. consumeBaseSpecifier(true, false); break;
+ }
+
+ //
+ // Rule 471: access_specifier_keyword ::= private
+ //
+ case 471: { action. consumeToken(); break;
+ }
+
+ //
+ // Rule 472: access_specifier_keyword ::= protected
//
- case 404: { action. consumeVisibilityLabel(); break;
+ case 472: { action. consumeToken(); break;
}
//
- // Rule 405: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
+ // Rule 473: access_specifier_keyword ::= public
//
- case 405: { action. consumeDeclarationSimple(true); break;
+ case 473: { action. consumeToken(); break;
}
//
- // Rule 406: member_declaration ::= declaration_specifiers_opt ;
+ // Rule 475: access_specifier_keyword_opt ::= $Empty
//
- case 406: { action. consumeDeclarationSimple(false); break;
+ case 475: { action. consumeEmpty(); break;
}
//
- // Rule 409: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
+ // Rule 477: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt >
//
- case 409: { action. consumeMemberDeclarationQualifiedId(); break;
+ case 477: { action. consumeTemplateId(); break;
}
//
- // Rule 415: member_declaration ::= ERROR_TOKEN
+ // Rule 478: conversion_function_id ::= operator conversion_type_id
//
- case 415: { action. consumeDeclarationProblem(); break;
+ case 478: { action. consumeConversionName(); break;
}
//
- // Rule 424: member_declarator ::= declarator constant_initializer
+ // Rule 479: conversion_type_id ::= type_specifier_seq conversion_declarator
//
- case 424: { action. consumeMemberDeclaratorWithInitializer(); break;
+ case 479: { action. consumeTypeId(true); break;
}
//
- // Rule 425: member_declarator ::= bit_field_declarator : constant_expression
+ // Rule 480: conversion_type_id ::= type_specifier_seq
//
- case 425: { action. consumeBitField(true); break;
+ case 480: { action. consumeTypeId(false); break;
}
//
- // Rule 426: member_declarator ::= : constant_expression
+ // Rule 481: conversion_declarator ::= <openscope-ast> ptr_operator_seq
//
- case 426: { action. consumeBitField(false); break;
+ case 481: { action. consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 427: bit_field_declarator ::= identifier_name
+ // Rule 487: mem_initializer ::= mem_initializer_name ( expression_list_opt )
//
- case 427: { action. consumeDirectDeclaratorIdentifier(); break;
+ case 487: { action. consumeConstructorChainInitializer(); break;
}
//
- // Rule 428: constant_initializer ::= = constant_expression
+ // Rule 488: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
//
- case 428: { action. consumeInitializer(); break;
+ case 488: { action. consumeQualifiedId(false); break;
}
//
- // Rule 434: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
+ // Rule 491: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
//
- case 434: { action. consumeBaseSpecifier(false, false); break;
+ case 491: { action. consumeTemplateId(); break;
}
//
- // Rule 435: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
+ // Rule 492: operator_id_name ::= operator overloadable_operator
//
- case 435: { action. consumeBaseSpecifier(true, true); break;
+ case 492: { action. consumeOperatorName(); break;
}
//
- // Rule 436: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
+ // Rule 535: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
//
- case 436: { action. consumeBaseSpecifier(true, true); break;
+ case 535: { action. consumeTemplateDeclaration(); break;
}
//
- // Rule 437: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
+ // Rule 536: export_opt ::= export
//
- case 437: { action. consumeBaseSpecifier(true, false); break;
+ case 536: { action. consumePlaceHolder(); break;
}
//
- // Rule 438: access_specifier_keyword ::= private
+ // Rule 537: export_opt ::= $Empty
//
- case 438: { action. consumeToken(); break;
+ case 537: { action. consumeEmpty(); break;
}
//
- // Rule 439: access_specifier_keyword ::= protected
+ // Rule 541: template_parameter ::= parameter_declaration
//
- case 439: { action. consumeToken(); break;
+ case 541: { action. consumeTemplateParamterDeclaration(); break;
}
//
- // Rule 440: access_specifier_keyword ::= public
+ // Rule 542: type_parameter ::= class identifier_name_opt
//
- case 440: { action. consumeToken(); break;
+ case 542: { action. consumeSimpleTypeTemplateParameter(false); break;
}
//
- // Rule 442: access_specifier_keyword_opt ::= $Empty
+ // Rule 543: type_parameter ::= class identifier_name_opt = type_id
//
- case 442: { action. consumeEmpty(); break;
+ case 543: { action. consumeSimpleTypeTemplateParameter(true); break;
}
//
- // Rule 444: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt >
+ // Rule 544: type_parameter ::= typename identifier_name_opt
//
- case 444: { action. consumeTemplateId(); break;
+ case 544: { action. consumeSimpleTypeTemplateParameter(false); break;
}
//
- // Rule 445: conversion_function_id ::= operator conversion_type_id
+ // Rule 545: type_parameter ::= typename identifier_name_opt = type_id
//
- case 445: { action. consumeConversionName(); break;
+ case 545: { action. consumeSimpleTypeTemplateParameter(true); break;
}
//
- // Rule 446: conversion_type_id ::= type_specifier_seq conversion_declarator
+ // Rule 546: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
//
- case 446: { action. consumeTypeId(true); break;
+ case 546: { action. consumeTemplatedTypeTemplateParameter(false); break;
}
//
- // Rule 447: conversion_type_id ::= type_specifier_seq
+ // Rule 547: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
//
- case 447: { action. consumeTypeId(false); break;
+ case 547: { action. consumeTemplatedTypeTemplateParameter(true); break;
}
//
- // Rule 448: conversion_declarator ::= <openscope-ast> ptr_operator_seq
+ // Rule 548: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
//
- case 448: { action. consumeDeclaratorWithPointer(false); break;
+ case 548: { action. consumeTemplateId(); break;
}
//
- // Rule 454: mem_initializer ::= mem_initializer_name ( expression_list_opt )
+ // Rule 555: nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate :: nested_name_specifier_with_template_inTemplate
//
- case 454: { action. consumeConstructorChainInitializer(); break;
+ case 555: { action. consumeNestedNameSpecifier(true); break;
}
//
- // Rule 455: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
+ // Rule 556: nested_name_specifier_inTemplate ::= class_or_namespace_name_inTemplate ::
//
- case 455: { action. consumeQualifiedId(false); break;
+ case 556: { action. consumeNestedNameSpecifier(false); break;
}
//
- // Rule 458: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
+ // Rule 557: nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate :: nested_name_specifier_with_template_inTemplate
//
- case 458: { action. consumeTemplateId(); break;
+ case 557: { action. consumeNestedNameSpecifier(true); break;
}
//
- // Rule 459: operator_id_name ::= operator overloadable_operator
+ // Rule 558: nested_name_specifier_with_template_inTemplate ::= class_or_namespace_name_with_template_inTemplate ::
//
- case 459: { action. consumeOperatorName(); break;
+ case 558: { action. consumeNestedNameSpecifier(false); break;
}
//
- // Rule 502: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
+ // Rule 559: class_or_namespace_name_with_template_inTemplate ::= template_opt class_or_namespace_name_inTemplate
//
- case 502: { action. consumeTemplateDeclaration(); break;
+ case 559: { action. consumeNameWithTemplateKeyword(); break;
}
//
- // Rule 503: export_opt ::= export
+ // Rule 561: nested_name_specifier_opt_inTemplate ::= $Empty
//
- case 503: { action. consumePlaceHolder(); break;
+ case 561: { action. consumeNestedNameSpecifierEmpty(); break;
}
//
- // Rule 504: export_opt ::= $Empty
+ // Rule 564: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier identifier_name
//
- case 504: { action. consumeEmpty(); break;
+ case 564: { action. consumeQualifiedId(false); break;
}
//
- // Rule 508: template_parameter ::= parameter_declaration
+ // Rule 565: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
//
- case 508: { action. consumeTemplateParamterDeclaration(); break;
+ case 565: { action. consumeQualifiedId(true); break;
}
//
- // Rule 509: type_parameter ::= class identifier_name_opt
+ // Rule 570: declaration_specifiers_inTemplate ::= <openscope-ast> simple_declaration_specifiers
//
- case 509: { action. consumeSimpleTypeTemplateParameter(false); break;
+ case 570: { action. consumeDeclarationSpecifiersSimple(); break;
}
//
- // Rule 510: type_parameter ::= class identifier_name_opt = type_id
+ // Rule 571: declaration_specifiers_inTemplate ::= <openscope-ast> class_declaration_specifiers
//
- case 510: { action. consumeSimpleTypeTemplateParameter(true); break;
+ case 571: { action. consumeDeclarationSpecifiersComposite(); break;
}
//
- // Rule 511: type_parameter ::= typename identifier_name_opt
+ // Rule 572: declaration_specifiers_inTemplate ::= <openscope-ast> elaborated_declaration_specifiers
//
- case 511: { action. consumeSimpleTypeTemplateParameter(false); break;
+ case 572: { action. consumeDeclarationSpecifiersComposite(); break;
}
//
- // Rule 512: type_parameter ::= typename identifier_name_opt = type_id
+ // Rule 573: declaration_specifiers_inTemplate ::= <openscope-ast> enum_declaration_specifiers
//
- case 512: { action. consumeSimpleTypeTemplateParameter(true); break;
+ case 573: { action. consumeDeclarationSpecifiersComposite(); break;
}
//
- // Rule 513: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
+ // Rule 574: declaration_specifiers_inTemplate ::= <openscope-ast> type_name_declaration_specifiers_inTemplate
//
- case 513: { action. consumeTemplatedTypeTemplateParameter(false); break;
+ case 574: { action. consumeDeclarationSpecifiersTypeName(); break;
}
//
- // Rule 514: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
+ // Rule 576: type_id_inTemplate ::= type_specifier_seq_inTemplate
//
- case 514: { action. consumeTemplatedTypeTemplateParameter(true); break;
+ case 576: { action. consumeTypeId(false); break;
}
//
- // Rule 515: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
+ // Rule 577: type_id_inTemplate ::= type_specifier_seq_inTemplate abstract_declarator
//
- case 515: { action. consumeTemplateId(); break;
+ case 577: { action. consumeTypeId(true); break;
}
//
- // Rule 520: template_argument ::= assignment_expression
+ // Rule 578: template_argument ::= assignment_expression_inTemplate
//
- case 520: { action. consumeTemplateArgumentExpression(); break;
+ case 578: { action. consumeTemplateArgumentExpression(); break;
}
//
- // Rule 521: template_argument ::= type_id
+ // Rule 579: template_argument ::= type_id_inTemplate
//
- case 521: { action. consumeTemplateArgumentTypeId(); break;
+ case 579: { action. consumeTemplateArgumentTypeId(); break;
}
//
- // Rule 522: explicit_instantiation ::= template declaration
+ // Rule 580: explicit_instantiation ::= template declaration
//
- case 522: { action. consumeTemplateExplicitInstantiation(); break;
+ case 580: { action. consumeTemplateExplicitInstantiation(); break;
}
//
- // Rule 523: explicit_specialization ::= template < > declaration
+ // Rule 581: explicit_specialization ::= template < > declaration
//
- case 523: { action. consumeTemplateExplicitSpecialization(); break;
+ case 581: { action. consumeTemplateExplicitSpecialization(); break;
}
//
- // Rule 524: try_block ::= try compound_statement <openscope-ast> handler_seq
+ // Rule 582: try_block ::= try compound_statement <openscope-ast> handler_seq
//
- case 524: { action. consumeStatementTryBlock(true); break;
+ case 582: { action. consumeStatementTryBlock(true); break;
}
//
- // Rule 525: try_block ::= try compound_statement
+ // Rule 583: try_block ::= try compound_statement
//
- case 525: { action. consumeStatementTryBlock(false); break;
+ case 583: { action. consumeStatementTryBlock(false); break;
}
//
- // Rule 528: handler ::= catch ( exception_declaration ) compound_statement
+ // Rule 586: handler ::= catch ( exception_declaration ) compound_statement
//
- case 528: { action. consumeStatementCatchHandler(false); break;
+ case 586: { action. consumeStatementCatchHandler(false); break;
}
//
- // Rule 529: handler ::= catch ( ... ) compound_statement
+ // Rule 587: handler ::= catch ( ... ) compound_statement
//
- case 529: { action. consumeStatementCatchHandler(true); break;
+ case 587: { action. consumeStatementCatchHandler(true); break;
}
//
- // Rule 530: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
+ // Rule 588: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
//
- case 530: { action. consumeDeclarationSimple(true); break;
+ case 588: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 531: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
+ // Rule 589: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
//
- case 531: { action. consumeDeclarationSimple(true); break;
+ case 589: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 532: exception_declaration ::= type_specifier_seq
+ // Rule 590: exception_declaration ::= type_specifier_seq
//
- case 532: { action. consumeDeclarationSimple(false); break;
+ case 590: { action. consumeDeclarationSimple(false); break;
}
//
- // Rule 534: exception_specification ::= throw ( )
+ // Rule 592: exception_specification ::= throw ( )
//
- case 534: { action. consumePlaceHolder(); break;
+ case 592: { action. consumePlaceHolder(); break;
}
//
- // Rule 540: no_cast_start ::= ERROR_TOKEN
+ // Rule 598: no_cast_start ::= ERROR_TOKEN
//
- case 540: { action. consumeEmpty(); break;
+ case 598: { action. consumeEmpty(); break;
}

Back to the top