diff options
Diffstat (limited to 'lrparser/org.eclipse.cdt.core.lrparser')
28 files changed, 3609 insertions, 6159 deletions
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Grammar.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Grammar.g index c909bd88eef..6b9ce0a68a8 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Grammar.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99Grammar.g @@ -9,13 +9,9 @@ -- IBM Corporation - initial API and implementation ----------------------------------------------------------------------------------- --- TODO "complete" rules can be removed - --- TODO when the architecture has solidified try to move common --- stuff between C99 and C++ into one file. $Include -common.g +../common.g $End diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/common.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/common.g index 5da31bbf3b6..fd36088d531 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/common.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/common.g @@ -30,25 +30,20 @@ $End $Define -- These macros allow the template and header code to be customized by an extending parser. + $ast_class /.Object./ - $data_class /. Object ./ -- allow anything to be passed between actions - $extra_interfaces /. ./ + $extra_interfaces /. ./ -- can override this macro to provide additional interfaces $additional_interfaces /. , IParserActionTokenProvider, IParser $extra_interfaces ./ - $build_action_class /. ./ - $resolve_action_class /. ./ - $node_factory_create_expression /. ./ - - $lexer_class /. ./ - $action_class /. ./ + $build_action_class /. ./ -- name of the class that has the AST building callbacks + $node_factory_create_expression /. ./ -- expression that will create the node factory - $Build /. $BeginAction action. ./ + $Build /. $BeginAction action. ./ -- special action just for calling methods on the builder $EndBuild /. $EndAction ./ $End - $Globals /. import java.util.*; @@ -109,8 +104,9 @@ $Headers return $sym_type.orderedTerminalSymbols; } + @SuppressWarnings("nls") public String getName() { - return "$action_type"; //$NON-NLS-1$ + return "$action_type"; } ./ diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g index 77f26645a69..1ea21c9736c 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g @@ -9,23 +9,10 @@ -- IBM Corporation - initial API and implementation ---------------------------------------------------------------------------------- -$Notice --- Copied into all files generated by LPG -/./******************************************************************************* - * Copyright (c) 2006, 2008 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 - * http://www.eclipse.org/legal/epl_v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *********************************************************************************/ - - // This file was generated by LPG -./ -$End +$Include +../common.g +$End $Terminals @@ -118,157 +105,16 @@ $End $Globals /. - import java.util.*; - - import org.eclipse.cdt.core.dom.ast.*; - import org.eclipse.cdt.core.dom.ast.cpp.*; + 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.IParser; - import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; - import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; ./ $End --- TODO move as much code and macros as possible into a common file $Define - -- These macros allow the template and header code to be customized by an extending parser. - $ast_class /.Object./ - $additional_interfaces /. , IParserActionTokenProvider, IParser ./ - $build_action_class /. CPPBuildASTParserAction ./ - $resolve_action_class /. C99TypedefTrackerParserAction ./ $node_factory_create_expression /. CPPNodeFactory.getDefault() ./ - - $action_class /. CPPParserAction ./ - $data_class /. Object ./ -- allow anything to be passed between actions - - $UndoResolver /.$Undo action.resolver.undo(); $EndUndo./ - - $Resolve /. $BeginTrial $resolve. - ./ - $EndResolve /. $EndTrial - $UndoResolver - ./ -- undo actions are automatically generated for binding resolution actions - - $Builder /. $BeginFinal $builder. - ./ - $EndBuilder /. $EndFinal ./ - - $Build /. $Action $Builder ./ - $EndBuild /. $EndBuilder $EndAction ./ - - $resolve /. action.resolver./ - $builder /. action.builder./ - - -- comment out when using trial/undo - $Action /. $BeginAction ./ - $BeginFinal /. ./ - $EndFinal /. ./ - -$End - - -$Headers -/. - private $action_class action; - - // uncomment to use with backtracking parser - public $action_type() { // constructor - } - - private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { - // binding resolution actions need access to IASTName nodes, temporary - action = new $action_class(); - //action.resolver = new $resolve_action_class(this); - action.builder = new $build_action_class($node_factory_create_expression, this, tu); - //action.builder.setTokenMap(CPPParsersym.orderedTerminalSymbols); - - action.builder.setParserOptions(options); - - // comment this line to use with backtracking parser - //setParserAction(action); - } - - - public void addToken(IToken token) { - token.setKind(mapKind(token.getKind())); - super.addToken(token); - } - - - public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> options) { - // this has to be done, or... kaboom! - setStreamLength(getSize()); - initActions(tu, options); - - final int errorRepairCount = -1; // _1 means full error handling - parser(null, errorRepairCount); // do the actual parse - super.resetTokenStream(); // allow tokens to be garbage collected - - // the completion node may be null - IASTCompletionNode compNode = action.builder.getASTCompletionNode(); - - //action = null; // causes getSecondaryParseResult() to fail - - // Comment this line to use with backtracking parser - //parserAction = null; - - return compNode; - } - - - // uncomment this method to use with backtracking parser - public List getRuleTokens() { - return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1)); - } - - public IASTNode getSecondaryParseResult() { - return action.builder.getSecondaryParseResult(); - } - - public String[] getOrderedTerminalSymbols() { - return $sym_type.orderedTerminalSymbols; - } - - public String getName() { - return "$action_type"; //$NON-NLS-1$ - } - -./ -$End - --- TODO this has to be moved into a common file - -$Globals -/. - import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; - import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; -./ -$End - -$Headers -/. - - private ITokenMap tokenMap = null; - - public void setTokens(List<IToken> tokens) { - resetTokenStream(); - addToken(new Token(null, 0, 0, 0)); // dummy token - for(IToken token : tokens) { - token.setKind(tokenMap.mapKind(token.getKind())); - addToken(token); - } - addToken(new Token(null, 0, 0, $sym_type.TK_EOF_TOKEN)); - } - - public $action_type(String[] mapFrom) { // constructor - tokenMap = new TokenMap($sym_type.orderedTerminalSymbols, mapFrom); - } - - -./ $End @@ -281,11 +127,11 @@ $Rules <openscope-ast> ::= $empty - /.$Action $Builder openASTScope(); $EndBuilder $EndAction./ + /. $Build openASTScope(); $EndBuild ./ <empty> ::= $empty - /.$Action $Builder consumeEmpty(); $EndBuilder $EndAction./ + /. $Build consumeEmpty(); $EndBuild ./ ------------------------------------------------------------------------------------------ -- Content assist @@ -1596,11 +1442,11 @@ base_specifier access_specifier_keyword ::= 'private' - /. $Build consumeAccessKeywordToken(); $EndBuild ./ + /. $Build consumeToken(); $EndBuild ./ | 'protected' - /. $Build consumeAccessKeywordToken(); $EndBuild ./ + /. $Build consumeToken(); $EndBuild ./ | 'public' - /. $Build consumeAccessKeywordToken(); $EndBuild ./ + /. $Build consumeToken(); $EndBuild ./ access_specifier_keyword_opt diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java index 3f2f89b1aec..ea680482b97 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java @@ -72,7 +72,6 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTLiteralExpression; import org.eclipse.cdt.core.dom.lrparser.IParser; import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; import org.eclipse.cdt.core.parser.IProblem; -import org.eclipse.cdt.core.parser.util.DebugUtil; import org.eclipse.cdt.internal.core.dom.parser.ASTNode; import org.eclipse.cdt.internal.core.dom.parser.ASTQueries; import org.eclipse.cdt.internal.core.dom.parser.ASTTranslationUnit; @@ -99,12 +98,7 @@ public abstract class BuildASTParserAction { * @see BuildASTParserAction#consumeEmpty() */ protected static final Object PLACE_HOLDER = Boolean.TRUE; // any object will do - - - // turn debug tracing on and off - // TODO move this into an AspectJ project - protected static final boolean TRACE_ACTIONS = false; - protected static final boolean TRACE_AST_STACK = false; + /** Stack that holds the intermediate nodes as the AST is being built */ @@ -373,7 +367,6 @@ public abstract class BuildASTParserAction { * Start of actions. ************************************************************************************************************/ - /** * Method that is called by the special <openscope> production @@ -384,7 +377,6 @@ public abstract class BuildASTParserAction { } - /** * Place null on the stack. * Usually called for optional element to indicate the element @@ -403,21 +395,15 @@ public abstract class BuildASTParserAction { * cases like an optional keyword this action is useful. */ public void consumePlaceHolder() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); astStack.push(PLACE_HOLDER); } - /** * Gets the current token and places it on the stack for later consumption. */ public void consumeDeclSpecToken() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - astStack.push(parser.getRightIToken()); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -425,18 +411,12 @@ public abstract class BuildASTParserAction { * Gets the current token and places it on the stack for later consumption. */ public void consumeToken() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - astStack.push(parser.getRightIToken()); - - if(TRACE_AST_STACK) System.out.println(astStack); } public void consumeTranslationUnit() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - // can't close the outermost scope // the outermost scope may be empty if there are no tokens in the file for(Object o : astStack.topScope()) { @@ -452,8 +432,6 @@ public abstract class BuildASTParserAction { resolveAmbiguityNodes(); tu.freeze(); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -469,7 +447,7 @@ public abstract class BuildASTParserAction { * ambiguity nodes were created. */ private void resolveAmbiguityNodes() { - tu.accept(EMPTY_VISITOR); // TODO make sure the DOM parser still does it this way + tu.accept(EMPTY_VISITOR); if (tu instanceof ASTTranslationUnit) { ((ASTTranslationUnit)tu).cleanupAfterAmbiguityResolution(); } @@ -484,16 +462,11 @@ public abstract class BuildASTParserAction { }; - /** * Consumes a single identifier token. */ public void consumeIdentifierName() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - astStack.push(createName(parser.getRightIToken())); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -503,8 +476,6 @@ public abstract class BuildASTParserAction { * TODO, be careful where exactly in the grammar this is called, it may be called unnecessarily */ public void consumeStatementDeclarationWithDisambiguation() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTDeclaration decl = (IASTDeclaration) astStack.pop(); IASTDeclarationStatement declarationStatement = nodeFactory.newDeclarationStatement(decl); setOffsetAndLength(declarationStatement); @@ -542,8 +513,6 @@ public abstract class BuildASTParserAction { } astStack.push(result); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -555,14 +524,10 @@ public abstract class BuildASTParserAction { * Wrap a declaration in a DeclarationStatement. */ public void consumeStatementDeclaration() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTDeclaration decl = (IASTDeclaration) astStack.pop(); IASTDeclarationStatement declarationStatement = nodeFactory.newDeclarationStatement(decl); setOffsetAndLength(declarationStatement); astStack.push(declarationStatement); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -598,8 +563,6 @@ public abstract class BuildASTParserAction { * @see ICPPASTLiteralExpression */ public void consumeExpressionLiteral(int kind) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IToken token = parser.getRightIToken(); String rep = token.toString(); @@ -613,47 +576,32 @@ public abstract class BuildASTParserAction { IASTLiteralExpression expr = nodeFactory.newLiteralExpression(kind, rep); setOffsetAndLength(expr, token); astStack.push(expr); - - if(TRACE_AST_STACK) System.out.println(astStack); } public void consumeExpressionBracketed() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression operand = (IASTExpression) astStack.pop(); IASTUnaryExpression expr = nodeFactory.newUnaryExpression(IASTUnaryExpression.op_bracketedPrimary, operand); setOffsetAndLength(expr); astStack.push(expr); - - if(TRACE_AST_STACK) System.out.println(astStack); } public void consumeExpressionID() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - - //IASTName name = createName(parser.getRightIToken()); IASTName name = createName(parser.getLeftIToken()); IASTIdExpression expr = nodeFactory.newIdExpression(name); setOffsetAndLength(expr); astStack.push(expr); - - if(TRACE_AST_STACK) System.out.println(astStack); } public void consumeExpressionName() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName name = (IASTName) astStack.pop(); IASTIdExpression expr = nodeFactory.newIdExpression(name); setOffsetAndLength(expr); astStack.push(expr); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -661,8 +609,6 @@ public abstract class BuildASTParserAction { * expression ::= <openscope-ast> expression_list_actual */ public void consumeExpressionList() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - List<Object> expressions = astStack.closeScope(); if(expressions.size() == 1) { astStack.push(expressions.get(0)); @@ -677,8 +623,6 @@ public abstract class BuildASTParserAction { setOffsetAndLength(exprList); astStack.push(exprList); } - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -686,15 +630,11 @@ public abstract class BuildASTParserAction { * postfix_expression ::= postfix_expression '[' expression ']' */ public void consumeExpressionArraySubscript() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression subscript = (IASTExpression) astStack.pop(); IASTExpression arrayExpr = (IASTExpression) astStack.pop(); IASTArraySubscriptExpression expr = nodeFactory.newArraySubscriptExpression(arrayExpr, subscript); setOffsetAndLength(expr); astStack.push(expr); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -702,16 +642,12 @@ public abstract class BuildASTParserAction { * postfix_expression ::= postfix_expression '(' expression_list_opt ')' */ public void consumeExpressionFunctionCall() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression argList = (IASTExpression) astStack.pop(); // may be null IASTExpression idExpr = (IASTExpression) astStack.pop(); IASTFunctionCallExpression expr = nodeFactory.newFunctionCallExpression(idExpr, argList); setOffsetAndLength(expr); astStack.push(expr); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -719,8 +655,6 @@ public abstract class BuildASTParserAction { * @param operator constant for {@link ICPPASTCastExpression} */ public void consumeExpressionCast(int operator) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression operand = (IASTExpression) astStack.pop(); IASTTypeId typeId = (IASTTypeId) astStack.pop(); IASTCastExpression expr = nodeFactory.newCastExpression(operator, typeId, operand); @@ -740,8 +674,6 @@ public abstract class BuildASTParserAction { setOffsetAndLength(ambiguityNode); astStack.push(ambiguityNode); } - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -753,14 +685,10 @@ public abstract class BuildASTParserAction { * @param operator From IASTUnaryExpression */ public void consumeExpressionUnaryOperator(int operator) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression operand = (IASTExpression) astStack.pop(); IASTUnaryExpression expr = nodeFactory.newUnaryExpression(operator, operand); setOffsetAndLength(expr); astStack.push(expr); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -770,8 +698,6 @@ public abstract class BuildASTParserAction { * @see consumeExpressionUnaryOperator For the other use of sizeof */ public void consumeExpressionTypeId(int operator) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTTypeId typeId = (IASTTypeId) astStack.pop(); IASTTypeIdExpression expr = nodeFactory.newTypeIdExpression(operator, typeId); setOffsetAndLength(expr); @@ -787,8 +713,6 @@ public abstract class BuildASTParserAction { setOffsetAndLength(ambiguityNode); astStack.push(ambiguityNode); } - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -798,15 +722,11 @@ public abstract class BuildASTParserAction { * @param op Field from IASTBinaryExpression */ public void consumeExpressionBinaryOperator(int op) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression expr2 = (IASTExpression) astStack.pop(); IASTExpression expr1 = (IASTExpression) astStack.pop(); IASTBinaryExpression binExpr = nodeFactory.newBinaryExpression(op, expr1, expr2); setOffsetAndLength(binExpr); astStack.push(binExpr); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -814,16 +734,12 @@ public abstract class BuildASTParserAction { * conditional_expression ::= logical_OR_expression '?' expression ':' conditional_expression */ public void consumeExpressionConditional() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression expr3 = (IASTExpression) astStack.pop(); IASTExpression expr2 = (IASTExpression) astStack.pop(); IASTExpression expr1 = (IASTExpression) astStack.pop(); IASTConditionalExpression condExpr = nodeFactory.newConditionalExpession(expr1, expr2, expr3); setOffsetAndLength(condExpr); astStack.push(condExpr); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -832,16 +748,12 @@ public abstract class BuildASTParserAction { * label_identifier ::= identifier */ public void consumeStatementLabeled() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTStatement body = (IASTStatement) astStack.pop(); IASTName label = createName(parser.getLeftIToken()); IASTLabelStatement stat = nodeFactory.newLabelStatement(label, body); setOffsetAndLength(stat); astStack.push(stat); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -849,8 +761,6 @@ public abstract class BuildASTParserAction { * labeled_statement ::= 'case' constant_expression ':' statement */ public void consumeStatementCase() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTStatement body = (IASTStatement) astStack.pop(); IASTExpression expr = (IASTExpression) astStack.pop(); @@ -863,8 +773,6 @@ public abstract class BuildASTParserAction { compound.addStatement(body); astStack.push(compound); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -872,8 +780,6 @@ public abstract class BuildASTParserAction { * labeled_statement ::= 'default' ':' <openscope-ast> statement */ public void consumeStatementDefault() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTStatement body = (IASTStatement) astStack.pop(); IASTDefaultStatement stat = nodeFactory.newDefaultStatement(); @@ -888,8 +794,6 @@ public abstract class BuildASTParserAction { compound.addStatement(body); astStack.push(compound); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -898,13 +802,9 @@ public abstract class BuildASTParserAction { * expression_statement ::= ';' */ public void consumeStatementNull() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTNullStatement stat = nodeFactory.newNullStatement(); setOffsetAndLength(stat); astStack.push(stat); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -912,14 +812,10 @@ public abstract class BuildASTParserAction { * expression_statement ::= expression ';' */ public void consumeStatementExpression() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression expr = (IASTExpression) astStack.pop(); IASTExpressionStatement stat = nodeFactory.newExpressionStatement(expr); setOffsetAndLength(stat); astStack.push(stat); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -930,8 +826,6 @@ public abstract class BuildASTParserAction { * block_item_list ::= block_item | block_item_list block_item */ public void consumeStatementCompoundStatement(boolean hasStatementsInBody) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTCompoundStatement block = nodeFactory.newCompoundStatement(); if(hasStatementsInBody) { @@ -942,8 +836,6 @@ public abstract class BuildASTParserAction { setOffsetAndLength(block); astStack.push(block); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -952,15 +844,11 @@ public abstract class BuildASTParserAction { * ::= 'do' statement 'while' '(' expression ')' ';' */ public void consumeStatementDoLoop() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression condition = (IASTExpression) astStack.pop(); IASTStatement body = (IASTStatement) astStack.pop(); IASTDoStatement stat = nodeFactory.newDoStatement(body, condition); setOffsetAndLength(stat); astStack.push(stat); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -968,16 +856,11 @@ public abstract class BuildASTParserAction { /** * jump_statement ::= goto goto_identifier ';' */ - public void consumeStatementGoto(/*IBinding binding*/) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - + public void consumeStatementGoto() { IASTName name = createName(parser.getRuleTokens().get(1)); - //name.setBinding(binding); IASTGotoStatement gotoStat = nodeFactory.newGotoStatement(name); setOffsetAndLength(gotoStat); astStack.push(gotoStat); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -985,13 +868,9 @@ public abstract class BuildASTParserAction { * jump_statement ::= continue ';' */ public void consumeStatementContinue() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTContinueStatement stat = nodeFactory.newContinueStatement(); setOffsetAndLength(stat); astStack.push(stat); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -999,13 +878,9 @@ public abstract class BuildASTParserAction { * jump_statement ::= break ';' */ public void consumeStatementBreak() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTBreakStatement stat = nodeFactory.newBreakStatement(); setOffsetAndLength(stat); astStack.push(stat); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1014,14 +889,10 @@ public abstract class BuildASTParserAction { * jump_statement ::= return expression ';' */ public void consumeStatementReturn(boolean hasExpr) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression expr = hasExpr ? (IASTExpression) astStack.pop() : null; IASTReturnStatement returnStat = nodeFactory.newReturnStatement(expr); setOffsetAndLength(returnStat); astStack.push(returnStat); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1032,8 +903,6 @@ public abstract class BuildASTParserAction { * | specifier_qualifier_list abstract_declarator */ public void consumeTypeId(boolean hasDeclarator) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTDeclarator declarator; if(hasDeclarator) declarator = (IASTDeclarator) astStack.pop(); @@ -1046,8 +915,6 @@ public abstract class BuildASTParserAction { IASTTypeId typeId = nodeFactory.newTypeId(declSpecifier, declarator); setOffsetAndLength(typeId); astStack.push(typeId); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1060,8 +927,6 @@ public abstract class BuildASTParserAction { * | <openscope-ast> ptr_operator_seq direct_declarator */ public void consumeDeclaratorWithPointer(boolean hasDeclarator) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTDeclarator decl; if(hasDeclarator) decl = (IASTDeclarator) astStack.pop(); @@ -1073,8 +938,6 @@ public abstract class BuildASTParserAction { setOffsetAndLength(decl); astStack.push(decl); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1087,8 +950,6 @@ public abstract class BuildASTParserAction { * a default value without also specifying a named declarator */ public void consumeDeclaratorWithInitializer(boolean hasDeclarator) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTInitializer initializer = (IASTInitializer) astStack.pop(); IASTDeclarator declarator; @@ -1104,8 +965,6 @@ public abstract class BuildASTParserAction { declarator.setInitializer(initializer); setOffsetAndLength(declarator); // adjust the length to include the initializer - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1115,15 +974,11 @@ public abstract class BuildASTParserAction { * | declaration_specifiers abstract_declarator */ public void consumeParameterDeclaration() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTDeclarator declarator = (IASTDeclarator) astStack.pop(); IASTDeclSpecifier declSpec = (IASTDeclSpecifier) astStack.pop(); IASTParameterDeclaration declaration = nodeFactory.newParameterDeclaration(declSpec, declarator); setOffsetAndLength(declaration); astStack.push(declaration); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1131,8 +986,6 @@ public abstract class BuildASTParserAction { * parameter_declaration ::= declaration_specifiers */ public void consumeParameterDeclarationWithoutDeclarator() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - // offsets need to be calculated differently in this case final int endOffset = parser.getRightIToken().getEndOffset(); @@ -1148,8 +1001,6 @@ public abstract class BuildASTParserAction { setOffsetAndLength(declaration); astStack.push(declaration); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1203,15 +1054,11 @@ public abstract class BuildASTParserAction { * direct_declarator ::= '(' declarator ')' */ public void consumeDirectDeclaratorBracketed() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTDeclarator nested = (IASTDeclarator) astStack.pop(); IASTDeclarator declarator = nodeFactory.newDeclarator(nodeFactory.newName()); declarator.setNestedDeclarator(nested); setOffsetAndLength(declarator); astStack.push(declarator); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1219,14 +1066,10 @@ public abstract class BuildASTParserAction { * direct_declarator ::= declarator_id_name */ public void consumeDirectDeclaratorIdentifier() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName name = (IASTName) astStack.pop(); IASTDeclarator declarator = nodeFactory.newDeclarator(name); setOffsetAndLength(declarator); astStack.push(declarator); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1236,14 +1079,10 @@ public abstract class BuildASTParserAction { * | '[' assignment_expression ']' */ public void consumeDirectDeclaratorArrayModifier(boolean hasAssignmentExpr) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression expr = hasAssignmentExpr ? (IASTExpression)astStack.pop() : null; IASTArrayModifier arrayModifier = nodeFactory.newArrayModifier(expr); setOffsetAndLength(arrayModifier); astStack.push(arrayModifier); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1255,8 +1094,6 @@ public abstract class BuildASTParserAction { * Special care is taken for nested declarators. */ protected void addArrayModifier(IASTArrayModifier arrayModifier) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTDeclarator node = (IASTDeclarator) astStack.pop(); // Its a nested declarator so create an new ArrayDeclarator @@ -1292,8 +1129,6 @@ public abstract class BuildASTParserAction { decl.addArrayModifier(arrayModifier); astStack.push(decl); } - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1330,11 +1165,9 @@ public abstract class BuildASTParserAction { setOffsetAndLength(declarator, offset, endOffset - offset); astStack.push(declarator); } - - - if(TRACE_AST_STACK) System.out.println(astStack); } + // TODO why is this here // /** // * direct_declarator ::= direct_declarator array_modifier // * consume the direct_declarator part and add the array modifier @@ -1346,14 +1179,13 @@ public abstract class BuildASTParserAction { // addArrayModifier(arrayModifier); // } + /** * direct_abstract_declarator * ::= array_modifier * | direct_abstract_declarator array_modifier */ public void consumeDirectDeclaratorArrayDeclarator(boolean hasDeclarator) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTArrayModifier arrayModifier = (IASTArrayModifier) astStack.pop(); if(hasDeclarator) { @@ -1364,8 +1196,6 @@ public abstract class BuildASTParserAction { decl.addArrayModifier(arrayModifier); setOffsetAndLength(decl); astStack.push(decl); - - if(TRACE_AST_STACK) System.out.println(astStack); } } @@ -1377,8 +1207,6 @@ public abstract class BuildASTParserAction { * | 'enum' enum_identifier '{' <openscope> enumerator_list_opt '}' */ public void consumeTypeSpecifierEnumeration(boolean hasIdent) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName name = (hasIdent) ? createName(parser.getRuleTokens().get(1)) : nodeFactory.newName(); IASTEnumerationSpecifier enumSpec = nodeFactory.newEnumerationSpecifier(name); @@ -1388,8 +1216,6 @@ public abstract class BuildASTParserAction { setOffsetAndLength(enumSpec); astStack.push(enumSpec); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1398,8 +1224,6 @@ public abstract class BuildASTParserAction { * | enum_identifier '=' constant_expression */ public void consumeEnumerator(boolean hasInitializer) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName name = createName(parser.getLeftIToken()); IASTExpression value = null; @@ -1409,8 +1233,6 @@ public abstract class BuildASTParserAction { IASTEnumerator enumerator = nodeFactory.newEnumerator(name, value); setOffsetAndLength(enumerator); astStack.push(enumerator); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1428,8 +1250,6 @@ public abstract class BuildASTParserAction { * initializer ::= assignment_expression */ public void consumeInitializer() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression expr = (IASTExpression) astStack.pop(); if(discardInitializer(expr)) { astStack.push(null); @@ -1439,8 +1259,6 @@ public abstract class BuildASTParserAction { IASTInitializerExpression initializer = nodeFactory.newInitializerExpression(expr); setOffsetAndLength(initializer); astStack.push(initializer); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1457,8 +1275,6 @@ public abstract class BuildASTParserAction { * | '{' <openscope> initializer_list ',' '}' */ public void consumeInitializerList() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTInitializerList list = nodeFactory.newInitializerList(); for(Object o : astStack.closeScope()) @@ -1466,8 +1282,6 @@ public abstract class BuildASTParserAction { setOffsetAndLength(list); astStack.push(list); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1480,8 +1294,6 @@ public abstract class BuildASTParserAction { * | declarator ':' constant_expression */ public void consumeBitField(boolean hasDeclarator) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression expr = (IASTExpression)astStack.pop(); IASTName name; @@ -1493,8 +1305,6 @@ public abstract class BuildASTParserAction { IASTFieldDeclarator fieldDecl = nodeFactory.newFieldDeclarator(name, expr); setOffsetAndLength(fieldDecl); astStack.push(fieldDecl); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1503,8 +1313,6 @@ public abstract class BuildASTParserAction { * statement ::= ERROR_TOKEN */ public void consumeStatementProblem() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - consumeProblem(nodeFactory.newProblemStatement(null)); } @@ -1513,8 +1321,6 @@ public abstract class BuildASTParserAction { * constant_expression ::= ERROR_TOKEN */ public void consumeExpressionProblem() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - consumeProblem(nodeFactory.newProblemExpression(null)); } @@ -1522,8 +1328,6 @@ public abstract class BuildASTParserAction { * external_declaration ::= ERROR_TOKEN */ public void consumeDeclarationProblem() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - consumeProblem(nodeFactory.newProblemDeclaration(null)); } @@ -1534,8 +1338,6 @@ public abstract class BuildASTParserAction { setOffsetAndLength(problem); setOffsetAndLength((ASTNode)problemHolder); astStack.push(problemHolder); - - if(TRACE_AST_STACK) System.out.println(astStack); } }
\ No newline at end of file diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java index b561416adbe..dee5c5d0b0f 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java @@ -63,7 +63,6 @@ import org.eclipse.cdt.core.dom.lrparser.action.BuildASTParserAction; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; import org.eclipse.cdt.core.parser.util.CollectionUtils; -import org.eclipse.cdt.core.parser.util.DebugUtil; import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99ExpressionParser; import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99NoCastExpressionParser; import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym; @@ -143,16 +142,12 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * postfix_expression ::= postfix_expression '->' ident */ public void consumeExpressionFieldReference(boolean isPointerDereference) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName name = createName(parser.getRightIToken()); IASTExpression owner = (IASTExpression) astStack.pop(); IASTFieldReference expr = nodeFactory.newFieldReference(name, owner); expr.setIsPointerDereference(isPointerDereference); setOffsetAndLength(expr); astStack.push(expr); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -161,18 +156,15 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * postfix_expression ::= '(' type_name ')' '{' <openscope> initializer_list ',' '}' */ public void consumeExpressionTypeIdInitializer() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - consumeInitializerList(); // closes the scope IASTInitializerList list = (IASTInitializerList) astStack.pop(); IASTTypeId typeId = (IASTTypeId) astStack.pop(); ICASTTypeIdInitializerExpression expr = nodeFactory.newTypeIdInitializerExpression(typeId, list); setOffsetAndLength(expr); astStack.push(expr); - - if(TRACE_AST_STACK) System.out.println(astStack); } + // TODO why is this here? // /** // * Lots of rules, no need to list them. // * @param operator From IASTUnaryExpression @@ -276,8 +268,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { */ public void consumeDirectDeclaratorModifiedArrayModifier(boolean isStatic, boolean isVarSized, boolean hasTypeQualifierList, boolean hasAssignmentExpr) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - assert isStatic || isVarSized || hasTypeQualifierList; ICASTArrayModifier arrayModifier = nodeFactory.newModifiedArrayModifier(null); @@ -294,8 +284,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(arrayModifier); astStack.push(arrayModifier); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -304,8 +292,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * direct_declarator ::= direct_declarator '(' <openscope> identifier_list ')' */ public void consumeDirectDeclaratorFunctionDeclaratorKnR() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - ICASTKnRFunctionDeclarator declarator = nodeFactory.newKnRFunctionDeclarator(null, null); IASTName[] names = astStack.topScope().toArray(new IASTName[0]); declarator.setParameterNames(names); @@ -321,8 +307,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * | identifier_list ',' 'identifier' */ public void consumeIdentifierKnR() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName name = createName(parser.getRightIToken()); astStack.push(name); } @@ -335,14 +319,10 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * | pointer '*' */ public void consumePointer() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTPointer pointer = nodeFactory.newPointer(); IToken star = parser.getRightIToken(); setOffsetAndLength(pointer, star); astStack.push(pointer); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -351,8 +331,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * | pointer '*' <openscope> type_qualifier_list */ public void consumePointerTypeQualifierList() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - ICASTPointer pointer = nodeFactory.newPointer(); for(Object o : astStack.closeScope()) { @@ -367,8 +345,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(pointer); astStack.push(pointer); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -381,8 +357,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * | direct_abstract_declarator '(' <openscope> parameter_type_list ')' */ public void consumeDirectDeclaratorFunctionDeclarator(boolean hasDeclarator, boolean hasParameters) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName name = nodeFactory.newName(); IASTStandardFunctionDeclarator declarator = nodeFactory.newFunctionDeclarator(name); @@ -401,8 +375,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(declarator); astStack.push(declarator); } - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -411,8 +383,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * designated_initializer ::= <openscope> designation initializer */ public void consumeInitializerDesignated() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTInitializer initializer = (IASTInitializer)astStack.pop(); ICASTDesignatedInitializer result = nodeFactory.newDesignatedInitializer(initializer); @@ -421,8 +391,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(result); astStack.push(result); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -430,14 +398,10 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * designator ::= '[' constant_expression ']' */ public void consumeDesignatorArray() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression expr = (IASTExpression) astStack.pop(); ICASTArrayDesignator designator = nodeFactory.newArrayDesignator(expr); setOffsetAndLength(designator); astStack.push(designator); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -445,14 +409,10 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * designator ::= '.' 'identifier' */ public void consumeDesignatorField() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName name = createName(parser.getRightIToken()); ICASTFieldDesignator designator = nodeFactory.newFieldDesignator(name); setOffsetAndLength(designator); astStack.push(designator); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -460,8 +420,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * declaration_specifiers ::= <openscope> simple_declaration_specifiers */ public void consumeDeclarationSpecifiersSimple() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - ICASTSimpleDeclSpecifier declSpec = nodeFactory.newSimpleDeclSpecifier(); for(Object specifier : astStack.closeScope()) @@ -469,8 +427,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(declSpec); astStack.push(declSpec); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -479,8 +435,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * declaration_specifiers ::= <openscope> enum_declaration_specifiers */ public void consumeDeclarationSpecifiersStructUnionEnum() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - List<Object> topScope = astStack.closeScope(); ICASTDeclSpecifier declSpec = CollectionUtils.findFirstAndRemove(topScope, ICASTDeclSpecifier.class); @@ -490,8 +444,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(declSpec); astStack.push(declSpec); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -499,8 +451,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * declaration_specifiers ::= <openscope> typdef_name_declaration_specifiers */ public void consumeDeclarationSpecifiersTypedefName() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - ICASTTypedefNameSpecifier declSpec = nodeFactory.newTypedefNameSpecifier(null); for(Object o : astStack.topScope()) { @@ -522,8 +472,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { astStack.closeScope(); setOffsetAndLength(declSpec); astStack.push(declSpec); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -533,8 +481,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * declaration ::= declaration_specifiers ';' */ public void consumeDeclarationSimple(boolean hasDeclaratorList) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - List<Object> declarators = (hasDeclaratorList) ? astStack.closeScope() : Collections.emptyList(); IASTDeclSpecifier declSpecifier = (IASTDeclSpecifier) astStack.pop(); @@ -549,8 +495,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(declaration); astStack.push(declaration); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -561,10 +505,7 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * TODO: doesn't the declaration need a name? */ public void consumeDeclarationEmpty() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - // Don't generate declaration nodes for extra EOC tokens - // TODO: the token type must be converted if(baseKind(parser.getLeftIToken()) == C99Parsersym.TK_EndOfCompletion) return; @@ -573,8 +514,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(declSpecifier); setOffsetAndLength(declaration); astStack.push(declaration); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -588,8 +527,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * a struct declarator is a regular declarator plus bit fields */ public void consumeStructDeclaration(boolean hasDeclaration) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - consumeDeclarationSimple(hasDeclaration); // TODO this is ok as long as bit fields implement IASTDeclarator (see consumeDeclaration()) } @@ -604,8 +541,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * @param key either k_struct or k_union from IASTCompositeTypeSpecifier */ public void consumeTypeSpecifierComposite(boolean hasName, int key) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName name = (hasName) ? createName(parser.getRuleTokens().get(1)) : nodeFactory.newName(); ICASTCompositeTypeSpecifier typeSpec = nodeFactory.newCompositeTypeSpecifier(key, name); @@ -615,8 +550,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(typeSpec); astStack.push(typeSpec); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -628,14 +561,10 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * enum_specifier ::= 'enum' enum_identifier */ public void consumeTypeSpecifierElaborated(int kind) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName name = createName(parser.getRuleTokens().get(1)); IASTElaboratedTypeSpecifier typeSpec = nodeFactory.newElaboratedTypeSpecifier(kind, name); setOffsetAndLength(typeSpec); astStack.push(typeSpec); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -645,15 +574,11 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * iteration_statement ::= 'while' '(' expression ')' statement */ public void consumeStatementWhileLoop() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTStatement body = (IASTStatement) astStack.pop(); IASTExpression condition = (IASTExpression) astStack.pop(); IASTWhileStatement whileStatement = nodeFactory.newWhileStatement(condition, body); setOffsetAndLength(whileStatement); astStack.push(whileStatement); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -663,8 +588,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * ::= 'for' '(' expression_opt ';' expression_opt ';' expression_opt ')' statement */ public void consumeStatementForLoop() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTStatement body = (IASTStatement) astStack.pop(); // these two expressions may be null, see consumeExpressionOptional() IASTExpression expr3 = (IASTExpression) astStack.pop(); @@ -699,8 +622,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { IASTForStatement forStat = nodeFactory.newForStatement(initializer, expr2, expr3, body); setOffsetAndLength(forStat); astStack.push(forStat); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -709,21 +630,15 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * selection_statement ::= switch '(' expression ')' statement */ public void consumeStatementSwitch() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTStatement body = (IASTStatement) astStack.pop(); IASTExpression expr = (IASTExpression) astStack.pop(); IASTSwitchStatement stat = nodeFactory.newSwitchStatement(expr, body); setOffsetAndLength(stat); astStack.push(stat); - - if(TRACE_AST_STACK) System.out.println(astStack); } public void consumeStatementIf(boolean hasElse) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTStatement elseClause = null; if(hasElse) elseClause = (IASTStatement) astStack.pop(); @@ -734,8 +649,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { IASTIfStatement ifStatement = nodeFactory.newIfStatement(condition, thenClause, elseClause); setOffsetAndLength(ifStatement); astStack.push(ifStatement); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -748,8 +661,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * prevent a shift/reduce conflict in the grammar. */ public void consumeFunctionDefinition(boolean hasDeclSpecifiers) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(String.valueOf(hasDeclSpecifiers)); - IASTCompoundStatement body = (IASTCompoundStatement) astStack.pop(); IASTFunctionDeclarator decl = (IASTFunctionDeclarator) astStack.pop(); astStack.closeScope(); @@ -765,8 +676,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { IASTFunctionDefinition def = nodeFactory.newFunctionDefinition(declSpecifier, decl, body); setOffsetAndLength(def); astStack.push(def); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -777,8 +686,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { * <openscope> declaration_list compound_statement */ public void consumeFunctionDefinitionKnR() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTCompoundStatement body = (IASTCompoundStatement) astStack.pop(); IASTDeclaration[] declarations = astStack.topScope().toArray(new IASTDeclaration[0]); @@ -798,8 +705,6 @@ public class C99BuildASTParserAction extends BuildASTParserAction { IASTFunctionDefinition def = nodeFactory.newFunctionDefinition(declSpecifier, decl, body); setOffsetAndLength(def); astStack.push(def); - - if(TRACE_AST_STACK) System.out.println(astStack); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java index d61ce29b5a4..6441b2987e7 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java @@ -96,7 +96,6 @@ import org.eclipse.cdt.core.dom.lrparser.LPGTokenAdapter; import org.eclipse.cdt.core.dom.lrparser.action.BuildASTParserAction; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; -import org.eclipse.cdt.core.parser.util.DebugUtil; import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPExpressionParser; import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPNoCastExpressionParser; import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPNoFunctionDeclaratorParser; @@ -185,16 +184,12 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { public void consumeNewInitializer() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - if(astStack.peek() == null) { // if there is an empty set of parens astStack.pop(); IASTExpression initializer = nodeFactory.newExpressionList(); setOffsetAndLength(initializer); astStack.push(initializer); } - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -206,8 +201,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * | dcolon_opt 'new' new_placement_opt '(' type_id ')' <openscope-ast> new_array_expressions_op new_initializer_opt */ public void consumeExpressionNew(boolean isNewTypeId) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression initializer = (IASTExpression) astStack.pop(); // may be null List<Object> arrayExpressions = astStack.closeScope(); IASTTypeId typeId = (IASTTypeId) astStack.pop(); @@ -251,9 +244,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { else { astStack.push(newExpression); } - - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -262,8 +252,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= <openscope-ast> new_pointer_operators */ public void consumeNewDeclarator() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName name = nodeFactory.newName(); IASTDeclarator declarator = nodeFactory.newDeclarator(name); @@ -272,8 +260,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(declarator); astStack.push(declarator); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -283,14 +269,10 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * | 'throw' assignment_expression */ public void consumeExpressionThrow(boolean hasExpr) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression operand = hasExpr ? (IASTExpression) astStack.pop() : null; IASTUnaryExpression expr = nodeFactory.newUnaryExpression(ICPPASTUnaryExpression.op_throw, operand); setOffsetAndLength(expr); astStack.push(expr); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -301,8 +283,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * @param isVectorized */ public void consumeExpressionDelete(boolean isVectorized) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression operand = (IASTExpression) astStack.pop(); boolean hasDoubleColon = astStack.pop() != null; @@ -312,8 +292,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(deleteExpr); astStack.push(deleteExpr); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -321,8 +299,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * */ public void consumeExpressionFieldReference(boolean isPointerDereference, boolean hasTemplateKeyword) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName name = (IASTName) astStack.pop(); IASTExpression owner = (IASTExpression) astStack.pop(); ICPPASTFieldReference expr = nodeFactory.newFieldReference(name, owner); @@ -331,8 +307,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(expr); astStack.push(expr); - - if(TRACE_AST_STACK) System.out.println(astStack); } /** @@ -340,8 +314,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= simple_type_specifier '(' expression_list_opt ')' */ public void consumeExpressionSimpleTypeConstructor() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression expression = (IASTExpression) astStack.pop(); IToken token = (IToken) astStack.pop(); @@ -350,8 +322,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(typeConstructor); astStack.push(typeConstructor); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -385,8 +355,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { */ @SuppressWarnings("unchecked") public void consumeExpressionTypeName() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression expr = (IASTExpression) astStack.pop(); IASTName name = (IASTName) astStack.pop(); boolean isTemplate = astStack.pop() == PLACE_HOLDER; @@ -403,8 +371,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(typenameExpr); astStack.push(typenameExpr); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -413,8 +379,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= type_specifier_seq declarator '=' assignment_expression */ public void consumeConditionDeclaration() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression expr = (IASTExpression) astStack.pop(); IASTDeclarator declarator = (IASTDeclarator) astStack.pop(); IASTDeclSpecifier declSpec = (IASTDeclSpecifier) astStack.pop(); @@ -428,8 +392,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(declaration); astStack.push(declaration); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -441,8 +403,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= operator_id '<' <openscope-ast> template_argument_list_opt '>' */ public void consumeTemplateId() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - List<Object> templateArguments = astStack.closeScope(); IASTName name = (IASTName) astStack.pop(); @@ -459,8 +419,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(templateId); astStack.push(templateId); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -468,8 +426,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * Disambiguates template arguments. */ public void consumeTemplateArgumentTypeId() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - // TODO is this necessary? It should be able to tell if it looks like an id expression IParser secondaryParser = getExpressionParser(); IASTNode result = runSecondaryParser(secondaryParser); @@ -486,8 +442,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { //setOffsetAndLength(ambiguityNode); astStack.push(ambiguityNode); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -497,8 +451,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * typeId and create an ambiguity node. */ public void consumeTemplateArgumentExpression() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression expr = (IASTExpression) astStack.peek(); if(expr instanceof IASTIdExpression) { @@ -518,8 +470,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { astStack.pop(); astStack.push(ambiguityNode); } - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -528,21 +478,16 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= 'operator' overloadable_operator */ public void consumeOperatorName() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - List<IToken> tokens = parser.getRuleTokens(); tokens = tokens.subList(1, tokens.size()); OverloadableOperator operator = getOverloadableOperator(tokens); ICPPASTOperatorName name = nodeFactory.newOperatorName(operator.toCharArray()); setOffsetAndLength(name); - astStack.push(name); - - if(TRACE_AST_STACK) System.out.println(astStack); + astStack.push(name); } - private OverloadableOperator getOverloadableOperator(List<IToken> tokens) { if(tokens.size() == 1) { // TODO this is a hack that I did to save time @@ -571,8 +516,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= 'operator' conversion_type_id */ public void consumeConversionName() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - // Representation is computed by the conversion name itself, see bug 258054 // String rep = createStringRepresentation(parser.getRuleTokens()); // char[] chars = rep.toCharArray(); @@ -581,8 +524,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { ICPPASTConversionName name = nodeFactory.newConversionName(typeId); setOffsetAndLength(name); astStack.push(name); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -593,15 +534,11 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= '~' identifier_token */ public void consumeDestructorName() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - char[] chars = ("~" + parser.getRightIToken()).toCharArray(); //$NON-NLS-1$ IASTName name = nodeFactory.newName(chars); setOffsetAndLength(name); astStack.push(name); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -610,8 +547,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= '~' template_id_name */ public void consumeDestructorNameTemplateId() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - ICPPASTTemplateId templateId = (ICPPASTTemplateId) astStack.peek(); IASTName oldName = templateId.getTemplateName(); @@ -624,8 +559,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(newName, offset, length); templateId.setTemplateName(newName); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -638,8 +571,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { */ public void consumeGlobalQualifiedId() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName name = (IASTName) astStack.pop(); ICPPASTQualifiedName qualifiedName = nodeFactory.newQualifiedName(); @@ -647,8 +578,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { qualifiedName.setFullyQualified(true); setOffsetAndLength(qualifiedName); astStack.push(qualifiedName); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -656,8 +585,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * selection_statement ::= switch '(' condition ')' statement */ public void consumeStatementSwitch() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTStatement body = (IASTStatement) astStack.pop(); Object condition = astStack.pop(); @@ -670,14 +597,10 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(stat); astStack.push(stat); - - if(TRACE_AST_STACK) System.out.println(astStack); } public void consumeStatementIf(boolean hasElse) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTStatement elseClause = hasElse ? (IASTStatement)astStack.pop() : null; IASTStatement thenClause = (IASTStatement) astStack.pop(); @@ -691,8 +614,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(ifStatement); astStack.push(ifStatement); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -700,8 +621,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * iteration_statement ::= 'while' '(' condition ')' statement */ public void consumeStatementWhileLoop() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTStatement body = (IASTStatement) astStack.pop(); Object condition = astStack.pop(); @@ -714,16 +633,12 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(whileStatement); astStack.push(whileStatement); - - if(TRACE_AST_STACK) System.out.println(astStack); } /** */ public void consumeStatementForLoop() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTStatement body = (IASTStatement) astStack.pop(); IASTExpression expr = (IASTExpression) astStack.pop(); Object condition = astStack.pop(); // can be an expression or a declaration @@ -750,8 +665,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(forStat); astStack.push(forStat); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -760,8 +673,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= 'try' compound_statement <openscope-ast> handler_seq */ public void consumeStatementTryBlock() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - List<Object> handlerSeq = astStack.closeScope(); IASTStatement body = (IASTStatement) astStack.pop(); @@ -772,8 +683,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(tryStatement); astStack.push(tryStatement); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -783,8 +692,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * | 'catch' '(' '...' ')' compound_statement */ public void consumeStatementCatchHandler(boolean hasEllipsis) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTStatement body = (IASTStatement) astStack.pop(); IASTDeclaration decl = hasEllipsis ? null : (IASTDeclaration) astStack.pop(); @@ -793,8 +700,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(catchHandler); astStack.push(catchHandler); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -814,8 +719,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { */ @SuppressWarnings("unchecked") public void consumeNestedNameSpecifier(final boolean hasNested) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - LinkedList<IASTName> names; if(hasNested) names = (LinkedList<IASTName>) astStack.pop(); @@ -826,18 +729,12 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { names.add(name); astStack.push(names); - - if(TRACE_AST_STACK) System.out.println(astStack); } public void consumeNestedNameSpecifierEmpty() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - // can't use Collections.EMPTY_LIST because we need a list thats mutable astStack.push(new LinkedList<IASTName>()); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -849,32 +746,20 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * This just throws away the template keyword. */ public void consumeNameWithTemplateKeyword() { - if(TRACE_ACTIONS) - DebugUtil.printMethodTrace(); - IASTName name = (IASTName) astStack.pop(); - astStack.pop(); // pop the template keyword - astStack.push(name); - - if(TRACE_AST_STACK) System.out.println(astStack); } - /** * qualified_id * ::= dcolon_opt nested_name_specifier any_name */ public void consumeQualifiedId(boolean hasTemplateKeyword) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName qualifiedName = subRuleQualifiedName(hasTemplateKeyword); astStack.push(qualifiedName); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -987,8 +872,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { */ @SuppressWarnings("unchecked") public void consumePsudoDestructorName(boolean hasExtraTypeName) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName destructorTypeName = (IASTName) astStack.pop(); IASTName extraName = hasExtraTypeName ? (IASTName) astStack.pop() : null; LinkedList<IASTName> nestedNames = (LinkedList<IASTName>) astStack.pop(); @@ -1005,8 +888,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(qualifiedName); astStack.push(qualifiedName); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1015,15 +896,11 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= 'asm' '(' 'stringlit' ')' ';' */ public void consumeDeclarationASM() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - String s = parser.getRuleTokens().get(2).toString(); IASTASMDeclaration asm = nodeFactory.newASMDeclaration(s); setOffsetAndLength(asm); astStack.push(asm); - - if(TRACE_AST_STACK) System.out.println(astStack); } /** @@ -1031,8 +908,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= 'namespace' 'identifier' '=' dcolon_opt nested_name_specifier_opt namespace_name ';' */ public void consumeNamespaceAliasDefinition() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName qualifiedName = subRuleQualifiedName(false); IASTName alias = createName(parser.getRuleTokens().get(1)); @@ -1040,8 +915,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(namespaceAlias); astStack.push(namespaceAlias); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1050,8 +923,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= 'using' typename_opt dcolon_opt nested_name_specifier_opt unqualified_id ';' */ public void consumeUsingDeclaration() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName qualifiedName = subRuleQualifiedName(false); boolean hasTypenameKeyword = astStack.pop() == PLACE_HOLDER; @@ -1060,8 +931,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(usingDeclaration); astStack.push(usingDeclaration); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1070,15 +939,11 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= 'using' 'namespace' dcolon_opt nested_name_specifier_opt namespace_name ';' */ public void consumeUsingDirective() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName qualifiedName = subRuleQualifiedName(false); ICPPASTUsingDirective usingDirective = nodeFactory.newUsingDirective(qualifiedName); setOffsetAndLength(usingDirective); astStack.push(usingDirective); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1088,8 +953,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * | 'extern' 'stringlit' <openscope-ast> declaration */ public void consumeLinkageSpecification() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - String name = parser.getRuleTokens().get(1).toString(); ICPPASTLinkageSpecification linkageSpec = nodeFactory.newLinkageSpecification(name); @@ -1098,8 +961,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(linkageSpec); astStack.push(linkageSpec); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1115,8 +976,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= 'namespace' '{' <openscope-ast> declaration_seq_opt '}' */ public void consumeNamespaceDefinition(boolean hasName) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - List<Object> declarations = astStack.closeScope(); IASTName namespaceName = hasName ? (IASTName)astStack.pop() : nodeFactory.newName(); @@ -1127,8 +986,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(definition); astStack.push(definition); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1137,8 +994,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= export_opt 'template' '<' <openscope-ast> template_parameter_list '>' declaration */ public void consumeTemplateDeclaration() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTDeclaration declaration = (IASTDeclaration) astStack.pop(); // For some reason ambiguous declarators cause bugs when they are a part of a template declaration. @@ -1155,8 +1010,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(templateDeclaration); astStack.push(templateDeclaration); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1182,15 +1035,11 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= 'template' declaration */ public void consumeTemplateExplicitInstantiation() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTDeclaration declaration = (IASTDeclaration) astStack.pop(); ICPPASTExplicitTemplateInstantiation instantiation = nodeFactory.newExplicitTemplateInstantiation(declaration); setOffsetAndLength(instantiation); astStack.push(instantiation); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1199,15 +1048,11 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= 'template' '<' '>' declaration */ public void consumeTemplateExplicitSpecialization() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTDeclaration declaration = (IASTDeclaration) astStack.pop(); ICPPASTTemplateSpecialization specialization = nodeFactory.newTemplateSpecialization(declaration); setOffsetAndLength(specialization); astStack.push(specialization); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1257,8 +1102,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { public void consumeDeclarationSpecifiersSimple() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - ICPPASTDeclSpecifier declSpec = nodeFactory.newSimpleDeclSpecifier(); for(Object token : astStack.closeScope()) @@ -1266,8 +1109,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(declSpec); astStack.push(declSpec); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1275,8 +1116,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * TODO: maybe move this into the superclass */ public void consumeDeclarationSpecifiersComposite() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - List<Object> topScope = astStack.closeScope(); // There's already a composite or elaborated or enum type specifier somewhere on the stack, find it. @@ -1288,8 +1127,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(declSpec); astStack.push(declSpec); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1299,8 +1136,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { // * declaration_specifiers ::= <openscope> type_name_declaration_specifiers // */ public void consumeDeclarationSpecifiersTypeName() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - List<Object> topScope = astStack.closeScope(); // There's a name somewhere on the stack, find it IASTName typeName = findFirstAndRemove(topScope, IASTName.class); @@ -1323,8 +1158,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(declSpec); astStack.push(declSpec); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1335,8 +1168,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * | 'enum' dcolon_opt nested_name_specifier_opt identifier_name */ public void consumeTypeSpecifierElaborated(boolean hasOptionalTemplateKeyword) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName name = subRuleQualifiedName(hasOptionalTemplateKeyword); int kind = getElaboratedTypeSpecifier(parser.getLeftIToken()); @@ -1344,8 +1175,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(typeSpecifier); astStack.push(typeSpecifier); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1367,8 +1196,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ';' */ public void consumeDeclarationSimple(boolean hasDeclaratorList) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - List<Object> declarators = hasDeclaratorList ? astStack.closeScope() : Collections.emptyList(); ICPPASTDeclSpecifier declSpec = (ICPPASTDeclSpecifier) astStack.pop(); // may be null @@ -1440,20 +1267,10 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { // } astStack.push(declaration); - - if(TRACE_AST_STACK) System.out.println(astStack); } - /** - * org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTSimpleDeclaration (58,9) - org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTNamedTypeSpecifier (58,1) - org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTName (58,1) A - org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTDeclarator (60,6) - org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTDeclarator (61,4) - org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTName (61,4) - * @return - */ + private boolean disambiguateToConstructor(IASTDeclSpecifier declSpec, IASTDeclarator declarator) { if(!(declSpec instanceof IASTNamedTypeSpecifier)) return false; @@ -1512,13 +1329,9 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { return false; } - - - + public void consumeInitDeclaratorComplete() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - // Don't do disambiguation when parsing for content assist, // trust me this makes things work out a lot better. if(completionNode != null) @@ -1540,8 +1353,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(ambiguityNode); astStack.push(ambiguityNode); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1551,15 +1362,11 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= access_specifier_keyword ':' */ public void consumeVisibilityLabel() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IToken specifier = (IToken)astStack.pop(); int visibility = getAccessSpecifier(specifier); ICPPASTVisibilityLabel visibilityLabel = nodeFactory.newVisibilityLabel(visibility); setOffsetAndLength(visibilityLabel); astStack.push(visibilityLabel); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1582,8 +1389,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * | access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name */ public void consumeBaseSpecifier(boolean hasAccessSpecifier, boolean isVirtual) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName name = subRuleQualifiedName(false); int visibility = 0; // this is the default value that the DOM parser uses @@ -1596,30 +1401,14 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { ICPPASTBaseSpecifier baseSpecifier = nodeFactory.newBaseSpecifier(name, visibility, isVirtual); setOffsetAndLength(baseSpecifier); astStack.push(baseSpecifier); - - if(TRACE_AST_STACK) System.out.println(astStack); } /** - * Gets the current token and places it on the stack for later consumption. - */ - public void consumeAccessKeywordToken() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - - astStack.push(parser.getRightIToken()); - - if(TRACE_AST_STACK) System.out.println(astStack); - } - - - /** * class_specifier * ::= class_head '{' <openscope-ast> member_declaration_list_opt '}' */ public void consumeClassSpecifier() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - List<Object> declarations = astStack.closeScope(); // the class specifier is created by the rule for class_head @@ -1631,10 +1420,9 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(classSpecifier); classNames.removeLast(); // pop the stack of class names - - if(TRACE_AST_STACK) System.out.println(astStack); } + /** * class_head * ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt @@ -1644,8 +1432,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { */ @SuppressWarnings("unchecked") public void consumeClassHead(boolean hasNestedNameSpecifier) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - int key = getCompositeTypeSpecifier(parser.getLeftIToken()); List<Object> baseSpecifiers = astStack.closeScope(); // may be null, but if it is then hasNestedNameSpecifier == false @@ -1670,8 +1456,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { // the offset and length are set in consumeClassSpecifier() astStack.push(classSpecifier); classNames.add(className); // push - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1691,15 +1475,11 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= '*' <openscope-ast> cv_qualifier_seq_opt */ public void consumePointer() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTPointer pointer = nodeFactory.newPointer(); List<Object> tokens = astStack.closeScope(); addCVQualifiersToPointer(pointer, tokens); setOffsetAndLength(pointer); astStack.push(pointer); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1720,13 +1500,9 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= '&' */ public void consumeReferenceOperator() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - ICPPASTReferenceOperator referenceOperator = nodeFactory.newReferenceOperator(); setOffsetAndLength(referenceOperator); astStack.push(referenceOperator); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1736,8 +1512,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { */ @SuppressWarnings("unchecked") public void consumePointerToMember() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - List<Object> qualifiers = astStack.closeScope(); LinkedList<IASTName> nestedNames = (LinkedList<IASTName>) astStack.pop(); IToken dColon = (IToken) astStack.pop(); @@ -1759,8 +1533,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { addCVQualifiersToPointer(pointer, qualifiers); setOffsetAndLength(pointer); astStack.push(pointer); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1770,14 +1542,10 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= '(' expression_list ')' */ public void consumeInitializerConstructor() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression expression = (IASTExpression) astStack.pop(); ICPPASTConstructorInitializer initializer = nodeFactory.newConstructorInitializer(expression); setOffsetAndLength(initializer); astStack.push(initializer); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1787,8 +1555,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt */ public void consumeDirectDeclaratorFunctionDeclarator(boolean hasDeclarator) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName name = nodeFactory.newName(); ICPPASTFunctionDeclarator declarator = nodeFactory.newFunctionDeclarator(name); @@ -1833,15 +1599,11 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * Consume an empty bracketed abstract declarator. */ public void consumeAbstractDeclaratorEmpty() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName name = nodeFactory.newName(); setOffsetAndLength(name, offset(parser.getLeftIToken())+1, 0); IASTDeclarator declarator = nodeFactory.newDeclarator(name); setOffsetAndLength(declarator); astStack.push(declarator); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1850,15 +1612,11 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= mem_initializer_id '(' expression_list_opt ')' */ public void consumeConstructorChainInitializer() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression expr = (IASTExpression) astStack.pop(); IASTName name = (IASTName) astStack.pop(); ICPPASTConstructorChainInitializer initializer = nodeFactory.newConstructorChainInitializer(name, expr); setOffsetAndLength(initializer); astStack.push(initializer); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1873,8 +1631,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * */ public void consumeFunctionDefinition(boolean isTryBlockDeclarator) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - List<Object> handlers = isTryBlockDeclarator ? astStack.closeScope() : Collections.emptyList(); IASTCompoundStatement body = (IASTCompoundStatement) astStack.pop(); List<Object> initializers = astStack.closeScope(); @@ -1908,8 +1664,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(definition); astStack.push(definition); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1918,8 +1672,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ';' */ public void consumeMemberDeclarationQualifiedId() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTName qualifiedId = subRuleQualifiedName(true); // https://bugs.eclipse.org/bugs/show_bug.cgi?id=92793 @@ -1927,19 +1679,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(declaration); astStack.push(declaration); - - -// IASTDeclarator declarator = nodeFactory.newDeclarator(qualifiedId); -// setOffsetAndLength(declarator); -// IASTDeclSpecifier emptySpecifier = nodeFactory.newSimpleDeclSpecifier(); -// setOffsetAndLength(emptySpecifier, parser.getLeftIToken().getStartOffset(), 0); -// IASTSimpleDeclaration declaration = nodeFactory.newSimpleDeclaration(emptySpecifier); -// setOffsetAndLength(declaration); -// declaration.addDeclarator(declarator); -// -// astStack.push(declaration); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1949,8 +1688,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { */ public void consumeMemberDeclaratorWithInitializer() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTInitializerExpression initializer = (IASTInitializerExpression) astStack.pop(); IASTDeclarator declarator = (IASTDeclarator) astStack.peek(); setOffsetAndLength(declarator); @@ -1964,8 +1701,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { } declarator.setInitializer(initializer); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1977,8 +1712,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * | 'typename' identifier_name_opt '=' type_id */ public void consumeSimpleTypeTemplateParameter(boolean hasTypeId) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTTypeId typeId = hasTypeId ? (IASTTypeId)astStack.pop() : null; IASTName name = (IASTName)astStack.pop(); @@ -1991,10 +1724,9 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(templateParameter); astStack.push(templateParameter); - - if(TRACE_AST_STACK) System.out.println(astStack); } + private int getTemplateParameterType(IToken token) { int kind = baseKind(token); switch(kind) { @@ -2020,8 +1752,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * Yes its a hack. */ public void consumeTemplateParamterDeclaration() { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IParser typeParameterParser = getTemplateTypeParameterParser(); IASTNode alternate = runSecondaryParser(typeParameterParser); @@ -2030,8 +1760,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { astStack.pop(); // throw away the incorrect AST astStack.push(alternate); // replace it with the correct AST - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -2043,8 +1771,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { * @param hasIdExpr */ public void consumeTemplatedTypeTemplateParameter(boolean hasIdExpr) { - if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); - IASTExpression idExpression = hasIdExpr ? (IASTExpression)astStack.pop() : null; IASTName name = (IASTName) astStack.pop(); @@ -2055,8 +1781,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { setOffsetAndLength(templateParameter); astStack.push(templateParameter); - - if(TRACE_AST_STACK) System.out.println(astStack); } @@ -2071,32 +1795,4 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { return new CPPASTAmbiguousStatement(statements); } -} - - - - - - - - - - - - - - - - - - - - - - - - - - - - +}
\ No newline at end of file diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java index 06e9548e715..b97b380ca49 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java @@ -212,8 +212,9 @@ public String[] getOrderedTerminalSymbols() { return C99ExpressionParsersym.orderedTerminalSymbols; } +@SuppressWarnings("nls") public String getName() { - return "C99ExpressionParser"; //$NON-NLS-1$ + return "C99ExpressionParser"; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java index c083ab16472..54e0886cc2b 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99NoCastExpressionParser.java @@ -212,8 +212,9 @@ public String[] getOrderedTerminalSymbols() { return C99NoCastExpressionParsersym.orderedTerminalSymbols; } +@SuppressWarnings("nls") public String getName() { - return "C99NoCastExpressionParser"; //$NON-NLS-1$ + return "C99NoCastExpressionParser"; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java index 6fb0b737099..480c234eef0 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99Parser.java @@ -212,8 +212,9 @@ public String[] getOrderedTerminalSymbols() { return C99Parsersym.orderedTerminalSymbols; } +@SuppressWarnings("nls") public String getName() { - return "C99Parser"; //$NON-NLS-1$ + return "C99Parser"; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java index 4e5a6b49743..0bacf4c04e2 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99SizeofExpressionParser.java @@ -212,8 +212,9 @@ public String[] getOrderedTerminalSymbols() { return C99SizeofExpressionParsersym.orderedTerminalSymbols; } +@SuppressWarnings("nls") public String getName() { - return "C99SizeofExpressionParser"; //$NON-NLS-1$ + return "C99SizeofExpressionParser"; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java index 4ba71ee4b7c..712e8a39022 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java @@ -3,7 +3,7 @@ * 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 -* http://www.eclipse.org/legal/epl_v10.html +* http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation @@ -16,11 +16,7 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; import lpg.lpgjavaruntime.*; import java.util.*; - import org.eclipse.cdt.core.dom.ast.*; -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.IParser; import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; @@ -28,7 +24,11 @@ import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; -public class CPPExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser +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; + +public class CPPExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser { private static ParseTable prs = new CPPExpressionParserprs(); private FixedBacktrackingParser btParser; @@ -165,28 +165,19 @@ public class CPPExpressionParser extends PrsStream implements RuleAction , IPars } -private CPPParserAction action; +private CPPBuildASTParserAction action; -// uncomment to use with backtracking parser public CPPExpressionParser() { // constructor } private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { - // binding resolution actions need access to IASTName nodes, temporary - action = new CPPParserAction (); - //action.resolver = new C99TypedefTrackerParserAction (this); - action.builder = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu); - //action.builder.setTokenMap(CPPParsersym.orderedTerminalSymbols); - - action.builder.setParserOptions(options); - - // comment this line to use with backtracking parser - //setParserAction(action); + action = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu); + action.setParserOptions(options); } public void addToken(IToken token) { - token.setKind(mapKind(token.getKind())); + token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called? super.addToken(token); } @@ -196,37 +187,35 @@ public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> opt setStreamLength(getSize()); initActions(tu, options); - final int errorRepairCount = -1; // _1 means full error handling + final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse super.resetTokenStream(); // allow tokens to be garbage collected // the completion node may be null - IASTCompletionNode compNode = action.builder.getASTCompletionNode(); + IASTCompletionNode compNode = action.getASTCompletionNode(); - //action = null; // causes getSecondaryParseResult() to fail - - // Comment this line to use with backtracking parser + //action = null; //parserAction = null; - return compNode; } - // uncomment this method to use with backtracking parser public List getRuleTokens() { return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1)); } + public IASTNode getSecondaryParseResult() { - return action.builder.getSecondaryParseResult(); + return action.getSecondaryParseResult(); } public String[] getOrderedTerminalSymbols() { return CPPExpressionParsersym.orderedTerminalSymbols; } +@SuppressWarnings("nls") public String getName() { - return "CPPExpressionParser"; //$NON-NLS-1$ + return "CPPExpressionParser"; } @@ -257,2024 +246,1735 @@ public CPPExpressionParser(String[] mapFrom) { // constructor // // Rule 1: <openscope-ast> ::= $Empty // - case 1: { action.builder. - openASTScope(); break; - } + case 1: { action. openASTScope(); break; + } // // Rule 2: <empty> ::= $Empty // - case 2: { action.builder. - consumeEmpty(); break; - } - + case 2: { action. consumeEmpty(); break; + } + // // Rule 13: translation_unit ::= declaration_seq_opt // - case 13: { action.builder. - consumeTranslationUnit(); break; + case 13: { action. consumeTranslationUnit(); break; } - + // // Rule 16: literal ::= integer // - case 16: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; + case 16: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } - + // // Rule 17: literal ::= 0 // - case 17: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; + case 17: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } - + // // Rule 18: literal ::= floating // - case 18: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; + case 18: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; } - + // // Rule 19: literal ::= charconst // - case 19: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; + case 19: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } - + // // Rule 20: literal ::= stringlit // - case 20: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; + case 20: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } - + // // Rule 21: literal ::= true // - case 21: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; + case 21: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } - + // // Rule 22: literal ::= false // - case 22: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; + case 22: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } - + // // Rule 23: literal ::= this // - case 23: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; + case 23: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } - + // // Rule 25: primary_expression ::= ( expression ) // - case 25: { action.builder. - consumeExpressionBracketed(); break; + case 25: { action. consumeExpressionBracketed(); break; } - + // // Rule 27: id_expression ::= qualified_or_unqualified_name // - case 27: { action.builder. - consumeExpressionName(); break; + case 27: { action. consumeExpressionName(); break; } - + // // Rule 34: unqualified_id_name ::= ~ identifier_token // - case 34: { action.builder. - consumeDestructorName(); break; + case 34: { action. consumeDestructorName(); break; } - + // // Rule 35: unqualified_id_name ::= ~ template_id_name // - case 35: { action.builder. - consumeDestructorNameTemplateId(); break; + case 35: { action. consumeDestructorNameTemplateId(); break; } - + // // Rule 36: identifier_name ::= identifier_token // - case 36: { action.builder. - consumeIdentifierName(); break; + case 36: { action. consumeIdentifierName(); break; } - + // // Rule 37: template_opt ::= template // - case 37: { action.builder. - consumePlaceHolder(); break; + case 37: { action. consumePlaceHolder(); break; } - + // // Rule 38: template_opt ::= $Empty // - case 38: { action.builder. - consumeEmpty(); break; + case 38: { action. consumeEmpty(); break; } - + // // Rule 39: dcolon_opt ::= :: // - case 39: { action.builder. - consumeToken(); break; + case 39: { action. consumeToken(); break; } - + // // Rule 40: dcolon_opt ::= $Empty // - case 40: { action.builder. - consumeEmpty(); break; + case 40: { action. consumeEmpty(); break; } - + // // Rule 41: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name // - case 41: { action.builder. - consumeQualifiedId(true); break; + case 41: { action. consumeQualifiedId(true); break; } - + // // Rule 42: qualified_id_name ::= :: unqualified_id_name // - case 42: { action.builder. - consumeGlobalQualifiedId(); break; + case 42: { action. consumeGlobalQualifiedId(); break; } - + // // Rule 43: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // - case 43: { action.builder. - consumeNestedNameSpecifier(true); break; + case 43: { action. consumeNestedNameSpecifier(true); break; } - + // // Rule 44: nested_name_specifier ::= class_or_namespace_name :: // - case 44: { action.builder. - consumeNestedNameSpecifier(false); break; + case 44: { action. consumeNestedNameSpecifier(false); break; } - + // // Rule 45: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // - case 45: { action.builder. - consumeNestedNameSpecifier(true); break; + case 45: { action. consumeNestedNameSpecifier(true); break; } - + // // Rule 46: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // - case 46: { action.builder. - consumeNestedNameSpecifier(false); break; + case 46: { action. consumeNestedNameSpecifier(false); break; } - + // // Rule 47: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name // - case 47: { action.builder. - consumeNameWithTemplateKeyword(); break; + case 47: { action. consumeNameWithTemplateKeyword(); break; } - + // // Rule 49: nested_name_specifier_opt ::= $Empty // - case 49: { action.builder. - consumeNestedNameSpecifierEmpty(); break; + case 49: { action. consumeNestedNameSpecifierEmpty(); break; } - + // // Rule 52: postfix_expression ::= postfix_expression [ expression ] // - case 52: { action.builder. - consumeExpressionArraySubscript(); break; + case 52: { action. consumeExpressionArraySubscript(); break; } - + // // Rule 53: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 53: { action.builder. - consumeExpressionFunctionCall(); break; + case 53: { action. consumeExpressionFunctionCall(); break; } - + // // Rule 54: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 54: { action.builder. - consumeExpressionSimpleTypeConstructor(); break; + case 54: { action. consumeExpressionSimpleTypeConstructor(); break; } - + // // Rule 55: postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt ) // - case 55: { action.builder. - consumeExpressionTypeName(); break; + case 55: { action. consumeExpressionTypeName(); break; } - + // // Rule 56: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) // - case 56: { action.builder. - consumeExpressionTypeName(); break; + case 56: { action. consumeExpressionTypeName(); break; } - + // // Rule 57: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // - case 57: { action.builder. - consumeExpressionFieldReference(false, false); break; + case 57: { action. consumeExpressionFieldReference(false, false); break; } - + // // Rule 58: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 58: { action.builder. - consumeExpressionFieldReference(true, false); break; + case 58: { action. consumeExpressionFieldReference(true, false); break; } - + // // Rule 59: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 59: { action.builder. - consumeExpressionFieldReference(false, true); break; + case 59: { action. consumeExpressionFieldReference(false, true); break; } - + // // Rule 60: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 60: { action.builder. - consumeExpressionFieldReference(true, true); break; + case 60: { action. consumeExpressionFieldReference(true, true); break; } - + // // Rule 61: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 61: { action.builder. - consumeExpressionFieldReference(false, false); break; + case 61: { action. consumeExpressionFieldReference(false, false); break; } - + // // Rule 62: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 62: { action.builder. - consumeExpressionFieldReference(true, false); break; + case 62: { action. consumeExpressionFieldReference(true, false); break; } - + // // Rule 63: postfix_expression ::= postfix_expression ++ // - case 63: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; + case 63: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } - + // // Rule 64: postfix_expression ::= postfix_expression -- // - case 64: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; + case 64: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } - + // // Rule 65: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 65: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; + case 65: { action. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } - + // // Rule 66: postfix_expression ::= static_cast < type_id > ( expression ) // - case 66: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; + case 66: { action. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } - + // // Rule 67: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 67: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; + case 67: { action. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } - + // // Rule 68: postfix_expression ::= const_cast < type_id > ( expression ) // - case 68: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; + case 68: { action. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } - + // // Rule 69: postfix_expression ::= typeid ( expression ) // - case 69: { action.builder. - consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; + case 69: { action. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } - + // // Rule 70: postfix_expression ::= typeid ( type_id ) // - case 70: { action.builder. - consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; + case 70: { action. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } - + // // Rule 71: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name // - case 71: { action.builder. - consumePsudoDestructorName(true); break; + case 71: { action. consumePsudoDestructorName(true); break; } - + // // Rule 72: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name // - case 72: { action.builder. - consumePsudoDestructorName(true); break; + case 72: { action. consumePsudoDestructorName(true); break; } - + // // Rule 73: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name // - case 73: { action.builder. - consumePsudoDestructorName(false); break; + case 73: { action. consumePsudoDestructorName(false); break; } - + // // Rule 74: destructor_type_name ::= ~ identifier_token // - case 74: { action.builder. - consumeDestructorName(); break; + case 74: { action. consumeDestructorName(); break; } - + // // Rule 75: destructor_type_name ::= ~ template_id_name // - case 75: { action.builder. - consumeDestructorNameTemplateId(); break; + case 75: { action. consumeDestructorNameTemplateId(); break; } - + // // Rule 79: unary_expression ::= ++ cast_expression // - case 79: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; + case 79: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } - + // // Rule 80: unary_expression ::= -- cast_expression // - case 80: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; + case 80: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } - + // // Rule 81: unary_expression ::= & cast_expression // - case 81: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; + case 81: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } - + // // Rule 82: unary_expression ::= * cast_expression // - case 82: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; + case 82: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } - + // // Rule 83: unary_expression ::= + cast_expression // - case 83: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; + case 83: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } - + // // Rule 84: unary_expression ::= - cast_expression // - case 84: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; + case 84: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } - + // // Rule 85: unary_expression ::= ~ cast_expression // - case 85: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; + case 85: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } - + // // Rule 86: unary_expression ::= ! cast_expression // - case 86: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; + case 86: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } - + // // Rule 87: unary_expression ::= sizeof unary_expression // - case 87: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; + case 87: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } - + // // Rule 88: unary_expression ::= sizeof ( type_id ) // - case 88: { action.builder. - consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; + case 88: { action. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } - + // // Rule 89: new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt // - case 89: { action.builder. - consumeExpressionNew(true); break; + case 89: { action. consumeExpressionNew(true); break; } - + // // Rule 90: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt // - case 90: { action.builder. - consumeExpressionNew(false); break; + case 90: { action. consumeExpressionNew(false); break; } - + // // Rule 92: new_placement_opt ::= $Empty // - case 92: { action.builder. - consumeEmpty(); break; + case 92: { action. consumeEmpty(); break; } - + // // Rule 93: new_type_id ::= type_specifier_seq // - case 93: { action.builder. - consumeTypeId(false); break; + case 93: { action. consumeTypeId(false); break; } - + // // Rule 94: new_type_id ::= type_specifier_seq new_declarator // - case 94: { action.builder. - consumeTypeId(true); break; + case 94: { action. consumeTypeId(true); break; } - + // // Rule 95: new_declarator ::= <openscope-ast> new_pointer_operators // - case 95: { action.builder. - consumeNewDeclarator(); break; + case 95: { action. consumeNewDeclarator(); break; } - + // // Rule 102: new_initializer ::= ( expression_list_opt ) // - case 102: { action.builder. - consumeNewInitializer(); break; + case 102: { action. consumeNewInitializer(); break; } - + // // Rule 104: new_initializer_opt ::= $Empty // - case 104: { action.builder. - consumeEmpty(); break; + case 104: { action. consumeEmpty(); break; } - + // // Rule 105: delete_expression ::= dcolon_opt delete cast_expression // - case 105: { action.builder. - consumeExpressionDelete(false); break; + case 105: { action. consumeExpressionDelete(false); break; } - + // // Rule 106: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 106: { action.builder. - consumeExpressionDelete(true); break; + case 106: { action. consumeExpressionDelete(true); break; } - + // // Rule 108: cast_expression ::= ( type_id ) cast_expression // - case 108: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_cast); break; + case 108: { action. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } - + // // Rule 110: pm_expression ::= pm_expression .* cast_expression // - case 110: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; + case 110: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } - + // // Rule 111: pm_expression ::= pm_expression ->* cast_expression // - case 111: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; + case 111: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } - + // // Rule 113: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 113: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; + case 113: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } - + // // Rule 114: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 114: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; + case 114: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } - + // // Rule 115: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 115: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; + case 115: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } - + // // Rule 117: additive_expression ::= additive_expression + multiplicative_expression // - case 117: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; + case 117: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } - + // // Rule 118: additive_expression ::= additive_expression - multiplicative_expression // - case 118: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; + case 118: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } - + // // Rule 120: shift_expression ::= shift_expression << additive_expression // - case 120: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; + case 120: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } - + // // Rule 121: shift_expression ::= shift_expression >> additive_expression // - case 121: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; + case 121: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } - + // // Rule 123: relational_expression ::= relational_expression < shift_expression // - case 123: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; + case 123: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } - + // // Rule 124: relational_expression ::= relational_expression > shift_expression // - case 124: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; + case 124: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } - + // // Rule 125: relational_expression ::= relational_expression <= shift_expression // - case 125: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; + case 125: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } - + // // Rule 126: relational_expression ::= relational_expression >= shift_expression // - case 126: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; + case 126: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } - + // // Rule 128: equality_expression ::= equality_expression == relational_expression // - case 128: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; + case 128: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } - + // // Rule 129: equality_expression ::= equality_expression != relational_expression // - case 129: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; + case 129: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } - + // // Rule 131: and_expression ::= and_expression & equality_expression // - case 131: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; + case 131: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } - + // // Rule 133: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 133: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; + case 133: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } - + // // Rule 135: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 135: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; + case 135: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } - + // // Rule 137: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 137: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; + case 137: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } - + // // Rule 139: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 139: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; + case 139: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } - + // // Rule 141: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 141: { action.builder. - consumeExpressionConditional(); break; + case 141: { action. consumeExpressionConditional(); break; } - + // // Rule 142: throw_expression ::= throw // - case 142: { action.builder. - consumeExpressionThrow(false); break; + case 142: { action. consumeExpressionThrow(false); break; } - + // // Rule 143: throw_expression ::= throw assignment_expression // - case 143: { action.builder. - consumeExpressionThrow(true); break; + case 143: { action. consumeExpressionThrow(true); break; } - + // // Rule 146: assignment_expression ::= logical_or_expression = assignment_expression // - case 146: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; + case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } - + // // Rule 147: assignment_expression ::= logical_or_expression *= assignment_expression // - case 147: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; + case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } - + // // Rule 148: assignment_expression ::= logical_or_expression /= assignment_expression // - case 148: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; + case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } - + // // Rule 149: assignment_expression ::= logical_or_expression %= assignment_expression // - case 149: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; + case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } - + // // Rule 150: assignment_expression ::= logical_or_expression += assignment_expression // - case 150: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; + case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } - + // // Rule 151: assignment_expression ::= logical_or_expression -= assignment_expression // - case 151: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; + case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } - + // // Rule 152: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 152: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; + case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } - + // // Rule 153: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 153: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; + case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } - + // // Rule 154: assignment_expression ::= logical_or_expression &= assignment_expression // - case 154: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; + case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } - + // // Rule 155: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 155: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; + case 155: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } - + // // Rule 156: assignment_expression ::= logical_or_expression |= assignment_expression // - case 156: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; + case 156: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } - + // // Rule 158: expression_list ::= <openscope-ast> expression_list_actual // - case 158: { action.builder. - consumeExpressionList(); break; + case 158: { action. consumeExpressionList(); break; } - + // // Rule 162: expression_list_opt ::= $Empty // - case 162: { action.builder. - consumeEmpty(); break; + case 162: { action. consumeEmpty(); break; } - + // // Rule 164: expression_opt ::= $Empty // - case 164: { action.builder. - consumeEmpty(); break; + case 164: { action. consumeEmpty(); break; } - + // // Rule 167: constant_expression_opt ::= $Empty // - case 167: { action.builder. - consumeEmpty(); break; + case 167: { action. consumeEmpty(); break; } - + // // Rule 176: statement ::= ERROR_TOKEN // - case 176: { action.builder. - consumeStatementProblem(); break; + case 176: { action. consumeStatementProblem(); break; } - + // // Rule 177: labeled_statement ::= identifier : statement // - case 177: { action.builder. - consumeStatementLabeled(); break; + case 177: { action. consumeStatementLabeled(); break; } - + // // Rule 178: labeled_statement ::= case constant_expression : statement // - case 178: { action.builder. - consumeStatementCase(); break; + case 178: { action. consumeStatementCase(); break; } - + // // Rule 179: labeled_statement ::= default : statement // - case 179: { action.builder. - consumeStatementDefault(); break; + case 179: { action. consumeStatementDefault(); break; } - + // // Rule 180: expression_statement ::= expression ; // - case 180: { action.builder. - consumeStatementExpression(); break; + case 180: { action. consumeStatementExpression(); break; } - + // // Rule 181: expression_statement ::= ; // - case 181: { action.builder. - consumeStatementNull(); break; + case 181: { action. consumeStatementNull(); break; } - + // // Rule 182: compound_statement ::= { <openscope-ast> statement_seq } // - case 182: { action.builder. - consumeStatementCompoundStatement(true); break; + case 182: { action. consumeStatementCompoundStatement(true); break; } - + // // Rule 183: compound_statement ::= { } // - case 183: { action.builder. - consumeStatementCompoundStatement(false); break; + case 183: { action. consumeStatementCompoundStatement(false); break; } - + // // Rule 186: selection_statement ::= if ( condition ) statement // - case 186: { action.builder. - consumeStatementIf(false); break; + case 186: { action. consumeStatementIf(false); break; } - + // // Rule 187: selection_statement ::= if ( condition ) statement else statement // - case 187: { action.builder. - consumeStatementIf(true); break; + case 187: { action. consumeStatementIf(true); break; } - + // // Rule 188: selection_statement ::= switch ( condition ) statement // - case 188: { action.builder. - consumeStatementSwitch(); break; + case 188: { action. consumeStatementSwitch(); break; } - + // // Rule 190: condition ::= type_specifier_seq declarator = assignment_expression // - case 190: { action.builder. - consumeConditionDeclaration(); break; + case 190: { action. consumeConditionDeclaration(); break; } - + // // Rule 192: condition_opt ::= $Empty // - case 192: { action.builder. - consumeEmpty(); break; + case 192: { action. consumeEmpty(); break; } - + // // Rule 193: iteration_statement ::= while ( condition ) statement // - case 193: { action.builder. - consumeStatementWhileLoop(); break; + case 193: { action. consumeStatementWhileLoop(); break; } - + // // Rule 194: iteration_statement ::= do statement while ( expression ) ; // - case 194: { action.builder. - consumeStatementDoLoop(); break; + case 194: { action. consumeStatementDoLoop(); break; } - + // // Rule 195: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 195: { action.builder. - consumeStatementForLoop(); break; + case 195: { action. consumeStatementForLoop(); break; } - + // // Rule 197: for_init_statement ::= simple_declaration_with_declspec // - case 197: { action.builder. - consumeStatementDeclaration(); break; + case 197: { action. consumeStatementDeclaration(); break; } - + // // Rule 198: jump_statement ::= break ; // - case 198: { action.builder. - consumeStatementBreak(); break; + case 198: { action. consumeStatementBreak(); break; } - + // // Rule 199: jump_statement ::= continue ; // - case 199: { action.builder. - consumeStatementContinue(); break; + case 199: { action. consumeStatementContinue(); break; } - + // // Rule 200: jump_statement ::= return expression ; // - case 200: { action.builder. - consumeStatementReturn(true); break; + case 200: { action. consumeStatementReturn(true); break; } - + // // Rule 201: jump_statement ::= return ; // - case 201: { action.builder. - consumeStatementReturn(false); break; + case 201: { action. consumeStatementReturn(false); break; } - + // // Rule 202: jump_statement ::= goto identifier_token ; // - case 202: { action.builder. - consumeStatementGoto(); break; + case 202: { action. consumeStatementGoto(); break; } - + // // Rule 203: declaration_statement ::= block_declaration // - case 203: { action.builder. - consumeStatementDeclarationWithDisambiguation(); break; + case 203: { action. consumeStatementDeclarationWithDisambiguation(); break; } - + // // Rule 204: declaration_statement ::= function_definition // - case 204: { action.builder. - consumeStatementDeclaration(); break; + case 204: { action. consumeStatementDeclaration(); break; } - + // // Rule 212: declaration ::= ERROR_TOKEN // - case 212: { action.builder. - consumeDeclarationProblem(); break; + case 212: { action. consumeDeclarationProblem(); break; } - + // // Rule 222: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ; // - case 222: { action.builder. - consumeDeclarationSimple(true); break; + case 222: { action. consumeDeclarationSimple(true); break; } - + // // Rule 223: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ; // - case 223: { action.builder. - consumeDeclarationSimple(true); break; + case 223: { action. consumeDeclarationSimple(true); break; } - + // // Rule 224: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers // - case 224: { action.builder. - consumeDeclarationSpecifiersSimple(); break; + case 224: { action. consumeDeclarationSpecifiersSimple(); break; } - + // // Rule 225: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers // - case 225: { action.builder. - consumeDeclarationSpecifiersComposite(); break; + case 225: { action. consumeDeclarationSpecifiersComposite(); break; } - + // // Rule 226: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers // - case 226: { action.builder. - consumeDeclarationSpecifiersComposite(); break; + case 226: { action. consumeDeclarationSpecifiersComposite(); break; } - + // // Rule 227: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers // - case 227: { action.builder. - consumeDeclarationSpecifiersComposite(); break; + case 227: { action. consumeDeclarationSpecifiersComposite(); break; } - + // // Rule 228: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers // - case 228: { action.builder. - consumeDeclarationSpecifiersTypeName(); break; + case 228: { action. consumeDeclarationSpecifiersTypeName(); break; } - + // // Rule 230: declaration_specifiers_opt ::= $Empty // - case 230: { action.builder. - consumeEmpty(); break; + case 230: { action. consumeEmpty(); break; } - + // // Rule 234: no_type_declaration_specifier ::= friend // - case 234: { action.builder. - consumeDeclSpecToken(); break; + case 234: { action. consumeDeclSpecToken(); break; } - + // // Rule 235: no_type_declaration_specifier ::= typedef // - case 235: { action.builder. - consumeDeclSpecToken(); break; + case 235: { action. consumeDeclSpecToken(); break; } - + // // Rule 255: storage_class_specifier ::= auto // - case 255: { action.builder. - consumeDeclSpecToken(); break; + case 255: { action. consumeDeclSpecToken(); break; } - + // // Rule 256: storage_class_specifier ::= register // - case 256: { action.builder. - consumeDeclSpecToken(); break; + case 256: { action. consumeDeclSpecToken(); break; } - + // // Rule 257: storage_class_specifier ::= static // - case 257: { action.builder. - consumeDeclSpecToken(); break; + case 257: { action. consumeDeclSpecToken(); break; } - + // // Rule 258: storage_class_specifier ::= extern // - case 258: { action.builder. - consumeDeclSpecToken(); break; + case 258: { action. consumeDeclSpecToken(); break; } - + // // Rule 259: storage_class_specifier ::= mutable // - case 259: { action.builder. - consumeDeclSpecToken(); break; + case 259: { action. consumeDeclSpecToken(); break; } - + // // Rule 260: function_specifier ::= inline // - case 260: { action.builder. - consumeDeclSpecToken(); break; + case 260: { action. consumeDeclSpecToken(); break; } - + // // Rule 261: function_specifier ::= virtual // - case 261: { action.builder. - consumeDeclSpecToken(); break; + case 261: { action. consumeDeclSpecToken(); break; } - + // // Rule 262: function_specifier ::= explicit // - case 262: { action.builder. - consumeDeclSpecToken(); break; + case 262: { action. consumeDeclSpecToken(); break; } - + // // Rule 263: simple_type_specifier ::= char // - case 263: { action.builder. - consumeDeclSpecToken(); break; + case 263: { action. consumeDeclSpecToken(); break; } - + // // Rule 264: simple_type_specifier ::= wchar_t // - case 264: { action.builder. - consumeDeclSpecToken(); break; + case 264: { action. consumeDeclSpecToken(); break; } - + // // Rule 265: simple_type_specifier ::= bool // - case 265: { action.builder. - consumeDeclSpecToken(); break; + case 265: { action. consumeDeclSpecToken(); break; } - + // // Rule 266: simple_type_specifier ::= short // - case 266: { action.builder. - consumeDeclSpecToken(); break; + case 266: { action. consumeDeclSpecToken(); break; } - + // // Rule 267: simple_type_specifier ::= int // - case 267: { action.builder. - consumeDeclSpecToken(); break; + case 267: { action. consumeDeclSpecToken(); break; } - + // // Rule 268: simple_type_specifier ::= long // - case 268: { action.builder. - consumeDeclSpecToken(); break; + case 268: { action. consumeDeclSpecToken(); break; } - + // // Rule 269: simple_type_specifier ::= signed // - case 269: { action.builder. - consumeDeclSpecToken(); break; + case 269: { action. consumeDeclSpecToken(); break; } - + // // Rule 270: simple_type_specifier ::= unsigned // - case 270: { action.builder. - consumeDeclSpecToken(); break; + case 270: { action. consumeDeclSpecToken(); break; } - + // // Rule 271: simple_type_specifier ::= float // - case 271: { action.builder. - consumeDeclSpecToken(); break; + case 271: { action. consumeDeclSpecToken(); break; } - + // // Rule 272: simple_type_specifier ::= double // - case 272: { action.builder. - consumeDeclSpecToken(); break; + case 272: { action. consumeDeclSpecToken(); break; } - + // // Rule 273: simple_type_specifier ::= void // - case 273: { action.builder. - consumeDeclSpecToken(); break; + case 273: { action. consumeDeclSpecToken(); break; } - + // // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 276: { action.builder. - consumeQualifiedId(false); break; + case 276: { action. consumeQualifiedId(false); break; } - + // // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 277: { action.builder. - consumeQualifiedId(false); break; + case 277: { action. consumeQualifiedId(false); break; } - + // // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 278: { action.builder. - consumeQualifiedId(false); break; + case 278: { action. consumeQualifiedId(false); break; } - + // // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 279: { action.builder. - consumeQualifiedId(true); break; + case 279: { action. consumeQualifiedId(true); break; } - + // // Rule 281: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 281: { action.builder. - consumeTypeSpecifierElaborated(false); break; + case 281: { action. consumeTypeSpecifierElaborated(false); break; } - + // // Rule 282: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 282: { action.builder. - consumeTypeSpecifierElaborated(true); break; + case 282: { action. consumeTypeSpecifierElaborated(true); break; } - + // // Rule 283: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 283: { action.builder. - consumeTypeSpecifierElaborated(false); break; + case 283: { action. consumeTypeSpecifierElaborated(false); break; } - + // // Rule 284: enum_specifier ::= enum { <openscope-ast> enumerator_list_opt } // - case 284: { action.builder. - consumeTypeSpecifierEnumeration(false); break; + case 284: { action. consumeTypeSpecifierEnumeration(false); break; } - + // // Rule 285: enum_specifier ::= enum identifier_token { <openscope-ast> enumerator_list_opt } // - case 285: { action.builder. - consumeTypeSpecifierEnumeration(true); break; + case 285: { action. consumeTypeSpecifierEnumeration(true); break; } - + // // Rule 290: enumerator_definition ::= identifier_token // - case 290: { action.builder. - consumeEnumerator(false); break; + case 290: { action. consumeEnumerator(false); break; } - + // // Rule 291: enumerator_definition ::= identifier_token = constant_expression // - case 291: { action.builder. - consumeEnumerator(true); break; + case 291: { action. consumeEnumerator(true); break; } - + // // Rule 295: named_namespace_definition ::= namespace namespace_name { <openscope-ast> declaration_seq_opt } // - case 295: { action.builder. - consumeNamespaceDefinition(true); break; + case 295: { action. consumeNamespaceDefinition(true); break; } - + // // Rule 296: unnamed_namespace_definition ::= namespace { <openscope-ast> declaration_seq_opt } // - case 296: { action.builder. - consumeNamespaceDefinition(false); break; + case 296: { action. consumeNamespaceDefinition(false); break; } - + // // Rule 297: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 297: { action.builder. - consumeNamespaceAliasDefinition(); break; + case 297: { action. consumeNamespaceAliasDefinition(); break; } - + // // Rule 298: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 298: { action.builder. - consumeUsingDeclaration(); break; + case 298: { action. consumeUsingDeclaration(); break; } - + // // Rule 299: typename_opt ::= typename // - case 299: { action.builder. - consumePlaceHolder(); break; + case 299: { action. consumePlaceHolder(); break; } - + // // Rule 300: typename_opt ::= $Empty // - case 300: { action.builder. - consumeEmpty(); break; + case 300: { action. consumeEmpty(); break; } - + // // Rule 301: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 301: { action.builder. - consumeUsingDirective(); break; + case 301: { action. consumeUsingDirective(); break; } - + // // Rule 302: asm_definition ::= asm ( stringlit ) ; // - case 302: { action.builder. - consumeDeclarationASM(); break; + case 302: { action. consumeDeclarationASM(); break; } - + // // Rule 303: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt } // - case 303: { action.builder. - consumeLinkageSpecification(); break; + case 303: { action. consumeLinkageSpecification(); break; } - + // // Rule 304: linkage_specification ::= extern stringlit <openscope-ast> declaration // - case 304: { action.builder. - consumeLinkageSpecification(); break; + case 304: { action. consumeLinkageSpecification(); break; } - + // // Rule 309: init_declarator_complete ::= init_declarator // - case 309: { action.builder. - consumeInitDeclaratorComplete(); break; + case 309: { action. consumeInitDeclaratorComplete(); break; } - + // // Rule 311: init_declarator ::= declarator initializer // - case 311: { action.builder. - consumeDeclaratorWithInitializer(true); break; + case 311: { action. consumeDeclaratorWithInitializer(true); break; } - + // // Rule 313: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator // - case 313: { action.builder. - consumeDeclaratorWithPointer(true); break; + case 313: { action. consumeDeclaratorWithPointer(true); break; } - + // // Rule 315: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator // - case 315: { action.builder. - consumeDeclaratorWithPointer(true); break; + case 315: { action. consumeDeclaratorWithPointer(true); break; } - + // // Rule 319: basic_direct_declarator ::= declarator_id_name // - case 319: { action.builder. - consumeDirectDeclaratorIdentifier(); break; + case 319: { action. consumeDirectDeclaratorIdentifier(); break; } - + // // Rule 320: basic_direct_declarator ::= ( declarator ) // - case 320: { action.builder. - consumeDirectDeclaratorBracketed(); break; + case 320: { action. consumeDirectDeclaratorBracketed(); break; } - + // // Rule 321: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt // - case 321: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(true); break; + case 321: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } - + // // Rule 322: array_direct_declarator ::= array_direct_declarator array_modifier // - case 322: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 322: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 323: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 323: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 323: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 324: array_modifier ::= [ constant_expression ] // - case 324: { action.builder. - consumeDirectDeclaratorArrayModifier(true); break; + case 324: { action. consumeDirectDeclaratorArrayModifier(true); break; } - + // // Rule 325: array_modifier ::= [ ] // - case 325: { action.builder. - consumeDirectDeclaratorArrayModifier(false); break; + case 325: { action. consumeDirectDeclaratorArrayModifier(false); break; } - + // // Rule 326: ptr_operator ::= * <openscope-ast> cv_qualifier_seq_opt // - case 326: { action.builder. - consumePointer(); break; + case 326: { action. consumePointer(); break; } - + // // Rule 327: ptr_operator ::= & // - case 327: { action.builder. - consumeReferenceOperator(); break; + case 327: { action. consumeReferenceOperator(); break; } - + // // Rule 328: ptr_operator ::= dcolon_opt nested_name_specifier * <openscope-ast> cv_qualifier_seq_opt // - case 328: { action.builder. - consumePointerToMember(); break; + case 328: { action. consumePointerToMember(); break; } - + // // Rule 334: cv_qualifier ::= const // - case 334: { action.builder. - consumeDeclSpecToken(); break; + case 334: { action. consumeDeclSpecToken(); break; } - + // // Rule 335: cv_qualifier ::= volatile // - case 335: { action.builder. - consumeDeclSpecToken(); break; + case 335: { action. consumeDeclSpecToken(); break; } - + // // Rule 337: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // - case 337: { action.builder. - consumeQualifiedId(false); break; + case 337: { action. consumeQualifiedId(false); break; } - + // // Rule 338: type_id ::= type_specifier_seq // - case 338: { action.builder. - consumeTypeId(false); break; + case 338: { action. consumeTypeId(false); break; } - + // // Rule 339: type_id ::= type_specifier_seq abstract_declarator // - case 339: { action.builder. - consumeTypeId(true); break; + case 339: { action. consumeTypeId(true); break; } - + // // Rule 342: abstract_declarator ::= <openscope-ast> ptr_operator_seq // - case 342: { action.builder. - consumeDeclaratorWithPointer(false); break; + case 342: { action. consumeDeclaratorWithPointer(false); break; } - + // // Rule 343: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator // - case 343: { action.builder. - consumeDeclaratorWithPointer(true); break; + case 343: { action. consumeDeclaratorWithPointer(true); break; } - + // // Rule 347: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 347: { action.builder. - consumeDirectDeclaratorBracketed(); break; + case 347: { action. consumeDirectDeclaratorBracketed(); break; } - + // // Rule 348: basic_direct_abstract_declarator ::= ( ) // - case 348: { action.builder. - consumeAbstractDeclaratorEmpty(); break; + case 348: { action. consumeAbstractDeclaratorEmpty(); break; } - + // // Rule 349: array_direct_abstract_declarator ::= array_modifier // - case 349: { action.builder. - consumeDirectDeclaratorArrayDeclarator(false); break; + case 349: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } - + // // Rule 350: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 350: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 350: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 351: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 351: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 351: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 352: 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 352: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(true); break; + case 352: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } - + // // Rule 353: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt // - case 353: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(false); break; + case 353: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; } - + // // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 354: { action.builder. - consumePlaceHolder(); break; + case 354: { action. consumePlaceHolder(); break; } - + // // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 355: { action.builder. - consumeEmpty(); break; + case 355: { action. consumeEmpty(); break; } - + // // Rule 356: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 356: { action.builder. - consumePlaceHolder(); break; + case 356: { action. consumePlaceHolder(); break; } - + // // Rule 362: abstract_declarator_opt ::= $Empty // - case 362: { action.builder. - consumeEmpty(); break; + case 362: { action. consumeEmpty(); break; } - + // // Rule 363: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 363: { action.builder. - consumeParameterDeclaration(); break; + case 363: { action. consumeParameterDeclaration(); break; } - + // // Rule 364: parameter_declaration ::= declaration_specifiers // - case 364: { action.builder. - consumeParameterDeclarationWithoutDeclarator(); break; + case 364: { action. consumeParameterDeclarationWithoutDeclarator(); break; } - + // // Rule 366: parameter_init_declarator ::= declarator = parameter_initializer // - case 366: { action.builder. - consumeDeclaratorWithInitializer(true); break; + case 366: { action. consumeDeclaratorWithInitializer(true); break; } - + // // Rule 368: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 368: { action.builder. - consumeDeclaratorWithInitializer(true); break; + case 368: { action. consumeDeclaratorWithInitializer(true); break; } - + // // Rule 369: parameter_init_declarator ::= = parameter_initializer // - case 369: { action.builder. - consumeDeclaratorWithInitializer(false); break; + case 369: { action. consumeDeclaratorWithInitializer(false); break; } - + // // Rule 370: parameter_initializer ::= assignment_expression // - case 370: { action.builder. - consumeInitializer(); break; + case 370: { action. consumeInitializer(); break; } - + // // Rule 371: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body // - case 371: { action.builder. - consumeFunctionDefinition(false); break; + case 371: { action. consumeFunctionDefinition(false); break; } - + // // Rule 372: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq // - case 372: { action.builder. - consumeFunctionDefinition(true); break; + case 372: { action. consumeFunctionDefinition(true); break; } - + // // Rule 375: initializer ::= ( expression_list ) // - case 375: { action.builder. - consumeInitializerConstructor(); break; + case 375: { action. consumeInitializerConstructor(); break; } - + // // Rule 376: initializer_clause ::= assignment_expression // - case 376: { action.builder. - consumeInitializer(); break; + case 376: { action. consumeInitializer(); break; } - + // // Rule 377: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list , } end_initializer_list // - case 377: { action.builder. - consumeInitializerList(); break; + case 377: { action. consumeInitializerList(); break; } - + // // Rule 378: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list } end_initializer_list // - case 378: { action.builder. - consumeInitializerList(); break; + case 378: { action. consumeInitializerList(); break; } - + // // Rule 379: initializer_clause ::= { <openscope-ast> } // - case 379: { action.builder. - consumeInitializerList(); break; + case 379: { action. consumeInitializerList(); break; } - + // // Rule 380: start_initializer_list ::= $Empty // - case 380: { action.builder. - initializerListStart(); break; + case 380: { action. initializerListStart(); break; } - + // // Rule 381: end_initializer_list ::= $Empty // - case 381: { action.builder. - initializerListEnd(); break; + case 381: { action. initializerListEnd(); break; } - + // // Rule 386: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } // - case 386: { action.builder. - consumeClassSpecifier(); break; + case 386: { action. consumeClassSpecifier(); break; } - + // // Rule 387: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt // - case 387: { action.builder. - consumeClassHead(false); break; + case 387: { action. consumeClassHead(false); break; } - + // // Rule 388: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt // - case 388: { action.builder. - consumeClassHead(false); break; + case 388: { action. consumeClassHead(false); break; } - + // // Rule 389: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt // - case 389: { action.builder. - consumeClassHead(true); break; + case 389: { action. consumeClassHead(true); break; } - + // // Rule 390: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt // - case 390: { action.builder. - consumeClassHead(true); break; + case 390: { action. consumeClassHead(true); break; } - + // // Rule 392: identifier_name_opt ::= $Empty // - case 392: { action.builder. - consumeEmpty(); break; + case 392: { action. consumeEmpty(); break; } - + // // Rule 396: visibility_label ::= access_specifier_keyword : // - case 396: { action.builder. - consumeVisibilityLabel(); break; + case 396: { action. consumeVisibilityLabel(); break; } - + // // Rule 397: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; // - case 397: { action.builder. - consumeDeclarationSimple(true); break; + case 397: { action. consumeDeclarationSimple(true); break; } - + // // Rule 398: member_declaration ::= declaration_specifiers_opt ; // - case 398: { action.builder. - consumeDeclarationSimple(false); break; + case 398: { action. consumeDeclarationSimple(false); break; } - + // // Rule 401: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 401: { action.builder. - consumeMemberDeclarationQualifiedId(); break; + case 401: { action. consumeMemberDeclarationQualifiedId(); break; } - + // // Rule 407: member_declaration ::= ERROR_TOKEN // - case 407: { action.builder. - consumeDeclarationProblem(); break; + case 407: { action. consumeDeclarationProblem(); break; } - + // // Rule 415: member_declarator ::= declarator constant_initializer // - case 415: { action.builder. - consumeMemberDeclaratorWithInitializer(); break; + case 415: { action. consumeMemberDeclaratorWithInitializer(); break; } - + // // Rule 416: member_declarator ::= bit_field_declarator : constant_expression // - case 416: { action.builder. - consumeBitField(true); break; + case 416: { action. consumeBitField(true); break; } - + // // Rule 417: member_declarator ::= : constant_expression // - case 417: { action.builder. - consumeBitField(false); break; + case 417: { action. consumeBitField(false); break; } - + // // Rule 418: bit_field_declarator ::= identifier_name // - case 418: { action.builder. - consumeDirectDeclaratorIdentifier(); break; + case 418: { action. consumeDirectDeclaratorIdentifier(); break; } - + // // Rule 419: constant_initializer ::= = constant_expression // - case 419: { action.builder. - consumeInitializer(); break; + case 419: { action. consumeInitializer(); break; } - + // // Rule 425: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 425: { action.builder. - consumeBaseSpecifier(false, false); break; + case 425: { action. consumeBaseSpecifier(false, false); break; } - + // // Rule 426: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 426: { action.builder. - consumeBaseSpecifier(true, true); break; + case 426: { action. consumeBaseSpecifier(true, true); break; } - + // // Rule 427: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 427: { action.builder. - consumeBaseSpecifier(true, true); break; + case 427: { action. consumeBaseSpecifier(true, true); break; } - + // // Rule 428: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 428: { action.builder. - consumeBaseSpecifier(true, false); break; + case 428: { action. consumeBaseSpecifier(true, false); break; } - + // // Rule 429: access_specifier_keyword ::= private // - case 429: { action.builder. - consumeAccessKeywordToken(); break; + case 429: { action. consumeToken(); break; } - + // // Rule 430: access_specifier_keyword ::= protected // - case 430: { action.builder. - consumeAccessKeywordToken(); break; + case 430: { action. consumeToken(); break; } - + // // Rule 431: access_specifier_keyword ::= public // - case 431: { action.builder. - consumeAccessKeywordToken(); break; + case 431: { action. consumeToken(); break; } - + // // Rule 433: access_specifier_keyword_opt ::= $Empty // - case 433: { action.builder. - consumeEmpty(); break; + case 433: { action. consumeEmpty(); break; } - + // // Rule 435: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > // - case 435: { action.builder. - consumeTemplateId(); break; + case 435: { action. consumeTemplateId(); break; } - + // // Rule 436: conversion_function_id ::= operator conversion_type_id // - case 436: { action.builder. - consumeConversionName(); break; + case 436: { action. consumeConversionName(); break; } - + // // Rule 437: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 437: { action.builder. - consumeTypeId(true); break; + case 437: { action. consumeTypeId(true); break; } - + // // Rule 438: conversion_type_id ::= type_specifier_seq // - case 438: { action.builder. - consumeTypeId(false); break; + case 438: { action. consumeTypeId(false); break; } - + // // Rule 439: conversion_declarator ::= <openscope-ast> ptr_operator_seq // - case 439: { action.builder. - consumeDeclaratorWithPointer(false); break; + case 439: { action. consumeDeclaratorWithPointer(false); break; } - + // // Rule 445: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 445: { action.builder. - consumeConstructorChainInitializer(); break; + case 445: { action. consumeConstructorChainInitializer(); break; } - + // // Rule 446: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 446: { action.builder. - consumeQualifiedId(false); break; + case 446: { action. consumeQualifiedId(false); break; } - + // // Rule 449: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > // - case 449: { action.builder. - consumeTemplateId(); break; + case 449: { action. consumeTemplateId(); break; } - + // // Rule 450: operator_id_name ::= operator overloadable_operator // - case 450: { action.builder. - consumeOperatorName(); break; + case 450: { action. consumeOperatorName(); break; } - + // // Rule 493: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration // - case 493: { action.builder. - consumeTemplateDeclaration(); break; + case 493: { action. consumeTemplateDeclaration(); break; } - + // // Rule 494: export_opt ::= export // - case 494: { action.builder. - consumePlaceHolder(); break; + case 494: { action. consumePlaceHolder(); break; } - + // // Rule 495: export_opt ::= $Empty // - case 495: { action.builder. - consumeEmpty(); break; + case 495: { action. consumeEmpty(); break; } - + // // Rule 499: template_parameter ::= parameter_declaration // - case 499: { action.builder. - consumeTemplateParamterDeclaration(); break; + case 499: { action. consumeTemplateParamterDeclaration(); break; } - + // // Rule 500: type_parameter ::= class identifier_name_opt // - case 500: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; + case 500: { action. consumeSimpleTypeTemplateParameter(false); break; } - + // // Rule 501: type_parameter ::= class identifier_name_opt = type_id // - case 501: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; + case 501: { action. consumeSimpleTypeTemplateParameter(true); break; } - + // // Rule 502: type_parameter ::= typename identifier_name_opt // - case 502: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; + case 502: { action. consumeSimpleTypeTemplateParameter(false); break; } - + // // Rule 503: type_parameter ::= typename identifier_name_opt = type_id // - case 503: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; + case 503: { action. consumeSimpleTypeTemplateParameter(true); break; } - + // // Rule 504: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt // - case 504: { action.builder. - consumeTemplatedTypeTemplateParameter(false); break; + case 504: { action. consumeTemplatedTypeTemplateParameter(false); break; } - + // // Rule 505: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression // - case 505: { action.builder. - consumeTemplatedTypeTemplateParameter(true); break; + case 505: { action. consumeTemplatedTypeTemplateParameter(true); break; } - + // // Rule 506: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > // - case 506: { action.builder. - consumeTemplateId(); break; + case 506: { action. consumeTemplateId(); break; } - + // // Rule 511: template_argument ::= assignment_expression // - case 511: { action.builder. - consumeTemplateArgumentExpression(); break; + case 511: { action. consumeTemplateArgumentExpression(); break; } - + // // Rule 512: template_argument ::= type_id // - case 512: { action.builder. - consumeTemplateArgumentTypeId(); break; + case 512: { action. consumeTemplateArgumentTypeId(); break; } - + // // Rule 513: explicit_instantiation ::= template declaration // - case 513: { action.builder. - consumeTemplateExplicitInstantiation(); break; + case 513: { action. consumeTemplateExplicitInstantiation(); break; } - + // // Rule 514: explicit_specialization ::= template < > declaration // - case 514: { action.builder. - consumeTemplateExplicitSpecialization(); break; + case 514: { action. consumeTemplateExplicitSpecialization(); break; } - + // // Rule 515: try_block ::= try compound_statement <openscope-ast> handler_seq // - case 515: { action.builder. - consumeStatementTryBlock(); break; + case 515: { action. consumeStatementTryBlock(); break; } - + // // Rule 518: handler ::= catch ( exception_declaration ) compound_statement // - case 518: { action.builder. - consumeStatementCatchHandler(false); break; + case 518: { action. consumeStatementCatchHandler(false); break; } - + // // Rule 519: handler ::= catch ( ... ) compound_statement // - case 519: { action.builder. - consumeStatementCatchHandler(true); break; + case 519: { action. consumeStatementCatchHandler(true); break; } - + // // Rule 520: exception_declaration ::= type_specifier_seq <openscope-ast> declarator // - case 520: { action.builder. - consumeDeclarationSimple(true); break; + case 520: { action. consumeDeclarationSimple(true); break; } - + // // Rule 521: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator // - case 521: { action.builder. - consumeDeclarationSimple(true); break; + case 521: { action. consumeDeclarationSimple(true); break; } - + // // Rule 522: exception_declaration ::= type_specifier_seq // - case 522: { action.builder. - consumeDeclarationSimple(false); break; + case 522: { action. consumeDeclarationSimple(false); break; } - + // // Rule 524: exception_specification ::= throw ( ) // - case 524: { action.builder. - consumePlaceHolder(); break; + case 524: { action. consumePlaceHolder(); break; } - + // // Rule 530: expression_parser_start ::= ERROR_TOKEN // - case 530: { action.builder. - consumeExpressionProblem(); break; + case 530: { action. consumeExpressionProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java index 4cf6de3321a..a0fd98e4ed6 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java @@ -3,7 +3,7 @@ * 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 -* http://www.eclipse.org/legal/epl_v10.html +* http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java index edd61e663d4..f90c399a6d3 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java @@ -3,7 +3,7 @@ * 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 -* http://www.eclipse.org/legal/epl_v10.html +* http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation 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 ac1680c5f90..a4ec23c8b5e 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 @@ -3,7 +3,7 @@ * 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 -* http://www.eclipse.org/legal/epl_v10.html +* http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation @@ -16,11 +16,7 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; import lpg.lpgjavaruntime.*; import java.util.*; - import org.eclipse.cdt.core.dom.ast.*; -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.IParser; import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; @@ -28,7 +24,11 @@ import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; -public class CPPNoCastExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser +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; + +public class CPPNoCastExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser { private static ParseTable prs = new CPPNoCastExpressionParserprs(); private FixedBacktrackingParser btParser; @@ -165,28 +165,19 @@ public class CPPNoCastExpressionParser extends PrsStream implements RuleAction , } -private CPPParserAction action; +private CPPBuildASTParserAction action; -// uncomment to use with backtracking parser public CPPNoCastExpressionParser() { // constructor } private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { - // binding resolution actions need access to IASTName nodes, temporary - action = new CPPParserAction (); - //action.resolver = new C99TypedefTrackerParserAction (this); - action.builder = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu); - //action.builder.setTokenMap(CPPParsersym.orderedTerminalSymbols); - - action.builder.setParserOptions(options); - - // comment this line to use with backtracking parser - //setParserAction(action); + action = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu); + action.setParserOptions(options); } public void addToken(IToken token) { - token.setKind(mapKind(token.getKind())); + token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called? super.addToken(token); } @@ -196,37 +187,35 @@ public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> opt setStreamLength(getSize()); initActions(tu, options); - final int errorRepairCount = -1; // _1 means full error handling + final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse super.resetTokenStream(); // allow tokens to be garbage collected // the completion node may be null - IASTCompletionNode compNode = action.builder.getASTCompletionNode(); + IASTCompletionNode compNode = action.getASTCompletionNode(); - //action = null; // causes getSecondaryParseResult() to fail - - // Comment this line to use with backtracking parser + //action = null; //parserAction = null; - return compNode; } - // uncomment this method to use with backtracking parser public List getRuleTokens() { return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1)); } + public IASTNode getSecondaryParseResult() { - return action.builder.getSecondaryParseResult(); + return action.getSecondaryParseResult(); } public String[] getOrderedTerminalSymbols() { return CPPNoCastExpressionParsersym.orderedTerminalSymbols; } +@SuppressWarnings("nls") public String getName() { - return "CPPNoCastExpressionParser"; //$NON-NLS-1$ + return "CPPNoCastExpressionParser"; } @@ -257,2017 +246,1729 @@ public CPPNoCastExpressionParser(String[] mapFrom) { // constructor // // Rule 1: <openscope-ast> ::= $Empty // - case 1: { action.builder. - openASTScope(); break; - } + case 1: { action. openASTScope(); break; + } // // Rule 2: <empty> ::= $Empty // - case 2: { action.builder. - consumeEmpty(); break; - } - + case 2: { action. consumeEmpty(); break; + } + // // Rule 13: translation_unit ::= declaration_seq_opt // - case 13: { action.builder. - consumeTranslationUnit(); break; + case 13: { action. consumeTranslationUnit(); break; } - + // // Rule 16: literal ::= integer // - case 16: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; + case 16: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } - + // // Rule 17: literal ::= 0 // - case 17: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; + case 17: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } - + // // Rule 18: literal ::= floating // - case 18: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; + case 18: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; } - + // // Rule 19: literal ::= charconst // - case 19: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; + case 19: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } - + // // Rule 20: literal ::= stringlit // - case 20: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; + case 20: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } - + // // Rule 21: literal ::= true // - case 21: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; + case 21: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } - + // // Rule 22: literal ::= false // - case 22: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; + case 22: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } - + // // Rule 23: literal ::= this // - case 23: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; + case 23: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } - + // // Rule 25: primary_expression ::= ( expression ) // - case 25: { action.builder. - consumeExpressionBracketed(); break; + case 25: { action. consumeExpressionBracketed(); break; } - + // // Rule 27: id_expression ::= qualified_or_unqualified_name // - case 27: { action.builder. - consumeExpressionName(); break; + case 27: { action. consumeExpressionName(); break; } - + // // Rule 34: unqualified_id_name ::= ~ identifier_token // - case 34: { action.builder. - consumeDestructorName(); break; + case 34: { action. consumeDestructorName(); break; } - + // // Rule 35: unqualified_id_name ::= ~ template_id_name // - case 35: { action.builder. - consumeDestructorNameTemplateId(); break; + case 35: { action. consumeDestructorNameTemplateId(); break; } - + // // Rule 36: identifier_name ::= identifier_token // - case 36: { action.builder. - consumeIdentifierName(); break; + case 36: { action. consumeIdentifierName(); break; } - + // // Rule 37: template_opt ::= template // - case 37: { action.builder. - consumePlaceHolder(); break; + case 37: { action. consumePlaceHolder(); break; } - + // // Rule 38: template_opt ::= $Empty // - case 38: { action.builder. - consumeEmpty(); break; + case 38: { action. consumeEmpty(); break; } - + // // Rule 39: dcolon_opt ::= :: // - case 39: { action.builder. - consumeToken(); break; + case 39: { action. consumeToken(); break; } - + // // Rule 40: dcolon_opt ::= $Empty // - case 40: { action.builder. - consumeEmpty(); break; + case 40: { action. consumeEmpty(); break; } - + // // Rule 41: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name // - case 41: { action.builder. - consumeQualifiedId(true); break; + case 41: { action. consumeQualifiedId(true); break; } - + // // Rule 42: qualified_id_name ::= :: unqualified_id_name // - case 42: { action.builder. - consumeGlobalQualifiedId(); break; + case 42: { action. consumeGlobalQualifiedId(); break; } - + // // Rule 43: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // - case 43: { action.builder. - consumeNestedNameSpecifier(true); break; + case 43: { action. consumeNestedNameSpecifier(true); break; } - + // // Rule 44: nested_name_specifier ::= class_or_namespace_name :: // - case 44: { action.builder. - consumeNestedNameSpecifier(false); break; + case 44: { action. consumeNestedNameSpecifier(false); break; } - + // // Rule 45: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // - case 45: { action.builder. - consumeNestedNameSpecifier(true); break; + case 45: { action. consumeNestedNameSpecifier(true); break; } - + // // Rule 46: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // - case 46: { action.builder. - consumeNestedNameSpecifier(false); break; + case 46: { action. consumeNestedNameSpecifier(false); break; } - + // // Rule 47: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name // - case 47: { action.builder. - consumeNameWithTemplateKeyword(); break; + case 47: { action. consumeNameWithTemplateKeyword(); break; } - + // // Rule 49: nested_name_specifier_opt ::= $Empty // - case 49: { action.builder. - consumeNestedNameSpecifierEmpty(); break; + case 49: { action. consumeNestedNameSpecifierEmpty(); break; } - + // // Rule 52: postfix_expression ::= postfix_expression [ expression ] // - case 52: { action.builder. - consumeExpressionArraySubscript(); break; + case 52: { action. consumeExpressionArraySubscript(); break; } - + // // Rule 53: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 53: { action.builder. - consumeExpressionFunctionCall(); break; + case 53: { action. consumeExpressionFunctionCall(); break; } - + // // Rule 54: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 54: { action.builder. - consumeExpressionSimpleTypeConstructor(); break; + case 54: { action. consumeExpressionSimpleTypeConstructor(); break; } - + // // Rule 55: postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt ) // - case 55: { action.builder. - consumeExpressionTypeName(); break; + case 55: { action. consumeExpressionTypeName(); break; } - + // // Rule 56: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) // - case 56: { action.builder. - consumeExpressionTypeName(); break; + case 56: { action. consumeExpressionTypeName(); break; } - + // // Rule 57: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // - case 57: { action.builder. - consumeExpressionFieldReference(false, false); break; + case 57: { action. consumeExpressionFieldReference(false, false); break; } - + // // Rule 58: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 58: { action.builder. - consumeExpressionFieldReference(true, false); break; + case 58: { action. consumeExpressionFieldReference(true, false); break; } - + // // Rule 59: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 59: { action.builder. - consumeExpressionFieldReference(false, true); break; + case 59: { action. consumeExpressionFieldReference(false, true); break; } - + // // Rule 60: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 60: { action.builder. - consumeExpressionFieldReference(true, true); break; + case 60: { action. consumeExpressionFieldReference(true, true); break; } - + // // Rule 61: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 61: { action.builder. - consumeExpressionFieldReference(false, false); break; + case 61: { action. consumeExpressionFieldReference(false, false); break; } - + // // Rule 62: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 62: { action.builder. - consumeExpressionFieldReference(true, false); break; + case 62: { action. consumeExpressionFieldReference(true, false); break; } - + // // Rule 63: postfix_expression ::= postfix_expression ++ // - case 63: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; + case 63: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } - + // // Rule 64: postfix_expression ::= postfix_expression -- // - case 64: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; + case 64: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } - + // // Rule 65: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 65: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; + case 65: { action. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } - + // // Rule 66: postfix_expression ::= static_cast < type_id > ( expression ) // - case 66: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; + case 66: { action. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } - + // // Rule 67: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 67: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; + case 67: { action. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } - + // // Rule 68: postfix_expression ::= const_cast < type_id > ( expression ) // - case 68: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; + case 68: { action. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } - + // // Rule 69: postfix_expression ::= typeid ( expression ) // - case 69: { action.builder. - consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; + case 69: { action. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } - + // // Rule 70: postfix_expression ::= typeid ( type_id ) // - case 70: { action.builder. - consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; + case 70: { action. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } - + // // Rule 71: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name // - case 71: { action.builder. - consumePsudoDestructorName(true); break; + case 71: { action. consumePsudoDestructorName(true); break; } - + // // Rule 72: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name // - case 72: { action.builder. - consumePsudoDestructorName(true); break; + case 72: { action. consumePsudoDestructorName(true); break; } - + // // Rule 73: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name // - case 73: { action.builder. - consumePsudoDestructorName(false); break; + case 73: { action. consumePsudoDestructorName(false); break; } - + // // Rule 74: destructor_type_name ::= ~ identifier_token // - case 74: { action.builder. - consumeDestructorName(); break; + case 74: { action. consumeDestructorName(); break; } - + // // Rule 75: destructor_type_name ::= ~ template_id_name // - case 75: { action.builder. - consumeDestructorNameTemplateId(); break; + case 75: { action. consumeDestructorNameTemplateId(); break; } - + // // Rule 79: unary_expression ::= ++ cast_expression // - case 79: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; + case 79: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } - + // // Rule 80: unary_expression ::= -- cast_expression // - case 80: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; + case 80: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } - + // // Rule 81: unary_expression ::= & cast_expression // - case 81: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; + case 81: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } - + // // Rule 82: unary_expression ::= * cast_expression // - case 82: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; + case 82: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } - + // // Rule 83: unary_expression ::= + cast_expression // - case 83: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; + case 83: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } - + // // Rule 84: unary_expression ::= - cast_expression // - case 84: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; + case 84: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } - + // // Rule 85: unary_expression ::= ~ cast_expression // - case 85: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; + case 85: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } - + // // Rule 86: unary_expression ::= ! cast_expression // - case 86: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; + case 86: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } - + // // Rule 87: unary_expression ::= sizeof unary_expression // - case 87: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; + case 87: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } - + // // Rule 88: unary_expression ::= sizeof ( type_id ) // - case 88: { action.builder. - consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; + case 88: { action. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } - + // // Rule 89: new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt // - case 89: { action.builder. - consumeExpressionNew(true); break; + case 89: { action. consumeExpressionNew(true); break; } - + // // Rule 90: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt // - case 90: { action.builder. - consumeExpressionNew(false); break; + case 90: { action. consumeExpressionNew(false); break; } - + // // Rule 92: new_placement_opt ::= $Empty // - case 92: { action.builder. - consumeEmpty(); break; + case 92: { action. consumeEmpty(); break; } - + // // Rule 93: new_type_id ::= type_specifier_seq // - case 93: { action.builder. - consumeTypeId(false); break; + case 93: { action. consumeTypeId(false); break; } - + // // Rule 94: new_type_id ::= type_specifier_seq new_declarator // - case 94: { action.builder. - consumeTypeId(true); break; + case 94: { action. consumeTypeId(true); break; } - + // // Rule 95: new_declarator ::= <openscope-ast> new_pointer_operators // - case 95: { action.builder. - consumeNewDeclarator(); break; + case 95: { action. consumeNewDeclarator(); break; } - + // // Rule 102: new_initializer ::= ( expression_list_opt ) // - case 102: { action.builder. - consumeNewInitializer(); break; + case 102: { action. consumeNewInitializer(); break; } - + // // Rule 104: new_initializer_opt ::= $Empty // - case 104: { action.builder. - consumeEmpty(); break; + case 104: { action. consumeEmpty(); break; } - + // // Rule 105: delete_expression ::= dcolon_opt delete cast_expression // - case 105: { action.builder. - consumeExpressionDelete(false); break; + case 105: { action. consumeExpressionDelete(false); break; } - + // // Rule 106: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 106: { action.builder. - consumeExpressionDelete(true); break; + case 106: { action. consumeExpressionDelete(true); break; } - + // // Rule 109: pm_expression ::= pm_expression .* cast_expression // - case 109: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; + case 109: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } - + // // Rule 110: pm_expression ::= pm_expression ->* cast_expression // - case 110: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; + case 110: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } - + // // Rule 112: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 112: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; + case 112: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } - + // // Rule 113: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 113: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; + case 113: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } - + // // Rule 114: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 114: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; + case 114: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } - + // // Rule 116: additive_expression ::= additive_expression + multiplicative_expression // - case 116: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; + case 116: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } - + // // Rule 117: additive_expression ::= additive_expression - multiplicative_expression // - case 117: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; + case 117: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } - + // // Rule 119: shift_expression ::= shift_expression << additive_expression // - case 119: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; + case 119: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } - + // // Rule 120: shift_expression ::= shift_expression >> additive_expression // - case 120: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; + case 120: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } - + // // Rule 122: relational_expression ::= relational_expression < shift_expression // - case 122: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; + case 122: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } - + // // Rule 123: relational_expression ::= relational_expression > shift_expression // - case 123: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; + case 123: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } - + // // Rule 124: relational_expression ::= relational_expression <= shift_expression // - case 124: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; + case 124: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } - + // // Rule 125: relational_expression ::= relational_expression >= shift_expression // - case 125: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; + case 125: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } - + // // Rule 127: equality_expression ::= equality_expression == relational_expression // - case 127: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; + case 127: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } - + // // Rule 128: equality_expression ::= equality_expression != relational_expression // - case 128: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; + case 128: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } - + // // Rule 130: and_expression ::= and_expression & equality_expression // - case 130: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; + case 130: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } - + // // Rule 132: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 132: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; + case 132: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } - + // // Rule 134: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 134: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; + case 134: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } - + // // Rule 136: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 136: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; + case 136: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } - + // // Rule 138: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 138: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; + case 138: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } - + // // Rule 140: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 140: { action.builder. - consumeExpressionConditional(); break; + case 140: { action. consumeExpressionConditional(); break; } - + // // Rule 141: throw_expression ::= throw // - case 141: { action.builder. - consumeExpressionThrow(false); break; + case 141: { action. consumeExpressionThrow(false); break; } - + // // Rule 142: throw_expression ::= throw assignment_expression // - case 142: { action.builder. - consumeExpressionThrow(true); break; + case 142: { action. consumeExpressionThrow(true); break; } - + // // Rule 145: assignment_expression ::= logical_or_expression = assignment_expression // - case 145: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; + case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } - + // // Rule 146: assignment_expression ::= logical_or_expression *= assignment_expression // - case 146: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; + case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } - + // // Rule 147: assignment_expression ::= logical_or_expression /= assignment_expression // - case 147: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; + case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } - + // // Rule 148: assignment_expression ::= logical_or_expression %= assignment_expression // - case 148: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; + case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } - + // // Rule 149: assignment_expression ::= logical_or_expression += assignment_expression // - case 149: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; + case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } - + // // Rule 150: assignment_expression ::= logical_or_expression -= assignment_expression // - case 150: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; + case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } - + // // Rule 151: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 151: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; + case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } - + // // Rule 152: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 152: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; + case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } - + // // Rule 153: assignment_expression ::= logical_or_expression &= assignment_expression // - case 153: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; + case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } - + // // Rule 154: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 154: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; + case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } - + // // Rule 155: assignment_expression ::= logical_or_expression |= assignment_expression // - case 155: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; + case 155: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } - + // // Rule 157: expression_list ::= <openscope-ast> expression_list_actual // - case 157: { action.builder. - consumeExpressionList(); break; + case 157: { action. consumeExpressionList(); break; } - + // // Rule 161: expression_list_opt ::= $Empty // - case 161: { action.builder. - consumeEmpty(); break; + case 161: { action. consumeEmpty(); break; } - + // // Rule 163: expression_opt ::= $Empty // - case 163: { action.builder. - consumeEmpty(); break; + case 163: { action. consumeEmpty(); break; } - + // // Rule 166: constant_expression_opt ::= $Empty // - case 166: { action.builder. - consumeEmpty(); break; + case 166: { action. consumeEmpty(); break; } - + // // Rule 175: statement ::= ERROR_TOKEN // - case 175: { action.builder. - consumeStatementProblem(); break; + case 175: { action. consumeStatementProblem(); break; } - + // // Rule 176: labeled_statement ::= identifier : statement // - case 176: { action.builder. - consumeStatementLabeled(); break; + case 176: { action. consumeStatementLabeled(); break; } - + // // Rule 177: labeled_statement ::= case constant_expression : statement // - case 177: { action.builder. - consumeStatementCase(); break; + case 177: { action. consumeStatementCase(); break; } - + // // Rule 178: labeled_statement ::= default : statement // - case 178: { action.builder. - consumeStatementDefault(); break; + case 178: { action. consumeStatementDefault(); break; } - + // // Rule 179: expression_statement ::= expression ; // - case 179: { action.builder. - consumeStatementExpression(); break; + case 179: { action. consumeStatementExpression(); break; } - + // // Rule 180: expression_statement ::= ; // - case 180: { action.builder. - consumeStatementNull(); break; + case 180: { action. consumeStatementNull(); break; } - + // // Rule 181: compound_statement ::= { <openscope-ast> statement_seq } // - case 181: { action.builder. - consumeStatementCompoundStatement(true); break; + case 181: { action. consumeStatementCompoundStatement(true); break; } - + // // Rule 182: compound_statement ::= { } // - case 182: { action.builder. - consumeStatementCompoundStatement(false); break; + case 182: { action. consumeStatementCompoundStatement(false); break; } - + // // Rule 185: selection_statement ::= if ( condition ) statement // - case 185: { action.builder. - consumeStatementIf(false); break; + case 185: { action. consumeStatementIf(false); break; } - + // // Rule 186: selection_statement ::= if ( condition ) statement else statement // - case 186: { action.builder. - consumeStatementIf(true); break; + case 186: { action. consumeStatementIf(true); break; } - + // // Rule 187: selection_statement ::= switch ( condition ) statement // - case 187: { action.builder. - consumeStatementSwitch(); break; + case 187: { action. consumeStatementSwitch(); break; } - + // // Rule 189: condition ::= type_specifier_seq declarator = assignment_expression // - case 189: { action.builder. - consumeConditionDeclaration(); break; + case 189: { action. consumeConditionDeclaration(); break; } - + // // Rule 191: condition_opt ::= $Empty // - case 191: { action.builder. - consumeEmpty(); break; + case 191: { action. consumeEmpty(); break; } - + // // Rule 192: iteration_statement ::= while ( condition ) statement // - case 192: { action.builder. - consumeStatementWhileLoop(); break; + case 192: { action. consumeStatementWhileLoop(); break; } - + // // Rule 193: iteration_statement ::= do statement while ( expression ) ; // - case 193: { action.builder. - consumeStatementDoLoop(); break; + case 193: { action. consumeStatementDoLoop(); break; } - + // // Rule 194: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 194: { action.builder. - consumeStatementForLoop(); break; + case 194: { action. consumeStatementForLoop(); break; } - + // // Rule 196: for_init_statement ::= simple_declaration_with_declspec // - case 196: { action.builder. - consumeStatementDeclaration(); break; + case 196: { action. consumeStatementDeclaration(); break; } - + // // Rule 197: jump_statement ::= break ; // - case 197: { action.builder. - consumeStatementBreak(); break; + case 197: { action. consumeStatementBreak(); break; } - + // // Rule 198: jump_statement ::= continue ; // - case 198: { action.builder. - consumeStatementContinue(); break; + case 198: { action. consumeStatementContinue(); break; } - + // // Rule 199: jump_statement ::= return expression ; // - case 199: { action.builder. - consumeStatementReturn(true); break; + case 199: { action. consumeStatementReturn(true); break; } - + // // Rule 200: jump_statement ::= return ; // - case 200: { action.builder. - consumeStatementReturn(false); break; + case 200: { action. consumeStatementReturn(false); break; } - + // // Rule 201: jump_statement ::= goto identifier_token ; // - case 201: { action.builder. - consumeStatementGoto(); break; + case 201: { action. consumeStatementGoto(); break; } - + // // Rule 202: declaration_statement ::= block_declaration // - case 202: { action.builder. - consumeStatementDeclarationWithDisambiguation(); break; + case 202: { action. consumeStatementDeclarationWithDisambiguation(); break; } - + // // Rule 203: declaration_statement ::= function_definition // - case 203: { action.builder. - consumeStatementDeclaration(); break; + case 203: { action. consumeStatementDeclaration(); break; } - + // // Rule 211: declaration ::= ERROR_TOKEN // - case 211: { action.builder. - consumeDeclarationProblem(); break; + case 211: { action. consumeDeclarationProblem(); break; } - + // // Rule 221: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ; // - case 221: { action.builder. - consumeDeclarationSimple(true); break; + case 221: { action. consumeDeclarationSimple(true); break; } - + // // Rule 222: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ; // - case 222: { action.builder. - consumeDeclarationSimple(true); break; + case 222: { action. consumeDeclarationSimple(true); break; } - + // // Rule 223: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers // - case 223: { action.builder. - consumeDeclarationSpecifiersSimple(); break; + case 223: { action. consumeDeclarationSpecifiersSimple(); break; } - + // // Rule 224: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers // - case 224: { action.builder. - consumeDeclarationSpecifiersComposite(); break; + case 224: { action. consumeDeclarationSpecifiersComposite(); break; } - + // // Rule 225: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers // - case 225: { action.builder. - consumeDeclarationSpecifiersComposite(); break; + case 225: { action. consumeDeclarationSpecifiersComposite(); break; } - + // // Rule 226: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers // - case 226: { action.builder. - consumeDeclarationSpecifiersComposite(); break; + case 226: { action. consumeDeclarationSpecifiersComposite(); break; } - + // // Rule 227: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers // - case 227: { action.builder. - consumeDeclarationSpecifiersTypeName(); break; + case 227: { action. consumeDeclarationSpecifiersTypeName(); break; } - + // // Rule 229: declaration_specifiers_opt ::= $Empty // - case 229: { action.builder. - consumeEmpty(); break; + case 229: { action. consumeEmpty(); break; } - + // // Rule 233: no_type_declaration_specifier ::= friend // - case 233: { action.builder. - consumeDeclSpecToken(); break; + case 233: { action. consumeDeclSpecToken(); break; } - + // // Rule 234: no_type_declaration_specifier ::= typedef // - case 234: { action.builder. - consumeDeclSpecToken(); break; + case 234: { action. consumeDeclSpecToken(); break; } - + // // Rule 254: storage_class_specifier ::= auto // - case 254: { action.builder. - consumeDeclSpecToken(); break; + case 254: { action. consumeDeclSpecToken(); break; } - + // // Rule 255: storage_class_specifier ::= register // - case 255: { action.builder. - consumeDeclSpecToken(); break; + case 255: { action. consumeDeclSpecToken(); break; } - + // // Rule 256: storage_class_specifier ::= static // - case 256: { action.builder. - consumeDeclSpecToken(); break; + case 256: { action. consumeDeclSpecToken(); break; } - + // // Rule 257: storage_class_specifier ::= extern // - case 257: { action.builder. - consumeDeclSpecToken(); break; + case 257: { action. consumeDeclSpecToken(); break; } - + // // Rule 258: storage_class_specifier ::= mutable // - case 258: { action.builder. - consumeDeclSpecToken(); break; + case 258: { action. consumeDeclSpecToken(); break; } - + // // Rule 259: function_specifier ::= inline // - case 259: { action.builder. - consumeDeclSpecToken(); break; + case 259: { action. consumeDeclSpecToken(); break; } - + // // Rule 260: function_specifier ::= virtual // - case 260: { action.builder. - consumeDeclSpecToken(); break; + case 260: { action. consumeDeclSpecToken(); break; } - + // // Rule 261: function_specifier ::= explicit // - case 261: { action.builder. - consumeDeclSpecToken(); break; + case 261: { action. consumeDeclSpecToken(); break; } - + // // Rule 262: simple_type_specifier ::= char // - case 262: { action.builder. - consumeDeclSpecToken(); break; + case 262: { action. consumeDeclSpecToken(); break; } - + // // Rule 263: simple_type_specifier ::= wchar_t // - case 263: { action.builder. - consumeDeclSpecToken(); break; + case 263: { action. consumeDeclSpecToken(); break; } - + // // Rule 264: simple_type_specifier ::= bool // - case 264: { action.builder. - consumeDeclSpecToken(); break; + case 264: { action. consumeDeclSpecToken(); break; } - + // // Rule 265: simple_type_specifier ::= short // - case 265: { action.builder. - consumeDeclSpecToken(); break; + case 265: { action. consumeDeclSpecToken(); break; } - + // // Rule 266: simple_type_specifier ::= int // - case 266: { action.builder. - consumeDeclSpecToken(); break; + case 266: { action. consumeDeclSpecToken(); break; } - + // // Rule 267: simple_type_specifier ::= long // - case 267: { action.builder. - consumeDeclSpecToken(); break; + case 267: { action. consumeDeclSpecToken(); break; } - + // // Rule 268: simple_type_specifier ::= signed // - case 268: { action.builder. - consumeDeclSpecToken(); break; + case 268: { action. consumeDeclSpecToken(); break; } - + // // Rule 269: simple_type_specifier ::= unsigned // - case 269: { action.builder. - consumeDeclSpecToken(); break; + case 269: { action. consumeDeclSpecToken(); break; } - + // // Rule 270: simple_type_specifier ::= float // - case 270: { action.builder. - consumeDeclSpecToken(); break; + case 270: { action. consumeDeclSpecToken(); break; } - + // // Rule 271: simple_type_specifier ::= double // - case 271: { action.builder. - consumeDeclSpecToken(); break; + case 271: { action. consumeDeclSpecToken(); break; } - + // // Rule 272: simple_type_specifier ::= void // - case 272: { action.builder. - consumeDeclSpecToken(); break; + case 272: { action. consumeDeclSpecToken(); break; } - + // // Rule 275: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 275: { action.builder. - consumeQualifiedId(false); break; + case 275: { action. consumeQualifiedId(false); break; } - + // // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 276: { action.builder. - consumeQualifiedId(false); break; + case 276: { action. consumeQualifiedId(false); break; } - + // // Rule 277: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 277: { action.builder. - consumeQualifiedId(false); break; + case 277: { action. consumeQualifiedId(false); break; } - + // // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 278: { action.builder. - consumeQualifiedId(true); break; + case 278: { action. consumeQualifiedId(true); break; } - + // // Rule 280: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 280: { action.builder. - consumeTypeSpecifierElaborated(false); break; + case 280: { action. consumeTypeSpecifierElaborated(false); break; } - + // // Rule 281: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 281: { action.builder. - consumeTypeSpecifierElaborated(true); break; + case 281: { action. consumeTypeSpecifierElaborated(true); break; } - + // // Rule 282: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 282: { action.builder. - consumeTypeSpecifierElaborated(false); break; + case 282: { action. consumeTypeSpecifierElaborated(false); break; } - + // // Rule 283: enum_specifier ::= enum { <openscope-ast> enumerator_list_opt } // - case 283: { action.builder. - consumeTypeSpecifierEnumeration(false); break; + case 283: { action. consumeTypeSpecifierEnumeration(false); break; } - + // // Rule 284: enum_specifier ::= enum identifier_token { <openscope-ast> enumerator_list_opt } // - case 284: { action.builder. - consumeTypeSpecifierEnumeration(true); break; + case 284: { action. consumeTypeSpecifierEnumeration(true); break; } - + // // Rule 289: enumerator_definition ::= identifier_token // - case 289: { action.builder. - consumeEnumerator(false); break; + case 289: { action. consumeEnumerator(false); break; } - + // // Rule 290: enumerator_definition ::= identifier_token = constant_expression // - case 290: { action.builder. - consumeEnumerator(true); break; + case 290: { action. consumeEnumerator(true); break; } - + // // Rule 294: named_namespace_definition ::= namespace namespace_name { <openscope-ast> declaration_seq_opt } // - case 294: { action.builder. - consumeNamespaceDefinition(true); break; + case 294: { action. consumeNamespaceDefinition(true); break; } - + // // Rule 295: unnamed_namespace_definition ::= namespace { <openscope-ast> declaration_seq_opt } // - case 295: { action.builder. - consumeNamespaceDefinition(false); break; + case 295: { action. consumeNamespaceDefinition(false); break; } - + // // Rule 296: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 296: { action.builder. - consumeNamespaceAliasDefinition(); break; + case 296: { action. consumeNamespaceAliasDefinition(); break; } - + // // Rule 297: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 297: { action.builder. - consumeUsingDeclaration(); break; + case 297: { action. consumeUsingDeclaration(); break; } - + // // Rule 298: typename_opt ::= typename // - case 298: { action.builder. - consumePlaceHolder(); break; + case 298: { action. consumePlaceHolder(); break; } - + // // Rule 299: typename_opt ::= $Empty // - case 299: { action.builder. - consumeEmpty(); break; + case 299: { action. consumeEmpty(); break; } - + // // Rule 300: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 300: { action.builder. - consumeUsingDirective(); break; + case 300: { action. consumeUsingDirective(); break; } - + // // Rule 301: asm_definition ::= asm ( stringlit ) ; // - case 301: { action.builder. - consumeDeclarationASM(); break; + case 301: { action. consumeDeclarationASM(); break; } - + // // Rule 302: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt } // - case 302: { action.builder. - consumeLinkageSpecification(); break; + case 302: { action. consumeLinkageSpecification(); break; } - + // // Rule 303: linkage_specification ::= extern stringlit <openscope-ast> declaration // - case 303: { action.builder. - consumeLinkageSpecification(); break; + case 303: { action. consumeLinkageSpecification(); break; } - + // // Rule 308: init_declarator_complete ::= init_declarator // - case 308: { action.builder. - consumeInitDeclaratorComplete(); break; + case 308: { action. consumeInitDeclaratorComplete(); break; } - + // // Rule 310: init_declarator ::= declarator initializer // - case 310: { action.builder. - consumeDeclaratorWithInitializer(true); break; + case 310: { action. consumeDeclaratorWithInitializer(true); break; } - + // // Rule 312: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator // - case 312: { action.builder. - consumeDeclaratorWithPointer(true); break; + case 312: { action. consumeDeclaratorWithPointer(true); break; } - + // // Rule 314: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator // - case 314: { action.builder. - consumeDeclaratorWithPointer(true); break; + case 314: { action. consumeDeclaratorWithPointer(true); break; } - + // // Rule 318: basic_direct_declarator ::= declarator_id_name // - case 318: { action.builder. - consumeDirectDeclaratorIdentifier(); break; + case 318: { action. consumeDirectDeclaratorIdentifier(); break; } - + // // Rule 319: basic_direct_declarator ::= ( declarator ) // - case 319: { action.builder. - consumeDirectDeclaratorBracketed(); break; + case 319: { action. consumeDirectDeclaratorBracketed(); break; } - + // // Rule 320: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt // - case 320: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(true); break; + case 320: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } - + // // Rule 321: array_direct_declarator ::= array_direct_declarator array_modifier // - case 321: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 321: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 322: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 322: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 322: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 323: array_modifier ::= [ constant_expression ] // - case 323: { action.builder. - consumeDirectDeclaratorArrayModifier(true); break; + case 323: { action. consumeDirectDeclaratorArrayModifier(true); break; } - + // // Rule 324: array_modifier ::= [ ] // - case 324: { action.builder. - consumeDirectDeclaratorArrayModifier(false); break; + case 324: { action. consumeDirectDeclaratorArrayModifier(false); break; } - + // // Rule 325: ptr_operator ::= * <openscope-ast> cv_qualifier_seq_opt // - case 325: { action.builder. - consumePointer(); break; + case 325: { action. consumePointer(); break; } - + // // Rule 326: ptr_operator ::= & // - case 326: { action.builder. - consumeReferenceOperator(); break; + case 326: { action. consumeReferenceOperator(); break; } - + // // Rule 327: ptr_operator ::= dcolon_opt nested_name_specifier * <openscope-ast> cv_qualifier_seq_opt // - case 327: { action.builder. - consumePointerToMember(); break; + case 327: { action. consumePointerToMember(); break; } - + // // Rule 333: cv_qualifier ::= const // - case 333: { action.builder. - consumeDeclSpecToken(); break; + case 333: { action. consumeDeclSpecToken(); break; } - + // // Rule 334: cv_qualifier ::= volatile // - case 334: { action.builder. - consumeDeclSpecToken(); break; + case 334: { action. consumeDeclSpecToken(); break; } - + // // Rule 336: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // - case 336: { action.builder. - consumeQualifiedId(false); break; + case 336: { action. consumeQualifiedId(false); break; } - + // // Rule 337: type_id ::= type_specifier_seq // - case 337: { action.builder. - consumeTypeId(false); break; + case 337: { action. consumeTypeId(false); break; } - + // // Rule 338: type_id ::= type_specifier_seq abstract_declarator // - case 338: { action.builder. - consumeTypeId(true); break; + case 338: { action. consumeTypeId(true); break; } - + // // Rule 341: abstract_declarator ::= <openscope-ast> ptr_operator_seq // - case 341: { action.builder. - consumeDeclaratorWithPointer(false); break; + case 341: { action. consumeDeclaratorWithPointer(false); break; } - + // // Rule 342: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator // - case 342: { action.builder. - consumeDeclaratorWithPointer(true); break; + case 342: { action. consumeDeclaratorWithPointer(true); break; } - + // // Rule 346: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 346: { action.builder. - consumeDirectDeclaratorBracketed(); break; + case 346: { action. consumeDirectDeclaratorBracketed(); break; } - + // // Rule 347: basic_direct_abstract_declarator ::= ( ) // - case 347: { action.builder. - consumeAbstractDeclaratorEmpty(); break; + case 347: { action. consumeAbstractDeclaratorEmpty(); break; } - + // // Rule 348: array_direct_abstract_declarator ::= array_modifier // - case 348: { action.builder. - consumeDirectDeclaratorArrayDeclarator(false); break; + case 348: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } - + // // Rule 349: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 349: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 349: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 350: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 350: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 350: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 351: 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 351: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(true); break; + case 351: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } - + // // Rule 352: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt // - case 352: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(false); break; + case 352: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; } - + // // Rule 353: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 353: { action.builder. - consumePlaceHolder(); break; + case 353: { action. consumePlaceHolder(); break; } - + // // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 354: { action.builder. - consumeEmpty(); break; + case 354: { action. consumeEmpty(); break; } - + // // Rule 355: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 355: { action.builder. - consumePlaceHolder(); break; + case 355: { action. consumePlaceHolder(); break; } - + // // Rule 361: abstract_declarator_opt ::= $Empty // - case 361: { action.builder. - consumeEmpty(); break; + case 361: { action. consumeEmpty(); break; } - + // // Rule 362: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 362: { action.builder. - consumeParameterDeclaration(); break; + case 362: { action. consumeParameterDeclaration(); break; } - + // // Rule 363: parameter_declaration ::= declaration_specifiers // - case 363: { action.builder. - consumeParameterDeclarationWithoutDeclarator(); break; + case 363: { action. consumeParameterDeclarationWithoutDeclarator(); break; } - + // // Rule 365: parameter_init_declarator ::= declarator = parameter_initializer // - case 365: { action.builder. - consumeDeclaratorWithInitializer(true); break; + case 365: { action. consumeDeclaratorWithInitializer(true); break; } - + // // Rule 367: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 367: { action.builder. - consumeDeclaratorWithInitializer(true); break; + case 367: { action. consumeDeclaratorWithInitializer(true); break; } - + // // Rule 368: parameter_init_declarator ::= = parameter_initializer // - case 368: { action.builder. - consumeDeclaratorWithInitializer(false); break; + case 368: { action. consumeDeclaratorWithInitializer(false); break; } - + // // Rule 369: parameter_initializer ::= assignment_expression // - case 369: { action.builder. - consumeInitializer(); break; + case 369: { action. consumeInitializer(); break; } - + // // Rule 370: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body // - case 370: { action.builder. - consumeFunctionDefinition(false); break; + case 370: { action. consumeFunctionDefinition(false); break; } - + // // Rule 371: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq // - case 371: { action.builder. - consumeFunctionDefinition(true); break; + case 371: { action. consumeFunctionDefinition(true); break; } - + // // Rule 374: initializer ::= ( expression_list ) // - case 374: { action.builder. - consumeInitializerConstructor(); break; + case 374: { action. consumeInitializerConstructor(); break; } - + // // Rule 375: initializer_clause ::= assignment_expression // - case 375: { action.builder. - consumeInitializer(); break; + case 375: { action. consumeInitializer(); break; } - + // // Rule 376: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list , } end_initializer_list // - case 376: { action.builder. - consumeInitializerList(); break; + case 376: { action. consumeInitializerList(); break; } - + // // Rule 377: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list } end_initializer_list // - case 377: { action.builder. - consumeInitializerList(); break; + case 377: { action. consumeInitializerList(); break; } - + // // Rule 378: initializer_clause ::= { <openscope-ast> } // - case 378: { action.builder. - consumeInitializerList(); break; + case 378: { action. consumeInitializerList(); break; } - + // // Rule 379: start_initializer_list ::= $Empty // - case 379: { action.builder. - initializerListStart(); break; + case 379: { action. initializerListStart(); break; } - + // // Rule 380: end_initializer_list ::= $Empty // - case 380: { action.builder. - initializerListEnd(); break; + case 380: { action. initializerListEnd(); break; } - + // // Rule 385: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } // - case 385: { action.builder. - consumeClassSpecifier(); break; + case 385: { action. consumeClassSpecifier(); break; } - + // // Rule 386: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt // - case 386: { action.builder. - consumeClassHead(false); break; + case 386: { action. consumeClassHead(false); break; } - + // // Rule 387: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt // - case 387: { action.builder. - consumeClassHead(false); break; + case 387: { action. consumeClassHead(false); break; } - + // // Rule 388: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt // - case 388: { action.builder. - consumeClassHead(true); break; + case 388: { action. consumeClassHead(true); break; } - + // // Rule 389: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt // - case 389: { action.builder. - consumeClassHead(true); break; + case 389: { action. consumeClassHead(true); break; } - + // // Rule 391: identifier_name_opt ::= $Empty // - case 391: { action.builder. - consumeEmpty(); break; + case 391: { action. consumeEmpty(); break; } - + // // Rule 395: visibility_label ::= access_specifier_keyword : // - case 395: { action.builder. - consumeVisibilityLabel(); break; + case 395: { action. consumeVisibilityLabel(); break; } - + // // Rule 396: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; // - case 396: { action.builder. - consumeDeclarationSimple(true); break; + case 396: { action. consumeDeclarationSimple(true); break; } - + // // Rule 397: member_declaration ::= declaration_specifiers_opt ; // - case 397: { action.builder. - consumeDeclarationSimple(false); break; + case 397: { action. consumeDeclarationSimple(false); break; } - + // // Rule 400: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 400: { action.builder. - consumeMemberDeclarationQualifiedId(); break; + case 400: { action. consumeMemberDeclarationQualifiedId(); break; } - + // // Rule 406: member_declaration ::= ERROR_TOKEN // - case 406: { action.builder. - consumeDeclarationProblem(); break; + case 406: { action. consumeDeclarationProblem(); break; } - + // // Rule 414: member_declarator ::= declarator constant_initializer // - case 414: { action.builder. - consumeMemberDeclaratorWithInitializer(); break; + case 414: { action. consumeMemberDeclaratorWithInitializer(); break; } - + // // Rule 415: member_declarator ::= bit_field_declarator : constant_expression // - case 415: { action.builder. - consumeBitField(true); break; + case 415: { action. consumeBitField(true); break; } - + // // Rule 416: member_declarator ::= : constant_expression // - case 416: { action.builder. - consumeBitField(false); break; + case 416: { action. consumeBitField(false); break; } - + // // Rule 417: bit_field_declarator ::= identifier_name // - case 417: { action.builder. - consumeDirectDeclaratorIdentifier(); break; + case 417: { action. consumeDirectDeclaratorIdentifier(); break; } - + // // Rule 418: constant_initializer ::= = constant_expression // - case 418: { action.builder. - consumeInitializer(); break; + case 418: { action. consumeInitializer(); break; } - + // // Rule 424: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 424: { action.builder. - consumeBaseSpecifier(false, false); break; + case 424: { action. consumeBaseSpecifier(false, false); break; } - + // // Rule 425: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 425: { action.builder. - consumeBaseSpecifier(true, true); break; + case 425: { action. consumeBaseSpecifier(true, true); break; } - + // // Rule 426: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 426: { action.builder. - consumeBaseSpecifier(true, true); break; + case 426: { action. consumeBaseSpecifier(true, true); break; } - + // // Rule 427: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 427: { action.builder. - consumeBaseSpecifier(true, false); break; + case 427: { action. consumeBaseSpecifier(true, false); break; } - + // // Rule 428: access_specifier_keyword ::= private // - case 428: { action.builder. - consumeAccessKeywordToken(); break; + case 428: { action. consumeToken(); break; } - + // // Rule 429: access_specifier_keyword ::= protected // - case 429: { action.builder. - consumeAccessKeywordToken(); break; + case 429: { action. consumeToken(); break; } - + // // Rule 430: access_specifier_keyword ::= public // - case 430: { action.builder. - consumeAccessKeywordToken(); break; + case 430: { action. consumeToken(); break; } - + // // Rule 432: access_specifier_keyword_opt ::= $Empty // - case 432: { action.builder. - consumeEmpty(); break; + case 432: { action. consumeEmpty(); break; } - + // // Rule 434: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > // - case 434: { action.builder. - consumeTemplateId(); break; + case 434: { action. consumeTemplateId(); break; } - + // // Rule 435: conversion_function_id ::= operator conversion_type_id // - case 435: { action.builder. - consumeConversionName(); break; + case 435: { action. consumeConversionName(); break; } - + // // Rule 436: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 436: { action.builder. - consumeTypeId(true); break; + case 436: { action. consumeTypeId(true); break; } - + // // Rule 437: conversion_type_id ::= type_specifier_seq // - case 437: { action.builder. - consumeTypeId(false); break; + case 437: { action. consumeTypeId(false); break; } - + // // Rule 438: conversion_declarator ::= <openscope-ast> ptr_operator_seq // - case 438: { action.builder. - consumeDeclaratorWithPointer(false); break; + case 438: { action. consumeDeclaratorWithPointer(false); break; } - + // // Rule 444: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 444: { action.builder. - consumeConstructorChainInitializer(); break; + case 444: { action. consumeConstructorChainInitializer(); break; } - + // // Rule 445: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 445: { action.builder. - consumeQualifiedId(false); break; + case 445: { action. consumeQualifiedId(false); break; } - + // // Rule 448: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > // - case 448: { action.builder. - consumeTemplateId(); break; + case 448: { action. consumeTemplateId(); break; } - + // // Rule 449: operator_id_name ::= operator overloadable_operator // - case 449: { action.builder. - consumeOperatorName(); break; + case 449: { action. consumeOperatorName(); break; } - + // // Rule 492: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration // - case 492: { action.builder. - consumeTemplateDeclaration(); break; + case 492: { action. consumeTemplateDeclaration(); break; } - + // // Rule 493: export_opt ::= export // - case 493: { action.builder. - consumePlaceHolder(); break; + case 493: { action. consumePlaceHolder(); break; } - + // // Rule 494: export_opt ::= $Empty // - case 494: { action.builder. - consumeEmpty(); break; + case 494: { action. consumeEmpty(); break; } - + // // Rule 498: template_parameter ::= parameter_declaration // - case 498: { action.builder. - consumeTemplateParamterDeclaration(); break; + case 498: { action. consumeTemplateParamterDeclaration(); break; } - + // // Rule 499: type_parameter ::= class identifier_name_opt // - case 499: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; + case 499: { action. consumeSimpleTypeTemplateParameter(false); break; } - + // // Rule 500: type_parameter ::= class identifier_name_opt = type_id // - case 500: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; + case 500: { action. consumeSimpleTypeTemplateParameter(true); break; } - + // // Rule 501: type_parameter ::= typename identifier_name_opt // - case 501: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; + case 501: { action. consumeSimpleTypeTemplateParameter(false); break; } - + // // Rule 502: type_parameter ::= typename identifier_name_opt = type_id // - case 502: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; + case 502: { action. consumeSimpleTypeTemplateParameter(true); break; } - + // // Rule 503: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt // - case 503: { action.builder. - consumeTemplatedTypeTemplateParameter(false); break; + case 503: { action. consumeTemplatedTypeTemplateParameter(false); break; } - + // // Rule 504: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression // - case 504: { action.builder. - consumeTemplatedTypeTemplateParameter(true); break; + case 504: { action. consumeTemplatedTypeTemplateParameter(true); break; } - + // // Rule 505: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > // - case 505: { action.builder. - consumeTemplateId(); break; + case 505: { action. consumeTemplateId(); break; } - + // // Rule 510: template_argument ::= assignment_expression // - case 510: { action.builder. - consumeTemplateArgumentExpression(); break; + case 510: { action. consumeTemplateArgumentExpression(); break; } - + // // Rule 511: template_argument ::= type_id // - case 511: { action.builder. - consumeTemplateArgumentTypeId(); break; + case 511: { action. consumeTemplateArgumentTypeId(); break; } - + // // Rule 512: explicit_instantiation ::= template declaration // - case 512: { action.builder. - consumeTemplateExplicitInstantiation(); break; + case 512: { action. consumeTemplateExplicitInstantiation(); break; } - + // // Rule 513: explicit_specialization ::= template < > declaration // - case 513: { action.builder. - consumeTemplateExplicitSpecialization(); break; + case 513: { action. consumeTemplateExplicitSpecialization(); break; } - + // // Rule 514: try_block ::= try compound_statement <openscope-ast> handler_seq // - case 514: { action.builder. - consumeStatementTryBlock(); break; + case 514: { action. consumeStatementTryBlock(); break; } - + // // Rule 517: handler ::= catch ( exception_declaration ) compound_statement // - case 517: { action.builder. - consumeStatementCatchHandler(false); break; + case 517: { action. consumeStatementCatchHandler(false); break; } - + // // Rule 518: handler ::= catch ( ... ) compound_statement // - case 518: { action.builder. - consumeStatementCatchHandler(true); break; + case 518: { action. consumeStatementCatchHandler(true); break; } - + // // Rule 519: exception_declaration ::= type_specifier_seq <openscope-ast> declarator // - case 519: { action.builder. - consumeDeclarationSimple(true); break; + case 519: { action. consumeDeclarationSimple(true); break; } - + // // Rule 520: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator // - case 520: { action.builder. - consumeDeclarationSimple(true); break; + case 520: { action. consumeDeclarationSimple(true); break; } - + // // Rule 521: exception_declaration ::= type_specifier_seq // - case 521: { action.builder. - consumeDeclarationSimple(false); break; + case 521: { action. consumeDeclarationSimple(false); break; } - + // // Rule 523: exception_specification ::= throw ( ) // - case 523: { action.builder. - consumePlaceHolder(); break; + case 523: { action. consumePlaceHolder(); break; } - + // // Rule 529: no_cast_start ::= ERROR_TOKEN // - case 529: { action.builder. - consumeExpressionProblem(); break; + case 529: { action. consumeExpressionProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java index 1860e7eb537..249c80badd6 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java @@ -3,7 +3,7 @@ * 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 -* http://www.eclipse.org/legal/epl_v10.html +* http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java index 49403283abc..377a3cd62e9 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java @@ -3,7 +3,7 @@ * 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 -* http://www.eclipse.org/legal/epl_v10.html +* http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java index c7b9cf4edf7..2d90ef398ec 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java @@ -3,7 +3,7 @@ * 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 -* http://www.eclipse.org/legal/epl_v10.html +* http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation @@ -16,11 +16,7 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; import lpg.lpgjavaruntime.*; import java.util.*; - import org.eclipse.cdt.core.dom.ast.*; -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.IParser; import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; @@ -28,7 +24,11 @@ import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; -public class CPPNoFunctionDeclaratorParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser +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; + +public class CPPNoFunctionDeclaratorParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser { private static ParseTable prs = new CPPNoFunctionDeclaratorParserprs(); private FixedBacktrackingParser btParser; @@ -165,28 +165,19 @@ public class CPPNoFunctionDeclaratorParser extends PrsStream implements RuleActi } -private CPPParserAction action; +private CPPBuildASTParserAction action; -// uncomment to use with backtracking parser public CPPNoFunctionDeclaratorParser() { // constructor } private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { - // binding resolution actions need access to IASTName nodes, temporary - action = new CPPParserAction (); - //action.resolver = new C99TypedefTrackerParserAction (this); - action.builder = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu); - //action.builder.setTokenMap(CPPParsersym.orderedTerminalSymbols); - - action.builder.setParserOptions(options); - - // comment this line to use with backtracking parser - //setParserAction(action); + action = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu); + action.setParserOptions(options); } public void addToken(IToken token) { - token.setKind(mapKind(token.getKind())); + token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called? super.addToken(token); } @@ -196,37 +187,35 @@ public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> opt setStreamLength(getSize()); initActions(tu, options); - final int errorRepairCount = -1; // _1 means full error handling + final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse super.resetTokenStream(); // allow tokens to be garbage collected // the completion node may be null - IASTCompletionNode compNode = action.builder.getASTCompletionNode(); + IASTCompletionNode compNode = action.getASTCompletionNode(); - //action = null; // causes getSecondaryParseResult() to fail - - // Comment this line to use with backtracking parser + //action = null; //parserAction = null; - return compNode; } - // uncomment this method to use with backtracking parser public List getRuleTokens() { return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1)); } + public IASTNode getSecondaryParseResult() { - return action.builder.getSecondaryParseResult(); + return action.getSecondaryParseResult(); } public String[] getOrderedTerminalSymbols() { return CPPNoFunctionDeclaratorParsersym.orderedTerminalSymbols; } +@SuppressWarnings("nls") public String getName() { - return "CPPNoFunctionDeclaratorParser"; //$NON-NLS-1$ + return "CPPNoFunctionDeclaratorParser"; } @@ -257,2017 +246,1729 @@ public CPPNoFunctionDeclaratorParser(String[] mapFrom) { // constructor // // Rule 1: <openscope-ast> ::= $Empty // - case 1: { action.builder. - openASTScope(); break; - } + case 1: { action. openASTScope(); break; + } // // Rule 2: <empty> ::= $Empty // - case 2: { action.builder. - consumeEmpty(); break; - } - + case 2: { action. consumeEmpty(); break; + } + // // Rule 13: translation_unit ::= declaration_seq_opt // - case 13: { action.builder. - consumeTranslationUnit(); break; + case 13: { action. consumeTranslationUnit(); break; } - + // // Rule 16: literal ::= integer // - case 16: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; + case 16: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } - + // // Rule 17: literal ::= 0 // - case 17: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; + case 17: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } - + // // Rule 18: literal ::= floating // - case 18: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; + case 18: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; } - + // // Rule 19: literal ::= charconst // - case 19: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; + case 19: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } - + // // Rule 20: literal ::= stringlit // - case 20: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; + case 20: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } - + // // Rule 21: literal ::= true // - case 21: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; + case 21: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } - + // // Rule 22: literal ::= false // - case 22: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; + case 22: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } - + // // Rule 23: literal ::= this // - case 23: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; + case 23: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } - + // // Rule 25: primary_expression ::= ( expression ) // - case 25: { action.builder. - consumeExpressionBracketed(); break; + case 25: { action. consumeExpressionBracketed(); break; } - + // // Rule 27: id_expression ::= qualified_or_unqualified_name // - case 27: { action.builder. - consumeExpressionName(); break; + case 27: { action. consumeExpressionName(); break; } - + // // Rule 34: unqualified_id_name ::= ~ identifier_token // - case 34: { action.builder. - consumeDestructorName(); break; + case 34: { action. consumeDestructorName(); break; } - + // // Rule 35: unqualified_id_name ::= ~ template_id_name // - case 35: { action.builder. - consumeDestructorNameTemplateId(); break; + case 35: { action. consumeDestructorNameTemplateId(); break; } - + // // Rule 36: identifier_name ::= identifier_token // - case 36: { action.builder. - consumeIdentifierName(); break; + case 36: { action. consumeIdentifierName(); break; } - + // // Rule 37: template_opt ::= template // - case 37: { action.builder. - consumePlaceHolder(); break; + case 37: { action. consumePlaceHolder(); break; } - + // // Rule 38: template_opt ::= $Empty // - case 38: { action.builder. - consumeEmpty(); break; + case 38: { action. consumeEmpty(); break; } - + // // Rule 39: dcolon_opt ::= :: // - case 39: { action.builder. - consumeToken(); break; + case 39: { action. consumeToken(); break; } - + // // Rule 40: dcolon_opt ::= $Empty // - case 40: { action.builder. - consumeEmpty(); break; + case 40: { action. consumeEmpty(); break; } - + // // Rule 41: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name // - case 41: { action.builder. - consumeQualifiedId(true); break; + case 41: { action. consumeQualifiedId(true); break; } - + // // Rule 42: qualified_id_name ::= :: unqualified_id_name // - case 42: { action.builder. - consumeGlobalQualifiedId(); break; + case 42: { action. consumeGlobalQualifiedId(); break; } - + // // Rule 43: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // - case 43: { action.builder. - consumeNestedNameSpecifier(true); break; + case 43: { action. consumeNestedNameSpecifier(true); break; } - + // // Rule 44: nested_name_specifier ::= class_or_namespace_name :: // - case 44: { action.builder. - consumeNestedNameSpecifier(false); break; + case 44: { action. consumeNestedNameSpecifier(false); break; } - + // // Rule 45: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // - case 45: { action.builder. - consumeNestedNameSpecifier(true); break; + case 45: { action. consumeNestedNameSpecifier(true); break; } - + // // Rule 46: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // - case 46: { action.builder. - consumeNestedNameSpecifier(false); break; + case 46: { action. consumeNestedNameSpecifier(false); break; } - + // // Rule 47: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name // - case 47: { action.builder. - consumeNameWithTemplateKeyword(); break; + case 47: { action. consumeNameWithTemplateKeyword(); break; } - + // // Rule 49: nested_name_specifier_opt ::= $Empty // - case 49: { action.builder. - consumeNestedNameSpecifierEmpty(); break; + case 49: { action. consumeNestedNameSpecifierEmpty(); break; } - + // // Rule 52: postfix_expression ::= postfix_expression [ expression ] // - case 52: { action.builder. - consumeExpressionArraySubscript(); break; + case 52: { action. consumeExpressionArraySubscript(); break; } - + // // Rule 53: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 53: { action.builder. - consumeExpressionFunctionCall(); break; + case 53: { action. consumeExpressionFunctionCall(); break; } - + // // Rule 54: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 54: { action.builder. - consumeExpressionSimpleTypeConstructor(); break; + case 54: { action. consumeExpressionSimpleTypeConstructor(); break; } - + // // Rule 55: postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt ) // - case 55: { action.builder. - consumeExpressionTypeName(); break; + case 55: { action. consumeExpressionTypeName(); break; } - + // // Rule 56: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) // - case 56: { action.builder. - consumeExpressionTypeName(); break; + case 56: { action. consumeExpressionTypeName(); break; } - + // // Rule 57: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // - case 57: { action.builder. - consumeExpressionFieldReference(false, false); break; + case 57: { action. consumeExpressionFieldReference(false, false); break; } - + // // Rule 58: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 58: { action.builder. - consumeExpressionFieldReference(true, false); break; + case 58: { action. consumeExpressionFieldReference(true, false); break; } - + // // Rule 59: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 59: { action.builder. - consumeExpressionFieldReference(false, true); break; + case 59: { action. consumeExpressionFieldReference(false, true); break; } - + // // Rule 60: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 60: { action.builder. - consumeExpressionFieldReference(true, true); break; + case 60: { action. consumeExpressionFieldReference(true, true); break; } - + // // Rule 61: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 61: { action.builder. - consumeExpressionFieldReference(false, false); break; + case 61: { action. consumeExpressionFieldReference(false, false); break; } - + // // Rule 62: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 62: { action.builder. - consumeExpressionFieldReference(true, false); break; + case 62: { action. consumeExpressionFieldReference(true, false); break; } - + // // Rule 63: postfix_expression ::= postfix_expression ++ // - case 63: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; + case 63: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } - + // // Rule 64: postfix_expression ::= postfix_expression -- // - case 64: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; + case 64: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } - + // // Rule 65: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 65: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; + case 65: { action. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } - + // // Rule 66: postfix_expression ::= static_cast < type_id > ( expression ) // - case 66: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; + case 66: { action. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } - + // // Rule 67: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 67: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; + case 67: { action. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } - + // // Rule 68: postfix_expression ::= const_cast < type_id > ( expression ) // - case 68: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; + case 68: { action. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } - + // // Rule 69: postfix_expression ::= typeid ( expression ) // - case 69: { action.builder. - consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; + case 69: { action. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } - + // // Rule 70: postfix_expression ::= typeid ( type_id ) // - case 70: { action.builder. - consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; + case 70: { action. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } - + // // Rule 71: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name // - case 71: { action.builder. - consumePsudoDestructorName(true); break; + case 71: { action. consumePsudoDestructorName(true); break; } - + // // Rule 72: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name // - case 72: { action.builder. - consumePsudoDestructorName(true); break; + case 72: { action. consumePsudoDestructorName(true); break; } - + // // Rule 73: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name // - case 73: { action.builder. - consumePsudoDestructorName(false); break; + case 73: { action. consumePsudoDestructorName(false); break; } - + // // Rule 74: destructor_type_name ::= ~ identifier_token // - case 74: { action.builder. - consumeDestructorName(); break; + case 74: { action. consumeDestructorName(); break; } - + // // Rule 75: destructor_type_name ::= ~ template_id_name // - case 75: { action.builder. - consumeDestructorNameTemplateId(); break; + case 75: { action. consumeDestructorNameTemplateId(); break; } - + // // Rule 79: unary_expression ::= ++ cast_expression // - case 79: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; + case 79: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } - + // // Rule 80: unary_expression ::= -- cast_expression // - case 80: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; + case 80: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } - + // // Rule 81: unary_expression ::= & cast_expression // - case 81: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; + case 81: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } - + // // Rule 82: unary_expression ::= * cast_expression // - case 82: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; + case 82: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } - + // // Rule 83: unary_expression ::= + cast_expression // - case 83: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; + case 83: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } - + // // Rule 84: unary_expression ::= - cast_expression // - case 84: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; + case 84: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } - + // // Rule 85: unary_expression ::= ~ cast_expression // - case 85: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; + case 85: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } - + // // Rule 86: unary_expression ::= ! cast_expression // - case 86: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; + case 86: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } - + // // Rule 87: unary_expression ::= sizeof unary_expression // - case 87: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; + case 87: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } - + // // Rule 88: unary_expression ::= sizeof ( type_id ) // - case 88: { action.builder. - consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; + case 88: { action. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } - + // // Rule 89: new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt // - case 89: { action.builder. - consumeExpressionNew(true); break; + case 89: { action. consumeExpressionNew(true); break; } - + // // Rule 90: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt // - case 90: { action.builder. - consumeExpressionNew(false); break; + case 90: { action. consumeExpressionNew(false); break; } - + // // Rule 92: new_placement_opt ::= $Empty // - case 92: { action.builder. - consumeEmpty(); break; + case 92: { action. consumeEmpty(); break; } - + // // Rule 93: new_type_id ::= type_specifier_seq // - case 93: { action.builder. - consumeTypeId(false); break; + case 93: { action. consumeTypeId(false); break; } - + // // Rule 94: new_type_id ::= type_specifier_seq new_declarator // - case 94: { action.builder. - consumeTypeId(true); break; + case 94: { action. consumeTypeId(true); break; } - + // // Rule 95: new_declarator ::= <openscope-ast> new_pointer_operators // - case 95: { action.builder. - consumeNewDeclarator(); break; + case 95: { action. consumeNewDeclarator(); break; } - + // // Rule 102: new_initializer ::= ( expression_list_opt ) // - case 102: { action.builder. - consumeNewInitializer(); break; + case 102: { action. consumeNewInitializer(); break; } - + // // Rule 104: new_initializer_opt ::= $Empty // - case 104: { action.builder. - consumeEmpty(); break; + case 104: { action. consumeEmpty(); break; } - + // // Rule 105: delete_expression ::= dcolon_opt delete cast_expression // - case 105: { action.builder. - consumeExpressionDelete(false); break; + case 105: { action. consumeExpressionDelete(false); break; } - + // // Rule 106: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 106: { action.builder. - consumeExpressionDelete(true); break; + case 106: { action. consumeExpressionDelete(true); break; } - + // // Rule 108: cast_expression ::= ( type_id ) cast_expression // - case 108: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_cast); break; + case 108: { action. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } - + // // Rule 110: pm_expression ::= pm_expression .* cast_expression // - case 110: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; + case 110: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } - + // // Rule 111: pm_expression ::= pm_expression ->* cast_expression // - case 111: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; + case 111: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } - + // // Rule 113: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 113: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; + case 113: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } - + // // Rule 114: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 114: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; + case 114: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } - + // // Rule 115: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 115: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; + case 115: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } - + // // Rule 117: additive_expression ::= additive_expression + multiplicative_expression // - case 117: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; + case 117: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } - + // // Rule 118: additive_expression ::= additive_expression - multiplicative_expression // - case 118: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; + case 118: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } - + // // Rule 120: shift_expression ::= shift_expression << additive_expression // - case 120: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; + case 120: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } - + // // Rule 121: shift_expression ::= shift_expression >> additive_expression // - case 121: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; + case 121: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } - + // // Rule 123: relational_expression ::= relational_expression < shift_expression // - case 123: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; + case 123: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } - + // // Rule 124: relational_expression ::= relational_expression > shift_expression // - case 124: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; + case 124: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } - + // // Rule 125: relational_expression ::= relational_expression <= shift_expression // - case 125: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; + case 125: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } - + // // Rule 126: relational_expression ::= relational_expression >= shift_expression // - case 126: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; + case 126: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } - + // // Rule 128: equality_expression ::= equality_expression == relational_expression // - case 128: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; + case 128: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } - + // // Rule 129: equality_expression ::= equality_expression != relational_expression // - case 129: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; + case 129: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } - + // // Rule 131: and_expression ::= and_expression & equality_expression // - case 131: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; + case 131: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } - + // // Rule 133: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 133: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; + case 133: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } - + // // Rule 135: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 135: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; + case 135: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } - + // // Rule 137: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 137: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; + case 137: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } - + // // Rule 139: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 139: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; + case 139: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } - + // // Rule 141: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 141: { action.builder. - consumeExpressionConditional(); break; + case 141: { action. consumeExpressionConditional(); break; } - + // // Rule 142: throw_expression ::= throw // - case 142: { action.builder. - consumeExpressionThrow(false); break; + case 142: { action. consumeExpressionThrow(false); break; } - + // // Rule 143: throw_expression ::= throw assignment_expression // - case 143: { action.builder. - consumeExpressionThrow(true); break; + case 143: { action. consumeExpressionThrow(true); break; } - + // // Rule 146: assignment_expression ::= logical_or_expression = assignment_expression // - case 146: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; + case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } - + // // Rule 147: assignment_expression ::= logical_or_expression *= assignment_expression // - case 147: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; + case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } - + // // Rule 148: assignment_expression ::= logical_or_expression /= assignment_expression // - case 148: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; + case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } - + // // Rule 149: assignment_expression ::= logical_or_expression %= assignment_expression // - case 149: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; + case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } - + // // Rule 150: assignment_expression ::= logical_or_expression += assignment_expression // - case 150: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; + case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } - + // // Rule 151: assignment_expression ::= logical_or_expression -= assignment_expression // - case 151: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; + case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } - + // // Rule 152: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 152: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; + case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } - + // // Rule 153: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 153: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; + case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } - + // // Rule 154: assignment_expression ::= logical_or_expression &= assignment_expression // - case 154: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; + case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } - + // // Rule 155: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 155: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; + case 155: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } - + // // Rule 156: assignment_expression ::= logical_or_expression |= assignment_expression // - case 156: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; + case 156: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } - + // // Rule 158: expression_list ::= <openscope-ast> expression_list_actual // - case 158: { action.builder. - consumeExpressionList(); break; + case 158: { action. consumeExpressionList(); break; } - + // // Rule 162: expression_list_opt ::= $Empty // - case 162: { action.builder. - consumeEmpty(); break; + case 162: { action. consumeEmpty(); break; } - + // // Rule 164: expression_opt ::= $Empty // - case 164: { action.builder. - consumeEmpty(); break; + case 164: { action. consumeEmpty(); break; } - + // // Rule 167: constant_expression_opt ::= $Empty // - case 167: { action.builder. - consumeEmpty(); break; + case 167: { action. consumeEmpty(); break; } - + // // Rule 176: statement ::= ERROR_TOKEN // - case 176: { action.builder. - consumeStatementProblem(); break; + case 176: { action. consumeStatementProblem(); break; } - + // // Rule 177: labeled_statement ::= identifier : statement // - case 177: { action.builder. - consumeStatementLabeled(); break; + case 177: { action. consumeStatementLabeled(); break; } - + // // Rule 178: labeled_statement ::= case constant_expression : statement // - case 178: { action.builder. - consumeStatementCase(); break; + case 178: { action. consumeStatementCase(); break; } - + // // Rule 179: labeled_statement ::= default : statement // - case 179: { action.builder. - consumeStatementDefault(); break; + case 179: { action. consumeStatementDefault(); break; } - + // // Rule 180: expression_statement ::= expression ; // - case 180: { action.builder. - consumeStatementExpression(); break; + case 180: { action. consumeStatementExpression(); break; } - + // // Rule 181: expression_statement ::= ; // - case 181: { action.builder. - consumeStatementNull(); break; + case 181: { action. consumeStatementNull(); break; } - + // // Rule 182: compound_statement ::= { <openscope-ast> statement_seq } // - case 182: { action.builder. - consumeStatementCompoundStatement(true); break; + case 182: { action. consumeStatementCompoundStatement(true); break; } - + // // Rule 183: compound_statement ::= { } // - case 183: { action.builder. - consumeStatementCompoundStatement(false); break; + case 183: { action. consumeStatementCompoundStatement(false); break; } - + // // Rule 186: selection_statement ::= if ( condition ) statement // - case 186: { action.builder. - consumeStatementIf(false); break; + case 186: { action. consumeStatementIf(false); break; } - + // // Rule 187: selection_statement ::= if ( condition ) statement else statement // - case 187: { action.builder. - consumeStatementIf(true); break; + case 187: { action. consumeStatementIf(true); break; } - + // // Rule 188: selection_statement ::= switch ( condition ) statement // - case 188: { action.builder. - consumeStatementSwitch(); break; + case 188: { action. consumeStatementSwitch(); break; } - + // // Rule 190: condition ::= type_specifier_seq declarator = assignment_expression // - case 190: { action.builder. - consumeConditionDeclaration(); break; + case 190: { action. consumeConditionDeclaration(); break; } - + // // Rule 192: condition_opt ::= $Empty // - case 192: { action.builder. - consumeEmpty(); break; + case 192: { action. consumeEmpty(); break; } - + // // Rule 193: iteration_statement ::= while ( condition ) statement // - case 193: { action.builder. - consumeStatementWhileLoop(); break; + case 193: { action. consumeStatementWhileLoop(); break; } - + // // Rule 194: iteration_statement ::= do statement while ( expression ) ; // - case 194: { action.builder. - consumeStatementDoLoop(); break; + case 194: { action. consumeStatementDoLoop(); break; } - + // // Rule 195: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 195: { action.builder. - consumeStatementForLoop(); break; + case 195: { action. consumeStatementForLoop(); break; } - + // // Rule 197: for_init_statement ::= simple_declaration_with_declspec // - case 197: { action.builder. - consumeStatementDeclaration(); break; + case 197: { action. consumeStatementDeclaration(); break; } - + // // Rule 198: jump_statement ::= break ; // - case 198: { action.builder. - consumeStatementBreak(); break; + case 198: { action. consumeStatementBreak(); break; } - + // // Rule 199: jump_statement ::= continue ; // - case 199: { action.builder. - consumeStatementContinue(); break; + case 199: { action. consumeStatementContinue(); break; } - + // // Rule 200: jump_statement ::= return expression ; // - case 200: { action.builder. - consumeStatementReturn(true); break; + case 200: { action. consumeStatementReturn(true); break; } - + // // Rule 201: jump_statement ::= return ; // - case 201: { action.builder. - consumeStatementReturn(false); break; + case 201: { action. consumeStatementReturn(false); break; } - + // // Rule 202: jump_statement ::= goto identifier_token ; // - case 202: { action.builder. - consumeStatementGoto(); break; + case 202: { action. consumeStatementGoto(); break; } - + // // Rule 203: declaration_statement ::= block_declaration // - case 203: { action.builder. - consumeStatementDeclarationWithDisambiguation(); break; + case 203: { action. consumeStatementDeclarationWithDisambiguation(); break; } - + // // Rule 204: declaration_statement ::= function_definition // - case 204: { action.builder. - consumeStatementDeclaration(); break; + case 204: { action. consumeStatementDeclaration(); break; } - + // // Rule 212: declaration ::= ERROR_TOKEN // - case 212: { action.builder. - consumeDeclarationProblem(); break; + case 212: { action. consumeDeclarationProblem(); break; } - + // // Rule 222: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ; // - case 222: { action.builder. - consumeDeclarationSimple(true); break; + case 222: { action. consumeDeclarationSimple(true); break; } - + // // Rule 223: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ; // - case 223: { action.builder. - consumeDeclarationSimple(true); break; + case 223: { action. consumeDeclarationSimple(true); break; } - + // // Rule 224: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers // - case 224: { action.builder. - consumeDeclarationSpecifiersSimple(); break; + case 224: { action. consumeDeclarationSpecifiersSimple(); break; } - + // // Rule 225: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers // - case 225: { action.builder. - consumeDeclarationSpecifiersComposite(); break; + case 225: { action. consumeDeclarationSpecifiersComposite(); break; } - + // // Rule 226: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers // - case 226: { action.builder. - consumeDeclarationSpecifiersComposite(); break; + case 226: { action. consumeDeclarationSpecifiersComposite(); break; } - + // // Rule 227: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers // - case 227: { action.builder. - consumeDeclarationSpecifiersComposite(); break; + case 227: { action. consumeDeclarationSpecifiersComposite(); break; } - + // // Rule 228: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers // - case 228: { action.builder. - consumeDeclarationSpecifiersTypeName(); break; + case 228: { action. consumeDeclarationSpecifiersTypeName(); break; } - + // // Rule 230: declaration_specifiers_opt ::= $Empty // - case 230: { action.builder. - consumeEmpty(); break; + case 230: { action. consumeEmpty(); break; } - + // // Rule 234: no_type_declaration_specifier ::= friend // - case 234: { action.builder. - consumeDeclSpecToken(); break; + case 234: { action. consumeDeclSpecToken(); break; } - + // // Rule 235: no_type_declaration_specifier ::= typedef // - case 235: { action.builder. - consumeDeclSpecToken(); break; + case 235: { action. consumeDeclSpecToken(); break; } - + // // Rule 255: storage_class_specifier ::= auto // - case 255: { action.builder. - consumeDeclSpecToken(); break; + case 255: { action. consumeDeclSpecToken(); break; } - + // // Rule 256: storage_class_specifier ::= register // - case 256: { action.builder. - consumeDeclSpecToken(); break; + case 256: { action. consumeDeclSpecToken(); break; } - + // // Rule 257: storage_class_specifier ::= static // - case 257: { action.builder. - consumeDeclSpecToken(); break; + case 257: { action. consumeDeclSpecToken(); break; } - + // // Rule 258: storage_class_specifier ::= extern // - case 258: { action.builder. - consumeDeclSpecToken(); break; + case 258: { action. consumeDeclSpecToken(); break; } - + // // Rule 259: storage_class_specifier ::= mutable // - case 259: { action.builder. - consumeDeclSpecToken(); break; + case 259: { action. consumeDeclSpecToken(); break; } - + // // Rule 260: function_specifier ::= inline // - case 260: { action.builder. - consumeDeclSpecToken(); break; + case 260: { action. consumeDeclSpecToken(); break; } - + // // Rule 261: function_specifier ::= virtual // - case 261: { action.builder. - consumeDeclSpecToken(); break; + case 261: { action. consumeDeclSpecToken(); break; } - + // // Rule 262: function_specifier ::= explicit // - case 262: { action.builder. - consumeDeclSpecToken(); break; + case 262: { action. consumeDeclSpecToken(); break; } - + // // Rule 263: simple_type_specifier ::= char // - case 263: { action.builder. - consumeDeclSpecToken(); break; + case 263: { action. consumeDeclSpecToken(); break; } - + // // Rule 264: simple_type_specifier ::= wchar_t // - case 264: { action.builder. - consumeDeclSpecToken(); break; + case 264: { action. consumeDeclSpecToken(); break; } - + // // Rule 265: simple_type_specifier ::= bool // - case 265: { action.builder. - consumeDeclSpecToken(); break; + case 265: { action. consumeDeclSpecToken(); break; } - + // // Rule 266: simple_type_specifier ::= short // - case 266: { action.builder. - consumeDeclSpecToken(); break; + case 266: { action. consumeDeclSpecToken(); break; } - + // // Rule 267: simple_type_specifier ::= int // - case 267: { action.builder. - consumeDeclSpecToken(); break; + case 267: { action. consumeDeclSpecToken(); break; } - + // // Rule 268: simple_type_specifier ::= long // - case 268: { action.builder. - consumeDeclSpecToken(); break; + case 268: { action. consumeDeclSpecToken(); break; } - + // // Rule 269: simple_type_specifier ::= signed // - case 269: { action.builder. - consumeDeclSpecToken(); break; + case 269: { action. consumeDeclSpecToken(); break; } - + // // Rule 270: simple_type_specifier ::= unsigned // - case 270: { action.builder. - consumeDeclSpecToken(); break; + case 270: { action. consumeDeclSpecToken(); break; } - + // // Rule 271: simple_type_specifier ::= float // - case 271: { action.builder. - consumeDeclSpecToken(); break; + case 271: { action. consumeDeclSpecToken(); break; } - + // // Rule 272: simple_type_specifier ::= double // - case 272: { action.builder. - consumeDeclSpecToken(); break; + case 272: { action. consumeDeclSpecToken(); break; } - + // // Rule 273: simple_type_specifier ::= void // - case 273: { action.builder. - consumeDeclSpecToken(); break; + case 273: { action. consumeDeclSpecToken(); break; } - + // // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 276: { action.builder. - consumeQualifiedId(false); break; + case 276: { action. consumeQualifiedId(false); break; } - + // // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 277: { action.builder. - consumeQualifiedId(false); break; + case 277: { action. consumeQualifiedId(false); break; } - + // // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 278: { action.builder. - consumeQualifiedId(false); break; + case 278: { action. consumeQualifiedId(false); break; } - + // // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 279: { action.builder. - consumeQualifiedId(true); break; + case 279: { action. consumeQualifiedId(true); break; } - + // // Rule 281: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 281: { action.builder. - consumeTypeSpecifierElaborated(false); break; + case 281: { action. consumeTypeSpecifierElaborated(false); break; } - + // // Rule 282: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 282: { action.builder. - consumeTypeSpecifierElaborated(true); break; + case 282: { action. consumeTypeSpecifierElaborated(true); break; } - + // // Rule 283: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 283: { action.builder. - consumeTypeSpecifierElaborated(false); break; + case 283: { action. consumeTypeSpecifierElaborated(false); break; } - + // // Rule 284: enum_specifier ::= enum { <openscope-ast> enumerator_list_opt } // - case 284: { action.builder. - consumeTypeSpecifierEnumeration(false); break; + case 284: { action. consumeTypeSpecifierEnumeration(false); break; } - + // // Rule 285: enum_specifier ::= enum identifier_token { <openscope-ast> enumerator_list_opt } // - case 285: { action.builder. - consumeTypeSpecifierEnumeration(true); break; + case 285: { action. consumeTypeSpecifierEnumeration(true); break; } - + // // Rule 290: enumerator_definition ::= identifier_token // - case 290: { action.builder. - consumeEnumerator(false); break; + case 290: { action. consumeEnumerator(false); break; } - + // // Rule 291: enumerator_definition ::= identifier_token = constant_expression // - case 291: { action.builder. - consumeEnumerator(true); break; + case 291: { action. consumeEnumerator(true); break; } - + // // Rule 295: named_namespace_definition ::= namespace namespace_name { <openscope-ast> declaration_seq_opt } // - case 295: { action.builder. - consumeNamespaceDefinition(true); break; + case 295: { action. consumeNamespaceDefinition(true); break; } - + // // Rule 296: unnamed_namespace_definition ::= namespace { <openscope-ast> declaration_seq_opt } // - case 296: { action.builder. - consumeNamespaceDefinition(false); break; + case 296: { action. consumeNamespaceDefinition(false); break; } - + // // Rule 297: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 297: { action.builder. - consumeNamespaceAliasDefinition(); break; + case 297: { action. consumeNamespaceAliasDefinition(); break; } - + // // Rule 298: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 298: { action.builder. - consumeUsingDeclaration(); break; + case 298: { action. consumeUsingDeclaration(); break; } - + // // Rule 299: typename_opt ::= typename // - case 299: { action.builder. - consumePlaceHolder(); break; + case 299: { action. consumePlaceHolder(); break; } - + // // Rule 300: typename_opt ::= $Empty // - case 300: { action.builder. - consumeEmpty(); break; + case 300: { action. consumeEmpty(); break; } - + // // Rule 301: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 301: { action.builder. - consumeUsingDirective(); break; + case 301: { action. consumeUsingDirective(); break; } - + // // Rule 302: asm_definition ::= asm ( stringlit ) ; // - case 302: { action.builder. - consumeDeclarationASM(); break; + case 302: { action. consumeDeclarationASM(); break; } - + // // Rule 303: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt } // - case 303: { action.builder. - consumeLinkageSpecification(); break; + case 303: { action. consumeLinkageSpecification(); break; } - + // // Rule 304: linkage_specification ::= extern stringlit <openscope-ast> declaration // - case 304: { action.builder. - consumeLinkageSpecification(); break; + case 304: { action. consumeLinkageSpecification(); break; } - + // // Rule 310: init_declarator ::= declarator initializer // - case 310: { action.builder. - consumeDeclaratorWithInitializer(true); break; + case 310: { action. consumeDeclaratorWithInitializer(true); break; } - + // // Rule 312: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator // - case 312: { action.builder. - consumeDeclaratorWithPointer(true); break; + case 312: { action. consumeDeclaratorWithPointer(true); break; } - + // // Rule 314: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator // - case 314: { action.builder. - consumeDeclaratorWithPointer(true); break; + case 314: { action. consumeDeclaratorWithPointer(true); break; } - + // // Rule 317: basic_direct_declarator ::= declarator_id_name // - case 317: { action.builder. - consumeDirectDeclaratorIdentifier(); break; + case 317: { action. consumeDirectDeclaratorIdentifier(); break; } - + // // Rule 318: basic_direct_declarator ::= ( declarator ) // - case 318: { action.builder. - consumeDirectDeclaratorBracketed(); break; + case 318: { action. consumeDirectDeclaratorBracketed(); break; } - + // // Rule 319: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt // - case 319: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(true); break; + case 319: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } - + // // Rule 320: array_direct_declarator ::= array_direct_declarator array_modifier // - case 320: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 320: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 321: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 321: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 321: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 322: array_modifier ::= [ constant_expression ] // - case 322: { action.builder. - consumeDirectDeclaratorArrayModifier(true); break; + case 322: { action. consumeDirectDeclaratorArrayModifier(true); break; } - + // // Rule 323: array_modifier ::= [ ] // - case 323: { action.builder. - consumeDirectDeclaratorArrayModifier(false); break; + case 323: { action. consumeDirectDeclaratorArrayModifier(false); break; } - + // // Rule 324: ptr_operator ::= * <openscope-ast> cv_qualifier_seq_opt // - case 324: { action.builder. - consumePointer(); break; + case 324: { action. consumePointer(); break; } - + // // Rule 325: ptr_operator ::= & // - case 325: { action.builder. - consumeReferenceOperator(); break; + case 325: { action. consumeReferenceOperator(); break; } - + // // Rule 326: ptr_operator ::= dcolon_opt nested_name_specifier * <openscope-ast> cv_qualifier_seq_opt // - case 326: { action.builder. - consumePointerToMember(); break; + case 326: { action. consumePointerToMember(); break; } - + // // Rule 332: cv_qualifier ::= const // - case 332: { action.builder. - consumeDeclSpecToken(); break; + case 332: { action. consumeDeclSpecToken(); break; } - + // // Rule 333: cv_qualifier ::= volatile // - case 333: { action.builder. - consumeDeclSpecToken(); break; + case 333: { action. consumeDeclSpecToken(); break; } - + // // Rule 335: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // - case 335: { action.builder. - consumeQualifiedId(false); break; + case 335: { action. consumeQualifiedId(false); break; } - + // // Rule 336: type_id ::= type_specifier_seq // - case 336: { action.builder. - consumeTypeId(false); break; + case 336: { action. consumeTypeId(false); break; } - + // // Rule 337: type_id ::= type_specifier_seq abstract_declarator // - case 337: { action.builder. - consumeTypeId(true); break; + case 337: { action. consumeTypeId(true); break; } - + // // Rule 340: abstract_declarator ::= <openscope-ast> ptr_operator_seq // - case 340: { action.builder. - consumeDeclaratorWithPointer(false); break; + case 340: { action. consumeDeclaratorWithPointer(false); break; } - + // // Rule 341: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator // - case 341: { action.builder. - consumeDeclaratorWithPointer(true); break; + case 341: { action. consumeDeclaratorWithPointer(true); break; } - + // // Rule 345: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 345: { action.builder. - consumeDirectDeclaratorBracketed(); break; + case 345: { action. consumeDirectDeclaratorBracketed(); break; } - + // // Rule 346: basic_direct_abstract_declarator ::= ( ) // - case 346: { action.builder. - consumeAbstractDeclaratorEmpty(); break; + case 346: { action. consumeAbstractDeclaratorEmpty(); break; } - + // // Rule 347: array_direct_abstract_declarator ::= array_modifier // - case 347: { action.builder. - consumeDirectDeclaratorArrayDeclarator(false); break; + case 347: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } - + // // Rule 348: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 348: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 348: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 349: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 349: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 349: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 350: 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 350: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(true); break; + case 350: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } - + // // Rule 351: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt // - case 351: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(false); break; + case 351: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; } - + // // Rule 352: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 352: { action.builder. - consumePlaceHolder(); break; + case 352: { action. consumePlaceHolder(); break; } - + // // Rule 353: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 353: { action.builder. - consumeEmpty(); break; + case 353: { action. consumeEmpty(); break; } - + // // Rule 354: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 354: { action.builder. - consumePlaceHolder(); break; + case 354: { action. consumePlaceHolder(); break; } - + // // Rule 360: abstract_declarator_opt ::= $Empty // - case 360: { action.builder. - consumeEmpty(); break; + case 360: { action. consumeEmpty(); break; } - + // // Rule 361: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 361: { action.builder. - consumeParameterDeclaration(); break; + case 361: { action. consumeParameterDeclaration(); break; } - + // // Rule 362: parameter_declaration ::= declaration_specifiers // - case 362: { action.builder. - consumeParameterDeclarationWithoutDeclarator(); break; + case 362: { action. consumeParameterDeclarationWithoutDeclarator(); break; } - + // // Rule 364: parameter_init_declarator ::= declarator = parameter_initializer // - case 364: { action.builder. - consumeDeclaratorWithInitializer(true); break; + case 364: { action. consumeDeclaratorWithInitializer(true); break; } - + // // Rule 366: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 366: { action.builder. - consumeDeclaratorWithInitializer(true); break; + case 366: { action. consumeDeclaratorWithInitializer(true); break; } - + // // Rule 367: parameter_init_declarator ::= = parameter_initializer // - case 367: { action.builder. - consumeDeclaratorWithInitializer(false); break; + case 367: { action. consumeDeclaratorWithInitializer(false); break; } - + // // Rule 368: parameter_initializer ::= assignment_expression // - case 368: { action.builder. - consumeInitializer(); break; + case 368: { action. consumeInitializer(); break; } - + // // Rule 369: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body // - case 369: { action.builder. - consumeFunctionDefinition(false); break; + case 369: { action. consumeFunctionDefinition(false); break; } - + // // Rule 370: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq // - case 370: { action.builder. - consumeFunctionDefinition(true); break; + case 370: { action. consumeFunctionDefinition(true); break; } - + // // Rule 373: initializer ::= ( expression_list ) // - case 373: { action.builder. - consumeInitializerConstructor(); break; + case 373: { action. consumeInitializerConstructor(); break; } - + // // Rule 374: initializer_clause ::= assignment_expression // - case 374: { action.builder. - consumeInitializer(); break; + case 374: { action. consumeInitializer(); break; } - + // // Rule 375: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list , } end_initializer_list // - case 375: { action.builder. - consumeInitializerList(); break; + case 375: { action. consumeInitializerList(); break; } - + // // Rule 376: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list } end_initializer_list // - case 376: { action.builder. - consumeInitializerList(); break; + case 376: { action. consumeInitializerList(); break; } - + // // Rule 377: initializer_clause ::= { <openscope-ast> } // - case 377: { action.builder. - consumeInitializerList(); break; + case 377: { action. consumeInitializerList(); break; } - + // // Rule 378: start_initializer_list ::= $Empty // - case 378: { action.builder. - initializerListStart(); break; + case 378: { action. initializerListStart(); break; } - + // // Rule 379: end_initializer_list ::= $Empty // - case 379: { action.builder. - initializerListEnd(); break; + case 379: { action. initializerListEnd(); break; } - + // // Rule 384: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } // - case 384: { action.builder. - consumeClassSpecifier(); break; + case 384: { action. consumeClassSpecifier(); break; } - + // // Rule 385: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt // - case 385: { action.builder. - consumeClassHead(false); break; + case 385: { action. consumeClassHead(false); break; } - + // // Rule 386: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt // - case 386: { action.builder. - consumeClassHead(false); break; + case 386: { action. consumeClassHead(false); break; } - + // // Rule 387: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt // - case 387: { action.builder. - consumeClassHead(true); break; + case 387: { action. consumeClassHead(true); break; } - + // // Rule 388: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt // - case 388: { action.builder. - consumeClassHead(true); break; + case 388: { action. consumeClassHead(true); break; } - + // // Rule 390: identifier_name_opt ::= $Empty // - case 390: { action.builder. - consumeEmpty(); break; + case 390: { action. consumeEmpty(); break; } - + // // Rule 394: visibility_label ::= access_specifier_keyword : // - case 394: { action.builder. - consumeVisibilityLabel(); break; + case 394: { action. consumeVisibilityLabel(); break; } - + // // Rule 395: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; // - case 395: { action.builder. - consumeDeclarationSimple(true); break; + case 395: { action. consumeDeclarationSimple(true); break; } - + // // Rule 396: member_declaration ::= declaration_specifiers_opt ; // - case 396: { action.builder. - consumeDeclarationSimple(false); break; + case 396: { action. consumeDeclarationSimple(false); break; } - + // // Rule 399: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 399: { action.builder. - consumeMemberDeclarationQualifiedId(); break; + case 399: { action. consumeMemberDeclarationQualifiedId(); break; } - + // // Rule 405: member_declaration ::= ERROR_TOKEN // - case 405: { action.builder. - consumeDeclarationProblem(); break; + case 405: { action. consumeDeclarationProblem(); break; } - + // // Rule 413: member_declarator ::= declarator constant_initializer // - case 413: { action.builder. - consumeMemberDeclaratorWithInitializer(); break; + case 413: { action. consumeMemberDeclaratorWithInitializer(); break; } - + // // Rule 414: member_declarator ::= bit_field_declarator : constant_expression // - case 414: { action.builder. - consumeBitField(true); break; + case 414: { action. consumeBitField(true); break; } - + // // Rule 415: member_declarator ::= : constant_expression // - case 415: { action.builder. - consumeBitField(false); break; + case 415: { action. consumeBitField(false); break; } - + // // Rule 416: bit_field_declarator ::= identifier_name // - case 416: { action.builder. - consumeDirectDeclaratorIdentifier(); break; + case 416: { action. consumeDirectDeclaratorIdentifier(); break; } - + // // Rule 417: constant_initializer ::= = constant_expression // - case 417: { action.builder. - consumeInitializer(); break; + case 417: { action. consumeInitializer(); break; } - + // // Rule 423: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 423: { action.builder. - consumeBaseSpecifier(false, false); break; + case 423: { action. consumeBaseSpecifier(false, false); break; } - + // // Rule 424: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 424: { action.builder. - consumeBaseSpecifier(true, true); break; + case 424: { action. consumeBaseSpecifier(true, true); break; } - + // // Rule 425: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 425: { action.builder. - consumeBaseSpecifier(true, true); break; + case 425: { action. consumeBaseSpecifier(true, true); break; } - + // // Rule 426: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 426: { action.builder. - consumeBaseSpecifier(true, false); break; + case 426: { action. consumeBaseSpecifier(true, false); break; } - + // // Rule 427: access_specifier_keyword ::= private // - case 427: { action.builder. - consumeAccessKeywordToken(); break; + case 427: { action. consumeToken(); break; } - + // // Rule 428: access_specifier_keyword ::= protected // - case 428: { action.builder. - consumeAccessKeywordToken(); break; + case 428: { action. consumeToken(); break; } - + // // Rule 429: access_specifier_keyword ::= public // - case 429: { action.builder. - consumeAccessKeywordToken(); break; + case 429: { action. consumeToken(); break; } - + // // Rule 431: access_specifier_keyword_opt ::= $Empty // - case 431: { action.builder. - consumeEmpty(); break; + case 431: { action. consumeEmpty(); break; } - + // // Rule 433: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > // - case 433: { action.builder. - consumeTemplateId(); break; + case 433: { action. consumeTemplateId(); break; } - + // // Rule 434: conversion_function_id ::= operator conversion_type_id // - case 434: { action.builder. - consumeConversionName(); break; + case 434: { action. consumeConversionName(); break; } - + // // Rule 435: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 435: { action.builder. - consumeTypeId(true); break; + case 435: { action. consumeTypeId(true); break; } - + // // Rule 436: conversion_type_id ::= type_specifier_seq // - case 436: { action.builder. - consumeTypeId(false); break; + case 436: { action. consumeTypeId(false); break; } - + // // Rule 437: conversion_declarator ::= <openscope-ast> ptr_operator_seq // - case 437: { action.builder. - consumeDeclaratorWithPointer(false); break; + case 437: { action. consumeDeclaratorWithPointer(false); break; } - + // // Rule 443: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 443: { action.builder. - consumeConstructorChainInitializer(); break; + case 443: { action. consumeConstructorChainInitializer(); break; } - + // // Rule 444: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 444: { action.builder. - consumeQualifiedId(false); break; + case 444: { action. consumeQualifiedId(false); break; } - + // // Rule 447: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > // - case 447: { action.builder. - consumeTemplateId(); break; + case 447: { action. consumeTemplateId(); break; } - + // // Rule 448: operator_id_name ::= operator overloadable_operator // - case 448: { action.builder. - consumeOperatorName(); break; + case 448: { action. consumeOperatorName(); break; } - + // // Rule 491: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration // - case 491: { action.builder. - consumeTemplateDeclaration(); break; + case 491: { action. consumeTemplateDeclaration(); break; } - + // // Rule 492: export_opt ::= export // - case 492: { action.builder. - consumePlaceHolder(); break; + case 492: { action. consumePlaceHolder(); break; } - + // // Rule 493: export_opt ::= $Empty // - case 493: { action.builder. - consumeEmpty(); break; + case 493: { action. consumeEmpty(); break; } - + // // Rule 497: template_parameter ::= parameter_declaration // - case 497: { action.builder. - consumeTemplateParamterDeclaration(); break; + case 497: { action. consumeTemplateParamterDeclaration(); break; } - + // // Rule 498: type_parameter ::= class identifier_name_opt // - case 498: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; + case 498: { action. consumeSimpleTypeTemplateParameter(false); break; } - + // // Rule 499: type_parameter ::= class identifier_name_opt = type_id // - case 499: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; + case 499: { action. consumeSimpleTypeTemplateParameter(true); break; } - + // // Rule 500: type_parameter ::= typename identifier_name_opt // - case 500: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; + case 500: { action. consumeSimpleTypeTemplateParameter(false); break; } - + // // Rule 501: type_parameter ::= typename identifier_name_opt = type_id // - case 501: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; + case 501: { action. consumeSimpleTypeTemplateParameter(true); break; } - + // // Rule 502: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt // - case 502: { action.builder. - consumeTemplatedTypeTemplateParameter(false); break; + case 502: { action. consumeTemplatedTypeTemplateParameter(false); break; } - + // // Rule 503: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression // - case 503: { action.builder. - consumeTemplatedTypeTemplateParameter(true); break; + case 503: { action. consumeTemplatedTypeTemplateParameter(true); break; } - + // // Rule 504: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > // - case 504: { action.builder. - consumeTemplateId(); break; + case 504: { action. consumeTemplateId(); break; } - + // // Rule 509: template_argument ::= assignment_expression // - case 509: { action.builder. - consumeTemplateArgumentExpression(); break; + case 509: { action. consumeTemplateArgumentExpression(); break; } - + // // Rule 510: template_argument ::= type_id // - case 510: { action.builder. - consumeTemplateArgumentTypeId(); break; + case 510: { action. consumeTemplateArgumentTypeId(); break; } - + // // Rule 511: explicit_instantiation ::= template declaration // - case 511: { action.builder. - consumeTemplateExplicitInstantiation(); break; + case 511: { action. consumeTemplateExplicitInstantiation(); break; } - + // // Rule 512: explicit_specialization ::= template < > declaration // - case 512: { action.builder. - consumeTemplateExplicitSpecialization(); break; + case 512: { action. consumeTemplateExplicitSpecialization(); break; } - + // // Rule 513: try_block ::= try compound_statement <openscope-ast> handler_seq // - case 513: { action.builder. - consumeStatementTryBlock(); break; + case 513: { action. consumeStatementTryBlock(); break; } - + // // Rule 516: handler ::= catch ( exception_declaration ) compound_statement // - case 516: { action.builder. - consumeStatementCatchHandler(false); break; + case 516: { action. consumeStatementCatchHandler(false); break; } - + // // Rule 517: handler ::= catch ( ... ) compound_statement // - case 517: { action.builder. - consumeStatementCatchHandler(true); break; + case 517: { action. consumeStatementCatchHandler(true); break; } - + // // Rule 518: exception_declaration ::= type_specifier_seq <openscope-ast> declarator // - case 518: { action.builder. - consumeDeclarationSimple(true); break; + case 518: { action. consumeDeclarationSimple(true); break; } - + // // Rule 519: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator // - case 519: { action.builder. - consumeDeclarationSimple(true); break; + case 519: { action. consumeDeclarationSimple(true); break; } - + // // Rule 520: exception_declaration ::= type_specifier_seq // - case 520: { action.builder. - consumeDeclarationSimple(false); break; + case 520: { action. consumeDeclarationSimple(false); break; } - + // // Rule 522: exception_specification ::= throw ( ) // - case 522: { action.builder. - consumePlaceHolder(); break; + case 522: { action. consumePlaceHolder(); break; } - + // // Rule 528: no_function_declarator_start ::= ERROR_TOKEN // - case 528: { action.builder. - consumeDeclarationProblem(); break; + case 528: { action. consumeDeclarationProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java index 81c979d2755..fa01ed96b41 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java @@ -3,7 +3,7 @@ * 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 -* http://www.eclipse.org/legal/epl_v10.html +* http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java index 1ca1cdabe3e..b90bfd4c0d6 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java @@ -3,7 +3,7 @@ * 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 -* http://www.eclipse.org/legal/epl_v10.html +* http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java index 3a8f3ed34db..e22bcd9cdde 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java @@ -3,7 +3,7 @@ * 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 -* http://www.eclipse.org/legal/epl_v10.html +* http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation @@ -16,11 +16,7 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; import lpg.lpgjavaruntime.*; import java.util.*; - import org.eclipse.cdt.core.dom.ast.*; -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.IParser; import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; @@ -28,7 +24,11 @@ import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; -public class CPPParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser +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; + +public class CPPParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser { private static ParseTable prs = new CPPParserprs(); private FixedBacktrackingParser btParser; @@ -165,28 +165,19 @@ public class CPPParser extends PrsStream implements RuleAction , IParserActionTo } -private CPPParserAction action; +private CPPBuildASTParserAction action; -// uncomment to use with backtracking parser public CPPParser() { // constructor } private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { - // binding resolution actions need access to IASTName nodes, temporary - action = new CPPParserAction (); - //action.resolver = new C99TypedefTrackerParserAction (this); - action.builder = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu); - //action.builder.setTokenMap(CPPParsersym.orderedTerminalSymbols); - - action.builder.setParserOptions(options); - - // comment this line to use with backtracking parser - //setParserAction(action); + action = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu); + action.setParserOptions(options); } public void addToken(IToken token) { - token.setKind(mapKind(token.getKind())); + token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called? super.addToken(token); } @@ -196,37 +187,35 @@ public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> opt setStreamLength(getSize()); initActions(tu, options); - final int errorRepairCount = -1; // _1 means full error handling + final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse super.resetTokenStream(); // allow tokens to be garbage collected // the completion node may be null - IASTCompletionNode compNode = action.builder.getASTCompletionNode(); + IASTCompletionNode compNode = action.getASTCompletionNode(); - //action = null; // causes getSecondaryParseResult() to fail - - // Comment this line to use with backtracking parser + //action = null; //parserAction = null; - return compNode; } - // uncomment this method to use with backtracking parser public List getRuleTokens() { return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1)); } + public IASTNode getSecondaryParseResult() { - return action.builder.getSecondaryParseResult(); + return action.getSecondaryParseResult(); } public String[] getOrderedTerminalSymbols() { return CPPParsersym.orderedTerminalSymbols; } +@SuppressWarnings("nls") public String getName() { - return "CPPParser"; //$NON-NLS-1$ + return "CPPParser"; } @@ -257,2017 +246,1729 @@ public CPPParser(String[] mapFrom) { // constructor // // Rule 1: <openscope-ast> ::= $Empty // - case 1: { action.builder. - openASTScope(); break; - } + case 1: { action. openASTScope(); break; + } // // Rule 2: <empty> ::= $Empty // - case 2: { action.builder. - consumeEmpty(); break; - } - + case 2: { action. consumeEmpty(); break; + } + // // Rule 13: translation_unit ::= declaration_seq_opt // - case 13: { action.builder. - consumeTranslationUnit(); break; + case 13: { action. consumeTranslationUnit(); break; } - + // // Rule 16: literal ::= integer // - case 16: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; + case 16: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } - + // // Rule 17: literal ::= 0 // - case 17: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; + case 17: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } - + // // Rule 18: literal ::= floating // - case 18: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; + case 18: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; } - + // // Rule 19: literal ::= charconst // - case 19: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; + case 19: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } - + // // Rule 20: literal ::= stringlit // - case 20: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; + case 20: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } - + // // Rule 21: literal ::= true // - case 21: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; + case 21: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } - + // // Rule 22: literal ::= false // - case 22: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; + case 22: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } - + // // Rule 23: literal ::= this // - case 23: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; + case 23: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } - + // // Rule 25: primary_expression ::= ( expression ) // - case 25: { action.builder. - consumeExpressionBracketed(); break; + case 25: { action. consumeExpressionBracketed(); break; } - + // // Rule 27: id_expression ::= qualified_or_unqualified_name // - case 27: { action.builder. - consumeExpressionName(); break; + case 27: { action. consumeExpressionName(); break; } - + // // Rule 34: unqualified_id_name ::= ~ identifier_token // - case 34: { action.builder. - consumeDestructorName(); break; + case 34: { action. consumeDestructorName(); break; } - + // // Rule 35: unqualified_id_name ::= ~ template_id_name // - case 35: { action.builder. - consumeDestructorNameTemplateId(); break; + case 35: { action. consumeDestructorNameTemplateId(); break; } - + // // Rule 36: identifier_name ::= identifier_token // - case 36: { action.builder. - consumeIdentifierName(); break; + case 36: { action. consumeIdentifierName(); break; } - + // // Rule 37: template_opt ::= template // - case 37: { action.builder. - consumePlaceHolder(); break; + case 37: { action. consumePlaceHolder(); break; } - + // // Rule 38: template_opt ::= $Empty // - case 38: { action.builder. - consumeEmpty(); break; + case 38: { action. consumeEmpty(); break; } - + // // Rule 39: dcolon_opt ::= :: // - case 39: { action.builder. - consumeToken(); break; + case 39: { action. consumeToken(); break; } - + // // Rule 40: dcolon_opt ::= $Empty // - case 40: { action.builder. - consumeEmpty(); break; + case 40: { action. consumeEmpty(); break; } - + // // Rule 41: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name // - case 41: { action.builder. - consumeQualifiedId(true); break; + case 41: { action. consumeQualifiedId(true); break; } - + // // Rule 42: qualified_id_name ::= :: unqualified_id_name // - case 42: { action.builder. - consumeGlobalQualifiedId(); break; + case 42: { action. consumeGlobalQualifiedId(); break; } - + // // Rule 43: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // - case 43: { action.builder. - consumeNestedNameSpecifier(true); break; + case 43: { action. consumeNestedNameSpecifier(true); break; } - + // // Rule 44: nested_name_specifier ::= class_or_namespace_name :: // - case 44: { action.builder. - consumeNestedNameSpecifier(false); break; + case 44: { action. consumeNestedNameSpecifier(false); break; } - + // // Rule 45: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // - case 45: { action.builder. - consumeNestedNameSpecifier(true); break; + case 45: { action. consumeNestedNameSpecifier(true); break; } - + // // Rule 46: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // - case 46: { action.builder. - consumeNestedNameSpecifier(false); break; + case 46: { action. consumeNestedNameSpecifier(false); break; } - + // // Rule 47: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name // - case 47: { action.builder. - consumeNameWithTemplateKeyword(); break; + case 47: { action. consumeNameWithTemplateKeyword(); break; } - + // // Rule 49: nested_name_specifier_opt ::= $Empty // - case 49: { action.builder. - consumeNestedNameSpecifierEmpty(); break; + case 49: { action. consumeNestedNameSpecifierEmpty(); break; } - + // // Rule 52: postfix_expression ::= postfix_expression [ expression ] // - case 52: { action.builder. - consumeExpressionArraySubscript(); break; + case 52: { action. consumeExpressionArraySubscript(); break; } - + // // Rule 53: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 53: { action.builder. - consumeExpressionFunctionCall(); break; + case 53: { action. consumeExpressionFunctionCall(); break; } - + // // Rule 54: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 54: { action.builder. - consumeExpressionSimpleTypeConstructor(); break; + case 54: { action. consumeExpressionSimpleTypeConstructor(); break; } - + // // Rule 55: postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt ) // - case 55: { action.builder. - consumeExpressionTypeName(); break; + case 55: { action. consumeExpressionTypeName(); break; } - + // // Rule 56: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) // - case 56: { action.builder. - consumeExpressionTypeName(); break; + case 56: { action. consumeExpressionTypeName(); break; } - + // // Rule 57: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // - case 57: { action.builder. - consumeExpressionFieldReference(false, false); break; + case 57: { action. consumeExpressionFieldReference(false, false); break; } - + // // Rule 58: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 58: { action.builder. - consumeExpressionFieldReference(true, false); break; + case 58: { action. consumeExpressionFieldReference(true, false); break; } - + // // Rule 59: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 59: { action.builder. - consumeExpressionFieldReference(false, true); break; + case 59: { action. consumeExpressionFieldReference(false, true); break; } - + // // Rule 60: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 60: { action.builder. - consumeExpressionFieldReference(true, true); break; + case 60: { action. consumeExpressionFieldReference(true, true); break; } - + // // Rule 61: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 61: { action.builder. - consumeExpressionFieldReference(false, false); break; + case 61: { action. consumeExpressionFieldReference(false, false); break; } - + // // Rule 62: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 62: { action.builder. - consumeExpressionFieldReference(true, false); break; + case 62: { action. consumeExpressionFieldReference(true, false); break; } - + // // Rule 63: postfix_expression ::= postfix_expression ++ // - case 63: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; + case 63: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } - + // // Rule 64: postfix_expression ::= postfix_expression -- // - case 64: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; + case 64: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } - + // // Rule 65: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 65: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; + case 65: { action. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } - + // // Rule 66: postfix_expression ::= static_cast < type_id > ( expression ) // - case 66: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; + case 66: { action. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } - + // // Rule 67: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 67: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; + case 67: { action. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } - + // // Rule 68: postfix_expression ::= const_cast < type_id > ( expression ) // - case 68: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; + case 68: { action. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } - + // // Rule 69: postfix_expression ::= typeid ( expression ) // - case 69: { action.builder. - consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; + case 69: { action. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } - + // // Rule 70: postfix_expression ::= typeid ( type_id ) // - case 70: { action.builder. - consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; + case 70: { action. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } - + // // Rule 71: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name // - case 71: { action.builder. - consumePsudoDestructorName(true); break; + case 71: { action. consumePsudoDestructorName(true); break; } - + // // Rule 72: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name // - case 72: { action.builder. - consumePsudoDestructorName(true); break; + case 72: { action. consumePsudoDestructorName(true); break; } - + // // Rule 73: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name // - case 73: { action.builder. - consumePsudoDestructorName(false); break; + case 73: { action. consumePsudoDestructorName(false); break; } - + // // Rule 74: destructor_type_name ::= ~ identifier_token // - case 74: { action.builder. - consumeDestructorName(); break; + case 74: { action. consumeDestructorName(); break; } - + // // Rule 75: destructor_type_name ::= ~ template_id_name // - case 75: { action.builder. - consumeDestructorNameTemplateId(); break; + case 75: { action. consumeDestructorNameTemplateId(); break; } - + // // Rule 79: unary_expression ::= ++ cast_expression // - case 79: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; + case 79: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } - + // // Rule 80: unary_expression ::= -- cast_expression // - case 80: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; + case 80: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } - + // // Rule 81: unary_expression ::= & cast_expression // - case 81: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; + case 81: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } - + // // Rule 82: unary_expression ::= * cast_expression // - case 82: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; + case 82: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } - + // // Rule 83: unary_expression ::= + cast_expression // - case 83: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; + case 83: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } - + // // Rule 84: unary_expression ::= - cast_expression // - case 84: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; + case 84: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } - + // // Rule 85: unary_expression ::= ~ cast_expression // - case 85: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; + case 85: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } - + // // Rule 86: unary_expression ::= ! cast_expression // - case 86: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; + case 86: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } - + // // Rule 87: unary_expression ::= sizeof unary_expression // - case 87: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; + case 87: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } - + // // Rule 88: unary_expression ::= sizeof ( type_id ) // - case 88: { action.builder. - consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; + case 88: { action. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } - + // // Rule 89: new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt // - case 89: { action.builder. - consumeExpressionNew(true); break; + case 89: { action. consumeExpressionNew(true); break; } - + // // Rule 90: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt // - case 90: { action.builder. - consumeExpressionNew(false); break; + case 90: { action. consumeExpressionNew(false); break; } - + // // Rule 92: new_placement_opt ::= $Empty // - case 92: { action.builder. - consumeEmpty(); break; + case 92: { action. consumeEmpty(); break; } - + // // Rule 93: new_type_id ::= type_specifier_seq // - case 93: { action.builder. - consumeTypeId(false); break; + case 93: { action. consumeTypeId(false); break; } - + // // Rule 94: new_type_id ::= type_specifier_seq new_declarator // - case 94: { action.builder. - consumeTypeId(true); break; + case 94: { action. consumeTypeId(true); break; } - + // // Rule 95: new_declarator ::= <openscope-ast> new_pointer_operators // - case 95: { action.builder. - consumeNewDeclarator(); break; + case 95: { action. consumeNewDeclarator(); break; } - + // // Rule 102: new_initializer ::= ( expression_list_opt ) // - case 102: { action.builder. - consumeNewInitializer(); break; + case 102: { action. consumeNewInitializer(); break; } - + // // Rule 104: new_initializer_opt ::= $Empty // - case 104: { action.builder. - consumeEmpty(); break; + case 104: { action. consumeEmpty(); break; } - + // // Rule 105: delete_expression ::= dcolon_opt delete cast_expression // - case 105: { action.builder. - consumeExpressionDelete(false); break; + case 105: { action. consumeExpressionDelete(false); break; } - + // // Rule 106: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 106: { action.builder. - consumeExpressionDelete(true); break; + case 106: { action. consumeExpressionDelete(true); break; } - + // // Rule 108: cast_expression ::= ( type_id ) cast_expression // - case 108: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_cast); break; + case 108: { action. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } - + // // Rule 110: pm_expression ::= pm_expression .* cast_expression // - case 110: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; + case 110: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } - + // // Rule 111: pm_expression ::= pm_expression ->* cast_expression // - case 111: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; + case 111: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } - + // // Rule 113: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 113: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; + case 113: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } - + // // Rule 114: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 114: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; + case 114: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } - + // // Rule 115: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 115: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; + case 115: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } - + // // Rule 117: additive_expression ::= additive_expression + multiplicative_expression // - case 117: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; + case 117: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } - + // // Rule 118: additive_expression ::= additive_expression - multiplicative_expression // - case 118: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; + case 118: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } - + // // Rule 120: shift_expression ::= shift_expression << additive_expression // - case 120: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; + case 120: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } - + // // Rule 121: shift_expression ::= shift_expression >> additive_expression // - case 121: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; + case 121: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } - + // // Rule 123: relational_expression ::= relational_expression < shift_expression // - case 123: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; + case 123: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } - + // // Rule 124: relational_expression ::= relational_expression > shift_expression // - case 124: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; + case 124: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } - + // // Rule 125: relational_expression ::= relational_expression <= shift_expression // - case 125: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; + case 125: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } - + // // Rule 126: relational_expression ::= relational_expression >= shift_expression // - case 126: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; + case 126: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } - + // // Rule 128: equality_expression ::= equality_expression == relational_expression // - case 128: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; + case 128: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } - + // // Rule 129: equality_expression ::= equality_expression != relational_expression // - case 129: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; + case 129: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } - + // // Rule 131: and_expression ::= and_expression & equality_expression // - case 131: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; + case 131: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } - + // // Rule 133: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 133: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; + case 133: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } - + // // Rule 135: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 135: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; + case 135: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } - + // // Rule 137: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 137: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; + case 137: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } - + // // Rule 139: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 139: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; + case 139: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } - + // // Rule 141: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 141: { action.builder. - consumeExpressionConditional(); break; + case 141: { action. consumeExpressionConditional(); break; } - + // // Rule 142: throw_expression ::= throw // - case 142: { action.builder. - consumeExpressionThrow(false); break; + case 142: { action. consumeExpressionThrow(false); break; } - + // // Rule 143: throw_expression ::= throw assignment_expression // - case 143: { action.builder. - consumeExpressionThrow(true); break; + case 143: { action. consumeExpressionThrow(true); break; } - + // // Rule 146: assignment_expression ::= logical_or_expression = assignment_expression // - case 146: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; + case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } - + // // Rule 147: assignment_expression ::= logical_or_expression *= assignment_expression // - case 147: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; + case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } - + // // Rule 148: assignment_expression ::= logical_or_expression /= assignment_expression // - case 148: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; + case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } - + // // Rule 149: assignment_expression ::= logical_or_expression %= assignment_expression // - case 149: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; + case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } - + // // Rule 150: assignment_expression ::= logical_or_expression += assignment_expression // - case 150: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; + case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } - + // // Rule 151: assignment_expression ::= logical_or_expression -= assignment_expression // - case 151: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; + case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } - + // // Rule 152: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 152: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; + case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } - + // // Rule 153: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 153: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; + case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } - + // // Rule 154: assignment_expression ::= logical_or_expression &= assignment_expression // - case 154: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; + case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } - + // // Rule 155: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 155: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; + case 155: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } - + // // Rule 156: assignment_expression ::= logical_or_expression |= assignment_expression // - case 156: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; + case 156: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } - + // // Rule 158: expression_list ::= <openscope-ast> expression_list_actual // - case 158: { action.builder. - consumeExpressionList(); break; + case 158: { action. consumeExpressionList(); break; } - + // // Rule 162: expression_list_opt ::= $Empty // - case 162: { action.builder. - consumeEmpty(); break; + case 162: { action. consumeEmpty(); break; } - + // // Rule 164: expression_opt ::= $Empty // - case 164: { action.builder. - consumeEmpty(); break; + case 164: { action. consumeEmpty(); break; } - + // // Rule 167: constant_expression_opt ::= $Empty // - case 167: { action.builder. - consumeEmpty(); break; + case 167: { action. consumeEmpty(); break; } - + // // Rule 176: statement ::= ERROR_TOKEN // - case 176: { action.builder. - consumeStatementProblem(); break; + case 176: { action. consumeStatementProblem(); break; } - + // // Rule 177: labeled_statement ::= identifier : statement // - case 177: { action.builder. - consumeStatementLabeled(); break; + case 177: { action. consumeStatementLabeled(); break; } - + // // Rule 178: labeled_statement ::= case constant_expression : statement // - case 178: { action.builder. - consumeStatementCase(); break; + case 178: { action. consumeStatementCase(); break; } - + // // Rule 179: labeled_statement ::= default : statement // - case 179: { action.builder. - consumeStatementDefault(); break; + case 179: { action. consumeStatementDefault(); break; } - + // // Rule 180: expression_statement ::= expression ; // - case 180: { action.builder. - consumeStatementExpression(); break; + case 180: { action. consumeStatementExpression(); break; } - + // // Rule 181: expression_statement ::= ; // - case 181: { action.builder. - consumeStatementNull(); break; + case 181: { action. consumeStatementNull(); break; } - + // // Rule 182: compound_statement ::= { <openscope-ast> statement_seq } // - case 182: { action.builder. - consumeStatementCompoundStatement(true); break; + case 182: { action. consumeStatementCompoundStatement(true); break; } - + // // Rule 183: compound_statement ::= { } // - case 183: { action.builder. - consumeStatementCompoundStatement(false); break; + case 183: { action. consumeStatementCompoundStatement(false); break; } - + // // Rule 186: selection_statement ::= if ( condition ) statement // - case 186: { action.builder. - consumeStatementIf(false); break; + case 186: { action. consumeStatementIf(false); break; } - + // // Rule 187: selection_statement ::= if ( condition ) statement else statement // - case 187: { action.builder. - consumeStatementIf(true); break; + case 187: { action. consumeStatementIf(true); break; } - + // // Rule 188: selection_statement ::= switch ( condition ) statement // - case 188: { action.builder. - consumeStatementSwitch(); break; + case 188: { action. consumeStatementSwitch(); break; } - + // // Rule 190: condition ::= type_specifier_seq declarator = assignment_expression // - case 190: { action.builder. - consumeConditionDeclaration(); break; + case 190: { action. consumeConditionDeclaration(); break; } - + // // Rule 192: condition_opt ::= $Empty // - case 192: { action.builder. - consumeEmpty(); break; + case 192: { action. consumeEmpty(); break; } - + // // Rule 193: iteration_statement ::= while ( condition ) statement // - case 193: { action.builder. - consumeStatementWhileLoop(); break; + case 193: { action. consumeStatementWhileLoop(); break; } - + // // Rule 194: iteration_statement ::= do statement while ( expression ) ; // - case 194: { action.builder. - consumeStatementDoLoop(); break; + case 194: { action. consumeStatementDoLoop(); break; } - + // // Rule 195: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 195: { action.builder. - consumeStatementForLoop(); break; + case 195: { action. consumeStatementForLoop(); break; } - + // // Rule 197: for_init_statement ::= simple_declaration_with_declspec // - case 197: { action.builder. - consumeStatementDeclaration(); break; + case 197: { action. consumeStatementDeclaration(); break; } - + // // Rule 198: jump_statement ::= break ; // - case 198: { action.builder. - consumeStatementBreak(); break; + case 198: { action. consumeStatementBreak(); break; } - + // // Rule 199: jump_statement ::= continue ; // - case 199: { action.builder. - consumeStatementContinue(); break; + case 199: { action. consumeStatementContinue(); break; } - + // // Rule 200: jump_statement ::= return expression ; // - case 200: { action.builder. - consumeStatementReturn(true); break; + case 200: { action. consumeStatementReturn(true); break; } - + // // Rule 201: jump_statement ::= return ; // - case 201: { action.builder. - consumeStatementReturn(false); break; + case 201: { action. consumeStatementReturn(false); break; } - + // // Rule 202: jump_statement ::= goto identifier_token ; // - case 202: { action.builder. - consumeStatementGoto(); break; + case 202: { action. consumeStatementGoto(); break; } - + // // Rule 203: declaration_statement ::= block_declaration // - case 203: { action.builder. - consumeStatementDeclarationWithDisambiguation(); break; + case 203: { action. consumeStatementDeclarationWithDisambiguation(); break; } - + // // Rule 204: declaration_statement ::= function_definition // - case 204: { action.builder. - consumeStatementDeclaration(); break; + case 204: { action. consumeStatementDeclaration(); break; } - + // // Rule 212: declaration ::= ERROR_TOKEN // - case 212: { action.builder. - consumeDeclarationProblem(); break; + case 212: { action. consumeDeclarationProblem(); break; } - + // // Rule 222: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ; // - case 222: { action.builder. - consumeDeclarationSimple(true); break; + case 222: { action. consumeDeclarationSimple(true); break; } - + // // Rule 223: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ; // - case 223: { action.builder. - consumeDeclarationSimple(true); break; + case 223: { action. consumeDeclarationSimple(true); break; } - + // // Rule 224: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers // - case 224: { action.builder. - consumeDeclarationSpecifiersSimple(); break; + case 224: { action. consumeDeclarationSpecifiersSimple(); break; } - + // // Rule 225: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers // - case 225: { action.builder. - consumeDeclarationSpecifiersComposite(); break; + case 225: { action. consumeDeclarationSpecifiersComposite(); break; } - + // // Rule 226: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers // - case 226: { action.builder. - consumeDeclarationSpecifiersComposite(); break; + case 226: { action. consumeDeclarationSpecifiersComposite(); break; } - + // // Rule 227: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers // - case 227: { action.builder. - consumeDeclarationSpecifiersComposite(); break; + case 227: { action. consumeDeclarationSpecifiersComposite(); break; } - + // // Rule 228: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers // - case 228: { action.builder. - consumeDeclarationSpecifiersTypeName(); break; + case 228: { action. consumeDeclarationSpecifiersTypeName(); break; } - + // // Rule 230: declaration_specifiers_opt ::= $Empty // - case 230: { action.builder. - consumeEmpty(); break; + case 230: { action. consumeEmpty(); break; } - + // // Rule 234: no_type_declaration_specifier ::= friend // - case 234: { action.builder. - consumeDeclSpecToken(); break; + case 234: { action. consumeDeclSpecToken(); break; } - + // // Rule 235: no_type_declaration_specifier ::= typedef // - case 235: { action.builder. - consumeDeclSpecToken(); break; + case 235: { action. consumeDeclSpecToken(); break; } - + // // Rule 255: storage_class_specifier ::= auto // - case 255: { action.builder. - consumeDeclSpecToken(); break; + case 255: { action. consumeDeclSpecToken(); break; } - + // // Rule 256: storage_class_specifier ::= register // - case 256: { action.builder. - consumeDeclSpecToken(); break; + case 256: { action. consumeDeclSpecToken(); break; } - + // // Rule 257: storage_class_specifier ::= static // - case 257: { action.builder. - consumeDeclSpecToken(); break; + case 257: { action. consumeDeclSpecToken(); break; } - + // // Rule 258: storage_class_specifier ::= extern // - case 258: { action.builder. - consumeDeclSpecToken(); break; + case 258: { action. consumeDeclSpecToken(); break; } - + // // Rule 259: storage_class_specifier ::= mutable // - case 259: { action.builder. - consumeDeclSpecToken(); break; + case 259: { action. consumeDeclSpecToken(); break; } - + // // Rule 260: function_specifier ::= inline // - case 260: { action.builder. - consumeDeclSpecToken(); break; + case 260: { action. consumeDeclSpecToken(); break; } - + // // Rule 261: function_specifier ::= virtual // - case 261: { action.builder. - consumeDeclSpecToken(); break; + case 261: { action. consumeDeclSpecToken(); break; } - + // // Rule 262: function_specifier ::= explicit // - case 262: { action.builder. - consumeDeclSpecToken(); break; + case 262: { action. consumeDeclSpecToken(); break; } - + // // Rule 263: simple_type_specifier ::= char // - case 263: { action.builder. - consumeDeclSpecToken(); break; + case 263: { action. consumeDeclSpecToken(); break; } - + // // Rule 264: simple_type_specifier ::= wchar_t // - case 264: { action.builder. - consumeDeclSpecToken(); break; + case 264: { action. consumeDeclSpecToken(); break; } - + // // Rule 265: simple_type_specifier ::= bool // - case 265: { action.builder. - consumeDeclSpecToken(); break; + case 265: { action. consumeDeclSpecToken(); break; } - + // // Rule 266: simple_type_specifier ::= short // - case 266: { action.builder. - consumeDeclSpecToken(); break; + case 266: { action. consumeDeclSpecToken(); break; } - + // // Rule 267: simple_type_specifier ::= int // - case 267: { action.builder. - consumeDeclSpecToken(); break; + case 267: { action. consumeDeclSpecToken(); break; } - + // // Rule 268: simple_type_specifier ::= long // - case 268: { action.builder. - consumeDeclSpecToken(); break; + case 268: { action. consumeDeclSpecToken(); break; } - + // // Rule 269: simple_type_specifier ::= signed // - case 269: { action.builder. - consumeDeclSpecToken(); break; + case 269: { action. consumeDeclSpecToken(); break; } - + // // Rule 270: simple_type_specifier ::= unsigned // - case 270: { action.builder. - consumeDeclSpecToken(); break; + case 270: { action. consumeDeclSpecToken(); break; } - + // // Rule 271: simple_type_specifier ::= float // - case 271: { action.builder. - consumeDeclSpecToken(); break; + case 271: { action. consumeDeclSpecToken(); break; } - + // // Rule 272: simple_type_specifier ::= double // - case 272: { action.builder. - consumeDeclSpecToken(); break; + case 272: { action. consumeDeclSpecToken(); break; } - + // // Rule 273: simple_type_specifier ::= void // - case 273: { action.builder. - consumeDeclSpecToken(); break; + case 273: { action. consumeDeclSpecToken(); break; } - + // // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 276: { action.builder. - consumeQualifiedId(false); break; + case 276: { action. consumeQualifiedId(false); break; } - + // // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 277: { action.builder. - consumeQualifiedId(false); break; + case 277: { action. consumeQualifiedId(false); break; } - + // // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 278: { action.builder. - consumeQualifiedId(false); break; + case 278: { action. consumeQualifiedId(false); break; } - + // // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 279: { action.builder. - consumeQualifiedId(true); break; + case 279: { action. consumeQualifiedId(true); break; } - + // // Rule 281: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 281: { action.builder. - consumeTypeSpecifierElaborated(false); break; + case 281: { action. consumeTypeSpecifierElaborated(false); break; } - + // // Rule 282: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 282: { action.builder. - consumeTypeSpecifierElaborated(true); break; + case 282: { action. consumeTypeSpecifierElaborated(true); break; } - + // // Rule 283: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 283: { action.builder. - consumeTypeSpecifierElaborated(false); break; + case 283: { action. consumeTypeSpecifierElaborated(false); break; } - + // // Rule 284: enum_specifier ::= enum { <openscope-ast> enumerator_list_opt } // - case 284: { action.builder. - consumeTypeSpecifierEnumeration(false); break; + case 284: { action. consumeTypeSpecifierEnumeration(false); break; } - + // // Rule 285: enum_specifier ::= enum identifier_token { <openscope-ast> enumerator_list_opt } // - case 285: { action.builder. - consumeTypeSpecifierEnumeration(true); break; + case 285: { action. consumeTypeSpecifierEnumeration(true); break; } - + // // Rule 290: enumerator_definition ::= identifier_token // - case 290: { action.builder. - consumeEnumerator(false); break; + case 290: { action. consumeEnumerator(false); break; } - + // // Rule 291: enumerator_definition ::= identifier_token = constant_expression // - case 291: { action.builder. - consumeEnumerator(true); break; + case 291: { action. consumeEnumerator(true); break; } - + // // Rule 295: named_namespace_definition ::= namespace namespace_name { <openscope-ast> declaration_seq_opt } // - case 295: { action.builder. - consumeNamespaceDefinition(true); break; + case 295: { action. consumeNamespaceDefinition(true); break; } - + // // Rule 296: unnamed_namespace_definition ::= namespace { <openscope-ast> declaration_seq_opt } // - case 296: { action.builder. - consumeNamespaceDefinition(false); break; + case 296: { action. consumeNamespaceDefinition(false); break; } - + // // Rule 297: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 297: { action.builder. - consumeNamespaceAliasDefinition(); break; + case 297: { action. consumeNamespaceAliasDefinition(); break; } - + // // Rule 298: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 298: { action.builder. - consumeUsingDeclaration(); break; + case 298: { action. consumeUsingDeclaration(); break; } - + // // Rule 299: typename_opt ::= typename // - case 299: { action.builder. - consumePlaceHolder(); break; + case 299: { action. consumePlaceHolder(); break; } - + // // Rule 300: typename_opt ::= $Empty // - case 300: { action.builder. - consumeEmpty(); break; + case 300: { action. consumeEmpty(); break; } - + // // Rule 301: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 301: { action.builder. - consumeUsingDirective(); break; + case 301: { action. consumeUsingDirective(); break; } - + // // Rule 302: asm_definition ::= asm ( stringlit ) ; // - case 302: { action.builder. - consumeDeclarationASM(); break; + case 302: { action. consumeDeclarationASM(); break; } - + // // Rule 303: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt } // - case 303: { action.builder. - consumeLinkageSpecification(); break; + case 303: { action. consumeLinkageSpecification(); break; } - + // // Rule 304: linkage_specification ::= extern stringlit <openscope-ast> declaration // - case 304: { action.builder. - consumeLinkageSpecification(); break; + case 304: { action. consumeLinkageSpecification(); break; } - + // // Rule 309: init_declarator_complete ::= init_declarator // - case 309: { action.builder. - consumeInitDeclaratorComplete(); break; + case 309: { action. consumeInitDeclaratorComplete(); break; } - + // // Rule 311: init_declarator ::= declarator initializer // - case 311: { action.builder. - consumeDeclaratorWithInitializer(true); break; + case 311: { action. consumeDeclaratorWithInitializer(true); break; } - + // // Rule 313: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator // - case 313: { action.builder. - consumeDeclaratorWithPointer(true); break; + case 313: { action. consumeDeclaratorWithPointer(true); break; } - + // // Rule 315: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator // - case 315: { action.builder. - consumeDeclaratorWithPointer(true); break; + case 315: { action. consumeDeclaratorWithPointer(true); break; } - + // // Rule 319: basic_direct_declarator ::= declarator_id_name // - case 319: { action.builder. - consumeDirectDeclaratorIdentifier(); break; + case 319: { action. consumeDirectDeclaratorIdentifier(); break; } - + // // Rule 320: basic_direct_declarator ::= ( declarator ) // - case 320: { action.builder. - consumeDirectDeclaratorBracketed(); break; + case 320: { action. consumeDirectDeclaratorBracketed(); break; } - + // // Rule 321: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt // - case 321: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(true); break; + case 321: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } - + // // Rule 322: array_direct_declarator ::= array_direct_declarator array_modifier // - case 322: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 322: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 323: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 323: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 323: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 324: array_modifier ::= [ constant_expression ] // - case 324: { action.builder. - consumeDirectDeclaratorArrayModifier(true); break; + case 324: { action. consumeDirectDeclaratorArrayModifier(true); break; } - + // // Rule 325: array_modifier ::= [ ] // - case 325: { action.builder. - consumeDirectDeclaratorArrayModifier(false); break; + case 325: { action. consumeDirectDeclaratorArrayModifier(false); break; } - + // // Rule 326: ptr_operator ::= * <openscope-ast> cv_qualifier_seq_opt // - case 326: { action.builder. - consumePointer(); break; + case 326: { action. consumePointer(); break; } - + // // Rule 327: ptr_operator ::= & // - case 327: { action.builder. - consumeReferenceOperator(); break; + case 327: { action. consumeReferenceOperator(); break; } - + // // Rule 328: ptr_operator ::= dcolon_opt nested_name_specifier * <openscope-ast> cv_qualifier_seq_opt // - case 328: { action.builder. - consumePointerToMember(); break; + case 328: { action. consumePointerToMember(); break; } - + // // Rule 334: cv_qualifier ::= const // - case 334: { action.builder. - consumeDeclSpecToken(); break; + case 334: { action. consumeDeclSpecToken(); break; } - + // // Rule 335: cv_qualifier ::= volatile // - case 335: { action.builder. - consumeDeclSpecToken(); break; + case 335: { action. consumeDeclSpecToken(); break; } - + // // Rule 337: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // - case 337: { action.builder. - consumeQualifiedId(false); break; + case 337: { action. consumeQualifiedId(false); break; } - + // // Rule 338: type_id ::= type_specifier_seq // - case 338: { action.builder. - consumeTypeId(false); break; + case 338: { action. consumeTypeId(false); break; } - + // // Rule 339: type_id ::= type_specifier_seq abstract_declarator // - case 339: { action.builder. - consumeTypeId(true); break; + case 339: { action. consumeTypeId(true); break; } - + // // Rule 342: abstract_declarator ::= <openscope-ast> ptr_operator_seq // - case 342: { action.builder. - consumeDeclaratorWithPointer(false); break; + case 342: { action. consumeDeclaratorWithPointer(false); break; } - + // // Rule 343: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator // - case 343: { action.builder. - consumeDeclaratorWithPointer(true); break; + case 343: { action. consumeDeclaratorWithPointer(true); break; } - + // // Rule 347: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 347: { action.builder. - consumeDirectDeclaratorBracketed(); break; + case 347: { action. consumeDirectDeclaratorBracketed(); break; } - + // // Rule 348: basic_direct_abstract_declarator ::= ( ) // - case 348: { action.builder. - consumeAbstractDeclaratorEmpty(); break; + case 348: { action. consumeAbstractDeclaratorEmpty(); break; } - + // // Rule 349: array_direct_abstract_declarator ::= array_modifier // - case 349: { action.builder. - consumeDirectDeclaratorArrayDeclarator(false); break; + case 349: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } - + // // Rule 350: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 350: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 350: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 351: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 351: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 351: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 352: 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 352: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(true); break; + case 352: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } - + // // Rule 353: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt // - case 353: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(false); break; + case 353: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; } - + // // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 354: { action.builder. - consumePlaceHolder(); break; + case 354: { action. consumePlaceHolder(); break; } - + // // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 355: { action.builder. - consumeEmpty(); break; + case 355: { action. consumeEmpty(); break; } - + // // Rule 356: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 356: { action.builder. - consumePlaceHolder(); break; + case 356: { action. consumePlaceHolder(); break; } - + // // Rule 362: abstract_declarator_opt ::= $Empty // - case 362: { action.builder. - consumeEmpty(); break; + case 362: { action. consumeEmpty(); break; } - + // // Rule 363: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 363: { action.builder. - consumeParameterDeclaration(); break; + case 363: { action. consumeParameterDeclaration(); break; } - + // // Rule 364: parameter_declaration ::= declaration_specifiers // - case 364: { action.builder. - consumeParameterDeclarationWithoutDeclarator(); break; + case 364: { action. consumeParameterDeclarationWithoutDeclarator(); break; } - + // // Rule 366: parameter_init_declarator ::= declarator = parameter_initializer // - case 366: { action.builder. - consumeDeclaratorWithInitializer(true); break; + case 366: { action. consumeDeclaratorWithInitializer(true); break; } - + // // Rule 368: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 368: { action.builder. - consumeDeclaratorWithInitializer(true); break; + case 368: { action. consumeDeclaratorWithInitializer(true); break; } - + // // Rule 369: parameter_init_declarator ::= = parameter_initializer // - case 369: { action.builder. - consumeDeclaratorWithInitializer(false); break; + case 369: { action. consumeDeclaratorWithInitializer(false); break; } - + // // Rule 370: parameter_initializer ::= assignment_expression // - case 370: { action.builder. - consumeInitializer(); break; + case 370: { action. consumeInitializer(); break; } - + // // Rule 371: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body // - case 371: { action.builder. - consumeFunctionDefinition(false); break; + case 371: { action. consumeFunctionDefinition(false); break; } - + // // Rule 372: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq // - case 372: { action.builder. - consumeFunctionDefinition(true); break; + case 372: { action. consumeFunctionDefinition(true); break; } - + // // Rule 375: initializer ::= ( expression_list ) // - case 375: { action.builder. - consumeInitializerConstructor(); break; + case 375: { action. consumeInitializerConstructor(); break; } - + // // Rule 376: initializer_clause ::= assignment_expression // - case 376: { action.builder. - consumeInitializer(); break; + case 376: { action. consumeInitializer(); break; } - + // // Rule 377: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list , } end_initializer_list // - case 377: { action.builder. - consumeInitializerList(); break; + case 377: { action. consumeInitializerList(); break; } - + // // Rule 378: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list } end_initializer_list // - case 378: { action.builder. - consumeInitializerList(); break; + case 378: { action. consumeInitializerList(); break; } - + // // Rule 379: initializer_clause ::= { <openscope-ast> } // - case 379: { action.builder. - consumeInitializerList(); break; + case 379: { action. consumeInitializerList(); break; } - + // // Rule 380: start_initializer_list ::= $Empty // - case 380: { action.builder. - initializerListStart(); break; + case 380: { action. initializerListStart(); break; } - + // // Rule 381: end_initializer_list ::= $Empty // - case 381: { action.builder. - initializerListEnd(); break; + case 381: { action. initializerListEnd(); break; } - + // // Rule 386: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } // - case 386: { action.builder. - consumeClassSpecifier(); break; + case 386: { action. consumeClassSpecifier(); break; } - + // // Rule 387: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt // - case 387: { action.builder. - consumeClassHead(false); break; + case 387: { action. consumeClassHead(false); break; } - + // // Rule 388: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt // - case 388: { action.builder. - consumeClassHead(false); break; + case 388: { action. consumeClassHead(false); break; } - + // // Rule 389: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt // - case 389: { action.builder. - consumeClassHead(true); break; + case 389: { action. consumeClassHead(true); break; } - + // // Rule 390: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt // - case 390: { action.builder. - consumeClassHead(true); break; + case 390: { action. consumeClassHead(true); break; } - + // // Rule 392: identifier_name_opt ::= $Empty // - case 392: { action.builder. - consumeEmpty(); break; + case 392: { action. consumeEmpty(); break; } - + // // Rule 396: visibility_label ::= access_specifier_keyword : // - case 396: { action.builder. - consumeVisibilityLabel(); break; + case 396: { action. consumeVisibilityLabel(); break; } - + // // Rule 397: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; // - case 397: { action.builder. - consumeDeclarationSimple(true); break; + case 397: { action. consumeDeclarationSimple(true); break; } - + // // Rule 398: member_declaration ::= declaration_specifiers_opt ; // - case 398: { action.builder. - consumeDeclarationSimple(false); break; + case 398: { action. consumeDeclarationSimple(false); break; } - + // // Rule 401: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 401: { action.builder. - consumeMemberDeclarationQualifiedId(); break; + case 401: { action. consumeMemberDeclarationQualifiedId(); break; } - + // // Rule 407: member_declaration ::= ERROR_TOKEN // - case 407: { action.builder. - consumeDeclarationProblem(); break; + case 407: { action. consumeDeclarationProblem(); break; } - + // // Rule 415: member_declarator ::= declarator constant_initializer // - case 415: { action.builder. - consumeMemberDeclaratorWithInitializer(); break; + case 415: { action. consumeMemberDeclaratorWithInitializer(); break; } - + // // Rule 416: member_declarator ::= bit_field_declarator : constant_expression // - case 416: { action.builder. - consumeBitField(true); break; + case 416: { action. consumeBitField(true); break; } - + // // Rule 417: member_declarator ::= : constant_expression // - case 417: { action.builder. - consumeBitField(false); break; + case 417: { action. consumeBitField(false); break; } - + // // Rule 418: bit_field_declarator ::= identifier_name // - case 418: { action.builder. - consumeDirectDeclaratorIdentifier(); break; + case 418: { action. consumeDirectDeclaratorIdentifier(); break; } - + // // Rule 419: constant_initializer ::= = constant_expression // - case 419: { action.builder. - consumeInitializer(); break; + case 419: { action. consumeInitializer(); break; } - + // // Rule 425: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 425: { action.builder. - consumeBaseSpecifier(false, false); break; + case 425: { action. consumeBaseSpecifier(false, false); break; } - + // // Rule 426: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 426: { action.builder. - consumeBaseSpecifier(true, true); break; + case 426: { action. consumeBaseSpecifier(true, true); break; } - + // // Rule 427: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 427: { action.builder. - consumeBaseSpecifier(true, true); break; + case 427: { action. consumeBaseSpecifier(true, true); break; } - + // // Rule 428: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 428: { action.builder. - consumeBaseSpecifier(true, false); break; + case 428: { action. consumeBaseSpecifier(true, false); break; } - + // // Rule 429: access_specifier_keyword ::= private // - case 429: { action.builder. - consumeAccessKeywordToken(); break; + case 429: { action. consumeToken(); break; } - + // // Rule 430: access_specifier_keyword ::= protected // - case 430: { action.builder. - consumeAccessKeywordToken(); break; + case 430: { action. consumeToken(); break; } - + // // Rule 431: access_specifier_keyword ::= public // - case 431: { action.builder. - consumeAccessKeywordToken(); break; + case 431: { action. consumeToken(); break; } - + // // Rule 433: access_specifier_keyword_opt ::= $Empty // - case 433: { action.builder. - consumeEmpty(); break; + case 433: { action. consumeEmpty(); break; } - + // // Rule 435: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > // - case 435: { action.builder. - consumeTemplateId(); break; + case 435: { action. consumeTemplateId(); break; } - + // // Rule 436: conversion_function_id ::= operator conversion_type_id // - case 436: { action.builder. - consumeConversionName(); break; + case 436: { action. consumeConversionName(); break; } - + // // Rule 437: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 437: { action.builder. - consumeTypeId(true); break; + case 437: { action. consumeTypeId(true); break; } - + // // Rule 438: conversion_type_id ::= type_specifier_seq // - case 438: { action.builder. - consumeTypeId(false); break; + case 438: { action. consumeTypeId(false); break; } - + // // Rule 439: conversion_declarator ::= <openscope-ast> ptr_operator_seq // - case 439: { action.builder. - consumeDeclaratorWithPointer(false); break; + case 439: { action. consumeDeclaratorWithPointer(false); break; } - + // // Rule 445: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 445: { action.builder. - consumeConstructorChainInitializer(); break; + case 445: { action. consumeConstructorChainInitializer(); break; } - + // // Rule 446: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 446: { action.builder. - consumeQualifiedId(false); break; + case 446: { action. consumeQualifiedId(false); break; } - + // // Rule 449: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > // - case 449: { action.builder. - consumeTemplateId(); break; + case 449: { action. consumeTemplateId(); break; } - + // // Rule 450: operator_id_name ::= operator overloadable_operator // - case 450: { action.builder. - consumeOperatorName(); break; + case 450: { action. consumeOperatorName(); break; } - + // // Rule 493: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration // - case 493: { action.builder. - consumeTemplateDeclaration(); break; + case 493: { action. consumeTemplateDeclaration(); break; } - + // // Rule 494: export_opt ::= export // - case 494: { action.builder. - consumePlaceHolder(); break; + case 494: { action. consumePlaceHolder(); break; } - + // // Rule 495: export_opt ::= $Empty // - case 495: { action.builder. - consumeEmpty(); break; + case 495: { action. consumeEmpty(); break; } - + // // Rule 499: template_parameter ::= parameter_declaration // - case 499: { action.builder. - consumeTemplateParamterDeclaration(); break; + case 499: { action. consumeTemplateParamterDeclaration(); break; } - + // // Rule 500: type_parameter ::= class identifier_name_opt // - case 500: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; + case 500: { action. consumeSimpleTypeTemplateParameter(false); break; } - + // // Rule 501: type_parameter ::= class identifier_name_opt = type_id // - case 501: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; + case 501: { action. consumeSimpleTypeTemplateParameter(true); break; } - + // // Rule 502: type_parameter ::= typename identifier_name_opt // - case 502: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; + case 502: { action. consumeSimpleTypeTemplateParameter(false); break; } - + // // Rule 503: type_parameter ::= typename identifier_name_opt = type_id // - case 503: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; + case 503: { action. consumeSimpleTypeTemplateParameter(true); break; } - + // // Rule 504: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt // - case 504: { action.builder. - consumeTemplatedTypeTemplateParameter(false); break; + case 504: { action. consumeTemplatedTypeTemplateParameter(false); break; } - + // // Rule 505: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression // - case 505: { action.builder. - consumeTemplatedTypeTemplateParameter(true); break; + case 505: { action. consumeTemplatedTypeTemplateParameter(true); break; } - + // // Rule 506: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > // - case 506: { action.builder. - consumeTemplateId(); break; + case 506: { action. consumeTemplateId(); break; } - + // // Rule 511: template_argument ::= assignment_expression // - case 511: { action.builder. - consumeTemplateArgumentExpression(); break; + case 511: { action. consumeTemplateArgumentExpression(); break; } - + // // Rule 512: template_argument ::= type_id // - case 512: { action.builder. - consumeTemplateArgumentTypeId(); break; + case 512: { action. consumeTemplateArgumentTypeId(); break; } - + // // Rule 513: explicit_instantiation ::= template declaration // - case 513: { action.builder. - consumeTemplateExplicitInstantiation(); break; + case 513: { action. consumeTemplateExplicitInstantiation(); break; } - + // // Rule 514: explicit_specialization ::= template < > declaration // - case 514: { action.builder. - consumeTemplateExplicitSpecialization(); break; + case 514: { action. consumeTemplateExplicitSpecialization(); break; } - + // // Rule 515: try_block ::= try compound_statement <openscope-ast> handler_seq // - case 515: { action.builder. - consumeStatementTryBlock(); break; + case 515: { action. consumeStatementTryBlock(); break; } - + // // Rule 518: handler ::= catch ( exception_declaration ) compound_statement // - case 518: { action.builder. - consumeStatementCatchHandler(false); break; + case 518: { action. consumeStatementCatchHandler(false); break; } - + // // Rule 519: handler ::= catch ( ... ) compound_statement // - case 519: { action.builder. - consumeStatementCatchHandler(true); break; + case 519: { action. consumeStatementCatchHandler(true); break; } - + // // Rule 520: exception_declaration ::= type_specifier_seq <openscope-ast> declarator // - case 520: { action.builder. - consumeDeclarationSimple(true); break; + case 520: { action. consumeDeclarationSimple(true); break; } - + // // Rule 521: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator // - case 521: { action.builder. - consumeDeclarationSimple(true); break; + case 521: { action. consumeDeclarationSimple(true); break; } - + // // Rule 522: exception_declaration ::= type_specifier_seq // - case 522: { action.builder. - consumeDeclarationSimple(false); break; + case 522: { action. consumeDeclarationSimple(false); break; } - + // // Rule 524: exception_specification ::= throw ( ) // - case 524: { action.builder. - consumePlaceHolder(); break; + case 524: { action. consumePlaceHolder(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java index 2b360c42dcf..986e9a5b976 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java @@ -3,7 +3,7 @@ * 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 -* http://www.eclipse.org/legal/epl_v10.html +* http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java index 4f08a353b74..f1a3b7c906d 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java @@ -3,7 +3,7 @@ * 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 -* http://www.eclipse.org/legal/epl_v10.html +* http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation 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 9094ebcfdf6..7dcf9fc4ce3 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 @@ -3,7 +3,7 @@ * 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 -* http://www.eclipse.org/legal/epl_v10.html +* http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation @@ -16,11 +16,7 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; import lpg.lpgjavaruntime.*; import java.util.*; - import org.eclipse.cdt.core.dom.ast.*; -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.IParser; import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; @@ -28,7 +24,11 @@ import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; -public class CPPSizeofExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser +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; + +public class CPPSizeofExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser { private static ParseTable prs = new CPPSizeofExpressionParserprs(); private FixedBacktrackingParser btParser; @@ -165,28 +165,19 @@ public class CPPSizeofExpressionParser extends PrsStream implements RuleAction , } -private CPPParserAction action; +private CPPBuildASTParserAction action; -// uncomment to use with backtracking parser public CPPSizeofExpressionParser() { // constructor } private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { - // binding resolution actions need access to IASTName nodes, temporary - action = new CPPParserAction (); - //action.resolver = new C99TypedefTrackerParserAction (this); - action.builder = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu); - //action.builder.setTokenMap(CPPParsersym.orderedTerminalSymbols); - - action.builder.setParserOptions(options); - - // comment this line to use with backtracking parser - //setParserAction(action); + action = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu); + action.setParserOptions(options); } public void addToken(IToken token) { - token.setKind(mapKind(token.getKind())); + token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called? super.addToken(token); } @@ -196,37 +187,35 @@ public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> opt setStreamLength(getSize()); initActions(tu, options); - final int errorRepairCount = -1; // _1 means full error handling + final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse super.resetTokenStream(); // allow tokens to be garbage collected // the completion node may be null - IASTCompletionNode compNode = action.builder.getASTCompletionNode(); + IASTCompletionNode compNode = action.getASTCompletionNode(); - //action = null; // causes getSecondaryParseResult() to fail - - // Comment this line to use with backtracking parser + //action = null; //parserAction = null; - return compNode; } - // uncomment this method to use with backtracking parser public List getRuleTokens() { return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1)); } + public IASTNode getSecondaryParseResult() { - return action.builder.getSecondaryParseResult(); + return action.getSecondaryParseResult(); } public String[] getOrderedTerminalSymbols() { return CPPSizeofExpressionParsersym.orderedTerminalSymbols; } +@SuppressWarnings("nls") public String getName() { - return "CPPSizeofExpressionParser"; //$NON-NLS-1$ + return "CPPSizeofExpressionParser"; } @@ -257,2010 +246,1723 @@ public CPPSizeofExpressionParser(String[] mapFrom) { // constructor // // Rule 1: <openscope-ast> ::= $Empty // - case 1: { action.builder. - openASTScope(); break; - } + case 1: { action. openASTScope(); break; + } // // Rule 2: <empty> ::= $Empty // - case 2: { action.builder. - consumeEmpty(); break; - } - + case 2: { action. consumeEmpty(); break; + } + // // Rule 13: translation_unit ::= declaration_seq_opt // - case 13: { action.builder. - consumeTranslationUnit(); break; + case 13: { action. consumeTranslationUnit(); break; } - + // // Rule 16: literal ::= integer // - case 16: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; + case 16: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } - + // // Rule 17: literal ::= 0 // - case 17: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; + case 17: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } - + // // Rule 18: literal ::= floating // - case 18: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; + case 18: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; } - + // // Rule 19: literal ::= charconst // - case 19: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; + case 19: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } - + // // Rule 20: literal ::= stringlit // - case 20: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; + case 20: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } - + // // Rule 21: literal ::= true // - case 21: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; + case 21: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } - + // // Rule 22: literal ::= false // - case 22: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; + case 22: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } - + // // Rule 23: literal ::= this // - case 23: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; + case 23: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } - + // // Rule 25: primary_expression ::= ( expression ) // - case 25: { action.builder. - consumeExpressionBracketed(); break; + case 25: { action. consumeExpressionBracketed(); break; } - + // // Rule 27: id_expression ::= qualified_or_unqualified_name // - case 27: { action.builder. - consumeExpressionName(); break; + case 27: { action. consumeExpressionName(); break; } - + // // Rule 34: unqualified_id_name ::= ~ identifier_token // - case 34: { action.builder. - consumeDestructorName(); break; + case 34: { action. consumeDestructorName(); break; } - + // // Rule 35: unqualified_id_name ::= ~ template_id_name // - case 35: { action.builder. - consumeDestructorNameTemplateId(); break; + case 35: { action. consumeDestructorNameTemplateId(); break; } - + // // Rule 36: identifier_name ::= identifier_token // - case 36: { action.builder. - consumeIdentifierName(); break; + case 36: { action. consumeIdentifierName(); break; } - + // // Rule 37: template_opt ::= template // - case 37: { action.builder. - consumePlaceHolder(); break; + case 37: { action. consumePlaceHolder(); break; } - + // // Rule 38: template_opt ::= $Empty // - case 38: { action.builder. - consumeEmpty(); break; + case 38: { action. consumeEmpty(); break; } - + // // Rule 39: dcolon_opt ::= :: // - case 39: { action.builder. - consumeToken(); break; + case 39: { action. consumeToken(); break; } - + // // Rule 40: dcolon_opt ::= $Empty // - case 40: { action.builder. - consumeEmpty(); break; + case 40: { action. consumeEmpty(); break; } - + // // Rule 41: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name // - case 41: { action.builder. - consumeQualifiedId(true); break; + case 41: { action. consumeQualifiedId(true); break; } - + // // Rule 42: qualified_id_name ::= :: unqualified_id_name // - case 42: { action.builder. - consumeGlobalQualifiedId(); break; + case 42: { action. consumeGlobalQualifiedId(); break; } - + // // Rule 43: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // - case 43: { action.builder. - consumeNestedNameSpecifier(true); break; + case 43: { action. consumeNestedNameSpecifier(true); break; } - + // // Rule 44: nested_name_specifier ::= class_or_namespace_name :: // - case 44: { action.builder. - consumeNestedNameSpecifier(false); break; + case 44: { action. consumeNestedNameSpecifier(false); break; } - + // // Rule 45: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // - case 45: { action.builder. - consumeNestedNameSpecifier(true); break; + case 45: { action. consumeNestedNameSpecifier(true); break; } - + // // Rule 46: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // - case 46: { action.builder. - consumeNestedNameSpecifier(false); break; + case 46: { action. consumeNestedNameSpecifier(false); break; } - + // // Rule 47: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name // - case 47: { action.builder. - consumeNameWithTemplateKeyword(); break; + case 47: { action. consumeNameWithTemplateKeyword(); break; } - + // // Rule 49: nested_name_specifier_opt ::= $Empty // - case 49: { action.builder. - consumeNestedNameSpecifierEmpty(); break; + case 49: { action. consumeNestedNameSpecifierEmpty(); break; } - + // // Rule 52: postfix_expression ::= postfix_expression [ expression ] // - case 52: { action.builder. - consumeExpressionArraySubscript(); break; + case 52: { action. consumeExpressionArraySubscript(); break; } - + // // Rule 53: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 53: { action.builder. - consumeExpressionFunctionCall(); break; + case 53: { action. consumeExpressionFunctionCall(); break; } - + // // Rule 54: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 54: { action.builder. - consumeExpressionSimpleTypeConstructor(); break; + case 54: { action. consumeExpressionSimpleTypeConstructor(); break; } - + // // Rule 55: postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt ) // - case 55: { action.builder. - consumeExpressionTypeName(); break; + case 55: { action. consumeExpressionTypeName(); break; } - + // // Rule 56: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) // - case 56: { action.builder. - consumeExpressionTypeName(); break; + case 56: { action. consumeExpressionTypeName(); break; } - + // // Rule 57: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // - case 57: { action.builder. - consumeExpressionFieldReference(false, false); break; + case 57: { action. consumeExpressionFieldReference(false, false); break; } - + // // Rule 58: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 58: { action.builder. - consumeExpressionFieldReference(true, false); break; + case 58: { action. consumeExpressionFieldReference(true, false); break; } - + // // Rule 59: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 59: { action.builder. - consumeExpressionFieldReference(false, true); break; + case 59: { action. consumeExpressionFieldReference(false, true); break; } - + // // Rule 60: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 60: { action.builder. - consumeExpressionFieldReference(true, true); break; + case 60: { action. consumeExpressionFieldReference(true, true); break; } - + // // Rule 61: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 61: { action.builder. - consumeExpressionFieldReference(false, false); break; + case 61: { action. consumeExpressionFieldReference(false, false); break; } - + // // Rule 62: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 62: { action.builder. - consumeExpressionFieldReference(true, false); break; + case 62: { action. consumeExpressionFieldReference(true, false); break; } - + // // Rule 63: postfix_expression ::= postfix_expression ++ // - case 63: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; + case 63: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } - + // // Rule 64: postfix_expression ::= postfix_expression -- // - case 64: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; + case 64: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } - + // // Rule 65: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 65: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; + case 65: { action. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } - + // // Rule 66: postfix_expression ::= static_cast < type_id > ( expression ) // - case 66: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; + case 66: { action. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } - + // // Rule 67: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 67: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; + case 67: { action. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } - + // // Rule 68: postfix_expression ::= const_cast < type_id > ( expression ) // - case 68: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; + case 68: { action. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } - + // // Rule 69: postfix_expression ::= typeid ( expression ) // - case 69: { action.builder. - consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; + case 69: { action. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } - + // // Rule 70: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name // - case 70: { action.builder. - consumePsudoDestructorName(true); break; + case 70: { action. consumePsudoDestructorName(true); break; } - + // // Rule 71: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name // - case 71: { action.builder. - consumePsudoDestructorName(true); break; + case 71: { action. consumePsudoDestructorName(true); break; } - + // // Rule 72: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name // - case 72: { action.builder. - consumePsudoDestructorName(false); break; + case 72: { action. consumePsudoDestructorName(false); break; } - + // // Rule 73: destructor_type_name ::= ~ identifier_token // - case 73: { action.builder. - consumeDestructorName(); break; + case 73: { action. consumeDestructorName(); break; } - + // // Rule 74: destructor_type_name ::= ~ template_id_name // - case 74: { action.builder. - consumeDestructorNameTemplateId(); break; + case 74: { action. consumeDestructorNameTemplateId(); break; } - + // // Rule 78: unary_expression ::= ++ cast_expression // - case 78: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; + case 78: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } - + // // Rule 79: unary_expression ::= -- cast_expression // - case 79: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; + case 79: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } - + // // Rule 80: unary_expression ::= & cast_expression // - case 80: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; + case 80: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } - + // // Rule 81: unary_expression ::= * cast_expression // - case 81: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; + case 81: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } - + // // Rule 82: unary_expression ::= + cast_expression // - case 82: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; + case 82: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } - + // // Rule 83: unary_expression ::= - cast_expression // - case 83: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; + case 83: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } - + // // Rule 84: unary_expression ::= ~ cast_expression // - case 84: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; + case 84: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } - + // // Rule 85: unary_expression ::= ! cast_expression // - case 85: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; + case 85: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } - + // // Rule 86: unary_expression ::= sizeof unary_expression // - case 86: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; + case 86: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } - + // // Rule 87: new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt // - case 87: { action.builder. - consumeExpressionNew(true); break; + case 87: { action. consumeExpressionNew(true); break; } - + // // Rule 88: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt // - case 88: { action.builder. - consumeExpressionNew(false); break; + case 88: { action. consumeExpressionNew(false); break; } - + // // Rule 90: new_placement_opt ::= $Empty // - case 90: { action.builder. - consumeEmpty(); break; + case 90: { action. consumeEmpty(); break; } - + // // Rule 91: new_type_id ::= type_specifier_seq // - case 91: { action.builder. - consumeTypeId(false); break; + case 91: { action. consumeTypeId(false); break; } - + // // Rule 92: new_type_id ::= type_specifier_seq new_declarator // - case 92: { action.builder. - consumeTypeId(true); break; + case 92: { action. consumeTypeId(true); break; } - + // // Rule 93: new_declarator ::= <openscope-ast> new_pointer_operators // - case 93: { action.builder. - consumeNewDeclarator(); break; + case 93: { action. consumeNewDeclarator(); break; } - + // // Rule 100: new_initializer ::= ( expression_list_opt ) // - case 100: { action.builder. - consumeNewInitializer(); break; + case 100: { action. consumeNewInitializer(); break; } - + // // Rule 102: new_initializer_opt ::= $Empty // - case 102: { action.builder. - consumeEmpty(); break; + case 102: { action. consumeEmpty(); break; } - + // // Rule 103: delete_expression ::= dcolon_opt delete cast_expression // - case 103: { action.builder. - consumeExpressionDelete(false); break; + case 103: { action. consumeExpressionDelete(false); break; } - + // // Rule 104: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 104: { action.builder. - consumeExpressionDelete(true); break; + case 104: { action. consumeExpressionDelete(true); break; } - + // // Rule 106: cast_expression ::= ( type_id ) cast_expression // - case 106: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_cast); break; + case 106: { action. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } - + // // Rule 108: pm_expression ::= pm_expression .* cast_expression // - case 108: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; + case 108: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } - + // // Rule 109: pm_expression ::= pm_expression ->* cast_expression // - case 109: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; + case 109: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } - + // // Rule 111: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 111: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; + case 111: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } - + // // Rule 112: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 112: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; + case 112: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } - + // // Rule 113: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 113: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; + case 113: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } - + // // Rule 115: additive_expression ::= additive_expression + multiplicative_expression // - case 115: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; + case 115: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } - + // // Rule 116: additive_expression ::= additive_expression - multiplicative_expression // - case 116: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; + case 116: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } - + // // Rule 118: shift_expression ::= shift_expression << additive_expression // - case 118: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; + case 118: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } - + // // Rule 119: shift_expression ::= shift_expression >> additive_expression // - case 119: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; + case 119: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } - + // // Rule 121: relational_expression ::= relational_expression < shift_expression // - case 121: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; + case 121: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } - + // // Rule 122: relational_expression ::= relational_expression > shift_expression // - case 122: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; + case 122: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } - + // // Rule 123: relational_expression ::= relational_expression <= shift_expression // - case 123: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; + case 123: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } - + // // Rule 124: relational_expression ::= relational_expression >= shift_expression // - case 124: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; + case 124: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } - + // // Rule 126: equality_expression ::= equality_expression == relational_expression // - case 126: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; + case 126: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } - + // // Rule 127: equality_expression ::= equality_expression != relational_expression // - case 127: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; + case 127: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } - + // // Rule 129: and_expression ::= and_expression & equality_expression // - case 129: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; + case 129: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } - + // // Rule 131: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 131: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; + case 131: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } - + // // Rule 133: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 133: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; + case 133: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } - + // // Rule 135: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 135: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; + case 135: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } - + // // Rule 137: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 137: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; + case 137: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } - + // // Rule 139: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 139: { action.builder. - consumeExpressionConditional(); break; + case 139: { action. consumeExpressionConditional(); break; } - + // // Rule 140: throw_expression ::= throw // - case 140: { action.builder. - consumeExpressionThrow(false); break; + case 140: { action. consumeExpressionThrow(false); break; } - + // // Rule 141: throw_expression ::= throw assignment_expression // - case 141: { action.builder. - consumeExpressionThrow(true); break; + case 141: { action. consumeExpressionThrow(true); break; } - + // // Rule 144: assignment_expression ::= logical_or_expression = assignment_expression // - case 144: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; + case 144: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } - + // // Rule 145: assignment_expression ::= logical_or_expression *= assignment_expression // - case 145: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; + case 145: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } - + // // Rule 146: assignment_expression ::= logical_or_expression /= assignment_expression // - case 146: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; + case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } - + // // Rule 147: assignment_expression ::= logical_or_expression %= assignment_expression // - case 147: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; + case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } - + // // Rule 148: assignment_expression ::= logical_or_expression += assignment_expression // - case 148: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; + case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } - + // // Rule 149: assignment_expression ::= logical_or_expression -= assignment_expression // - case 149: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; + case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } - + // // Rule 150: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 150: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; + case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } - + // // Rule 151: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 151: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; + case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } - + // // Rule 152: assignment_expression ::= logical_or_expression &= assignment_expression // - case 152: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; + case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } - + // // Rule 153: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 153: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; + case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } - + // // Rule 154: assignment_expression ::= logical_or_expression |= assignment_expression // - case 154: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; + case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } - + // // Rule 156: expression_list ::= <openscope-ast> expression_list_actual // - case 156: { action.builder. - consumeExpressionList(); break; + case 156: { action. consumeExpressionList(); break; } - + // // Rule 160: expression_list_opt ::= $Empty // - case 160: { action.builder. - consumeEmpty(); break; + case 160: { action. consumeEmpty(); break; } - + // // Rule 162: expression_opt ::= $Empty // - case 162: { action.builder. - consumeEmpty(); break; + case 162: { action. consumeEmpty(); break; } - + // // Rule 165: constant_expression_opt ::= $Empty // - case 165: { action.builder. - consumeEmpty(); break; + case 165: { action. consumeEmpty(); break; } - + // // Rule 174: statement ::= ERROR_TOKEN // - case 174: { action.builder. - consumeStatementProblem(); break; + case 174: { action. consumeStatementProblem(); break; } - + // // Rule 175: labeled_statement ::= identifier : statement // - case 175: { action.builder. - consumeStatementLabeled(); break; + case 175: { action. consumeStatementLabeled(); break; } - + // // Rule 176: labeled_statement ::= case constant_expression : statement // - case 176: { action.builder. - consumeStatementCase(); break; + case 176: { action. consumeStatementCase(); break; } - + // // Rule 177: labeled_statement ::= default : statement // - case 177: { action.builder. - consumeStatementDefault(); break; + case 177: { action. consumeStatementDefault(); break; } - + // // Rule 178: expression_statement ::= expression ; // - case 178: { action.builder. - consumeStatementExpression(); break; + case 178: { action. consumeStatementExpression(); break; } - + // // Rule 179: expression_statement ::= ; // - case 179: { action.builder. - consumeStatementNull(); break; + case 179: { action. consumeStatementNull(); break; } - + // // Rule 180: compound_statement ::= { <openscope-ast> statement_seq } // - case 180: { action.builder. - consumeStatementCompoundStatement(true); break; + case 180: { action. consumeStatementCompoundStatement(true); break; } - + // // Rule 181: compound_statement ::= { } // - case 181: { action.builder. - consumeStatementCompoundStatement(false); break; + case 181: { action. consumeStatementCompoundStatement(false); break; } - + // // Rule 184: selection_statement ::= if ( condition ) statement // - case 184: { action.builder. - consumeStatementIf(false); break; + case 184: { action. consumeStatementIf(false); break; } - + // // Rule 185: selection_statement ::= if ( condition ) statement else statement // - case 185: { action.builder. - consumeStatementIf(true); break; + case 185: { action. consumeStatementIf(true); break; } - + // // Rule 186: selection_statement ::= switch ( condition ) statement // - case 186: { action.builder. - consumeStatementSwitch(); break; + case 186: { action. consumeStatementSwitch(); break; } - + // // Rule 188: condition ::= type_specifier_seq declarator = assignment_expression // - case 188: { action.builder. - consumeConditionDeclaration(); break; + case 188: { action. consumeConditionDeclaration(); break; } - + // // Rule 190: condition_opt ::= $Empty // - case 190: { action.builder. - consumeEmpty(); break; + case 190: { action. consumeEmpty(); break; } - + // // Rule 191: iteration_statement ::= while ( condition ) statement // - case 191: { action.builder. - consumeStatementWhileLoop(); break; + case 191: { action. consumeStatementWhileLoop(); break; } - + // // Rule 192: iteration_statement ::= do statement while ( expression ) ; // - case 192: { action.builder. - consumeStatementDoLoop(); break; + case 192: { action. consumeStatementDoLoop(); break; } - + // // Rule 193: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 193: { action.builder. - consumeStatementForLoop(); break; + case 193: { action. consumeStatementForLoop(); break; } - + // // Rule 195: for_init_statement ::= simple_declaration_with_declspec // - case 195: { action.builder. - consumeStatementDeclaration(); break; + case 195: { action. consumeStatementDeclaration(); break; } - + // // Rule 196: jump_statement ::= break ; // - case 196: { action.builder. - consumeStatementBreak(); break; + case 196: { action. consumeStatementBreak(); break; } - + // // Rule 197: jump_statement ::= continue ; // - case 197: { action.builder. - consumeStatementContinue(); break; + case 197: { action. consumeStatementContinue(); break; } - + // // Rule 198: jump_statement ::= return expression ; // - case 198: { action.builder. - consumeStatementReturn(true); break; + case 198: { action. consumeStatementReturn(true); break; } - + // // Rule 199: jump_statement ::= return ; // - case 199: { action.builder. - consumeStatementReturn(false); break; + case 199: { action. consumeStatementReturn(false); break; } - + // // Rule 200: jump_statement ::= goto identifier_token ; // - case 200: { action.builder. - consumeStatementGoto(); break; + case 200: { action. consumeStatementGoto(); break; } - + // // Rule 201: declaration_statement ::= block_declaration // - case 201: { action.builder. - consumeStatementDeclarationWithDisambiguation(); break; + case 201: { action. consumeStatementDeclarationWithDisambiguation(); break; } - + // // Rule 202: declaration_statement ::= function_definition // - case 202: { action.builder. - consumeStatementDeclaration(); break; + case 202: { action. consumeStatementDeclaration(); break; } - + // // Rule 210: declaration ::= ERROR_TOKEN // - case 210: { action.builder. - consumeDeclarationProblem(); break; + case 210: { action. consumeDeclarationProblem(); break; } - + // // Rule 220: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ; // - case 220: { action.builder. - consumeDeclarationSimple(true); break; + case 220: { action. consumeDeclarationSimple(true); break; } - + // // Rule 221: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ; // - case 221: { action.builder. - consumeDeclarationSimple(true); break; + case 221: { action. consumeDeclarationSimple(true); break; } - + // // Rule 222: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers // - case 222: { action.builder. - consumeDeclarationSpecifiersSimple(); break; + case 222: { action. consumeDeclarationSpecifiersSimple(); break; } - + // // Rule 223: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers // - case 223: { action.builder. - consumeDeclarationSpecifiersComposite(); break; + case 223: { action. consumeDeclarationSpecifiersComposite(); break; } - + // // Rule 224: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers // - case 224: { action.builder. - consumeDeclarationSpecifiersComposite(); break; + case 224: { action. consumeDeclarationSpecifiersComposite(); break; } - + // // Rule 225: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers // - case 225: { action.builder. - consumeDeclarationSpecifiersComposite(); break; + case 225: { action. consumeDeclarationSpecifiersComposite(); break; } - + // // Rule 226: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers // - case 226: { action.builder. - consumeDeclarationSpecifiersTypeName(); break; + case 226: { action. consumeDeclarationSpecifiersTypeName(); break; } - + // // Rule 228: declaration_specifiers_opt ::= $Empty // - case 228: { action.builder. - consumeEmpty(); break; + case 228: { action. consumeEmpty(); break; } - + // // Rule 232: no_type_declaration_specifier ::= friend // - case 232: { action.builder. - consumeDeclSpecToken(); break; + case 232: { action. consumeDeclSpecToken(); break; } - + // // Rule 233: no_type_declaration_specifier ::= typedef // - case 233: { action.builder. - consumeDeclSpecToken(); break; + case 233: { action. consumeDeclSpecToken(); break; } - + // // Rule 253: storage_class_specifier ::= auto // - case 253: { action.builder. - consumeDeclSpecToken(); break; + case 253: { action. consumeDeclSpecToken(); break; } - + // // Rule 254: storage_class_specifier ::= register // - case 254: { action.builder. - consumeDeclSpecToken(); break; + case 254: { action. consumeDeclSpecToken(); break; } - + // // Rule 255: storage_class_specifier ::= static // - case 255: { action.builder. - consumeDeclSpecToken(); break; + case 255: { action. consumeDeclSpecToken(); break; } - + // // Rule 256: storage_class_specifier ::= extern // - case 256: { action.builder. - consumeDeclSpecToken(); break; + case 256: { action. consumeDeclSpecToken(); break; } - + // // Rule 257: storage_class_specifier ::= mutable // - case 257: { action.builder. - consumeDeclSpecToken(); break; + case 257: { action. consumeDeclSpecToken(); break; } - + // // Rule 258: function_specifier ::= inline // - case 258: { action.builder. - consumeDeclSpecToken(); break; + case 258: { action. consumeDeclSpecToken(); break; } - + // // Rule 259: function_specifier ::= virtual // - case 259: { action.builder. - consumeDeclSpecToken(); break; + case 259: { action. consumeDeclSpecToken(); break; } - + // // Rule 260: function_specifier ::= explicit // - case 260: { action.builder. - consumeDeclSpecToken(); break; + case 260: { action. consumeDeclSpecToken(); break; } - + // // Rule 261: simple_type_specifier ::= char // - case 261: { action.builder. - consumeDeclSpecToken(); break; + case 261: { action. consumeDeclSpecToken(); break; } - + // // Rule 262: simple_type_specifier ::= wchar_t // - case 262: { action.builder. - consumeDeclSpecToken(); break; + case 262: { action. consumeDeclSpecToken(); break; } - + // // Rule 263: simple_type_specifier ::= bool // - case 263: { action.builder. - consumeDeclSpecToken(); break; + case 263: { action. consumeDeclSpecToken(); break; } - + // // Rule 264: simple_type_specifier ::= short // - case 264: { action.builder. - consumeDeclSpecToken(); break; + case 264: { action. consumeDeclSpecToken(); break; } - + // // Rule 265: simple_type_specifier ::= int // - case 265: { action.builder. - consumeDeclSpecToken(); break; + case 265: { action. consumeDeclSpecToken(); break; } - + // // Rule 266: simple_type_specifier ::= long // - case 266: { action.builder. - consumeDeclSpecToken(); break; + case 266: { action. consumeDeclSpecToken(); break; } - + // // Rule 267: simple_type_specifier ::= signed // - case 267: { action.builder. - consumeDeclSpecToken(); break; + case 267: { action. consumeDeclSpecToken(); break; } - + // // Rule 268: simple_type_specifier ::= unsigned // - case 268: { action.builder. - consumeDeclSpecToken(); break; + case 268: { action. consumeDeclSpecToken(); break; } - + // // Rule 269: simple_type_specifier ::= float // - case 269: { action.builder. - consumeDeclSpecToken(); break; + case 269: { action. consumeDeclSpecToken(); break; } - + // // Rule 270: simple_type_specifier ::= double // - case 270: { action.builder. - consumeDeclSpecToken(); break; + case 270: { action. consumeDeclSpecToken(); break; } - + // // Rule 271: simple_type_specifier ::= void // - case 271: { action.builder. - consumeDeclSpecToken(); break; + case 271: { action. consumeDeclSpecToken(); break; } - + // // Rule 274: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 274: { action.builder. - consumeQualifiedId(false); break; + case 274: { action. consumeQualifiedId(false); break; } - + // // Rule 275: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 275: { action.builder. - consumeQualifiedId(false); break; + case 275: { action. consumeQualifiedId(false); break; } - + // // Rule 276: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 276: { action.builder. - consumeQualifiedId(false); break; + case 276: { action. consumeQualifiedId(false); break; } - + // // Rule 277: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 277: { action.builder. - consumeQualifiedId(true); break; + case 277: { action. consumeQualifiedId(true); break; } - + // // Rule 279: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 279: { action.builder. - consumeTypeSpecifierElaborated(false); break; + case 279: { action. consumeTypeSpecifierElaborated(false); break; } - + // // Rule 280: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 280: { action.builder. - consumeTypeSpecifierElaborated(true); break; + case 280: { action. consumeTypeSpecifierElaborated(true); break; } - + // // Rule 281: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 281: { action.builder. - consumeTypeSpecifierElaborated(false); break; + case 281: { action. consumeTypeSpecifierElaborated(false); break; } - + // // Rule 282: enum_specifier ::= enum { <openscope-ast> enumerator_list_opt } // - case 282: { action.builder. - consumeTypeSpecifierEnumeration(false); break; + case 282: { action. consumeTypeSpecifierEnumeration(false); break; } - + // // Rule 283: enum_specifier ::= enum identifier_token { <openscope-ast> enumerator_list_opt } // - case 283: { action.builder. - consumeTypeSpecifierEnumeration(true); break; + case 283: { action. consumeTypeSpecifierEnumeration(true); break; } - + // // Rule 288: enumerator_definition ::= identifier_token // - case 288: { action.builder. - consumeEnumerator(false); break; + case 288: { action. consumeEnumerator(false); break; } - + // // Rule 289: enumerator_definition ::= identifier_token = constant_expression // - case 289: { action.builder. - consumeEnumerator(true); break; + case 289: { action. consumeEnumerator(true); break; } - + // // Rule 293: named_namespace_definition ::= namespace namespace_name { <openscope-ast> declaration_seq_opt } // - case 293: { action.builder. - consumeNamespaceDefinition(true); break; + case 293: { action. consumeNamespaceDefinition(true); break; } - + // // Rule 294: unnamed_namespace_definition ::= namespace { <openscope-ast> declaration_seq_opt } // - case 294: { action.builder. - consumeNamespaceDefinition(false); break; + case 294: { action. consumeNamespaceDefinition(false); break; } - + // // Rule 295: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 295: { action.builder. - consumeNamespaceAliasDefinition(); break; + case 295: { action. consumeNamespaceAliasDefinition(); break; } - + // // Rule 296: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 296: { action.builder. - consumeUsingDeclaration(); break; + case 296: { action. consumeUsingDeclaration(); break; } - + // // Rule 297: typename_opt ::= typename // - case 297: { action.builder. - consumePlaceHolder(); break; + case 297: { action. consumePlaceHolder(); break; } - + // // Rule 298: typename_opt ::= $Empty // - case 298: { action.builder. - consumeEmpty(); break; + case 298: { action. consumeEmpty(); break; } - + // // Rule 299: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 299: { action.builder. - consumeUsingDirective(); break; + case 299: { action. consumeUsingDirective(); break; } - + // // Rule 300: asm_definition ::= asm ( stringlit ) ; // - case 300: { action.builder. - consumeDeclarationASM(); break; + case 300: { action. consumeDeclarationASM(); break; } - + // // Rule 301: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt } // - case 301: { action.builder. - consumeLinkageSpecification(); break; + case 301: { action. consumeLinkageSpecification(); break; } - + // // Rule 302: linkage_specification ::= extern stringlit <openscope-ast> declaration // - case 302: { action.builder. - consumeLinkageSpecification(); break; + case 302: { action. consumeLinkageSpecification(); break; } - + // // Rule 307: init_declarator_complete ::= init_declarator // - case 307: { action.builder. - consumeInitDeclaratorComplete(); break; + case 307: { action. consumeInitDeclaratorComplete(); break; } - + // // Rule 309: init_declarator ::= declarator initializer // - case 309: { action.builder. - consumeDeclaratorWithInitializer(true); break; + case 309: { action. consumeDeclaratorWithInitializer(true); break; } - + // // Rule 311: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator // - case 311: { action.builder. - consumeDeclaratorWithPointer(true); break; + case 311: { action. consumeDeclaratorWithPointer(true); break; } - + // // Rule 313: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator // - case 313: { action.builder. - consumeDeclaratorWithPointer(true); break; + case 313: { action. consumeDeclaratorWithPointer(true); break; } - + // // Rule 317: basic_direct_declarator ::= declarator_id_name // - case 317: { action.builder. - consumeDirectDeclaratorIdentifier(); break; + case 317: { action. consumeDirectDeclaratorIdentifier(); break; } - + // // Rule 318: basic_direct_declarator ::= ( declarator ) // - case 318: { action.builder. - consumeDirectDeclaratorBracketed(); break; + case 318: { action. consumeDirectDeclaratorBracketed(); break; } - + // // Rule 319: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt // - case 319: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(true); break; + case 319: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } - + // // Rule 320: array_direct_declarator ::= array_direct_declarator array_modifier // - case 320: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 320: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 321: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 321: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 321: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 322: array_modifier ::= [ constant_expression ] // - case 322: { action.builder. - consumeDirectDeclaratorArrayModifier(true); break; + case 322: { action. consumeDirectDeclaratorArrayModifier(true); break; } - + // // Rule 323: array_modifier ::= [ ] // - case 323: { action.builder. - consumeDirectDeclaratorArrayModifier(false); break; + case 323: { action. consumeDirectDeclaratorArrayModifier(false); break; } - + // // Rule 324: ptr_operator ::= * <openscope-ast> cv_qualifier_seq_opt // - case 324: { action.builder. - consumePointer(); break; + case 324: { action. consumePointer(); break; } - + // // Rule 325: ptr_operator ::= & // - case 325: { action.builder. - consumeReferenceOperator(); break; + case 325: { action. consumeReferenceOperator(); break; } - + // // Rule 326: ptr_operator ::= dcolon_opt nested_name_specifier * <openscope-ast> cv_qualifier_seq_opt // - case 326: { action.builder. - consumePointerToMember(); break; + case 326: { action. consumePointerToMember(); break; } - + // // Rule 332: cv_qualifier ::= const // - case 332: { action.builder. - consumeDeclSpecToken(); break; + case 332: { action. consumeDeclSpecToken(); break; } - + // // Rule 333: cv_qualifier ::= volatile // - case 333: { action.builder. - consumeDeclSpecToken(); break; + case 333: { action. consumeDeclSpecToken(); break; } - + // // Rule 335: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // - case 335: { action.builder. - consumeQualifiedId(false); break; + case 335: { action. consumeQualifiedId(false); break; } - + // // Rule 336: type_id ::= type_specifier_seq // - case 336: { action.builder. - consumeTypeId(false); break; + case 336: { action. consumeTypeId(false); break; } - + // // Rule 337: type_id ::= type_specifier_seq abstract_declarator // - case 337: { action.builder. - consumeTypeId(true); break; + case 337: { action. consumeTypeId(true); break; } - + // // Rule 340: abstract_declarator ::= <openscope-ast> ptr_operator_seq // - case 340: { action.builder. - consumeDeclaratorWithPointer(false); break; + case 340: { action. consumeDeclaratorWithPointer(false); break; } - + // // Rule 341: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator // - case 341: { action.builder. - consumeDeclaratorWithPointer(true); break; + case 341: { action. consumeDeclaratorWithPointer(true); break; } - + // // Rule 345: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 345: { action.builder. - consumeDirectDeclaratorBracketed(); break; + case 345: { action. consumeDirectDeclaratorBracketed(); break; } - + // // Rule 346: basic_direct_abstract_declarator ::= ( ) // - case 346: { action.builder. - consumeAbstractDeclaratorEmpty(); break; + case 346: { action. consumeAbstractDeclaratorEmpty(); break; } - + // // Rule 347: array_direct_abstract_declarator ::= array_modifier // - case 347: { action.builder. - consumeDirectDeclaratorArrayDeclarator(false); break; + case 347: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } - + // // Rule 348: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 348: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 348: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 349: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 349: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 349: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 350: 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 350: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(true); break; + case 350: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } - + // // Rule 351: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt // - case 351: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(false); break; + case 351: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; } - + // // Rule 352: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 352: { action.builder. - consumePlaceHolder(); break; + case 352: { action. consumePlaceHolder(); break; } - + // // Rule 353: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 353: { action.builder. - consumeEmpty(); break; + case 353: { action. consumeEmpty(); break; } - + // // Rule 354: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 354: { action.builder. - consumePlaceHolder(); break; + case 354: { action. consumePlaceHolder(); break; } - + // // Rule 360: abstract_declarator_opt ::= $Empty // - case 360: { action.builder. - consumeEmpty(); break; + case 360: { action. consumeEmpty(); break; } - + // // Rule 361: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 361: { action.builder. - consumeParameterDeclaration(); break; + case 361: { action. consumeParameterDeclaration(); break; } - + // // Rule 362: parameter_declaration ::= declaration_specifiers // - case 362: { action.builder. - consumeParameterDeclarationWithoutDeclarator(); break; + case 362: { action. consumeParameterDeclarationWithoutDeclarator(); break; } - + // // Rule 364: parameter_init_declarator ::= declarator = parameter_initializer // - case 364: { action.builder. - consumeDeclaratorWithInitializer(true); break; + case 364: { action. consumeDeclaratorWithInitializer(true); break; } - + // // Rule 366: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 366: { action.builder. - consumeDeclaratorWithInitializer(true); break; + case 366: { action. consumeDeclaratorWithInitializer(true); break; } - + // // Rule 367: parameter_init_declarator ::= = parameter_initializer // - case 367: { action.builder. - consumeDeclaratorWithInitializer(false); break; + case 367: { action. consumeDeclaratorWithInitializer(false); break; } - + // // Rule 368: parameter_initializer ::= assignment_expression // - case 368: { action.builder. - consumeInitializer(); break; + case 368: { action. consumeInitializer(); break; } - + // // Rule 369: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body // - case 369: { action.builder. - consumeFunctionDefinition(false); break; + case 369: { action. consumeFunctionDefinition(false); break; } - + // // Rule 370: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq // - case 370: { action.builder. - consumeFunctionDefinition(true); break; + case 370: { action. consumeFunctionDefinition(true); break; } - + // // Rule 373: initializer ::= ( expression_list ) // - case 373: { action.builder. - consumeInitializerConstructor(); break; + case 373: { action. consumeInitializerConstructor(); break; } - + // // Rule 374: initializer_clause ::= assignment_expression // - case 374: { action.builder. - consumeInitializer(); break; + case 374: { action. consumeInitializer(); break; } - + // // Rule 375: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list , } end_initializer_list // - case 375: { action.builder. - consumeInitializerList(); break; + case 375: { action. consumeInitializerList(); break; } - + // // Rule 376: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list } end_initializer_list // - case 376: { action.builder. - consumeInitializerList(); break; + case 376: { action. consumeInitializerList(); break; } - + // // Rule 377: initializer_clause ::= { <openscope-ast> } // - case 377: { action.builder. - consumeInitializerList(); break; + case 377: { action. consumeInitializerList(); break; } - + // // Rule 378: start_initializer_list ::= $Empty // - case 378: { action.builder. - initializerListStart(); break; + case 378: { action. initializerListStart(); break; } - + // // Rule 379: end_initializer_list ::= $Empty // - case 379: { action.builder. - initializerListEnd(); break; + case 379: { action. initializerListEnd(); break; } - + // // Rule 384: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } // - case 384: { action.builder. - consumeClassSpecifier(); break; + case 384: { action. consumeClassSpecifier(); break; } - + // // Rule 385: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt // - case 385: { action.builder. - consumeClassHead(false); break; + case 385: { action. consumeClassHead(false); break; } - + // // Rule 386: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt // - case 386: { action.builder. - consumeClassHead(false); break; + case 386: { action. consumeClassHead(false); break; } - + // // Rule 387: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt // - case 387: { action.builder. - consumeClassHead(true); break; + case 387: { action. consumeClassHead(true); break; } - + // // Rule 388: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt // - case 388: { action.builder. - consumeClassHead(true); break; + case 388: { action. consumeClassHead(true); break; } - + // // Rule 390: identifier_name_opt ::= $Empty // - case 390: { action.builder. - consumeEmpty(); break; + case 390: { action. consumeEmpty(); break; } - + // // Rule 394: visibility_label ::= access_specifier_keyword : // - case 394: { action.builder. - consumeVisibilityLabel(); break; + case 394: { action. consumeVisibilityLabel(); break; } - + // // Rule 395: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; // - case 395: { action.builder. - consumeDeclarationSimple(true); break; + case 395: { action. consumeDeclarationSimple(true); break; } - + // // Rule 396: member_declaration ::= declaration_specifiers_opt ; // - case 396: { action.builder. - consumeDeclarationSimple(false); break; + case 396: { action. consumeDeclarationSimple(false); break; } - + // // Rule 399: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 399: { action.builder. - consumeMemberDeclarationQualifiedId(); break; + case 399: { action. consumeMemberDeclarationQualifiedId(); break; } - + // // Rule 405: member_declaration ::= ERROR_TOKEN // - case 405: { action.builder. - consumeDeclarationProblem(); break; + case 405: { action. consumeDeclarationProblem(); break; } - + // // Rule 413: member_declarator ::= declarator constant_initializer // - case 413: { action.builder. - consumeMemberDeclaratorWithInitializer(); break; + case 413: { action. consumeMemberDeclaratorWithInitializer(); break; } - + // // Rule 414: member_declarator ::= bit_field_declarator : constant_expression // - case 414: { action.builder. - consumeBitField(true); break; + case 414: { action. consumeBitField(true); break; } - + // // Rule 415: member_declarator ::= : constant_expression // - case 415: { action.builder. - consumeBitField(false); break; + case 415: { action. consumeBitField(false); break; } - + // // Rule 416: bit_field_declarator ::= identifier_name // - case 416: { action.builder. - consumeDirectDeclaratorIdentifier(); break; + case 416: { action. consumeDirectDeclaratorIdentifier(); break; } - + // // Rule 417: constant_initializer ::= = constant_expression // - case 417: { action.builder. - consumeInitializer(); break; + case 417: { action. consumeInitializer(); break; } - + // // Rule 423: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 423: { action.builder. - consumeBaseSpecifier(false, false); break; + case 423: { action. consumeBaseSpecifier(false, false); break; } - + // // Rule 424: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 424: { action.builder. - consumeBaseSpecifier(true, true); break; + case 424: { action. consumeBaseSpecifier(true, true); break; } - + // // Rule 425: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 425: { action.builder. - consumeBaseSpecifier(true, true); break; + case 425: { action. consumeBaseSpecifier(true, true); break; } - + // // Rule 426: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 426: { action.builder. - consumeBaseSpecifier(true, false); break; + case 426: { action. consumeBaseSpecifier(true, false); break; } - + // // Rule 427: access_specifier_keyword ::= private // - case 427: { action.builder. - consumeAccessKeywordToken(); break; + case 427: { action. consumeToken(); break; } - + // // Rule 428: access_specifier_keyword ::= protected // - case 428: { action.builder. - consumeAccessKeywordToken(); break; + case 428: { action. consumeToken(); break; } - + // // Rule 429: access_specifier_keyword ::= public // - case 429: { action.builder. - consumeAccessKeywordToken(); break; + case 429: { action. consumeToken(); break; } - + // // Rule 431: access_specifier_keyword_opt ::= $Empty // - case 431: { action.builder. - consumeEmpty(); break; + case 431: { action. consumeEmpty(); break; } - + // // Rule 433: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > // - case 433: { action.builder. - consumeTemplateId(); break; + case 433: { action. consumeTemplateId(); break; } - + // // Rule 434: conversion_function_id ::= operator conversion_type_id // - case 434: { action.builder. - consumeConversionName(); break; + case 434: { action. consumeConversionName(); break; } - + // // Rule 435: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 435: { action.builder. - consumeTypeId(true); break; + case 435: { action. consumeTypeId(true); break; } - + // // Rule 436: conversion_type_id ::= type_specifier_seq // - case 436: { action.builder. - consumeTypeId(false); break; + case 436: { action. consumeTypeId(false); break; } - + // // Rule 437: conversion_declarator ::= <openscope-ast> ptr_operator_seq // - case 437: { action.builder. - consumeDeclaratorWithPointer(false); break; + case 437: { action. consumeDeclaratorWithPointer(false); break; } - + // // Rule 443: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 443: { action.builder. - consumeConstructorChainInitializer(); break; + case 443: { action. consumeConstructorChainInitializer(); break; } - + // // Rule 444: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 444: { action.builder. - consumeQualifiedId(false); break; + case 444: { action. consumeQualifiedId(false); break; } - + // // Rule 447: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > // - case 447: { action.builder. - consumeTemplateId(); break; + case 447: { action. consumeTemplateId(); break; } - + // // Rule 448: operator_id_name ::= operator overloadable_operator // - case 448: { action.builder. - consumeOperatorName(); break; + case 448: { action. consumeOperatorName(); break; } - + // // Rule 491: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration // - case 491: { action.builder. - consumeTemplateDeclaration(); break; + case 491: { action. consumeTemplateDeclaration(); break; } - + // // Rule 492: export_opt ::= export // - case 492: { action.builder. - consumePlaceHolder(); break; + case 492: { action. consumePlaceHolder(); break; } - + // // Rule 493: export_opt ::= $Empty // - case 493: { action.builder. - consumeEmpty(); break; + case 493: { action. consumeEmpty(); break; } - + // // Rule 497: template_parameter ::= parameter_declaration // - case 497: { action.builder. - consumeTemplateParamterDeclaration(); break; + case 497: { action. consumeTemplateParamterDeclaration(); break; } - + // // Rule 498: type_parameter ::= class identifier_name_opt // - case 498: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; + case 498: { action. consumeSimpleTypeTemplateParameter(false); break; } - + // // Rule 499: type_parameter ::= class identifier_name_opt = type_id // - case 499: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; + case 499: { action. consumeSimpleTypeTemplateParameter(true); break; } - + // // Rule 500: type_parameter ::= typename identifier_name_opt // - case 500: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; + case 500: { action. consumeSimpleTypeTemplateParameter(false); break; } - + // // Rule 501: type_parameter ::= typename identifier_name_opt = type_id // - case 501: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; + case 501: { action. consumeSimpleTypeTemplateParameter(true); break; } - + // // Rule 502: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt // - case 502: { action.builder. - consumeTemplatedTypeTemplateParameter(false); break; + case 502: { action. consumeTemplatedTypeTemplateParameter(false); break; } - + // // Rule 503: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression // - case 503: { action.builder. - consumeTemplatedTypeTemplateParameter(true); break; + case 503: { action. consumeTemplatedTypeTemplateParameter(true); break; } - + // // Rule 504: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > // - case 504: { action.builder. - consumeTemplateId(); break; + case 504: { action. consumeTemplateId(); break; } - + // // Rule 509: template_argument ::= assignment_expression // - case 509: { action.builder. - consumeTemplateArgumentExpression(); break; + case 509: { action. consumeTemplateArgumentExpression(); break; } - + // // Rule 510: template_argument ::= type_id // - case 510: { action.builder. - consumeTemplateArgumentTypeId(); break; + case 510: { action. consumeTemplateArgumentTypeId(); break; } - + // // Rule 511: explicit_instantiation ::= template declaration // - case 511: { action.builder. - consumeTemplateExplicitInstantiation(); break; + case 511: { action. consumeTemplateExplicitInstantiation(); break; } - + // // Rule 512: explicit_specialization ::= template < > declaration // - case 512: { action.builder. - consumeTemplateExplicitSpecialization(); break; + case 512: { action. consumeTemplateExplicitSpecialization(); break; } - + // // Rule 513: try_block ::= try compound_statement <openscope-ast> handler_seq // - case 513: { action.builder. - consumeStatementTryBlock(); break; + case 513: { action. consumeStatementTryBlock(); break; } - + // // Rule 516: handler ::= catch ( exception_declaration ) compound_statement // - case 516: { action.builder. - consumeStatementCatchHandler(false); break; + case 516: { action. consumeStatementCatchHandler(false); break; } - + // // Rule 517: handler ::= catch ( ... ) compound_statement // - case 517: { action.builder. - consumeStatementCatchHandler(true); break; + case 517: { action. consumeStatementCatchHandler(true); break; } - + // // Rule 518: exception_declaration ::= type_specifier_seq <openscope-ast> declarator // - case 518: { action.builder. - consumeDeclarationSimple(true); break; + case 518: { action. consumeDeclarationSimple(true); break; } - + // // Rule 519: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator // - case 519: { action.builder. - consumeDeclarationSimple(true); break; + case 519: { action. consumeDeclarationSimple(true); break; } - + // // Rule 520: exception_declaration ::= type_specifier_seq // - case 520: { action.builder. - consumeDeclarationSimple(false); break; + case 520: { action. consumeDeclarationSimple(false); break; } - + // // Rule 522: exception_specification ::= throw ( ) // - case 522: { action.builder. - consumePlaceHolder(); break; + case 522: { action. consumePlaceHolder(); break; } - + // // Rule 528: no_sizeof_type_name_start ::= ERROR_TOKEN // - case 528: { action.builder. - consumeExpressionProblem(); break; + case 528: { action. consumeExpressionProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java index 0a90d214bf1..d5ab9363a7d 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java @@ -3,7 +3,7 @@ * 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 -* http://www.eclipse.org/legal/epl_v10.html +* http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java index c3b57d1ead2..8669bcea706 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java @@ -3,7 +3,7 @@ * 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 -* http://www.eclipse.org/legal/epl_v10.html +* http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java index 17cf008ee9e..d1eaa7b7f23 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java @@ -3,7 +3,7 @@ * 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 -* http://www.eclipse.org/legal/epl_v10.html +* http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation @@ -16,11 +16,7 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; import lpg.lpgjavaruntime.*; import java.util.*; - import org.eclipse.cdt.core.dom.ast.*; -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.IParser; import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; @@ -28,7 +24,11 @@ import org.eclipse.cdt.core.dom.lrparser.lpgextensions.FixedBacktrackingParser; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; -public class CPPTemplateTypeParameterParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser +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; + +public class CPPTemplateTypeParameterParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser { private static ParseTable prs = new CPPTemplateTypeParameterParserprs(); private FixedBacktrackingParser btParser; @@ -165,28 +165,19 @@ public class CPPTemplateTypeParameterParser extends PrsStream implements RuleAct } -private CPPParserAction action; +private CPPBuildASTParserAction action; -// uncomment to use with backtracking parser public CPPTemplateTypeParameterParser() { // constructor } private void initActions(IASTTranslationUnit tu, Set<IParser.Options> options) { - // binding resolution actions need access to IASTName nodes, temporary - action = new CPPParserAction (); - //action.resolver = new C99TypedefTrackerParserAction (this); - action.builder = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu); - //action.builder.setTokenMap(CPPParsersym.orderedTerminalSymbols); - - action.builder.setParserOptions(options); - - // comment this line to use with backtracking parser - //setParserAction(action); + action = new CPPBuildASTParserAction ( CPPNodeFactory.getDefault() , this, tu); + action.setParserOptions(options); } public void addToken(IToken token) { - token.setKind(mapKind(token.getKind())); + token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called? super.addToken(token); } @@ -196,37 +187,35 @@ public IASTCompletionNode parse(IASTTranslationUnit tu, Set<IParser.Options> opt setStreamLength(getSize()); initActions(tu, options); - final int errorRepairCount = -1; // _1 means full error handling + final int errorRepairCount = -1; // -1 means full error handling parser(null, errorRepairCount); // do the actual parse super.resetTokenStream(); // allow tokens to be garbage collected // the completion node may be null - IASTCompletionNode compNode = action.builder.getASTCompletionNode(); + IASTCompletionNode compNode = action.getASTCompletionNode(); - //action = null; // causes getSecondaryParseResult() to fail - - // Comment this line to use with backtracking parser + //action = null; //parserAction = null; - return compNode; } - // uncomment this method to use with backtracking parser public List getRuleTokens() { return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1)); } + public IASTNode getSecondaryParseResult() { - return action.builder.getSecondaryParseResult(); + return action.getSecondaryParseResult(); } public String[] getOrderedTerminalSymbols() { return CPPTemplateTypeParameterParsersym.orderedTerminalSymbols; } +@SuppressWarnings("nls") public String getName() { - return "CPPTemplateTypeParameterParser"; //$NON-NLS-1$ + return "CPPTemplateTypeParameterParser"; } @@ -257,2024 +246,1735 @@ public CPPTemplateTypeParameterParser(String[] mapFrom) { // constructor // // Rule 1: <openscope-ast> ::= $Empty // - case 1: { action.builder. - openASTScope(); break; - } + case 1: { action. openASTScope(); break; + } // // Rule 2: <empty> ::= $Empty // - case 2: { action.builder. - consumeEmpty(); break; - } - + case 2: { action. consumeEmpty(); break; + } + // // Rule 13: translation_unit ::= declaration_seq_opt // - case 13: { action.builder. - consumeTranslationUnit(); break; + case 13: { action. consumeTranslationUnit(); break; } - + // // Rule 16: literal ::= integer // - case 16: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; + case 16: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } - + // // Rule 17: literal ::= 0 // - case 17: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; + case 17: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } - + // // Rule 18: literal ::= floating // - case 18: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; + case 18: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; } - + // // Rule 19: literal ::= charconst // - case 19: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; + case 19: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } - + // // Rule 20: literal ::= stringlit // - case 20: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; + case 20: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } - + // // Rule 21: literal ::= true // - case 21: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; + case 21: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } - + // // Rule 22: literal ::= false // - case 22: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; + case 22: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } - + // // Rule 23: literal ::= this // - case 23: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; + case 23: { action. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } - + // // Rule 25: primary_expression ::= ( expression ) // - case 25: { action.builder. - consumeExpressionBracketed(); break; + case 25: { action. consumeExpressionBracketed(); break; } - + // // Rule 27: id_expression ::= qualified_or_unqualified_name // - case 27: { action.builder. - consumeExpressionName(); break; + case 27: { action. consumeExpressionName(); break; } - + // // Rule 34: unqualified_id_name ::= ~ identifier_token // - case 34: { action.builder. - consumeDestructorName(); break; + case 34: { action. consumeDestructorName(); break; } - + // // Rule 35: unqualified_id_name ::= ~ template_id_name // - case 35: { action.builder. - consumeDestructorNameTemplateId(); break; + case 35: { action. consumeDestructorNameTemplateId(); break; } - + // // Rule 36: identifier_name ::= identifier_token // - case 36: { action.builder. - consumeIdentifierName(); break; + case 36: { action. consumeIdentifierName(); break; } - + // // Rule 37: template_opt ::= template // - case 37: { action.builder. - consumePlaceHolder(); break; + case 37: { action. consumePlaceHolder(); break; } - + // // Rule 38: template_opt ::= $Empty // - case 38: { action.builder. - consumeEmpty(); break; + case 38: { action. consumeEmpty(); break; } - + // // Rule 39: dcolon_opt ::= :: // - case 39: { action.builder. - consumeToken(); break; + case 39: { action. consumeToken(); break; } - + // // Rule 40: dcolon_opt ::= $Empty // - case 40: { action.builder. - consumeEmpty(); break; + case 40: { action. consumeEmpty(); break; } - + // // Rule 41: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name // - case 41: { action.builder. - consumeQualifiedId(true); break; + case 41: { action. consumeQualifiedId(true); break; } - + // // Rule 42: qualified_id_name ::= :: unqualified_id_name // - case 42: { action.builder. - consumeGlobalQualifiedId(); break; + case 42: { action. consumeGlobalQualifiedId(); break; } - + // // Rule 43: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // - case 43: { action.builder. - consumeNestedNameSpecifier(true); break; + case 43: { action. consumeNestedNameSpecifier(true); break; } - + // // Rule 44: nested_name_specifier ::= class_or_namespace_name :: // - case 44: { action.builder. - consumeNestedNameSpecifier(false); break; + case 44: { action. consumeNestedNameSpecifier(false); break; } - + // // Rule 45: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // - case 45: { action.builder. - consumeNestedNameSpecifier(true); break; + case 45: { action. consumeNestedNameSpecifier(true); break; } - + // // Rule 46: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // - case 46: { action.builder. - consumeNestedNameSpecifier(false); break; + case 46: { action. consumeNestedNameSpecifier(false); break; } - + // // Rule 47: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name // - case 47: { action.builder. - consumeNameWithTemplateKeyword(); break; + case 47: { action. consumeNameWithTemplateKeyword(); break; } - + // // Rule 49: nested_name_specifier_opt ::= $Empty // - case 49: { action.builder. - consumeNestedNameSpecifierEmpty(); break; + case 49: { action. consumeNestedNameSpecifierEmpty(); break; } - + // // Rule 52: postfix_expression ::= postfix_expression [ expression ] // - case 52: { action.builder. - consumeExpressionArraySubscript(); break; + case 52: { action. consumeExpressionArraySubscript(); break; } - + // // Rule 53: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 53: { action.builder. - consumeExpressionFunctionCall(); break; + case 53: { action. consumeExpressionFunctionCall(); break; } - + // // Rule 54: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 54: { action.builder. - consumeExpressionSimpleTypeConstructor(); break; + case 54: { action. consumeExpressionSimpleTypeConstructor(); break; } - + // // Rule 55: postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt ) // - case 55: { action.builder. - consumeExpressionTypeName(); break; + case 55: { action. consumeExpressionTypeName(); break; } - + // // Rule 56: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) // - case 56: { action.builder. - consumeExpressionTypeName(); break; + case 56: { action. consumeExpressionTypeName(); break; } - + // // Rule 57: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // - case 57: { action.builder. - consumeExpressionFieldReference(false, false); break; + case 57: { action. consumeExpressionFieldReference(false, false); break; } - + // // Rule 58: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 58: { action.builder. - consumeExpressionFieldReference(true, false); break; + case 58: { action. consumeExpressionFieldReference(true, false); break; } - + // // Rule 59: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 59: { action.builder. - consumeExpressionFieldReference(false, true); break; + case 59: { action. consumeExpressionFieldReference(false, true); break; } - + // // Rule 60: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 60: { action.builder. - consumeExpressionFieldReference(true, true); break; + case 60: { action. consumeExpressionFieldReference(true, true); break; } - + // // Rule 61: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 61: { action.builder. - consumeExpressionFieldReference(false, false); break; + case 61: { action. consumeExpressionFieldReference(false, false); break; } - + // // Rule 62: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 62: { action.builder. - consumeExpressionFieldReference(true, false); break; + case 62: { action. consumeExpressionFieldReference(true, false); break; } - + // // Rule 63: postfix_expression ::= postfix_expression ++ // - case 63: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; + case 63: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } - + // // Rule 64: postfix_expression ::= postfix_expression -- // - case 64: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; + case 64: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } - + // // Rule 65: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 65: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; + case 65: { action. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } - + // // Rule 66: postfix_expression ::= static_cast < type_id > ( expression ) // - case 66: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; + case 66: { action. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } - + // // Rule 67: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 67: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; + case 67: { action. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } - + // // Rule 68: postfix_expression ::= const_cast < type_id > ( expression ) // - case 68: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; + case 68: { action. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } - + // // Rule 69: postfix_expression ::= typeid ( expression ) // - case 69: { action.builder. - consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; + case 69: { action. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } - + // // Rule 70: postfix_expression ::= typeid ( type_id ) // - case 70: { action.builder. - consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; + case 70: { action. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } - + // // Rule 71: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name // - case 71: { action.builder. - consumePsudoDestructorName(true); break; + case 71: { action. consumePsudoDestructorName(true); break; } - + // // Rule 72: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name // - case 72: { action.builder. - consumePsudoDestructorName(true); break; + case 72: { action. consumePsudoDestructorName(true); break; } - + // // Rule 73: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name // - case 73: { action.builder. - consumePsudoDestructorName(false); break; + case 73: { action. consumePsudoDestructorName(false); break; } - + // // Rule 74: destructor_type_name ::= ~ identifier_token // - case 74: { action.builder. - consumeDestructorName(); break; + case 74: { action. consumeDestructorName(); break; } - + // // Rule 75: destructor_type_name ::= ~ template_id_name // - case 75: { action.builder. - consumeDestructorNameTemplateId(); break; + case 75: { action. consumeDestructorNameTemplateId(); break; } - + // // Rule 79: unary_expression ::= ++ cast_expression // - case 79: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; + case 79: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } - + // // Rule 80: unary_expression ::= -- cast_expression // - case 80: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; + case 80: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } - + // // Rule 81: unary_expression ::= & cast_expression // - case 81: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; + case 81: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } - + // // Rule 82: unary_expression ::= * cast_expression // - case 82: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; + case 82: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } - + // // Rule 83: unary_expression ::= + cast_expression // - case 83: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; + case 83: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } - + // // Rule 84: unary_expression ::= - cast_expression // - case 84: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; + case 84: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } - + // // Rule 85: unary_expression ::= ~ cast_expression // - case 85: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; + case 85: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } - + // // Rule 86: unary_expression ::= ! cast_expression // - case 86: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; + case 86: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } - + // // Rule 87: unary_expression ::= sizeof unary_expression // - case 87: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; + case 87: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } - + // // Rule 88: unary_expression ::= sizeof ( type_id ) // - case 88: { action.builder. - consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; + case 88: { action. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } - + // // Rule 89: new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt // - case 89: { action.builder. - consumeExpressionNew(true); break; + case 89: { action. consumeExpressionNew(true); break; } - + // // Rule 90: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt // - case 90: { action.builder. - consumeExpressionNew(false); break; + case 90: { action. consumeExpressionNew(false); break; } - + // // Rule 92: new_placement_opt ::= $Empty // - case 92: { action.builder. - consumeEmpty(); break; + case 92: { action. consumeEmpty(); break; } - + // // Rule 93: new_type_id ::= type_specifier_seq // - case 93: { action.builder. - consumeTypeId(false); break; + case 93: { action. consumeTypeId(false); break; } - + // // Rule 94: new_type_id ::= type_specifier_seq new_declarator // - case 94: { action.builder. - consumeTypeId(true); break; + case 94: { action. consumeTypeId(true); break; } - + // // Rule 95: new_declarator ::= <openscope-ast> new_pointer_operators // - case 95: { action.builder. - consumeNewDeclarator(); break; + case 95: { action. consumeNewDeclarator(); break; } - + // // Rule 102: new_initializer ::= ( expression_list_opt ) // - case 102: { action.builder. - consumeNewInitializer(); break; + case 102: { action. consumeNewInitializer(); break; } - + // // Rule 104: new_initializer_opt ::= $Empty // - case 104: { action.builder. - consumeEmpty(); break; + case 104: { action. consumeEmpty(); break; } - + // // Rule 105: delete_expression ::= dcolon_opt delete cast_expression // - case 105: { action.builder. - consumeExpressionDelete(false); break; + case 105: { action. consumeExpressionDelete(false); break; } - + // // Rule 106: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 106: { action.builder. - consumeExpressionDelete(true); break; + case 106: { action. consumeExpressionDelete(true); break; } - + // // Rule 108: cast_expression ::= ( type_id ) cast_expression // - case 108: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_cast); break; + case 108: { action. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } - + // // Rule 110: pm_expression ::= pm_expression .* cast_expression // - case 110: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; + case 110: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } - + // // Rule 111: pm_expression ::= pm_expression ->* cast_expression // - case 111: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; + case 111: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } - + // // Rule 113: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 113: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; + case 113: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } - + // // Rule 114: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 114: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; + case 114: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } - + // // Rule 115: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 115: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; + case 115: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } - + // // Rule 117: additive_expression ::= additive_expression + multiplicative_expression // - case 117: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; + case 117: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } - + // // Rule 118: additive_expression ::= additive_expression - multiplicative_expression // - case 118: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; + case 118: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } - + // // Rule 120: shift_expression ::= shift_expression << additive_expression // - case 120: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; + case 120: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } - + // // Rule 121: shift_expression ::= shift_expression >> additive_expression // - case 121: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; + case 121: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } - + // // Rule 123: relational_expression ::= relational_expression < shift_expression // - case 123: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; + case 123: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } - + // // Rule 124: relational_expression ::= relational_expression > shift_expression // - case 124: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; + case 124: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } - + // // Rule 125: relational_expression ::= relational_expression <= shift_expression // - case 125: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; + case 125: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } - + // // Rule 126: relational_expression ::= relational_expression >= shift_expression // - case 126: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; + case 126: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } - + // // Rule 128: equality_expression ::= equality_expression == relational_expression // - case 128: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; + case 128: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } - + // // Rule 129: equality_expression ::= equality_expression != relational_expression // - case 129: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; + case 129: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } - + // // Rule 131: and_expression ::= and_expression & equality_expression // - case 131: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; + case 131: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } - + // // Rule 133: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 133: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; + case 133: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } - + // // Rule 135: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 135: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; + case 135: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } - + // // Rule 137: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 137: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; + case 137: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } - + // // Rule 139: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 139: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; + case 139: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } - + // // Rule 141: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 141: { action.builder. - consumeExpressionConditional(); break; + case 141: { action. consumeExpressionConditional(); break; } - + // // Rule 142: throw_expression ::= throw // - case 142: { action.builder. - consumeExpressionThrow(false); break; + case 142: { action. consumeExpressionThrow(false); break; } - + // // Rule 143: throw_expression ::= throw assignment_expression // - case 143: { action.builder. - consumeExpressionThrow(true); break; + case 143: { action. consumeExpressionThrow(true); break; } - + // // Rule 146: assignment_expression ::= logical_or_expression = assignment_expression // - case 146: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; + case 146: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } - + // // Rule 147: assignment_expression ::= logical_or_expression *= assignment_expression // - case 147: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; + case 147: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } - + // // Rule 148: assignment_expression ::= logical_or_expression /= assignment_expression // - case 148: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; + case 148: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } - + // // Rule 149: assignment_expression ::= logical_or_expression %= assignment_expression // - case 149: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; + case 149: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } - + // // Rule 150: assignment_expression ::= logical_or_expression += assignment_expression // - case 150: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; + case 150: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } - + // // Rule 151: assignment_expression ::= logical_or_expression -= assignment_expression // - case 151: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; + case 151: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } - + // // Rule 152: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 152: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; + case 152: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } - + // // Rule 153: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 153: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; + case 153: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } - + // // Rule 154: assignment_expression ::= logical_or_expression &= assignment_expression // - case 154: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; + case 154: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } - + // // Rule 155: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 155: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; + case 155: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } - + // // Rule 156: assignment_expression ::= logical_or_expression |= assignment_expression // - case 156: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; + case 156: { action. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } - + // // Rule 158: expression_list ::= <openscope-ast> expression_list_actual // - case 158: { action.builder. - consumeExpressionList(); break; + case 158: { action. consumeExpressionList(); break; } - + // // Rule 162: expression_list_opt ::= $Empty // - case 162: { action.builder. - consumeEmpty(); break; + case 162: { action. consumeEmpty(); break; } - + // // Rule 164: expression_opt ::= $Empty // - case 164: { action.builder. - consumeEmpty(); break; + case 164: { action. consumeEmpty(); break; } - + // // Rule 167: constant_expression_opt ::= $Empty // - case 167: { action.builder. - consumeEmpty(); break; + case 167: { action. consumeEmpty(); break; } - + // // Rule 176: statement ::= ERROR_TOKEN // - case 176: { action.builder. - consumeStatementProblem(); break; + case 176: { action. consumeStatementProblem(); break; } - + // // Rule 177: labeled_statement ::= identifier : statement // - case 177: { action.builder. - consumeStatementLabeled(); break; + case 177: { action. consumeStatementLabeled(); break; } - + // // Rule 178: labeled_statement ::= case constant_expression : statement // - case 178: { action.builder. - consumeStatementCase(); break; + case 178: { action. consumeStatementCase(); break; } - + // // Rule 179: labeled_statement ::= default : statement // - case 179: { action.builder. - consumeStatementDefault(); break; + case 179: { action. consumeStatementDefault(); break; } - + // // Rule 180: expression_statement ::= expression ; // - case 180: { action.builder. - consumeStatementExpression(); break; + case 180: { action. consumeStatementExpression(); break; } - + // // Rule 181: expression_statement ::= ; // - case 181: { action.builder. - consumeStatementNull(); break; + case 181: { action. consumeStatementNull(); break; } - + // // Rule 182: compound_statement ::= { <openscope-ast> statement_seq } // - case 182: { action.builder. - consumeStatementCompoundStatement(true); break; + case 182: { action. consumeStatementCompoundStatement(true); break; } - + // // Rule 183: compound_statement ::= { } // - case 183: { action.builder. - consumeStatementCompoundStatement(false); break; + case 183: { action. consumeStatementCompoundStatement(false); break; } - + // // Rule 186: selection_statement ::= if ( condition ) statement // - case 186: { action.builder. - consumeStatementIf(false); break; + case 186: { action. consumeStatementIf(false); break; } - + // // Rule 187: selection_statement ::= if ( condition ) statement else statement // - case 187: { action.builder. - consumeStatementIf(true); break; + case 187: { action. consumeStatementIf(true); break; } - + // // Rule 188: selection_statement ::= switch ( condition ) statement // - case 188: { action.builder. - consumeStatementSwitch(); break; + case 188: { action. consumeStatementSwitch(); break; } - + // // Rule 190: condition ::= type_specifier_seq declarator = assignment_expression // - case 190: { action.builder. - consumeConditionDeclaration(); break; + case 190: { action. consumeConditionDeclaration(); break; } - + // // Rule 192: condition_opt ::= $Empty // - case 192: { action.builder. - consumeEmpty(); break; + case 192: { action. consumeEmpty(); break; } - + // // Rule 193: iteration_statement ::= while ( condition ) statement // - case 193: { action.builder. - consumeStatementWhileLoop(); break; + case 193: { action. consumeStatementWhileLoop(); break; } - + // // Rule 194: iteration_statement ::= do statement while ( expression ) ; // - case 194: { action.builder. - consumeStatementDoLoop(); break; + case 194: { action. consumeStatementDoLoop(); break; } - + // // Rule 195: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 195: { action.builder. - consumeStatementForLoop(); break; + case 195: { action. consumeStatementForLoop(); break; } - + // // Rule 197: for_init_statement ::= simple_declaration_with_declspec // - case 197: { action.builder. - consumeStatementDeclaration(); break; + case 197: { action. consumeStatementDeclaration(); break; } - + // // Rule 198: jump_statement ::= break ; // - case 198: { action.builder. - consumeStatementBreak(); break; + case 198: { action. consumeStatementBreak(); break; } - + // // Rule 199: jump_statement ::= continue ; // - case 199: { action.builder. - consumeStatementContinue(); break; + case 199: { action. consumeStatementContinue(); break; } - + // // Rule 200: jump_statement ::= return expression ; // - case 200: { action.builder. - consumeStatementReturn(true); break; + case 200: { action. consumeStatementReturn(true); break; } - + // // Rule 201: jump_statement ::= return ; // - case 201: { action.builder. - consumeStatementReturn(false); break; + case 201: { action. consumeStatementReturn(false); break; } - + // // Rule 202: jump_statement ::= goto identifier_token ; // - case 202: { action.builder. - consumeStatementGoto(); break; + case 202: { action. consumeStatementGoto(); break; } - + // // Rule 203: declaration_statement ::= block_declaration // - case 203: { action.builder. - consumeStatementDeclarationWithDisambiguation(); break; + case 203: { action. consumeStatementDeclarationWithDisambiguation(); break; } - + // // Rule 204: declaration_statement ::= function_definition // - case 204: { action.builder. - consumeStatementDeclaration(); break; + case 204: { action. consumeStatementDeclaration(); break; } - + // // Rule 212: declaration ::= ERROR_TOKEN // - case 212: { action.builder. - consumeDeclarationProblem(); break; + case 212: { action. consumeDeclarationProblem(); break; } - + // // Rule 222: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ; // - case 222: { action.builder. - consumeDeclarationSimple(true); break; + case 222: { action. consumeDeclarationSimple(true); break; } - + // // Rule 223: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ; // - case 223: { action.builder. - consumeDeclarationSimple(true); break; + case 223: { action. consumeDeclarationSimple(true); break; } - + // // Rule 224: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers // - case 224: { action.builder. - consumeDeclarationSpecifiersSimple(); break; + case 224: { action. consumeDeclarationSpecifiersSimple(); break; } - + // // Rule 225: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers // - case 225: { action.builder. - consumeDeclarationSpecifiersComposite(); break; + case 225: { action. consumeDeclarationSpecifiersComposite(); break; } - + // // Rule 226: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers // - case 226: { action.builder. - consumeDeclarationSpecifiersComposite(); break; + case 226: { action. consumeDeclarationSpecifiersComposite(); break; } - + // // Rule 227: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers // - case 227: { action.builder. - consumeDeclarationSpecifiersComposite(); break; + case 227: { action. consumeDeclarationSpecifiersComposite(); break; } - + // // Rule 228: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers // - case 228: { action.builder. - consumeDeclarationSpecifiersTypeName(); break; + case 228: { action. consumeDeclarationSpecifiersTypeName(); break; } - + // // Rule 230: declaration_specifiers_opt ::= $Empty // - case 230: { action.builder. - consumeEmpty(); break; + case 230: { action. consumeEmpty(); break; } - + // // Rule 234: no_type_declaration_specifier ::= friend // - case 234: { action.builder. - consumeDeclSpecToken(); break; + case 234: { action. consumeDeclSpecToken(); break; } - + // // Rule 235: no_type_declaration_specifier ::= typedef // - case 235: { action.builder. - consumeDeclSpecToken(); break; + case 235: { action. consumeDeclSpecToken(); break; } - + // // Rule 255: storage_class_specifier ::= auto // - case 255: { action.builder. - consumeDeclSpecToken(); break; + case 255: { action. consumeDeclSpecToken(); break; } - + // // Rule 256: storage_class_specifier ::= register // - case 256: { action.builder. - consumeDeclSpecToken(); break; + case 256: { action. consumeDeclSpecToken(); break; } - + // // Rule 257: storage_class_specifier ::= static // - case 257: { action.builder. - consumeDeclSpecToken(); break; + case 257: { action. consumeDeclSpecToken(); break; } - + // // Rule 258: storage_class_specifier ::= extern // - case 258: { action.builder. - consumeDeclSpecToken(); break; + case 258: { action. consumeDeclSpecToken(); break; } - + // // Rule 259: storage_class_specifier ::= mutable // - case 259: { action.builder. - consumeDeclSpecToken(); break; + case 259: { action. consumeDeclSpecToken(); break; } - + // // Rule 260: function_specifier ::= inline // - case 260: { action.builder. - consumeDeclSpecToken(); break; + case 260: { action. consumeDeclSpecToken(); break; } - + // // Rule 261: function_specifier ::= virtual // - case 261: { action.builder. - consumeDeclSpecToken(); break; + case 261: { action. consumeDeclSpecToken(); break; } - + // // Rule 262: function_specifier ::= explicit // - case 262: { action.builder. - consumeDeclSpecToken(); break; + case 262: { action. consumeDeclSpecToken(); break; } - + // // Rule 263: simple_type_specifier ::= char // - case 263: { action.builder. - consumeDeclSpecToken(); break; + case 263: { action. consumeDeclSpecToken(); break; } - + // // Rule 264: simple_type_specifier ::= wchar_t // - case 264: { action.builder. - consumeDeclSpecToken(); break; + case 264: { action. consumeDeclSpecToken(); break; } - + // // Rule 265: simple_type_specifier ::= bool // - case 265: { action.builder. - consumeDeclSpecToken(); break; + case 265: { action. consumeDeclSpecToken(); break; } - + // // Rule 266: simple_type_specifier ::= short // - case 266: { action.builder. - consumeDeclSpecToken(); break; + case 266: { action. consumeDeclSpecToken(); break; } - + // // Rule 267: simple_type_specifier ::= int // - case 267: { action.builder. - consumeDeclSpecToken(); break; + case 267: { action. consumeDeclSpecToken(); break; } - + // // Rule 268: simple_type_specifier ::= long // - case 268: { action.builder. - consumeDeclSpecToken(); break; + case 268: { action. consumeDeclSpecToken(); break; } - + // // Rule 269: simple_type_specifier ::= signed // - case 269: { action.builder. - consumeDeclSpecToken(); break; + case 269: { action. consumeDeclSpecToken(); break; } - + // // Rule 270: simple_type_specifier ::= unsigned // - case 270: { action.builder. - consumeDeclSpecToken(); break; + case 270: { action. consumeDeclSpecToken(); break; } - + // // Rule 271: simple_type_specifier ::= float // - case 271: { action.builder. - consumeDeclSpecToken(); break; + case 271: { action. consumeDeclSpecToken(); break; } - + // // Rule 272: simple_type_specifier ::= double // - case 272: { action.builder. - consumeDeclSpecToken(); break; + case 272: { action. consumeDeclSpecToken(); break; } - + // // Rule 273: simple_type_specifier ::= void // - case 273: { action.builder. - consumeDeclSpecToken(); break; + case 273: { action. consumeDeclSpecToken(); break; } - + // // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 276: { action.builder. - consumeQualifiedId(false); break; + case 276: { action. consumeQualifiedId(false); break; } - + // // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 277: { action.builder. - consumeQualifiedId(false); break; + case 277: { action. consumeQualifiedId(false); break; } - + // // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 278: { action.builder. - consumeQualifiedId(false); break; + case 278: { action. consumeQualifiedId(false); break; } - + // // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 279: { action.builder. - consumeQualifiedId(true); break; + case 279: { action. consumeQualifiedId(true); break; } - + // // Rule 281: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 281: { action.builder. - consumeTypeSpecifierElaborated(false); break; + case 281: { action. consumeTypeSpecifierElaborated(false); break; } - + // // Rule 282: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 282: { action.builder. - consumeTypeSpecifierElaborated(true); break; + case 282: { action. consumeTypeSpecifierElaborated(true); break; } - + // // Rule 283: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 283: { action.builder. - consumeTypeSpecifierElaborated(false); break; + case 283: { action. consumeTypeSpecifierElaborated(false); break; } - + // // Rule 284: enum_specifier ::= enum { <openscope-ast> enumerator_list_opt } // - case 284: { action.builder. - consumeTypeSpecifierEnumeration(false); break; + case 284: { action. consumeTypeSpecifierEnumeration(false); break; } - + // // Rule 285: enum_specifier ::= enum identifier_token { <openscope-ast> enumerator_list_opt } // - case 285: { action.builder. - consumeTypeSpecifierEnumeration(true); break; + case 285: { action. consumeTypeSpecifierEnumeration(true); break; } - + // // Rule 290: enumerator_definition ::= identifier_token // - case 290: { action.builder. - consumeEnumerator(false); break; + case 290: { action. consumeEnumerator(false); break; } - + // // Rule 291: enumerator_definition ::= identifier_token = constant_expression // - case 291: { action.builder. - consumeEnumerator(true); break; + case 291: { action. consumeEnumerator(true); break; } - + // // Rule 295: named_namespace_definition ::= namespace namespace_name { <openscope-ast> declaration_seq_opt } // - case 295: { action.builder. - consumeNamespaceDefinition(true); break; + case 295: { action. consumeNamespaceDefinition(true); break; } - + // // Rule 296: unnamed_namespace_definition ::= namespace { <openscope-ast> declaration_seq_opt } // - case 296: { action.builder. - consumeNamespaceDefinition(false); break; + case 296: { action. consumeNamespaceDefinition(false); break; } - + // // Rule 297: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 297: { action.builder. - consumeNamespaceAliasDefinition(); break; + case 297: { action. consumeNamespaceAliasDefinition(); break; } - + // // Rule 298: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 298: { action.builder. - consumeUsingDeclaration(); break; + case 298: { action. consumeUsingDeclaration(); break; } - + // // Rule 299: typename_opt ::= typename // - case 299: { action.builder. - consumePlaceHolder(); break; + case 299: { action. consumePlaceHolder(); break; } - + // // Rule 300: typename_opt ::= $Empty // - case 300: { action.builder. - consumeEmpty(); break; + case 300: { action. consumeEmpty(); break; } - + // // Rule 301: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 301: { action.builder. - consumeUsingDirective(); break; + case 301: { action. consumeUsingDirective(); break; } - + // // Rule 302: asm_definition ::= asm ( stringlit ) ; // - case 302: { action.builder. - consumeDeclarationASM(); break; + case 302: { action. consumeDeclarationASM(); break; } - + // // Rule 303: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt } // - case 303: { action.builder. - consumeLinkageSpecification(); break; + case 303: { action. consumeLinkageSpecification(); break; } - + // // Rule 304: linkage_specification ::= extern stringlit <openscope-ast> declaration // - case 304: { action.builder. - consumeLinkageSpecification(); break; + case 304: { action. consumeLinkageSpecification(); break; } - + // // Rule 309: init_declarator_complete ::= init_declarator // - case 309: { action.builder. - consumeInitDeclaratorComplete(); break; + case 309: { action. consumeInitDeclaratorComplete(); break; } - + // // Rule 311: init_declarator ::= declarator initializer // - case 311: { action.builder. - consumeDeclaratorWithInitializer(true); break; + case 311: { action. consumeDeclaratorWithInitializer(true); break; } - + // // Rule 313: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator // - case 313: { action.builder. - consumeDeclaratorWithPointer(true); break; + case 313: { action. consumeDeclaratorWithPointer(true); break; } - + // // Rule 315: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator // - case 315: { action.builder. - consumeDeclaratorWithPointer(true); break; + case 315: { action. consumeDeclaratorWithPointer(true); break; } - + // // Rule 319: basic_direct_declarator ::= declarator_id_name // - case 319: { action.builder. - consumeDirectDeclaratorIdentifier(); break; + case 319: { action. consumeDirectDeclaratorIdentifier(); break; } - + // // Rule 320: basic_direct_declarator ::= ( declarator ) // - case 320: { action.builder. - consumeDirectDeclaratorBracketed(); break; + case 320: { action. consumeDirectDeclaratorBracketed(); break; } - + // // Rule 321: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt // - case 321: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(true); break; + case 321: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } - + // // Rule 322: array_direct_declarator ::= array_direct_declarator array_modifier // - case 322: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 322: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 323: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 323: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 323: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 324: array_modifier ::= [ constant_expression ] // - case 324: { action.builder. - consumeDirectDeclaratorArrayModifier(true); break; + case 324: { action. consumeDirectDeclaratorArrayModifier(true); break; } - + // // Rule 325: array_modifier ::= [ ] // - case 325: { action.builder. - consumeDirectDeclaratorArrayModifier(false); break; + case 325: { action. consumeDirectDeclaratorArrayModifier(false); break; } - + // // Rule 326: ptr_operator ::= * <openscope-ast> cv_qualifier_seq_opt // - case 326: { action.builder. - consumePointer(); break; + case 326: { action. consumePointer(); break; } - + // // Rule 327: ptr_operator ::= & // - case 327: { action.builder. - consumeReferenceOperator(); break; + case 327: { action. consumeReferenceOperator(); break; } - + // // Rule 328: ptr_operator ::= dcolon_opt nested_name_specifier * <openscope-ast> cv_qualifier_seq_opt // - case 328: { action.builder. - consumePointerToMember(); break; + case 328: { action. consumePointerToMember(); break; } - + // // Rule 334: cv_qualifier ::= const // - case 334: { action.builder. - consumeDeclSpecToken(); break; + case 334: { action. consumeDeclSpecToken(); break; } - + // // Rule 335: cv_qualifier ::= volatile // - case 335: { action.builder. - consumeDeclSpecToken(); break; + case 335: { action. consumeDeclSpecToken(); break; } - + // // Rule 337: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // - case 337: { action.builder. - consumeQualifiedId(false); break; + case 337: { action. consumeQualifiedId(false); break; } - + // // Rule 338: type_id ::= type_specifier_seq // - case 338: { action.builder. - consumeTypeId(false); break; + case 338: { action. consumeTypeId(false); break; } - + // // Rule 339: type_id ::= type_specifier_seq abstract_declarator // - case 339: { action.builder. - consumeTypeId(true); break; + case 339: { action. consumeTypeId(true); break; } - + // // Rule 342: abstract_declarator ::= <openscope-ast> ptr_operator_seq // - case 342: { action.builder. - consumeDeclaratorWithPointer(false); break; + case 342: { action. consumeDeclaratorWithPointer(false); break; } - + // // Rule 343: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator // - case 343: { action.builder. - consumeDeclaratorWithPointer(true); break; + case 343: { action. consumeDeclaratorWithPointer(true); break; } - + // // Rule 347: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 347: { action.builder. - consumeDirectDeclaratorBracketed(); break; + case 347: { action. consumeDirectDeclaratorBracketed(); break; } - + // // Rule 348: basic_direct_abstract_declarator ::= ( ) // - case 348: { action.builder. - consumeAbstractDeclaratorEmpty(); break; + case 348: { action. consumeAbstractDeclaratorEmpty(); break; } - + // // Rule 349: array_direct_abstract_declarator ::= array_modifier // - case 349: { action.builder. - consumeDirectDeclaratorArrayDeclarator(false); break; + case 349: { action. consumeDirectDeclaratorArrayDeclarator(false); break; } - + // // Rule 350: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 350: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 350: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 351: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 351: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; + case 351: { action. consumeDirectDeclaratorArrayDeclarator(true); break; } - + // // Rule 352: 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 352: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(true); break; + case 352: { action. consumeDirectDeclaratorFunctionDeclarator(true); break; } - + // // Rule 353: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt // - case 353: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(false); break; + case 353: { action. consumeDirectDeclaratorFunctionDeclarator(false); break; } - + // // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 354: { action.builder. - consumePlaceHolder(); break; + case 354: { action. consumePlaceHolder(); break; } - + // // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 355: { action.builder. - consumeEmpty(); break; + case 355: { action. consumeEmpty(); break; } - + // // Rule 356: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 356: { action.builder. - consumePlaceHolder(); break; + case 356: { action. consumePlaceHolder(); break; } - + // // Rule 362: abstract_declarator_opt ::= $Empty // - case 362: { action.builder. - consumeEmpty(); break; + case 362: { action. consumeEmpty(); break; } - + // // Rule 363: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 363: { action.builder. - consumeParameterDeclaration(); break; + case 363: { action. consumeParameterDeclaration(); break; } - + // // Rule 364: parameter_declaration ::= declaration_specifiers // - case 364: { action.builder. - consumeParameterDeclarationWithoutDeclarator(); break; + case 364: { action. consumeParameterDeclarationWithoutDeclarator(); break; } - + // // Rule 366: parameter_init_declarator ::= declarator = parameter_initializer // - case 366: { action.builder. - consumeDeclaratorWithInitializer(true); break; + case 366: { action. consumeDeclaratorWithInitializer(true); break; } - + // // Rule 368: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 368: { action.builder. - consumeDeclaratorWithInitializer(true); break; + case 368: { action. consumeDeclaratorWithInitializer(true); break; } - + // // Rule 369: parameter_init_declarator ::= = parameter_initializer // - case 369: { action.builder. - consumeDeclaratorWithInitializer(false); break; + case 369: { action. consumeDeclaratorWithInitializer(false); break; } - + // // Rule 370: parameter_initializer ::= assignment_expression // - case 370: { action.builder. - consumeInitializer(); break; + case 370: { action. consumeInitializer(); break; } - + // // Rule 371: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body // - case 371: { action.builder. - consumeFunctionDefinition(false); break; + case 371: { action. consumeFunctionDefinition(false); break; } - + // // Rule 372: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq // - case 372: { action.builder. - consumeFunctionDefinition(true); break; + case 372: { action. consumeFunctionDefinition(true); break; } - + // // Rule 375: initializer ::= ( expression_list ) // - case 375: { action.builder. - consumeInitializerConstructor(); break; + case 375: { action. consumeInitializerConstructor(); break; } - + // // Rule 376: initializer_clause ::= assignment_expression // - case 376: { action.builder. - consumeInitializer(); break; + case 376: { action. consumeInitializer(); break; } - + // // Rule 377: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list , } end_initializer_list // - case 377: { action.builder. - consumeInitializerList(); break; + case 377: { action. consumeInitializerList(); break; } - + // // Rule 378: initializer_clause ::= start_initializer_list { <openscope-ast> initializer_list } end_initializer_list // - case 378: { action.builder. - consumeInitializerList(); break; + case 378: { action. consumeInitializerList(); break; } - + // // Rule 379: initializer_clause ::= { <openscope-ast> } // - case 379: { action.builder. - consumeInitializerList(); break; + case 379: { action. consumeInitializerList(); break; } - + // // Rule 380: start_initializer_list ::= $Empty // - case 380: { action.builder. - initializerListStart(); break; + case 380: { action. initializerListStart(); break; } - + // // Rule 381: end_initializer_list ::= $Empty // - case 381: { action.builder. - initializerListEnd(); break; + case 381: { action. initializerListEnd(); break; } - + // // Rule 386: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } // - case 386: { action.builder. - consumeClassSpecifier(); break; + case 386: { action. consumeClassSpecifier(); break; } - + // // Rule 387: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt // - case 387: { action.builder. - consumeClassHead(false); break; + case 387: { action. consumeClassHead(false); break; } - + // // Rule 388: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt // - case 388: { action.builder. - consumeClassHead(false); break; + case 388: { action. consumeClassHead(false); break; } - + // // Rule 389: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt // - case 389: { action.builder. - consumeClassHead(true); break; + case 389: { action. consumeClassHead(true); break; } - + // // Rule 390: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt // - case 390: { action.builder. - consumeClassHead(true); break; + case 390: { action. consumeClassHead(true); break; } - + // // Rule 392: identifier_name_opt ::= $Empty // - case 392: { action.builder. - consumeEmpty(); break; + case 392: { action. consumeEmpty(); break; } - + // // Rule 396: visibility_label ::= access_specifier_keyword : // - case 396: { action.builder. - consumeVisibilityLabel(); break; + case 396: { action. consumeVisibilityLabel(); break; } - + // // Rule 397: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; // - case 397: { action.builder. - consumeDeclarationSimple(true); break; + case 397: { action. consumeDeclarationSimple(true); break; } - + // // Rule 398: member_declaration ::= declaration_specifiers_opt ; // - case 398: { action.builder. - consumeDeclarationSimple(false); break; + case 398: { action. consumeDeclarationSimple(false); break; } - + // // Rule 401: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 401: { action.builder. - consumeMemberDeclarationQualifiedId(); break; + case 401: { action. consumeMemberDeclarationQualifiedId(); break; } - + // // Rule 407: member_declaration ::= ERROR_TOKEN // - case 407: { action.builder. - consumeDeclarationProblem(); break; + case 407: { action. consumeDeclarationProblem(); break; } - + // // Rule 415: member_declarator ::= declarator constant_initializer // - case 415: { action.builder. - consumeMemberDeclaratorWithInitializer(); break; + case 415: { action. consumeMemberDeclaratorWithInitializer(); break; } - + // // Rule 416: member_declarator ::= bit_field_declarator : constant_expression // - case 416: { action.builder. - consumeBitField(true); break; + case 416: { action. consumeBitField(true); break; } - + // // Rule 417: member_declarator ::= : constant_expression // - case 417: { action.builder. - consumeBitField(false); break; + case 417: { action. consumeBitField(false); break; } - + // // Rule 418: bit_field_declarator ::= identifier_name // - case 418: { action.builder. - consumeDirectDeclaratorIdentifier(); break; + case 418: { action. consumeDirectDeclaratorIdentifier(); break; } - + // // Rule 419: constant_initializer ::= = constant_expression // - case 419: { action.builder. - consumeInitializer(); break; + case 419: { action. consumeInitializer(); break; } - + // // Rule 425: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 425: { action.builder. - consumeBaseSpecifier(false, false); break; + case 425: { action. consumeBaseSpecifier(false, false); break; } - + // // Rule 426: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name // - case 426: { action.builder. - consumeBaseSpecifier(true, true); break; + case 426: { action. consumeBaseSpecifier(true, true); break; } - + // // Rule 427: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name // - case 427: { action.builder. - consumeBaseSpecifier(true, true); break; + case 427: { action. consumeBaseSpecifier(true, true); break; } - + // // Rule 428: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // - case 428: { action.builder. - consumeBaseSpecifier(true, false); break; + case 428: { action. consumeBaseSpecifier(true, false); break; } - + // // Rule 429: access_specifier_keyword ::= private // - case 429: { action.builder. - consumeAccessKeywordToken(); break; + case 429: { action. consumeToken(); break; } - + // // Rule 430: access_specifier_keyword ::= protected // - case 430: { action.builder. - consumeAccessKeywordToken(); break; + case 430: { action. consumeToken(); break; } - + // // Rule 431: access_specifier_keyword ::= public // - case 431: { action.builder. - consumeAccessKeywordToken(); break; + case 431: { action. consumeToken(); break; } - + // // Rule 433: access_specifier_keyword_opt ::= $Empty // - case 433: { action.builder. - consumeEmpty(); break; + case 433: { action. consumeEmpty(); break; } - + // // Rule 435: conversion_function_id_name ::= conversion_function_id < <openscope-ast> template_argument_list_opt > // - case 435: { action.builder. - consumeTemplateId(); break; + case 435: { action. consumeTemplateId(); break; } - + // // Rule 436: conversion_function_id ::= operator conversion_type_id // - case 436: { action.builder. - consumeConversionName(); break; + case 436: { action. consumeConversionName(); break; } - + // // Rule 437: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 437: { action.builder. - consumeTypeId(true); break; + case 437: { action. consumeTypeId(true); break; } - + // // Rule 438: conversion_type_id ::= type_specifier_seq // - case 438: { action.builder. - consumeTypeId(false); break; + case 438: { action. consumeTypeId(false); break; } - + // // Rule 439: conversion_declarator ::= <openscope-ast> ptr_operator_seq // - case 439: { action.builder. - consumeDeclaratorWithPointer(false); break; + case 439: { action. consumeDeclaratorWithPointer(false); break; } - + // // Rule 445: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 445: { action.builder. - consumeConstructorChainInitializer(); break; + case 445: { action. consumeConstructorChainInitializer(); break; } - + // // Rule 446: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 446: { action.builder. - consumeQualifiedId(false); break; + case 446: { action. consumeQualifiedId(false); break; } - + // // Rule 449: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > // - case 449: { action.builder. - consumeTemplateId(); break; + case 449: { action. consumeTemplateId(); break; } - + // // Rule 450: operator_id_name ::= operator overloadable_operator // - case 450: { action.builder. - consumeOperatorName(); break; + case 450: { action. consumeOperatorName(); break; } - + // // Rule 493: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration // - case 493: { action.builder. - consumeTemplateDeclaration(); break; + case 493: { action. consumeTemplateDeclaration(); break; } - + // // Rule 494: export_opt ::= export // - case 494: { action.builder. - consumePlaceHolder(); break; + case 494: { action. consumePlaceHolder(); break; } - + // // Rule 495: export_opt ::= $Empty // - case 495: { action.builder. - consumeEmpty(); break; + case 495: { action. consumeEmpty(); break; } - + // // Rule 499: template_parameter ::= parameter_declaration // - case 499: { action.builder. - consumeTemplateParamterDeclaration(); break; + case 499: { action. consumeTemplateParamterDeclaration(); break; } - + // // Rule 500: type_parameter ::= class identifier_name_opt // - case 500: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; + case 500: { action. consumeSimpleTypeTemplateParameter(false); break; } - + // // Rule 501: type_parameter ::= class identifier_name_opt = type_id // - case 501: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; + case 501: { action. consumeSimpleTypeTemplateParameter(true); break; } - + // // Rule 502: type_parameter ::= typename identifier_name_opt // - case 502: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; + case 502: { action. consumeSimpleTypeTemplateParameter(false); break; } - + // // Rule 503: type_parameter ::= typename identifier_name_opt = type_id // - case 503: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; + case 503: { action. consumeSimpleTypeTemplateParameter(true); break; } - + // // Rule 504: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt // - case 504: { action.builder. - consumeTemplatedTypeTemplateParameter(false); break; + case 504: { action. consumeTemplatedTypeTemplateParameter(false); break; } - + // // Rule 505: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression // - case 505: { action.builder. - consumeTemplatedTypeTemplateParameter(true); break; + case 505: { action. consumeTemplatedTypeTemplateParameter(true); break; } - + // // Rule 506: template_id_name ::= identifier_name < <openscope-ast> template_argument_list_opt > // - case 506: { action.builder. - consumeTemplateId(); break; + case 506: { action. consumeTemplateId(); break; } - + // // Rule 511: template_argument ::= assignment_expression // - case 511: { action.builder. - consumeTemplateArgumentExpression(); break; + case 511: { action. consumeTemplateArgumentExpression(); break; } - + // // Rule 512: template_argument ::= type_id // - case 512: { action.builder. - consumeTemplateArgumentTypeId(); break; + case 512: { action. consumeTemplateArgumentTypeId(); break; } - + // // Rule 513: explicit_instantiation ::= template declaration // - case 513: { action.builder. - consumeTemplateExplicitInstantiation(); break; + case 513: { action. consumeTemplateExplicitInstantiation(); break; } - + // // Rule 514: explicit_specialization ::= template < > declaration // - case 514: { action.builder. - consumeTemplateExplicitSpecialization(); break; + case 514: { action. consumeTemplateExplicitSpecialization(); break; } - + // // Rule 515: try_block ::= try compound_statement <openscope-ast> handler_seq // - case 515: { action.builder. - consumeStatementTryBlock(); break; + case 515: { action. consumeStatementTryBlock(); break; } - + // // Rule 518: handler ::= catch ( exception_declaration ) compound_statement // - case 518: { action.builder. - consumeStatementCatchHandler(false); break; + case 518: { action. consumeStatementCatchHandler(false); break; } - + // // Rule 519: handler ::= catch ( ... ) compound_statement // - case 519: { action.builder. - consumeStatementCatchHandler(true); break; + case 519: { action. consumeStatementCatchHandler(true); break; } - + // // Rule 520: exception_declaration ::= type_specifier_seq <openscope-ast> declarator // - case 520: { action.builder. - consumeDeclarationSimple(true); break; + case 520: { action. consumeDeclarationSimple(true); break; } - + // // Rule 521: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator // - case 521: { action.builder. - consumeDeclarationSimple(true); break; + case 521: { action. consumeDeclarationSimple(true); break; } - + // // Rule 522: exception_declaration ::= type_specifier_seq // - case 522: { action.builder. - consumeDeclarationSimple(false); break; + case 522: { action. consumeDeclarationSimple(false); break; } - + // // Rule 524: exception_specification ::= throw ( ) // - case 524: { action.builder. - consumePlaceHolder(); break; + case 524: { action. consumePlaceHolder(); break; } - + // // Rule 530: type_parameter_start ::= ERROR_TOKEN // - case 530: { action.builder. - consumeDeclarationProblem(); break; + case 530: { action. consumeDeclarationProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java index 864933421b9..b889fa738ab 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java @@ -3,7 +3,7 @@ * 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 -* http://www.eclipse.org/legal/epl_v10.html +* http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java index 14172379c65..20e109fc2d2 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java @@ -3,7 +3,7 @@ * 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 -* http://www.eclipse.org/legal/epl_v10.html +* http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation |