Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.java263
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;

Back to the top