diff options
Diffstat (limited to 'xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParser.java')
-rw-r--r-- | xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParser.java | 263 |
1 files changed, 130 insertions, 133 deletions
diff --git a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParser.java b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParser.java index 00f937f6d4d..3e9ee5c296b 100644 --- a/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParser.java +++ b/xlc/org.eclipse.cdt.core.lrparser.xlc/parser/org/eclipse/cdt/internal/core/lrparser/xlc/cpp/XlcCPPParser.java @@ -1,5 +1,5 @@ /******************************************************************************* -* Copyright (c) 2006, 2010 IBM Corporation and others. +* Copyright (c) 2006, 2011 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 @@ -10,7 +10,6 @@ *********************************************************************************/ // This file was generated by LPG - package org.eclipse.cdt.internal.core.lrparser.xlc.cpp; import lpg.lpgjavaruntime.*; @@ -27,23 +26,14 @@ import org.eclipse.cdt.core.dom.lrparser.action.ScopedStack; import org.eclipse.cdt.core.parser.IScanner; import org.eclipse.cdt.core.dom.parser.IBuiltinBindingsProvider; import org.eclipse.cdt.core.index.IIndex; - import org.eclipse.cdt.core.dom.ast.cpp.*; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPNodeFactory; import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPBuildASTParserAction; -import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPSecondaryParserFactory; - -import org.eclipse.cdt.core.dom.lrparser.action.gnu.GNUBuildASTParserAction; - -import org.eclipse.cdt.core.dom.lrparser.action.gnu.GPPBuildASTParserAction; +import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPSecondaryParserFactory;import org.eclipse.cdt.core.dom.lrparser.action.gnu.GNUBuildASTParserAction;import org.eclipse.cdt.core.dom.lrparser.action.gnu.GPPBuildASTParserAction; import org.eclipse.cdt.core.dom.lrparser.action.gnu.GPPSecondaryParserFactory; -import org.eclipse.cdt.core.dom.ast.gnu.cpp.*; - -import org.eclipse.cdt.core.lrparser.xlc.action.XlcCPPBuildASTParserAction; +import org.eclipse.cdt.core.dom.ast.gnu.cpp.*;import org.eclipse.cdt.core.lrparser.xlc.action.XlcCPPBuildASTParserAction; import org.eclipse.cdt.core.dom.lrparser.action.gnu.GPPSecondaryParserFactory; -import org.eclipse.cdt.internal.core.lrparser.xlc.ast.XlcCPPNodeFactory; - -public class XlcCPPParser extends PrsStream implements RuleAction, ITokenStream, +import org.eclipse.cdt.internal.core.lrparser.xlc.ast.XlcCPPNodeFactory;public class XlcCPPParser extends PrsStream implements RuleAction, ITokenStream, ITokenCollector, IParser< IASTTranslationUnit > { @@ -179,7 +169,6 @@ public class XlcCPPParser extends PrsStream implements RuleAction, ITokenStream, } } - private XlcCPPBuildASTParserAction action; private IASTCompletionNode compNode; @@ -240,10 +229,7 @@ public String[] getOrderedTerminalSymbols() { public String getName() { return "XlcCPPParser"; } - - private GNUBuildASTParserAction gnuAction; - public void ruleAction(int ruleNumber) { switch (ruleNumber) @@ -2026,353 +2012,364 @@ private GNUBuildASTParserAction gnuAction; } // - // Rule 564: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 564: type_name_specifier_inTemplate ::= dcolon_opt nested_name_specifier_opt_inTemplate type_name_inTemplate // case 564: { action. consumeQualifiedId(false); break; } // - // Rule 565: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 565: type_name_specifier_inTemplate ::= dcolon_opt nested_name_specifier template template_id_name // - case 565: { action. consumeQualifiedId(true); break; + case 565: { action. consumeQualifiedId(false); break; } // - // Rule 570: declaration_specifiers_inTemplate ::= <openscope-ast> simple_declaration_specifiers + // Rule 566: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier identifier_name // - case 570: { action. consumeDeclarationSpecifiersSimple(); break; + case 566: { action. consumeQualifiedId(false); break; } // - // Rule 571: declaration_specifiers_inTemplate ::= <openscope-ast> class_declaration_specifiers + // Rule 567: type_name_specifier_inTemplate ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 571: { action. consumeDeclarationSpecifiersComposite(); break; + case 567: { action. consumeQualifiedId(true); break; } // - // Rule 572: declaration_specifiers_inTemplate ::= <openscope-ast> elaborated_declaration_specifiers + // Rule 572: declaration_specifiers_inTemplate ::= <openscope-ast> simple_declaration_specifiers // - case 572: { action. consumeDeclarationSpecifiersComposite(); break; + case 572: { action. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 573: declaration_specifiers_inTemplate ::= <openscope-ast> enum_declaration_specifiers + // Rule 573: declaration_specifiers_inTemplate ::= <openscope-ast> class_declaration_specifiers // case 573: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 574: declaration_specifiers_inTemplate ::= <openscope-ast> type_name_declaration_specifiers_inTemplate + // Rule 574: declaration_specifiers_inTemplate ::= <openscope-ast> elaborated_declaration_specifiers // - case 574: { action. consumeDeclarationSpecifiersTypeName(); break; + case 574: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 576: type_id_inTemplate ::= type_specifier_seq_inTemplate + // Rule 575: declaration_specifiers_inTemplate ::= <openscope-ast> enum_declaration_specifiers // - case 576: { action. consumeTypeId(false); break; + case 575: { action. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 577: type_id_inTemplate ::= type_specifier_seq_inTemplate abstract_declarator + // Rule 576: declaration_specifiers_inTemplate ::= <openscope-ast> type_name_declaration_specifiers_inTemplate // - case 577: { action. consumeTypeId(true); break; + case 576: { action. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 578: template_argument ::= assignment_expression_inTemplate + // Rule 578: type_id_inTemplate ::= type_specifier_seq_inTemplate // - case 578: { action. consumeTemplateArgumentExpression(); break; + case 578: { action. consumeTypeId(false); break; } // - // Rule 579: template_argument ::= type_id_inTemplate + // Rule 579: type_id_inTemplate ::= type_specifier_seq_inTemplate abstract_declarator // - case 579: { action. consumeTemplateArgumentTypeId(); break; + case 579: { action. consumeTypeId(true); break; } // - // Rule 580: explicit_instantiation ::= template declaration + // Rule 580: template_argument ::= assignment_expression_inTemplate // - case 580: { action. consumeTemplateExplicitInstantiation(); break; + case 580: { action. consumeTemplateArgumentExpression(); break; } // - // Rule 581: explicit_specialization ::= template < > declaration + // Rule 581: template_argument ::= type_id_inTemplate // - case 581: { action. consumeTemplateExplicitSpecialization(); break; + case 581: { action. consumeTemplateArgumentTypeId(); break; } // - // Rule 582: try_block ::= try compound_statement <openscope-ast> handler_seq + // Rule 582: explicit_instantiation ::= template declaration // - case 582: { action. consumeStatementTryBlock(true); break; + case 582: { action. consumeTemplateExplicitInstantiation(); break; } // - // Rule 583: try_block ::= try compound_statement + // Rule 583: explicit_specialization ::= template < > declaration // - case 583: { action. consumeStatementTryBlock(false); break; + case 583: { action. consumeTemplateExplicitSpecialization(); break; } // - // Rule 586: handler ::= catch ( exception_declaration ) compound_statement + // Rule 584: try_block ::= try compound_statement <openscope-ast> handler_seq // - case 586: { action. consumeStatementCatchHandler(false); break; + case 584: { action. consumeStatementTryBlock(true); break; } // - // Rule 587: handler ::= catch ( ... ) compound_statement + // Rule 585: try_block ::= try compound_statement // - case 587: { action. consumeStatementCatchHandler(true); break; + case 585: { action. consumeStatementTryBlock(false); break; } // - // Rule 588: exception_declaration ::= type_specifier_seq <openscope-ast> declarator + // Rule 588: handler ::= catch ( exception_declaration ) compound_statement // - case 588: { action. consumeDeclarationSimple(true); break; + case 588: { action. consumeStatementCatchHandler(false); break; } // - // Rule 589: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator + // Rule 589: handler ::= catch ( ... ) compound_statement // - case 589: { action. consumeDeclarationSimple(true); break; + case 589: { action. consumeStatementCatchHandler(true); break; } // - // Rule 590: exception_declaration ::= type_specifier_seq + // Rule 590: exception_declaration ::= type_specifier_seq <openscope-ast> declarator // - case 590: { action. consumeDeclarationSimple(false); break; + case 590: { action. consumeDeclarationSimple(true); break; } // - // Rule 592: exception_specification ::= throw ( ) + // Rule 591: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator // - case 592: { action. consumePlaceHolder(); break; + case 591: { action. consumeDeclarationSimple(true); break; } // - // Rule 613: attribute_parameter ::= assignment_expression + // Rule 592: exception_declaration ::= type_specifier_seq // - case 613: { action. consumeIgnore(); break; + case 592: { action. consumeDeclarationSimple(false); break; + } + + // + // Rule 594: exception_specification ::= throw ( ) + // + case 594: { action. consumePlaceHolder(); break; + } + + // + // Rule 615: attribute_parameter ::= assignment_expression + // + case 615: { action. consumeIgnore(); break; } // - // Rule 624: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ; + // Rule 626: extended_asm_declaration ::= asm volatile_opt ( extended_asm_param_seq ) ; // - case 624: { gnuAction.consumeDeclarationASM(); break; + case 626: { gnuAction.consumeDeclarationASM(); break; } // - // Rule 635: unary_expression ::= __alignof__ unary_expression + // Rule 637: unary_expression ::= __alignof__ unary_expression // - case 635: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break; + case 637: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_alignOf); break; } // - // Rule 636: unary_expression ::= __alignof__ ( type_id ) + // Rule 638: unary_expression ::= __alignof__ ( type_id ) // - case 636: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_alignof); break; + case 638: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_alignof); break; } // - // Rule 637: unary_expression ::= typeof unary_expression + // Rule 639: unary_expression ::= typeof unary_expression // - case 637: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; + case 639: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; } // - // Rule 638: unary_expression ::= typeof ( type_id ) + // Rule 640: unary_expression ::= typeof ( type_id ) // - case 638: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break; + case 640: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break; } // - // Rule 639: relational_expression ::= relational_expression >? shift_expression + // Rule 641: relational_expression ::= relational_expression >? shift_expression // - case 639: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_max); break; + case 641: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_max); break; } // - // Rule 640: relational_expression ::= relational_expression <? shift_expression + // Rule 642: relational_expression ::= relational_expression <? shift_expression // - case 640: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_min); break; + case 642: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_min); break; } // - // Rule 641: conditional_expression ::= logical_or_expression ? <empty> : assignment_expression + // Rule 643: conditional_expression ::= logical_or_expression ? <empty> : assignment_expression // - case 641: { action. consumeExpressionConditional(); break; + case 643: { action. consumeExpressionConditional(); break; } // - // Rule 642: primary_expression ::= ( compound_statement ) + // Rule 644: primary_expression ::= ( compound_statement ) // - case 642: { gnuAction.consumeCompoundStatementExpression(); break; + case 644: { gnuAction.consumeCompoundStatementExpression(); break; } // - // Rule 643: labeled_statement ::= case case_range_expression : statement + // Rule 645: labeled_statement ::= case case_range_expression : statement // - case 643: { action. consumeStatementCase(); break; + case 645: { action. consumeStatementCase(); break; } // - // Rule 644: case_range_expression ::= constant_expression ... constant_expression + // Rule 646: case_range_expression ::= constant_expression ... constant_expression // - case 644: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; + case 646: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; } // - // Rule 648: typeof_type_specifier ::= typeof unary_expression + // Rule 650: typeof_type_specifier ::= typeof unary_expression // - case 648: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; + case 650: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_typeof); break; } // - // Rule 649: typeof_type_specifier ::= typeof ( type_id ) + // Rule 651: typeof_type_specifier ::= typeof ( type_id ) // - case 649: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break; + case 651: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_typeof); break; } // - // Rule 650: declaration_specifiers ::= <openscope-ast> typeof_declaration_specifiers + // Rule 652: declaration_specifiers ::= <openscope-ast> typeof_declaration_specifiers // - case 650: { action. consumeDeclarationSpecifiersTypeof(); break; + case 652: { action. consumeDeclarationSpecifiersTypeof(); break; } // - // Rule 663: declarator ::= <openscope-ast> ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator + // Rule 665: declarator ::= <openscope-ast> ptr_operator_seq attribute_or_decl_specifier_seq direct_declarator // - case 663: { action. consumeDeclaratorWithPointer(true); break; + case 665: { action. consumeDeclaratorWithPointer(true); break; } // - // Rule 666: simple_type_specifier ::= _Complex + // Rule 668: simple_type_specifier ::= _Complex // - case 666: { action. consumeToken(); break; + case 668: { action. consumeToken(); break; } // - // Rule 667: simple_type_specifier ::= _Imaginary + // Rule 669: simple_type_specifier ::= _Imaginary // - case 667: { action. consumeToken(); break; + case 669: { action. consumeToken(); break; } // - // Rule 668: cv_qualifier ::= restrict + // Rule 670: cv_qualifier ::= restrict // - case 668: { action. consumeToken(); break; + case 670: { action. consumeToken(); break; } // - // Rule 669: explicit_instantiation ::= extern template declaration + // Rule 671: explicit_instantiation ::= extern template declaration // - case 669: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_extern); break; + case 671: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_extern); break; } // - // Rule 670: explicit_instantiation ::= static template declaration + // Rule 672: explicit_instantiation ::= static template declaration // - case 670: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_static); break; + case 672: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_static); break; } // - // Rule 671: explicit_instantiation ::= inline template declaration + // Rule 673: explicit_instantiation ::= inline template declaration // - case 671: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_inline); break; + case 673: { action. consumeTemplateExplicitInstantiationGCC(IGPPASTExplicitTemplateInstantiation.ti_inline); break; } // - // Rule 672: postfix_expression ::= ( type_id ) initializer_list + // Rule 674: postfix_expression ::= ( type_id ) initializer_list // - case 672: { action. consumeExpressionTypeIdInitializer(); break; + case 674: { action. consumeExpressionTypeIdInitializer(); break; } // - // Rule 676: type_id ::= vector_type + // Rule 678: type_id ::= vector_type // - case 676: { action. consumeTypeId(false); break; + case 678: { action. consumeTypeId(false); break; } // - // Rule 677: type_id ::= vector_type abstract_declarator + // Rule 679: type_id ::= vector_type abstract_declarator // - case 677: { action. consumeTypeId(true); break; + case 679: { action. consumeTypeId(true); break; } // - // Rule 678: vector_declaration ::= vector_type <openscope-ast> init_declarator_list ; + // Rule 680: vector_declaration ::= vector_type <openscope-ast> init_declarator_list ; // - case 678: { action. consumeDeclarationSimple(true); break; + case 680: { action. consumeDeclarationSimple(true); break; } // - // Rule 679: vector_type ::= <openscope-ast> no_type_declaration_specifiers_opt vector vector_type_specifier all_specifier_qualifier_list_opt + // Rule 681: vector_type ::= <openscope-ast> no_type_declaration_specifiers_opt vector vector_type_specifier all_specifier_qualifier_list_opt // - case 679: { action. consumeVectorTypeSpecifier(); break; + case 681: { action. consumeVectorTypeSpecifier(); break; } // - // Rule 680: vector_type_specifier ::= vector_type_specifier_token + // Rule 682: vector_type_specifier ::= vector_type_specifier_token // - case 680: { action. consumeToken(); break; + case 682: { action. consumeToken(); break; } // - // Rule 703: specifier_qualifier ::= typedef + // Rule 705: specifier_qualifier ::= typedef // - case 703: { action. consumeToken(); break; + case 705: { action. consumeToken(); break; } // - // Rule 704: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ] + // Rule 706: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers ] // - case 704: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; + case 706: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; } // - // Rule 705: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ] + // Rule 707: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers assignment_expression ] // - case 705: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; + case 707: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; } // - // Rule 706: array_modifier ::= [ static assignment_expression ] + // Rule 708: array_modifier ::= [ static assignment_expression ] // - case 706: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; + case 708: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; } // - // Rule 707: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ] + // Rule 709: array_modifier ::= [ static <openscope-ast> array_modifier_type_qualifiers assignment_expression ] // - case 707: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; + case 709: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 708: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ] + // Rule 710: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers static assignment_expression ] // - case 708: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; + case 710: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; } // - // Rule 709: array_modifier ::= [ * ] + // Rule 711: array_modifier ::= [ * ] // - case 709: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; + case 711: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; } // - // Rule 710: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ] + // Rule 712: array_modifier ::= [ <openscope-ast> array_modifier_type_qualifiers * ] // - case 710: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; + case 712: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; } // - // Rule 715: static_assert_declaration ::= __static_assert ( expression , literal ) ; + // Rule 717: static_assert_declaration ::= __static_assert ( expression , literal ) ; // - case 715: { action. consumeCPPASTStaticAssertDeclaration(); break; + case 717: { action. consumeCPPASTStaticAssertDeclaration(); break; } - default: break; |