Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java')
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java582
1 files changed, 297 insertions, 285 deletions
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java
index 3f13e3f35e1..2d6eb25c774 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java
@@ -1,5 +1,5 @@
/*******************************************************************************
-* Copyright (c) 2006, 2009 IBM Corporation and others.
+* Copyright (c) 2006, 2010 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -991,925 +991,937 @@ public CPPSizeofExpressionParser(ITokenStream stream, Map<String,String> propert
//
// Rule 191: iteration_statement ::= do statement while ( expression ) ;
//
- case 191: { action. consumeStatementDoLoop(); break;
+ case 191: { action. consumeStatementDoLoop(true); break;
}
//
- // Rule 192: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement
+ // Rule 192: iteration_statement ::= do statement
//
- case 192: { action. consumeStatementForLoop(); break;
+ case 192: { action. consumeStatementDoLoop(false); break;
}
//
- // Rule 194: for_init_statement ::= simple_declaration_with_declspec
+ // Rule 193: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement
//
- case 194: { action. consumeStatementDeclaration(); break;
+ case 193: { action. consumeStatementForLoop(); break;
}
//
- // Rule 195: jump_statement ::= break ;
+ // Rule 195: for_init_statement ::= simple_declaration_with_declspec
//
- case 195: { action. consumeStatementBreak(); break;
+ case 195: { action. consumeStatementDeclaration(); break;
}
//
- // Rule 196: jump_statement ::= continue ;
+ // Rule 196: jump_statement ::= break ;
//
- case 196: { action. consumeStatementContinue(); break;
+ case 196: { action. consumeStatementBreak(); break;
}
//
- // Rule 197: jump_statement ::= return expression ;
+ // Rule 197: jump_statement ::= continue ;
//
- case 197: { action. consumeStatementReturn(true); break;
+ case 197: { action. consumeStatementContinue(); break;
}
//
- // Rule 198: jump_statement ::= return ;
+ // Rule 198: jump_statement ::= return expression ;
//
- case 198: { action. consumeStatementReturn(false); break;
+ case 198: { action. consumeStatementReturn(true); break;
}
//
- // Rule 199: jump_statement ::= goto identifier_token ;
+ // Rule 199: jump_statement ::= return ;
//
- case 199: { action. consumeStatementGoto(); break;
+ case 199: { action. consumeStatementReturn(false); break;
}
//
- // Rule 200: declaration_statement ::= block_declaration
+ // Rule 200: jump_statement ::= goto identifier_token ;
//
- case 200: { action. consumeStatementDeclarationWithDisambiguation(); break;
+ case 200: { action. consumeStatementGoto(); break;
}
//
- // Rule 201: declaration_statement ::= function_definition
+ // Rule 201: declaration_statement ::= block_declaration
//
- case 201: { action. consumeStatementDeclaration(); break;
+ case 201: { action. consumeStatementDeclarationWithDisambiguation(); break;
}
//
- // Rule 209: declaration ::= ERROR_TOKEN
+ // Rule 202: declaration_statement ::= function_definition
//
- case 209: { action. consumeDeclarationProblem(); break;
+ case 202: { action. consumeStatementDeclaration(); break;
}
//
- // Rule 219: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
+ // Rule 210: declaration ::= ERROR_TOKEN
//
- case 219: { action. consumeDeclarationSimple(true); break;
+ case 210: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 220: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
+ // Rule 220: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
//
case 220: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 221: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
+ // Rule 221: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
//
- case 221: { action. consumeDeclarationSpecifiersSimple(); break;
+ case 221: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 222: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers
+ // Rule 222: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
//
- case 222: { action. consumeDeclarationSpecifiersComposite(); break;
+ case 222: { action. consumeDeclarationSpecifiersSimple(); break;
}
//
- // Rule 223: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
+ // Rule 223: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers
//
case 223: { action. consumeDeclarationSpecifiersComposite(); break;
}
//
- // Rule 224: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
+ // Rule 224: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
//
case 224: { action. consumeDeclarationSpecifiersComposite(); break;
}
//
- // Rule 225: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers
+ // Rule 225: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
//
- case 225: { action. consumeDeclarationSpecifiersTypeName(); break;
+ case 225: { action. consumeDeclarationSpecifiersComposite(); break;
}
//
- // Rule 227: declaration_specifiers_opt ::= $Empty
+ // Rule 226: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers
//
- case 227: { action. consumeEmpty(); break;
+ case 226: { action. consumeDeclarationSpecifiersTypeName(); break;
}
//
- // Rule 231: no_type_declaration_specifier ::= friend
+ // Rule 228: declaration_specifiers_opt ::= $Empty
//
- case 231: { action. consumeToken(); break;
+ case 228: { action. consumeEmpty(); break;
}
//
- // Rule 232: no_type_declaration_specifier ::= typedef
+ // Rule 232: no_type_declaration_specifier ::= friend
//
case 232: { action. consumeToken(); break;
}
//
- // Rule 252: storage_class_specifier ::= auto
+ // Rule 233: no_type_declaration_specifier ::= typedef
//
- case 252: { action. consumeToken(); break;
+ case 233: { action. consumeToken(); break;
}
//
- // Rule 253: storage_class_specifier ::= register
+ // Rule 253: storage_class_specifier ::= auto
//
case 253: { action. consumeToken(); break;
}
//
- // Rule 254: storage_class_specifier ::= static
+ // Rule 254: storage_class_specifier ::= register
//
case 254: { action. consumeToken(); break;
}
//
- // Rule 255: storage_class_specifier ::= extern
+ // Rule 255: storage_class_specifier ::= static
//
case 255: { action. consumeToken(); break;
}
//
- // Rule 256: storage_class_specifier ::= mutable
+ // Rule 256: storage_class_specifier ::= extern
//
case 256: { action. consumeToken(); break;
}
//
- // Rule 257: function_specifier ::= inline
+ // Rule 257: storage_class_specifier ::= mutable
//
case 257: { action. consumeToken(); break;
}
//
- // Rule 258: function_specifier ::= virtual
+ // Rule 258: function_specifier ::= inline
//
case 258: { action. consumeToken(); break;
}
//
- // Rule 259: function_specifier ::= explicit
+ // Rule 259: function_specifier ::= virtual
//
case 259: { action. consumeToken(); break;
}
//
- // Rule 260: simple_type_specifier ::= simple_type_specifier_token
+ // Rule 260: function_specifier ::= explicit
//
case 260: { action. consumeToken(); break;
}
//
- // Rule 274: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name
+ // Rule 261: simple_type_specifier ::= simple_type_specifier_token
//
- case 274: { action. consumeQualifiedId(false); break;
+ case 261: { action. consumeToken(); break;
}
//
- // Rule 275: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name
+ // Rule 275: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name
//
case 275: { action. consumeQualifiedId(false); break;
}
//
- // Rule 276: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name
+ // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name
//
case 276: { action. consumeQualifiedId(false); break;
}
//
- // Rule 277: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
+ // Rule 277: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name
//
- case 277: { action. consumeQualifiedId(true); break;
+ case 277: { action. consumeQualifiedId(false); break;
}
//
- // Rule 279: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
+ // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
//
- case 279: { action. consumeTypeSpecifierElaborated(false); break;
+ case 278: { action. consumeQualifiedId(true); break;
}
//
- // Rule 280: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name
+ // Rule 280: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
//
- case 280: { action. consumeTypeSpecifierElaborated(true); break;
+ case 280: { action. consumeTypeSpecifierElaborated(false); break;
}
//
- // Rule 281: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
+ // Rule 281: elaborated_type_specifier ::= class_keyword elaborated_specifier_hook dcolon_opt nested_name_specifier_opt template_opt template_id_name
//
- case 281: { action. consumeTypeSpecifierElaborated(false); break;
+ case 281: { action. consumeTypeSpecifierElaborated(true); break;
}
//
- // Rule 285: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
+ // Rule 282: elaborated_type_specifier ::= enum elaborated_specifier_hook dcolon_opt nested_name_specifier_opt identifier_name
//
- case 285: { action. consumeTypeSpecifierEnumeration(false); break;
+ case 282: { action. consumeTypeSpecifierElaborated(false); break;
}
//
- // Rule 286: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
+ // Rule 286: enum_specifier ::= enum enum_specifier_hook { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 286: { action. consumeTypeSpecifierEnumeration(true); break;
+ case 286: { action. consumeTypeSpecifierEnumeration(false); break;
}
//
- // Rule 292: enumerator_definition ::= identifier_token
+ // Rule 287: enum_specifier ::= enum enum_specifier_hook identifier_token { <openscope-ast> enumerator_list_opt comma_opt }
//
- case 292: { action. consumeEnumerator(false); break;
+ case 287: { action. consumeTypeSpecifierEnumeration(true); break;
}
//
- // Rule 293: enumerator_definition ::= identifier_token = constant_expression
+ // Rule 293: enumerator_definition ::= identifier_token
//
- case 293: { action. consumeEnumerator(true); break;
+ case 293: { action. consumeEnumerator(false); break;
}
//
- // Rule 295: namespace_definition ::= namespace namespace_name namespace_definition_hook { <openscope-ast> declaration_seq_opt }
+ // Rule 294: enumerator_definition ::= identifier_token = constant_expression
//
- case 295: { action. consumeNamespaceDefinition(true); break;
+ case 294: { action. consumeEnumerator(true); break;
}
//
- // Rule 296: namespace_definition ::= namespace namespace_definition_hook { <openscope-ast> declaration_seq_opt }
+ // Rule 296: namespace_definition ::= namespace namespace_name namespace_definition_hook { <openscope-ast> declaration_seq_opt }
//
- case 296: { action. consumeNamespaceDefinition(false); break;
+ case 296: { action. consumeNamespaceDefinition(true); break;
}
//
- // Rule 298: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ;
+ // Rule 297: namespace_definition ::= namespace namespace_definition_hook { <openscope-ast> declaration_seq_opt }
//
- case 298: { action. consumeNamespaceAliasDefinition(); break;
+ case 297: { action. consumeNamespaceDefinition(false); break;
}
//
- // Rule 299: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ;
+ // Rule 299: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ;
//
- case 299: { action. consumeUsingDeclaration(); break;
+ case 299: { action. consumeNamespaceAliasDefinition(); break;
}
//
- // Rule 300: typename_opt ::= typename
+ // Rule 300: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ;
//
- case 300: { action. consumePlaceHolder(); break;
+ case 300: { action. consumeUsingDeclaration(); break;
}
//
- // Rule 301: typename_opt ::= $Empty
+ // Rule 301: typename_opt ::= typename
//
- case 301: { action. consumeEmpty(); break;
+ case 301: { action. consumePlaceHolder(); break;
}
//
- // Rule 302: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ;
+ // Rule 302: typename_opt ::= $Empty
//
- case 302: { action. consumeUsingDirective(); break;
+ case 302: { action. consumeEmpty(); break;
}
//
- // Rule 303: asm_definition ::= asm ( stringlit ) ;
+ // Rule 303: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ;
//
- case 303: { action. consumeDeclarationASM(); break;
+ case 303: { action. consumeUsingDirective(); break;
}
//
- // Rule 304: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt }
+ // Rule 304: asm_definition ::= asm ( stringlit ) ;
//
- case 304: { action. consumeLinkageSpecification(); break;
+ case 304: { action. consumeDeclarationASM(); break;
}
//
- // Rule 305: linkage_specification ::= extern stringlit <openscope-ast> declaration
+ // Rule 305: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt }
//
case 305: { action. consumeLinkageSpecification(); break;
}
//
- // Rule 310: init_declarator_complete ::= init_declarator
+ // Rule 306: linkage_specification ::= extern stringlit <openscope-ast> declaration
//
- case 310: { action. consumeInitDeclaratorComplete(); break;
+ case 306: { action. consumeLinkageSpecification(); break;
}
//
- // Rule 312: init_declarator ::= complete_declarator initializer
+ // Rule 311: init_declarator_complete ::= init_declarator
//
- case 312: { action. consumeDeclaratorWithInitializer(true); break;
+ case 311: { action. consumeInitDeclaratorComplete(); break;
}
//
- // Rule 315: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
+ // Rule 313: init_declarator ::= complete_declarator initializer
//
- case 315: { action. consumeDeclaratorWithPointer(true); break;
+ case 313: { action. consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 317: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
+ // Rule 316: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
//
- case 317: { action. consumeDeclaratorWithPointer(true); break;
+ case 316: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 321: basic_direct_declarator ::= declarator_id_name
+ // Rule 318: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
//
- case 321: { action. consumeDirectDeclaratorIdentifier(); break;
+ case 318: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 322: basic_direct_declarator ::= ( declarator )
+ // Rule 322: basic_direct_declarator ::= declarator_id_name
//
- case 322: { action. consumeDirectDeclaratorBracketed(); break;
+ case 322: { action. consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 323: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ // Rule 323: basic_direct_declarator ::= ( declarator )
//
- case 323: { action. consumeDirectDeclaratorFunctionDeclarator(true); break;
+ case 323: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 324: array_direct_declarator ::= array_direct_declarator array_modifier
+ // Rule 324: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
- case 324: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 324: { action. consumeDirectDeclaratorFunctionDeclarator(true); break;
}
//
- // Rule 325: array_direct_declarator ::= basic_direct_declarator array_modifier
+ // Rule 325: array_direct_declarator ::= array_direct_declarator array_modifier
//
case 325: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 326: array_modifier ::= [ constant_expression ]
+ // Rule 326: array_direct_declarator ::= basic_direct_declarator array_modifier
//
- case 326: { action. consumeDirectDeclaratorArrayModifier(true); break;
+ case 326: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 327: array_modifier ::= [ ]
+ // Rule 327: array_modifier ::= [ constant_expression ]
//
- case 327: { action. consumeDirectDeclaratorArrayModifier(false); break;
+ case 327: { action. consumeDirectDeclaratorArrayModifier(true); break;
}
//
- // Rule 328: ptr_operator ::= pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
+ // Rule 328: array_modifier ::= [ ]
//
- case 328: { action. consumePointer(); break;
+ case 328: { action. consumeDirectDeclaratorArrayModifier(false); break;
}
//
- // Rule 329: ptr_operator ::= pointer_hook & pointer_hook
+ // Rule 329: ptr_operator ::= pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
//
- case 329: { action. consumeReferenceOperator(); break;
+ case 329: { action. consumePointer(); break;
}
//
- // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
+ // Rule 330: ptr_operator ::= pointer_hook & pointer_hook
//
- case 330: { action. consumePointerToMember(); break;
+ case 330: { action. consumeReferenceOperator(); break;
}
//
- // Rule 337: cv_qualifier ::= const
+ // Rule 331: ptr_operator ::= dcolon_opt nested_name_specifier pointer_hook * pointer_hook <openscope-ast> cv_qualifier_seq_opt
//
- case 337: { action. consumeToken(); break;
+ case 331: { action. consumePointerToMember(); break;
}
//
- // Rule 338: cv_qualifier ::= volatile
+ // Rule 338: cv_qualifier ::= const
//
case 338: { action. consumeToken(); break;
}
//
- // Rule 340: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
+ // Rule 339: cv_qualifier ::= volatile
//
- case 340: { action. consumeQualifiedId(false); break;
+ case 339: { action. consumeToken(); break;
}
//
- // Rule 341: type_id ::= type_specifier_seq
+ // Rule 341: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
//
- case 341: { action. consumeTypeId(false); break;
+ case 341: { action. consumeQualifiedId(false); break;
}
//
- // Rule 342: type_id ::= type_specifier_seq abstract_declarator
+ // Rule 342: type_id ::= type_specifier_seq
//
- case 342: { action. consumeTypeId(true); break;
+ case 342: { action. consumeTypeId(false); break;
}
//
- // Rule 345: abstract_declarator ::= <openscope-ast> ptr_operator_seq
+ // Rule 343: type_id ::= type_specifier_seq abstract_declarator
//
- case 345: { action. consumeDeclaratorWithPointer(false); break;
+ case 343: { action. consumeTypeId(true); break;
}
//
- // Rule 346: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
+ // Rule 346: abstract_declarator ::= <openscope-ast> ptr_operator_seq
//
- case 346: { action. consumeDeclaratorWithPointer(true); break;
+ case 346: { action. consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 350: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ // Rule 347: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
//
- case 350: { action. consumeDirectDeclaratorBracketed(); break;
+ case 347: { action. consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 351: basic_direct_abstract_declarator ::= ( )
+ // Rule 351: basic_direct_abstract_declarator ::= ( abstract_declarator )
//
- case 351: { action. consumeAbstractDeclaratorEmpty(); break;
+ case 351: { action. consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 352: array_direct_abstract_declarator ::= array_modifier
+ // Rule 352: basic_direct_abstract_declarator ::= ( )
//
- case 352: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
+ case 352: { action. consumeAbstractDeclaratorEmpty(); break;
}
//
- // Rule 353: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ // Rule 353: array_direct_abstract_declarator ::= array_modifier
//
- case 353: { action. consumeDirectDeclaratorArrayDeclarator(true); break;
+ case 353: { action. consumeDirectDeclaratorArrayDeclarator(false); break;
}
//
- // Rule 354: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ // Rule 354: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
//
case 354: { action. 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. consumeDirectDeclaratorFunctionDeclarator(true); break;
+ case 355: { action. consumeDirectDeclaratorArrayDeclarator(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 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. consumeDirectDeclaratorFunctionDeclarator(false); break;
+ case 356: { action. consumeDirectDeclaratorFunctionDeclarator(true); break;
}
//
- // Rule 357: parameter_declaration_clause ::= parameter_declaration_list_opt ...
+ // Rule 357: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
- case 357: { action. consumePlaceHolder(); break;
+ case 357: { action. consumeDirectDeclaratorFunctionDeclarator(false); break;
}
//
- // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt
+ // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt ...
//
- case 358: { action. consumeEmpty(); break;
+ case 358: { action. consumePlaceHolder(); break;
}
//
- // Rule 359: parameter_declaration_clause ::= parameter_declaration_list , ...
+ // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt
//
- case 359: { action. consumePlaceHolder(); break;
+ case 359: { action. consumeEmpty(); break;
}
//
- // Rule 365: abstract_declarator_opt ::= $Empty
+ // Rule 360: parameter_declaration_clause ::= parameter_declaration_list , ...
//
- case 365: { action. consumeEmpty(); break;
+ case 360: { action. consumePlaceHolder(); break;
}
//
- // Rule 366: parameter_declaration ::= declaration_specifiers parameter_init_declarator
+ // Rule 366: abstract_declarator_opt ::= $Empty
//
- case 366: { action. consumeParameterDeclaration(); break;
+ case 366: { action. consumeEmpty(); break;
}
//
- // Rule 367: parameter_declaration ::= declaration_specifiers
+ // Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator
//
- case 367: { action. consumeParameterDeclarationWithoutDeclarator(); break;
+ case 367: { action. consumeParameterDeclaration(); break;
}
//
- // Rule 369: parameter_init_declarator ::= declarator = parameter_initializer
+ // Rule 368: parameter_declaration ::= declaration_specifiers
//
- case 369: { action. consumeDeclaratorWithInitializer(true); break;
+ case 368: { action. consumeParameterDeclarationWithoutDeclarator(); break;
}
//
- // Rule 371: parameter_init_declarator ::= abstract_declarator = parameter_initializer
+ // Rule 370: parameter_init_declarator ::= declarator = parameter_initializer
//
- case 371: { action. consumeDeclaratorWithInitializer(true); break;
+ case 370: { action. consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 372: parameter_init_declarator ::= = parameter_initializer
+ // Rule 372: parameter_init_declarator ::= abstract_declarator = parameter_initializer
//
- case 372: { action. consumeDeclaratorWithInitializer(false); break;
+ case 372: { action. consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 373: parameter_initializer ::= assignment_expression
+ // Rule 373: parameter_init_declarator ::= = parameter_initializer
//
- case 373: { action. consumeInitializer(); break;
+ case 373: { action. consumeDeclaratorWithInitializer(false); break;
}
//
- // Rule 374: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
+ // Rule 374: parameter_initializer ::= assignment_expression
//
- case 374: { action. consumeFunctionDefinition(false); break;
+ case 374: { action. consumeInitializer(); break;
}
//
- // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
+ // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
//
- case 375: { action. consumeFunctionDefinition(true); break;
+ case 375: { action. consumeFunctionDefinition(false); break;
}
//
- // Rule 378: initializer ::= ( expression_list )
+ // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
//
- case 378: { action. consumeInitializerConstructor(); break;
+ case 376: { action. consumeFunctionDefinition(true); break;
}
//
- // Rule 379: initializer_clause ::= assignment_expression
+ // Rule 379: initializer ::= ( expression_list )
//
- case 379: { action. consumeInitializer(); break;
+ case 379: { action. consumeInitializerConstructor(); break;
}
//
- // Rule 381: initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq , } end_initializer_list
+ // Rule 380: initializer_clause ::= assignment_expression
//
- case 381: { action. consumeInitializerList(); break;
+ case 380: { action. consumeInitializer(); break;
}
//
- // Rule 382: initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq } end_initializer_list
+ // Rule 382: initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq , } end_initializer_list
//
case 382: { action. consumeInitializerList(); break;
}
//
- // Rule 383: initializer_list ::= { <openscope-ast> }
+ // Rule 383: initializer_list ::= start_initializer_list { <openscope-ast> initializer_seq } end_initializer_list
//
case 383: { action. consumeInitializerList(); break;
}
//
- // Rule 384: start_initializer_list ::= $Empty
+ // Rule 384: initializer_list ::= { <openscope-ast> }
//
- case 384: { action. initializerListStart(); break;
+ case 384: { action. consumeInitializerList(); break;
}
//
- // Rule 385: end_initializer_list ::= $Empty
+ // Rule 385: start_initializer_list ::= $Empty
//
- case 385: { action. initializerListEnd(); break;
+ case 385: { action. initializerListStart(); break;
}
//
- // Rule 390: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
+ // Rule 386: end_initializer_list ::= $Empty
//
- case 390: { action. consumeClassSpecifier(); break;
+ case 386: { action. initializerListEnd(); break;
}
//
- // Rule 391: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt
+ // Rule 391: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
//
- case 391: { action. consumeClassHead(false); break;
+ case 391: { action. consumeClassSpecifier(); break;
}
//
- // Rule 392: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
+ // Rule 392: class_head ::= class_keyword composite_specifier_hook identifier_name_opt class_name_suffix_hook <openscope-ast> base_clause_opt
//
case 392: { action. consumeClassHead(false); break;
}
//
- // Rule 393: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt
+ // Rule 393: class_head ::= class_keyword composite_specifier_hook template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
//
- case 393: { action. consumeClassHead(true); break;
+ case 393: { action. consumeClassHead(false); break;
}
//
- // Rule 394: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
+ // Rule 394: class_head ::= class_keyword composite_specifier_hook nested_name_specifier identifier_name class_name_suffix_hook <openscope-ast> base_clause_opt
//
case 394: { action. consumeClassHead(true); break;
}
//
- // Rule 398: identifier_name_opt ::= $Empty
+ // Rule 395: class_head ::= class_keyword composite_specifier_hook nested_name_specifier template_id_name class_name_suffix_hook <openscope-ast> base_clause_opt
//
- case 398: { action. consumeEmpty(); break;
- }
+ case 395: { action. consumeClassHead(true); break;
+ }
//
- // Rule 402: visibility_label ::= access_specifier_keyword :
+ // Rule 399: identifier_name_opt ::= $Empty
//
- case 402: { action. consumeVisibilityLabel(); break;
- }
+ case 399: { action. consumeEmpty(); break;
+ }
//
- // Rule 403: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
+ // Rule 403: visibility_label ::= access_specifier_keyword :
//
- case 403: { action. consumeDeclarationSimple(true); break;
+ case 403: { action. consumeVisibilityLabel(); break;
}
//
- // Rule 404: member_declaration ::= declaration_specifiers_opt ;
+ // Rule 404: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
//
- case 404: { action. consumeDeclarationSimple(false); break;
+ case 404: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 407: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
+ // Rule 405: member_declaration ::= declaration_specifiers_opt ;
//
- case 407: { action. consumeMemberDeclarationQualifiedId(); break;
+ case 405: { action. consumeDeclarationSimple(false); break;
}
//
- // Rule 413: member_declaration ::= ERROR_TOKEN
+ // Rule 408: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
//
- case 413: { action. consumeDeclarationProblem(); break;
+ case 408: { action. consumeMemberDeclarationQualifiedId(); break;
}
//
- // Rule 422: member_declarator ::= declarator constant_initializer
+ // Rule 414: member_declaration ::= ERROR_TOKEN
//
- case 422: { action. consumeMemberDeclaratorWithInitializer(); break;
+ case 414: { action. consumeDeclarationProblem(); break;
}
//
- // Rule 423: member_declarator ::= bit_field_declarator : constant_expression
+ // Rule 423: member_declarator ::= declarator constant_initializer
//
- case 423: { action. consumeBitField(true); break;
+ case 423: { action. consumeMemberDeclaratorWithInitializer(); break;
}
//
- // Rule 424: member_declarator ::= : constant_expression
+ // Rule 424: member_declarator ::= bit_field_declarator : constant_expression
//
- case 424: { action. consumeBitField(false); break;
+ case 424: { action. consumeBitField(true); break;
}
//
- // Rule 425: bit_field_declarator ::= identifier_name
+ // Rule 425: member_declarator ::= : constant_expression
//
- case 425: { action. consumeDirectDeclaratorIdentifier(); break;
+ case 425: { action. consumeBitField(false); break;
}
//
- // Rule 426: constant_initializer ::= = constant_expression
+ // Rule 426: bit_field_declarator ::= identifier_name
//
- case 426: { action. consumeInitializer(); break;
+ case 426: { action. consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 432: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
+ // Rule 427: constant_initializer ::= = constant_expression
//
- case 432: { action. consumeBaseSpecifier(false, false); break;
+ case 427: { action. consumeInitializer(); break;
}
//
- // Rule 433: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
+ // Rule 433: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
//
- case 433: { action. consumeBaseSpecifier(true, true); break;
+ case 433: { action. consumeBaseSpecifier(false, false); break;
}
//
- // Rule 434: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
+ // Rule 434: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
//
case 434: { action. consumeBaseSpecifier(true, true); break;
}
//
- // Rule 435: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
+ // Rule 435: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
//
- case 435: { action. consumeBaseSpecifier(true, false); break;
+ case 435: { action. consumeBaseSpecifier(true, true); break;
}
//
- // Rule 436: access_specifier_keyword ::= private
+ // Rule 436: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
//
- case 436: { action. consumeToken(); break;
+ case 436: { action. consumeBaseSpecifier(true, false); break;
}
//
- // Rule 437: access_specifier_keyword ::= protected
+ // Rule 437: access_specifier_keyword ::= private
//
case 437: { action. consumeToken(); break;
}
//
- // Rule 438: access_specifier_keyword ::= public
+ // Rule 438: access_specifier_keyword ::= protected
//
case 438: { action. consumeToken(); break;
}
//
- // Rule 440: access_specifier_keyword_opt ::= $Empty
+ // Rule 439: access_specifier_keyword ::= public
+ //
+ case 439: { action. consumeToken(); break;
+ }
+
+ //
+ // Rule 441: access_specifier_keyword_opt ::= $Empty
+ //
+ case 441: { action. consumeEmpty(); break;
+ }
+
+ //
+ // Rule 443: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt >
//
- case 440: { action. consumeEmpty(); break;
+ case 443: { action. consumeTemplateId(); break;
}
//
- // Rule 442: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt >
+ // Rule 444: conversion_function_id ::= operator conversion_type_id
//
- case 442: { action. consumeTemplateId(); break;
+ case 444: { action. consumeConversionName(); break;
}
//
- // Rule 443: conversion_function_id ::= operator conversion_type_id
+ // Rule 445: conversion_type_id ::= type_specifier_seq conversion_declarator
//
- case 443: { action. consumeConversionName(); break;
+ case 445: { action. consumeTypeId(true); break;
}
//
- // Rule 444: conversion_type_id ::= type_specifier_seq conversion_declarator
+ // Rule 446: conversion_type_id ::= type_specifier_seq
//
- case 444: { action. consumeTypeId(true); break;
+ case 446: { action. consumeTypeId(false); break;
}
//
- // Rule 445: conversion_type_id ::= type_specifier_seq
+ // Rule 447: conversion_declarator ::= <openscope-ast> ptr_operator_seq
//
- case 445: { action. consumeTypeId(false); break;
+ case 447: { action. consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 446: conversion_declarator ::= <openscope-ast> ptr_operator_seq
+ // Rule 453: mem_initializer ::= mem_initializer_name ( expression_list_opt )
//
- case 446: { action. consumeDeclaratorWithPointer(false); break;
+ case 453: { action. consumeConstructorChainInitializer(); break;
}
//
- // Rule 452: mem_initializer ::= mem_initializer_name ( expression_list_opt )
+ // Rule 454: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
//
- case 452: { action. consumeConstructorChainInitializer(); break;
+ case 454: { action. consumeQualifiedId(false); break;
}
//
- // Rule 453: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
+ // Rule 457: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
//
- case 453: { action. consumeQualifiedId(false); break;
+ case 457: { action. consumeTemplateId(); break;
}
//
- // Rule 456: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
+ // Rule 458: operator_id_name ::= operator overloadable_operator
//
- case 456: { action. consumeTemplateId(); break;
+ case 458: { action. consumeOperatorName(); break;
}
//
- // Rule 457: operator_id_name ::= operator overloadable_operator
+ // Rule 501: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
//
- case 457: { action. consumeOperatorName(); break;
+ case 501: { action. consumeTemplateDeclaration(); break;
}
//
- // Rule 500: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
+ // Rule 502: export_opt ::= export
//
- case 500: { action. consumeTemplateDeclaration(); break;
+ case 502: { action. consumePlaceHolder(); break;
}
//
- // Rule 501: export_opt ::= export
+ // Rule 503: export_opt ::= $Empty
//
- case 501: { action. consumePlaceHolder(); break;
+ case 503: { action. consumeEmpty(); break;
}
//
- // Rule 502: export_opt ::= $Empty
+ // Rule 507: template_parameter ::= parameter_declaration
//
- case 502: { action. consumeEmpty(); break;
+ case 507: { action. consumeTemplateParamterDeclaration(); break;
}
//
- // Rule 506: template_parameter ::= parameter_declaration
+ // Rule 508: type_parameter ::= class identifier_name_opt
//
- case 506: { action. consumeTemplateParamterDeclaration(); break;
+ case 508: { action. consumeSimpleTypeTemplateParameter(false); break;
}
//
- // Rule 507: type_parameter ::= class identifier_name_opt
+ // Rule 509: type_parameter ::= class identifier_name_opt = type_id
//
- case 507: { action. consumeSimpleTypeTemplateParameter(false); break;
+ case 509: { action. consumeSimpleTypeTemplateParameter(true); break;
}
//
- // Rule 508: type_parameter ::= class identifier_name_opt = type_id
+ // Rule 510: type_parameter ::= typename identifier_name_opt
//
- case 508: { action. consumeSimpleTypeTemplateParameter(true); break;
+ case 510: { action. consumeSimpleTypeTemplateParameter(false); break;
}
//
- // Rule 509: type_parameter ::= typename identifier_name_opt
+ // Rule 511: type_parameter ::= typename identifier_name_opt = type_id
//
- case 509: { action. consumeSimpleTypeTemplateParameter(false); break;
+ case 511: { action. consumeSimpleTypeTemplateParameter(true); break;
}
//
- // Rule 510: type_parameter ::= typename identifier_name_opt = type_id
+ // Rule 512: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
//
- case 510: { action. consumeSimpleTypeTemplateParameter(true); break;
+ case 512: { action. consumeTemplatedTypeTemplateParameter(false); break;
}
//
- // Rule 511: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
+ // Rule 513: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
//
- case 511: { action. consumeTemplatedTypeTemplateParameter(false); break;
+ case 513: { action. consumeTemplatedTypeTemplateParameter(true); break;
}
//
- // Rule 512: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
+ // Rule 514: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
//
- case 512: { action. consumeTemplatedTypeTemplateParameter(true); break;
+ case 514: { action. consumeTemplateId(); break;
}
//
- // Rule 513: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt >
+ // Rule 519: template_argument ::= assignment_expression
//
- case 513: { action. consumeTemplateId(); break;
+ case 519: { action. consumeTemplateArgumentExpression(); break;
}
//
- // Rule 518: template_argument ::= assignment_expression
+ // Rule 520: template_argument ::= type_id
//
- case 518: { action. consumeTemplateArgumentExpression(); break;
+ case 520: { action. consumeTemplateArgumentTypeId(); break;
}
//
- // Rule 519: template_argument ::= type_id
+ // Rule 521: explicit_instantiation ::= template declaration
//
- case 519: { action. consumeTemplateArgumentTypeId(); break;
+ case 521: { action. consumeTemplateExplicitInstantiation(); break;
}
//
- // Rule 520: explicit_instantiation ::= template declaration
+ // Rule 522: explicit_specialization ::= template < > declaration
//
- case 520: { action. consumeTemplateExplicitInstantiation(); break;
+ case 522: { action. consumeTemplateExplicitSpecialization(); break;
}
//
- // Rule 521: explicit_specialization ::= template < > declaration
+ // Rule 523: try_block ::= try compound_statement <openscope-ast> handler_seq
//
- case 521: { action. consumeTemplateExplicitSpecialization(); break;
+ case 523: { action. consumeStatementTryBlock(true); break;
}
//
- // Rule 522: try_block ::= try compound_statement <openscope-ast> handler_seq
+ // Rule 524: try_block ::= try compound_statement
//
- case 522: { action. consumeStatementTryBlock(); break;
+ case 524: { action. consumeStatementTryBlock(false); break;
}
//
- // Rule 525: handler ::= catch ( exception_declaration ) compound_statement
+ // Rule 527: handler ::= catch ( exception_declaration ) compound_statement
//
- case 525: { action. consumeStatementCatchHandler(false); break;
+ case 527: { action. consumeStatementCatchHandler(false); break;
}
//
- // Rule 526: handler ::= catch ( ... ) compound_statement
+ // Rule 528: handler ::= catch ( ... ) compound_statement
//
- case 526: { action. consumeStatementCatchHandler(true); break;
+ case 528: { action. consumeStatementCatchHandler(true); break;
}
//
- // Rule 527: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
+ // Rule 529: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
//
- case 527: { action. consumeDeclarationSimple(true); break;
+ case 529: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 528: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
+ // Rule 530: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
//
- case 528: { action. consumeDeclarationSimple(true); break;
+ case 530: { action. consumeDeclarationSimple(true); break;
}
//
- // Rule 529: exception_declaration ::= type_specifier_seq
+ // Rule 531: exception_declaration ::= type_specifier_seq
//
- case 529: { action. consumeDeclarationSimple(false); break;
+ case 531: { action. consumeDeclarationSimple(false); break;
}
//
- // Rule 531: exception_specification ::= throw ( )
+ // Rule 533: exception_specification ::= throw ( )
//
- case 531: { action. consumePlaceHolder(); break;
+ case 533: { action. consumePlaceHolder(); break;
}
//
- // Rule 537: no_sizeof_type_id_start ::= ERROR_TOKEN
+ // Rule 539: no_sizeof_type_id_start ::= ERROR_TOKEN
//
- case 537: { action. consumeEmpty(); break;
+ case 539: { action. consumeEmpty(); break;
}

Back to the top