From 0c825ab41c194de55e47239c1ff3ea8ce0dca57f Mon Sep 17 00:00:00 2001 From: Mike Kucera Date: Tue, 29 Jan 2008 21:34:25 +0000 Subject: [PATCH] reverted to backtracking parser, fixed a few bugs --- .../dom/lrparser/BaseExtensibleLanguage.java | 27 +- .../lrparser/action/BuildASTParserAction.java | 4 +- .../action/cpp/CPPBuildASTParserAction.java | 1 + .../core/dom/lrparser/c99/C99Language.java | 23 +- .../core/dom/lrparser/cpp/ISOCPPLanguage.java | 23 +- .../AbstractTrialUndoActionProvider.java | 2 +- .../core/dom/lrparser/cpp/CPPParser.g | 23 +- .../core/dom/lrparser/cpp/CPPParser.java | 4798 +++++++---------- .../core/dom/lrparser/cpp/CPPParserprs.java | 281 +- .../core/dom/lrparser/cpp/CPPParsersym.java | 8 +- 10 files changed, 2110 insertions(+), 3080 deletions(-) diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java index c35084bc969..b7bb10a6457 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java @@ -14,6 +14,7 @@ import org.eclipse.cdt.core.dom.ICodeReaderFactory; import org.eclipse.cdt.core.dom.ast.IASTCompletionNode; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; import org.eclipse.cdt.core.dom.ast.gnu.c.GCCLanguage; +import org.eclipse.cdt.core.dom.ast.gnu.cpp.GPPLanguage; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.util.DebugUtil; import org.eclipse.cdt.core.dom.parser.IScannerExtensionConfiguration; @@ -70,7 +71,7 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage implements * * @return an IASTTranslationUnit object thats empty and will be filled in by the parser */ - protected abstract IASTTranslationUnit createASTTranslationUnit(); + protected abstract IASTTranslationUnit createASTTranslationUnit(IIndex index, IScanner preprocessor); /** @@ -97,12 +98,12 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage implements public IASTTranslationUnit getASTTranslationUnit(CodeReader reader, IScannerInfo scanInfo, ICodeReaderFactory fileCreator, IIndex index, int options, IParserLogService log) throws CoreException { - ILanguage gccLanguage = GCCLanguage.getDefault(); - IASTTranslationUnit gtu = gccLanguage.getASTTranslationUnit(reader, scanInfo, fileCreator, index, log); + ILanguage gppLanguage = GPPLanguage.getDefault(); + IASTTranslationUnit gtu = gppLanguage.getASTTranslationUnit(reader, scanInfo, fileCreator, index, log); System.out.println(); System.out.println("********************************************************"); - System.out.println("GCC AST:"); + System.out.println("GPP AST:"); DebugUtil.printAST(gtu); System.out.println(); @@ -120,7 +121,7 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage implements preprocessor.setComputeImageLocations((options & AbstractLanguage.OPTION_NO_IMAGE_LOCATIONS) == 0); IParser parser = getParser(); - IASTTranslationUnit tu = createTranslationUnit(index, preprocessor); + IASTTranslationUnit tu = createASTTranslationUnit(index, preprocessor); CPreprocessorAdapter.runCPreprocessor(preprocessor, parser, getTokenMap(), tu); @@ -128,7 +129,7 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage implements System.out.println("Base Extensible Language AST:"); - //DebugUtil.printAST(tu); + DebugUtil.printAST(tu); return tu; } @@ -153,7 +154,7 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage implements preprocessor.setContentAssistMode(offset); IParser parser = getParser(); - IASTTranslationUnit tu = createTranslationUnit(index, preprocessor); + IASTTranslationUnit tu = createASTTranslationUnit(index, preprocessor); CPreprocessorAdapter.runCPreprocessor(preprocessor, parser, getTokenMap(), tu); @@ -163,16 +164,6 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage implements } - /** - * Gets the translation unit object and sets the index and the location resolver. - */ - private IASTTranslationUnit createTranslationUnit(IIndex index, IScanner preprocessor) { - IASTTranslationUnit tu = createASTTranslationUnit(); - tu.setIndex(index); - if(tu instanceof CASTTranslationUnit) { - ((CASTTranslationUnit)tu).setLocationResolver(preprocessor.getLocationResolver()); - } - return tu; - } + } 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 e0efebdcff4..47e7dbe55c2 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 @@ -294,8 +294,8 @@ public abstract class BuildASTParserAction { // this is the same way that the DOM parser computes the length IASTDeclaration[] declarations = tu.getDeclarations(); if (declarations.length != 0) { - CASTNode d = (CASTNode) declarations[declarations.length-1]; - setOffsetAndLength(tu, 0, d.getOffset() + d.getLength()); + IASTNode d = declarations[declarations.length-1]; + setOffsetAndLength(tu, 0, offset(d) + length(d)); } 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 d71a83472d1..bcec644a3b3 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 @@ -74,6 +74,7 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateId; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateParameter; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateSpecialization; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplatedTypeTemplateParameter; +import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTranslationUnit; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTryBlockStatement; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTypenameExpression; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUnaryExpression; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/C99Language.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/C99Language.java index a05e0260368..ceaf4831a9c 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/C99Language.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/c99/C99Language.java @@ -18,10 +18,15 @@ import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage; import org.eclipse.cdt.core.dom.lrparser.IParser; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.c99.C99ASTNodeFactory; +import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPASTNodeFactory; +import org.eclipse.cdt.core.index.IIndex; import org.eclipse.cdt.core.model.IContributedModelBuilder; import org.eclipse.cdt.core.model.ITranslationUnit; +import org.eclipse.cdt.core.parser.IScanner; import org.eclipse.cdt.core.parser.ParserLanguage; import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parser; +import org.eclipse.cdt.internal.core.dom.parser.c.CASTTranslationUnit; +import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTTranslationUnit; /** * ILanguage implementation for the C99 parser. @@ -82,16 +87,24 @@ public class C99Language extends BaseExtensibleLanguage { return GCC_LANGUAGE.getPreprocessorKeywords(); } - @Override - protected IASTTranslationUnit createASTTranslationUnit() { - return C99ASTNodeFactory.DEFAULT_INSTANCE.newTranslationUnit(); - } - @Override protected ParserLanguage getParserLanguageForPreprocessor() { return ParserLanguage.C; } + /** + * Gets the translation unit object and sets the index and the location resolver. + */ + @SuppressWarnings("restriction") + @Override + protected IASTTranslationUnit createASTTranslationUnit(IIndex index, IScanner preprocessor) { + IASTTranslationUnit tu = C99ASTNodeFactory.DEFAULT_INSTANCE.newTranslationUnit(); + tu.setIndex(index); + if(tu instanceof CASTTranslationUnit) { + ((CASTTranslationUnit)tu).setLocationResolver(preprocessor.getLocationResolver()); + } + return tu; + } } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/ISOCPPLanguage.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/ISOCPPLanguage.java index 03eff1a60ce..39b943e2573 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/ISOCPPLanguage.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/cpp/ISOCPPLanguage.java @@ -17,11 +17,14 @@ import org.eclipse.cdt.core.dom.ast.gnu.cpp.GPPLanguage; import org.eclipse.cdt.core.dom.lrparser.BaseExtensibleLanguage; import org.eclipse.cdt.core.dom.lrparser.IParser; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; -import org.eclipse.cdt.core.dom.lrparser.action.c99.C99ASTNodeFactory; +import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPASTNodeFactory; +import org.eclipse.cdt.core.index.IIndex; import org.eclipse.cdt.core.model.IContributedModelBuilder; import org.eclipse.cdt.core.model.ITranslationUnit; +import org.eclipse.cdt.core.parser.IScanner; import org.eclipse.cdt.core.parser.ParserLanguage; import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParser; +import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTTranslationUnit; /** * ILanguage implementation for the C++ parser. @@ -82,16 +85,24 @@ public class ISOCPPLanguage extends BaseExtensibleLanguage { return GPP_LANGUAGE.getPreprocessorKeywords(); } - @Override - protected IASTTranslationUnit createASTTranslationUnit() { - return C99ASTNodeFactory.DEFAULT_INSTANCE.newTranslationUnit(); - } - @Override protected ParserLanguage getParserLanguageForPreprocessor() { return ParserLanguage.CPP; } + /** + * Gets the translation unit object and sets the index and the location resolver. + */ + @SuppressWarnings("restriction") + @Override + protected IASTTranslationUnit createASTTranslationUnit(IIndex index, IScanner preprocessor) { + IASTTranslationUnit tu = CPPASTNodeFactory.DEFAULT_INSTANCE.newTranslationUnit(); + tu.setIndex(index); + if(tu instanceof CPPASTTranslationUnit) { + ((CPPASTTranslationUnit)tu).setLocationResolver(preprocessor.getLocationResolver()); + } + return tu; + } } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/AbstractTrialUndoActionProvider.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/AbstractTrialUndoActionProvider.java index b3ea0ae0796..cff7bb06844 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/AbstractTrialUndoActionProvider.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/lpgextensions/AbstractTrialUndoActionProvider.java @@ -95,7 +95,7 @@ public abstract class AbstractTrialUndoActionProvider extends Pr } public final void finalAction(int rule_number) { - System.out.println("finalAction: " + rule_number); + //System.out.println("finalAction: " + rule_number); //$NON-NLS-1$ ruleAction[rule_number].doFinal(this, parserAction); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.g b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.g index 67ac3f16ca2..cb5f5827222 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.g @@ -11,7 +11,7 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.lrparser.cpp -%options template=TrialUndoParserTemplate.g +%options template=btParserTemplateD.g @@ -61,7 +61,7 @@ $Terminals -- there's going to be more of these identifier - TypedefName + -- TypedefName -- Special tokens used in content assist @@ -148,7 +148,7 @@ $End $Define -- These macros allow the template and header code to be customized by an extending parser. $ast_class /.Object./ - $additional_interfaces /. ./ + $additional_interfaces /. , IParserActionTokenProvider, IParser ./ $build_action_class /. CPPBuildASTParserAction ./ $resolve_action_class /. C99TypedefTrackerParserAction ./ @@ -175,9 +175,10 @@ $Define $resolve /. action.resolver./ $builder /. action.builder./ - --$Action /. $BeginAction ./ - --$BeginFinal /. ./ - --$EndFinal /. ./ + -- comment out when using trial/undo + $Action /. $BeginAction ./ + $BeginFinal /. ./ + $EndFinal /. ./ $End @@ -187,7 +188,7 @@ $Headers private $action_class action; // uncomment to use with backtracking parser - // public CPPParser() {} + public CPPParser() {} private void initActions(IASTTranslationUnit tu) { // binding resolution actions need access to IASTName nodes, temporary @@ -197,7 +198,7 @@ $Headers //action.builder.setTokenMap(CPPParsersym.orderedTerminalSymbols); // comment this line to use with backtracking parser - setParserAction(action); + //setParserAction(action); } @@ -249,9 +250,9 @@ $Headers // uncomment this method to use with backtracking parser - //public List getRuleTokens() { - // return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1)); - //} + public List getRuleTokens() { + return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1)); + } ./ 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 ee0e5948adc..2806a3354cd 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 @@ -13,11 +13,7 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; - import lpg.lpgjavaruntime.*; -import org.eclipse.cdt.core.dom.lrparser.lpgextensions.ITrialUndoActionProvider; -import org.eclipse.cdt.core.dom.lrparser.lpgextensions.AbstractTrialUndoActionProvider; -import org.eclipse.cdt.core.dom.lrparser.lpgextensions.TrialUndoParser; import java.util.*; @@ -29,110 +25,147 @@ import org.eclipse.cdt.core.dom.lrparser.IParser; import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; import org.eclipse.cdt.core.dom.lrparser.util.DebugUtil; -public class CPPParser extends AbstractTrialUndoActionProvider< CPPParserAction , Object > implements IParserActionTokenProvider, IParser { - private static ParseTable prs = new CPPParserprs(); - protected static final Action< CPPParserAction , Object >[] RULE_ACTIONS; +public class CPPParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser +{ + private static ParseTable prs = new CPPParserprs(); + private BacktrackingParser btParser; - { - ruleAction = RULE_ACTIONS; - } - - public CPPParser(LexStream lexStream) { - super(lexStream); + public BacktrackingParser getParser() { return btParser; } + private void setResult(Object object) { btParser.setSym1(object); } + public Object getRhsSym(int i) { return btParser.getSym(i); } - try { - super.remapTerminalSymbols(orderedTerminalSymbols(), CPPParserprs.EOFT_SYMBOL); - } catch (NullExportedSymbolsException e) { - } catch (NullTerminalSymbolsException e) { - } catch (UnimplementedTerminalsException e) { - java.util.ArrayList unimplemented_symbols = e.getSymbols(); - System.out.println("The Lexer will not scan the following token(s):"); - for (int i = 0; i < unimplemented_symbols.size(); i++) { - Integer id = (Integer) unimplemented_symbols.get(i); - System.out.println(" " + CPPParsersym.orderedTerminalSymbols[id.intValue()]); - } - System.out.println(); - } catch (UndefinedEofSymbolException e) { - throw new Error(new UndefinedEofSymbolException("The Lexer does not implement the Eof symbol " + CPPParsersym.orderedTerminalSymbols[CPPParserprs.EOFT_SYMBOL])); - } - } + public int getRhsTokenIndex(int i) { return btParser.getToken(i); } + public IToken getRhsIToken(int i) { return super.getIToken(getRhsTokenIndex(i)); } + + public int getRhsFirstTokenIndex(int i) { return btParser.getFirstToken(i); } + public IToken getRhsFirstIToken(int i) { return super.getIToken(getRhsFirstTokenIndex(i)); } - - public CPPParser() { // constructor - // this(new $lexer_class()); + public int getRhsLastTokenIndex(int i) { return btParser.getLastToken(i); } + public IToken getRhsLastIToken(int i) { return super.getIToken(getRhsLastTokenIndex(i)); } + + public int getLeftSpan() { return btParser.getFirstToken(); } + public IToken getLeftIToken() { return super.getIToken(getLeftSpan()); } + + public int getRightSpan() { return btParser.getLastToken(); } + public IToken getRightIToken() { return super.getIToken(getRightSpan()); } + + public int getRhsErrorTokenIndex(int i) + { + int index = btParser.getToken(i); + IToken err = super.getIToken(index); + return (err instanceof ErrorToken ? index : 0); + } + public ErrorToken getRhsErrorIToken(int i) + { + int index = btParser.getToken(i); + IToken err = super.getIToken(index); + return (ErrorToken) (err instanceof ErrorToken ? err : null); } - public String[] orderedTerminalSymbols() { - return CPPParsersym.orderedTerminalSymbols; - } + public CPPParser(LexStream lexStream) + { + super(lexStream); - public String getTokenKindName(int kind) { - return CPPParsersym.orderedTerminalSymbols[kind]; - } + try + { + super.remapTerminalSymbols(orderedTerminalSymbols(), CPPParserprs.EOFT_SYMBOL); + } + catch(NullExportedSymbolsException e) { + } + catch(NullTerminalSymbolsException e) { + } + catch(UnimplementedTerminalsException e) + { + java.util.ArrayList unimplemented_symbols = e.getSymbols(); + System.out.println("The Lexer will not scan the following token(s):"); + for (int i = 0; i < unimplemented_symbols.size(); i++) + { + Integer id = (Integer) unimplemented_symbols.get(i); + System.out.println(" " + CPPParsersym.orderedTerminalSymbols[id.intValue()]); + } + System.out.println(); + } + catch(UndefinedEofSymbolException e) + { + throw new Error(new UndefinedEofSymbolException + ("The Lexer does not implement the Eof symbol " + + CPPParsersym.orderedTerminalSymbols[CPPParserprs.EOFT_SYMBOL])); + } + } - public int getEOFTokenKind() { - return CPPParserprs.EOFT_SYMBOL; - } - - public PrsStream getParseStream() { - return (PrsStream) this; - } + public String[] orderedTerminalSymbols() { return CPPParsersym.orderedTerminalSymbols; } + public String getTokenKindName(int kind) { return CPPParsersym.orderedTerminalSymbols[kind]; } + public int getEOFTokenKind() { return CPPParserprs.EOFT_SYMBOL; } + public PrsStream getParseStream() { return (PrsStream) this; } + + // + // Report error message for given error_token. + // + public final void reportErrorTokenMessage(int error_token, String msg) + { + int firsttok = super.getFirstErrorToken(error_token), + lasttok = super.getLastErrorToken(error_token); + String location = super.getFileName() + ':' + + (firsttok > lasttok + ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok)) + : (super.getLine(error_token) + ":" + + super.getColumn(error_token) + ":" + + super.getEndLine(error_token) + ":" + + super.getEndColumn(error_token))) + + ": "; + super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE), location, msg); + } - // - // Report error message for given error_token. - // - public final void reportErrorTokenMessage(int error_token, String msg) { - int firsttok = super.getFirstRealToken(error_token), lasttok = super.getLastRealToken(error_token); - String location = super.getFileName() + ':' + - (firsttok > lasttok - ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok)) - : (super.getLine(error_token) + ":" + - super.getColumn(error_token) + ":" + - super.getEndLine(error_token) + ":" + - super.getEndColumn(error_token))) + ": "; - super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE), location, msg); - } + public Object parser() + { + return parser(null, 0); + } + + public Object parser(Monitor monitor) + { + return parser(monitor, 0); + } + + public Object parser(int error_repair_count) + { + return parser(null, error_repair_count); + } - public Object parser() { - return parser(null, 0); - } + public Object parser(Monitor monitor, int error_repair_count) + { + try + { + btParser = new BacktrackingParser(monitor, (TokenStream) this, prs, (RuleAction) this); + } + catch (NotBacktrackParseTableException e) + { + throw new Error(new NotBacktrackParseTableException + ("Regenerate CPPParserprs.java with -BACKTRACK option")); + } + catch (BadParseSymFileException e) + { + throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- CPPParsersym.java")); + } - public Object parser(Monitor monitor) { - return parser(monitor, 0); - } + try + { + return (Object) btParser.parse(error_repair_count); + } + catch (BadParseException e) + { + reset(e.error_token); // point to error token + DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs); + diagnoseParser.diagnose(e.error_token); + } - public Object parser(int error_repair_count) { - return parser(null, error_repair_count); - } - - public Object parser(Monitor monitor, int error_repair_count) { - try { - btParser = new TrialUndoParser((TokenStream) this, prs, (ITrialUndoActionProvider< Object >) this); - } catch (NotBacktrackParseTableException e) { - throw new Error(new NotBacktrackParseTableException("Regenerate CPPParserprs.java with -BACKTRACK option")); - } catch (BadParseSymFileException e) { - throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- CPPParsersym.java")); - } - - try { - Object result = (Object) btParser.parse(error_repair_count); - btParser.commit(); - return result; - } catch (BadParseException e) { - reset(e.error_token); // point to error token - - //DiagnoseParser diagnoseParser = new DiagnoseParser((TokenStream) this, prs); - //diagnoseParser.diagnose(e.error_token); - } - - return null; - } + return null; + } private CPPParserAction action; // uncomment to use with backtracking parser -// public CPPParser() {} +public CPPParser() {} private void initActions(IASTTranslationUnit tu) { // binding resolution actions need access to IASTName nodes, temporary @@ -142,7 +175,7 @@ private void initActions(IASTTranslationUnit tu) { //action.builder.setTokenMap(CPPParsersym.orderedTerminalSymbols); // comment this line to use with backtracking parser - setParserAction(action); + //setParserAction(action); } @@ -194,2803 +227,1786 @@ public int getKind(int i) { // uncomment this method to use with backtracking parser -//public List getRuleTokens() { -// return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1)); -//} - - - - - // - // Initialize ruleAction array. - // - static { - RULE_ACTIONS = new Action[523 + 1]; - RULE_ACTIONS[0] = null; - - RULE_ACTIONS[1] = new Action1(); - RULE_ACTIONS[4] = new Action4(); - RULE_ACTIONS[5] = new Action5(); - RULE_ACTIONS[10] = new Action10(); - RULE_ACTIONS[11] = new Action11(); - RULE_ACTIONS[12] = new Action12(); - RULE_ACTIONS[13] = new Action13(); - RULE_ACTIONS[14] = new Action14(); - RULE_ACTIONS[15] = new Action15(); - RULE_ACTIONS[16] = new Action16(); - RULE_ACTIONS[17] = new Action17(); - RULE_ACTIONS[18] = new Action18(); - RULE_ACTIONS[19] = new Action19(); - RULE_ACTIONS[21] = new Action21(); - RULE_ACTIONS[23] = new Action23(); - RULE_ACTIONS[30] = new Action30(); - RULE_ACTIONS[31] = new Action31(); - RULE_ACTIONS[32] = new Action32(); - RULE_ACTIONS[33] = new Action33(); - RULE_ACTIONS[34] = new Action34(); - RULE_ACTIONS[35] = new Action35(); - RULE_ACTIONS[36] = new Action36(); - RULE_ACTIONS[37] = new Action37(); - RULE_ACTIONS[38] = new Action38(); - RULE_ACTIONS[39] = new Action39(); - RULE_ACTIONS[40] = new Action40(); - RULE_ACTIONS[41] = new Action41(); - RULE_ACTIONS[42] = new Action42(); - RULE_ACTIONS[43] = new Action43(); - RULE_ACTIONS[44] = new Action44(); - RULE_ACTIONS[46] = new Action46(); - RULE_ACTIONS[50] = new Action50(); - RULE_ACTIONS[51] = new Action51(); - RULE_ACTIONS[52] = new Action52(); - RULE_ACTIONS[53] = new Action53(); - RULE_ACTIONS[54] = new Action54(); - RULE_ACTIONS[55] = new Action55(); - RULE_ACTIONS[56] = new Action56(); - RULE_ACTIONS[57] = new Action57(); - RULE_ACTIONS[58] = new Action58(); - RULE_ACTIONS[59] = new Action59(); - RULE_ACTIONS[60] = new Action60(); - RULE_ACTIONS[61] = new Action61(); - RULE_ACTIONS[62] = new Action62(); - RULE_ACTIONS[63] = new Action63(); - RULE_ACTIONS[64] = new Action64(); - RULE_ACTIONS[65] = new Action65(); - RULE_ACTIONS[66] = new Action66(); - RULE_ACTIONS[67] = new Action67(); - RULE_ACTIONS[68] = new Action68(); - RULE_ACTIONS[69] = new Action69(); - RULE_ACTIONS[70] = new Action70(); - RULE_ACTIONS[71] = new Action71(); - RULE_ACTIONS[75] = new Action75(); - RULE_ACTIONS[76] = new Action76(); - RULE_ACTIONS[77] = new Action77(); - RULE_ACTIONS[78] = new Action78(); - RULE_ACTIONS[79] = new Action79(); - RULE_ACTIONS[80] = new Action80(); - RULE_ACTIONS[81] = new Action81(); - RULE_ACTIONS[82] = new Action82(); - RULE_ACTIONS[83] = new Action83(); - RULE_ACTIONS[84] = new Action84(); - RULE_ACTIONS[85] = new Action85(); - RULE_ACTIONS[86] = new Action86(); - RULE_ACTIONS[89] = new Action89(); - RULE_ACTIONS[90] = new Action90(); - RULE_ACTIONS[91] = new Action91(); - RULE_ACTIONS[92] = new Action92(); - RULE_ACTIONS[101] = new Action101(); - RULE_ACTIONS[102] = new Action102(); - RULE_ACTIONS[103] = new Action103(); - RULE_ACTIONS[105] = new Action105(); - RULE_ACTIONS[107] = new Action107(); - RULE_ACTIONS[108] = new Action108(); - RULE_ACTIONS[110] = new Action110(); - RULE_ACTIONS[111] = new Action111(); - RULE_ACTIONS[112] = new Action112(); - RULE_ACTIONS[114] = new Action114(); - RULE_ACTIONS[115] = new Action115(); - RULE_ACTIONS[117] = new Action117(); - RULE_ACTIONS[118] = new Action118(); - RULE_ACTIONS[120] = new Action120(); - RULE_ACTIONS[121] = new Action121(); - RULE_ACTIONS[122] = new Action122(); - RULE_ACTIONS[123] = new Action123(); - RULE_ACTIONS[125] = new Action125(); - RULE_ACTIONS[126] = new Action126(); - RULE_ACTIONS[128] = new Action128(); - RULE_ACTIONS[130] = new Action130(); - RULE_ACTIONS[132] = new Action132(); - RULE_ACTIONS[134] = new Action134(); - RULE_ACTIONS[136] = new Action136(); - RULE_ACTIONS[138] = new Action138(); - RULE_ACTIONS[139] = new Action139(); - RULE_ACTIONS[140] = new Action140(); - RULE_ACTIONS[143] = new Action143(); - RULE_ACTIONS[144] = new Action144(); - RULE_ACTIONS[145] = new Action145(); - RULE_ACTIONS[146] = new Action146(); - RULE_ACTIONS[147] = new Action147(); - RULE_ACTIONS[148] = new Action148(); - RULE_ACTIONS[149] = new Action149(); - RULE_ACTIONS[150] = new Action150(); - RULE_ACTIONS[151] = new Action151(); - RULE_ACTIONS[152] = new Action152(); - RULE_ACTIONS[153] = new Action153(); - RULE_ACTIONS[155] = new Action155(); - RULE_ACTIONS[156] = new Action156(); - RULE_ACTIONS[160] = new Action160(); - RULE_ACTIONS[162] = new Action162(); - RULE_ACTIONS[165] = new Action165(); - RULE_ACTIONS[174] = new Action174(); - RULE_ACTIONS[175] = new Action175(); - RULE_ACTIONS[176] = new Action176(); - RULE_ACTIONS[177] = new Action177(); - RULE_ACTIONS[178] = new Action178(); - RULE_ACTIONS[179] = new Action179(); - RULE_ACTIONS[180] = new Action180(); - RULE_ACTIONS[181] = new Action181(); - RULE_ACTIONS[184] = new Action184(); - RULE_ACTIONS[185] = new Action185(); - RULE_ACTIONS[186] = new Action186(); - RULE_ACTIONS[188] = new Action188(); - RULE_ACTIONS[189] = new Action189(); - RULE_ACTIONS[190] = new Action190(); - RULE_ACTIONS[191] = new Action191(); - RULE_ACTIONS[192] = new Action192(); - RULE_ACTIONS[193] = new Action193(); - RULE_ACTIONS[194] = new Action194(); - RULE_ACTIONS[195] = new Action195(); - RULE_ACTIONS[196] = new Action196(); - RULE_ACTIONS[197] = new Action197(); - RULE_ACTIONS[198] = new Action198(); - RULE_ACTIONS[215] = new Action215(); - RULE_ACTIONS[216] = new Action216(); - RULE_ACTIONS[217] = new Action217(); - RULE_ACTIONS[218] = new Action218(); - RULE_ACTIONS[219] = new Action219(); - RULE_ACTIONS[220] = new Action220(); - RULE_ACTIONS[222] = new Action222(); - RULE_ACTIONS[226] = new Action226(); - RULE_ACTIONS[227] = new Action227(); - RULE_ACTIONS[255] = new Action255(); - RULE_ACTIONS[271] = new Action271(); - RULE_ACTIONS[272] = new Action272(); - RULE_ACTIONS[273] = new Action273(); - RULE_ACTIONS[274] = new Action274(); - RULE_ACTIONS[275] = new Action275(); - RULE_ACTIONS[276] = new Action276(); - RULE_ACTIONS[277] = new Action277(); - RULE_ACTIONS[279] = new Action279(); - RULE_ACTIONS[280] = new Action280(); - RULE_ACTIONS[285] = new Action285(); - RULE_ACTIONS[286] = new Action286(); - RULE_ACTIONS[295] = new Action295(); - RULE_ACTIONS[296] = new Action296(); - RULE_ACTIONS[297] = new Action297(); - RULE_ACTIONS[299] = new Action299(); - RULE_ACTIONS[300] = new Action300(); - RULE_ACTIONS[301] = new Action301(); - RULE_ACTIONS[302] = new Action302(); - RULE_ACTIONS[303] = new Action303(); - RULE_ACTIONS[304] = new Action304(); - RULE_ACTIONS[305] = new Action305(); - RULE_ACTIONS[306] = new Action306(); - RULE_ACTIONS[312] = new Action312(); - RULE_ACTIONS[314] = new Action314(); - RULE_ACTIONS[318] = new Action318(); - RULE_ACTIONS[319] = new Action319(); - RULE_ACTIONS[320] = new Action320(); - RULE_ACTIONS[321] = new Action321(); - RULE_ACTIONS[322] = new Action322(); - RULE_ACTIONS[323] = new Action323(); - RULE_ACTIONS[324] = new Action324(); - RULE_ACTIONS[325] = new Action325(); - RULE_ACTIONS[326] = new Action326(); - RULE_ACTIONS[327] = new Action327(); - RULE_ACTIONS[333] = new Action333(); - RULE_ACTIONS[334] = new Action334(); - RULE_ACTIONS[336] = new Action336(); - RULE_ACTIONS[337] = new Action337(); - RULE_ACTIONS[338] = new Action338(); - RULE_ACTIONS[341] = new Action341(); - RULE_ACTIONS[342] = new Action342(); - RULE_ACTIONS[346] = new Action346(); - RULE_ACTIONS[347] = new Action347(); - RULE_ACTIONS[348] = new Action348(); - RULE_ACTIONS[349] = new Action349(); - RULE_ACTIONS[350] = new Action350(); - RULE_ACTIONS[351] = new Action351(); - RULE_ACTIONS[352] = new Action352(); - RULE_ACTIONS[353] = new Action353(); - RULE_ACTIONS[354] = new Action354(); - RULE_ACTIONS[360] = new Action360(); - RULE_ACTIONS[361] = new Action361(); - RULE_ACTIONS[362] = new Action362(); - RULE_ACTIONS[364] = new Action364(); - RULE_ACTIONS[366] = new Action366(); - RULE_ACTIONS[367] = new Action367(); - RULE_ACTIONS[368] = new Action368(); - RULE_ACTIONS[369] = new Action369(); - RULE_ACTIONS[370] = new Action370(); - RULE_ACTIONS[373] = new Action373(); - RULE_ACTIONS[374] = new Action374(); - RULE_ACTIONS[375] = new Action375(); - RULE_ACTIONS[376] = new Action376(); - RULE_ACTIONS[377] = new Action377(); - RULE_ACTIONS[382] = new Action382(); - RULE_ACTIONS[383] = new Action383(); - RULE_ACTIONS[384] = new Action384(); - RULE_ACTIONS[385] = new Action385(); - RULE_ACTIONS[386] = new Action386(); - RULE_ACTIONS[390] = new Action390(); - RULE_ACTIONS[394] = new Action394(); - RULE_ACTIONS[395] = new Action395(); - RULE_ACTIONS[396] = new Action396(); - RULE_ACTIONS[399] = new Action399(); - RULE_ACTIONS[410] = new Action410(); - RULE_ACTIONS[411] = new Action411(); - RULE_ACTIONS[412] = new Action412(); - RULE_ACTIONS[413] = new Action413(); - RULE_ACTIONS[420] = new Action420(); - RULE_ACTIONS[421] = new Action421(); - RULE_ACTIONS[422] = new Action422(); - RULE_ACTIONS[423] = new Action423(); - RULE_ACTIONS[429] = new Action429(); - RULE_ACTIONS[430] = new Action430(); - RULE_ACTIONS[431] = new Action431(); - RULE_ACTIONS[432] = new Action432(); - RULE_ACTIONS[438] = new Action438(); - RULE_ACTIONS[439] = new Action439(); - RULE_ACTIONS[442] = new Action442(); - RULE_ACTIONS[443] = new Action443(); - RULE_ACTIONS[486] = new Action486(); - RULE_ACTIONS[487] = new Action487(); - RULE_ACTIONS[488] = new Action488(); - RULE_ACTIONS[493] = new Action493(); - RULE_ACTIONS[494] = new Action494(); - RULE_ACTIONS[495] = new Action495(); - RULE_ACTIONS[496] = new Action496(); - RULE_ACTIONS[497] = new Action497(); - RULE_ACTIONS[498] = new Action498(); - RULE_ACTIONS[499] = new Action499(); - RULE_ACTIONS[508] = new Action508(); - RULE_ACTIONS[509] = new Action509(); - RULE_ACTIONS[510] = new Action510(); - RULE_ACTIONS[513] = new Action513(); - RULE_ACTIONS[514] = new Action514(); - RULE_ACTIONS[515] = new Action515(); - RULE_ACTIONS[516] = new Action516(); - RULE_ACTIONS[517] = new Action517(); - - - // - // Make sure that all elements of ruleAction are properly initialized - // - for (int i = 0; i < RULE_ACTIONS.length; i++) { - if (RULE_ACTIONS[i] == null) { - RULE_ACTIONS[i] = emptyAction(); - } - } - } - - // - // Rule 1: ::= $Empty - // - static final class Action1 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - openASTScope(); - } - } - - // - // Rule 4: ::= $Empty - // - static final class Action4 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumePlaceHolder(); - } - } - - // - // Rule 5: ::= $Empty - // - static final class Action5 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeEmpty(); - } - } - - // - // Rule 10: translation_unit ::= declaration_seq - // - static final class Action10 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeTranslationUnit(); - } - } - - // - // Rule 11: translation_unit ::= $Empty - // - static final class Action11 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeTranslationUnit(); - } - } - - // - // Rule 12: literal ::= integer - // - static final class Action12 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); - } - } - - // - // Rule 13: literal ::= 0 - // - static final class Action13 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); - } - } - - // - // Rule 14: literal ::= floating - // - static final class Action14 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); - } - } - - // - // Rule 15: literal ::= charconst - // - static final class Action15 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); - } - } - - // - // Rule 16: literal ::= stringlit - // - static final class Action16 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); - } - } - - // - // Rule 17: literal ::= true - // - static final class Action17 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); - } - } - - // - // Rule 18: literal ::= false - // - static final class Action18 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); - } - } - - // - // Rule 19: literal ::= this - // - static final class Action19 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); - } - } - - // - // Rule 21: primary_expression ::= ( expression ) - // - static final class Action21 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBracketed(); - } - } - - // - // Rule 23: id_expression ::= qualified_or_unqualified_name - // - static final class Action23 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionName(); - } - } - - // - // Rule 30: unqualified_id_name ::= ~ class_name - // - static final class Action30 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDestructorName(); - } - } - - // - // Rule 31: identifier_name ::= identifier - // - static final class Action31 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeIdentifierName(); - } - } - - // - // Rule 32: template_opt ::= template - // - static final class Action32 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumePlaceHolder(); - } - } - - // - // Rule 33: template_opt ::= $Empty - // - static final class Action33 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeEmpty(); - } - } - - // - // Rule 34: dcolon_opt ::= :: - // - static final class Action34 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumePlaceHolder(); - } - } - - // - // Rule 35: dcolon_opt ::= $Empty - // - static final class Action35 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeEmpty(); - } - } - - // - // Rule 36: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name - // - static final class Action36 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeQualifiedId(true); - } - } - - // - // Rule 37: qualified_id_name ::= :: identifier_name - // - static final class Action37 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeGlobalQualifiedId(); - } - } - - // - // Rule 38: qualified_id_name ::= :: operator_function_id_name - // - static final class Action38 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeGlobalQualifiedId(); - } - } - - // - // Rule 39: qualified_id_name ::= :: template_id_name - // - static final class Action39 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeGlobalQualifiedId(); - } - } - - // - // Rule 40: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template - // - static final class Action40 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeNestedNameSpecifier(true); - } - } - - // - // Rule 41: nested_name_specifier ::= class_or_namespace_name :: - // - static final class Action41 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeNestedNameSpecifier(false); - } - } - - // - // Rule 42: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template - // - static final class Action42 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeNestedNameSpecifier(true); - } - } - - // - // Rule 43: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: - // - static final class Action43 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeNestedNameSpecifier(false); - } - } - - // - // Rule 44: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name - // - static final class Action44 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeNameWithTemplateKeyword(); - } - } - - // - // Rule 46: nested_name_specifier_opt ::= $Empty - // - static final class Action46 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeNestedNameSpecifierEmpty(); - } - } - - // - // Rule 50: postfix_expression ::= postfix_expression [ expression ] - // - static final class Action50 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionArraySubscript(); - } - } - - // - // Rule 51: postfix_expression ::= postfix_expression ( expression_list_opt ) - // - static final class Action51 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionFunctionCall(); - } - } - - // - // Rule 52: postfix_expression ::= simple_type_specifier ( expression_list_opt ) - // - static final class Action52 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionSimpleTypeConstructor(); - } - } - - // - // Rule 53: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) - // - static final class Action53 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionTypeName(); - } - } - - // - // Rule 54: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) - // - static final class Action54 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionTypeName(); - } - } - - // - // Rule 55: postfix_expression ::= postfix_expression . qualified_or_unqualified_name - // - static final class Action55 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionFieldReference(false, false); - } - } - - // - // Rule 56: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name - // - static final class Action56 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionFieldReference(true, false); - } - } - - // - // Rule 57: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name - // - static final class Action57 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionFieldReference(false, true); - } - } - - // - // Rule 58: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name - // - static final class Action58 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionFieldReference(true, true); - } - } - - // - // Rule 59: postfix_expression ::= postfix_expression . pseudo_destructor_name - // - static final class Action59 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionFieldReference(false, false); - } - } - - // - // Rule 60: postfix_expression ::= postfix_expression -> pseudo_destructor_name - // - static final class Action60 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionFieldReference(true, false); - } - } - - // - // Rule 61: postfix_expression ::= postfix_expression ++ - // - static final class Action61 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); - } - } - - // - // Rule 62: postfix_expression ::= postfix_expression -- - // - static final class Action62 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); - } - } - - // - // Rule 63: postfix_expression ::= dynamic_cast < type_id > ( expression ) - // - static final class Action63 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); - } - } - - // - // Rule 64: postfix_expression ::= static_cast < type_id > ( expression ) - // - static final class Action64 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_static_cast); - } - } - - // - // Rule 65: postfix_expression ::= reinterpret_cast < type_id > ( expression ) - // - static final class Action65 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); - } - } - - // - // Rule 66: postfix_expression ::= const_cast < type_id > ( expression ) - // - static final class Action66 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_const_cast); - } - } - - // - // Rule 67: postfix_expression ::= typeid ( expression ) - // - static final class Action67 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); - } - } - - // - // Rule 68: postfix_expression ::= typeid ( type_id ) - // - static final class Action68 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); - } - } - - // - // Rule 69: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: ~ type_name - // - static final class Action69 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumePsudoDestructorName(true); - } - } - - // - // Rule 70: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: ~ type_name - // - static final class Action70 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumePsudoDestructorName(true); - } - } - - // - // Rule 71: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt ~ type_name - // - static final class Action71 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumePsudoDestructorName(false); - } - } - - // - // Rule 75: unary_expression ::= ++ cast_expression - // - static final class Action75 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); - } - } - - // - // Rule 76: unary_expression ::= -- cast_expression - // - static final class Action76 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); - } - } - - // - // Rule 77: unary_expression ::= & cast_expression - // - static final class Action77 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); - } - } - - // - // Rule 78: unary_expression ::= * cast_expression - // - static final class Action78 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); - } - } - - // - // Rule 79: unary_expression ::= + cast_expression - // - static final class Action79 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); - } - } - - // - // Rule 80: unary_expression ::= - cast_expression - // - static final class Action80 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); - } - } - - // - // Rule 81: unary_expression ::= ~ cast_expression - // - static final class Action81 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); - } - } - - // - // Rule 82: unary_expression ::= ! cast_expression - // - static final class Action82 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); - } - } - - // - // Rule 83: unary_expression ::= sizeof unary_expression - // - static final class Action83 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); - } - } - - // - // Rule 84: unary_expression ::= sizeof ( type_id ) - // - static final class Action84 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); - } - } - - // - // Rule 85: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt - // - static final class Action85 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionNew(false); - } - } - - // - // Rule 86: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_initializer_opt - // - static final class Action86 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionNew(true); - } - } - - // - // Rule 89: new_placement_opt ::= $Empty - // - static final class Action89 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeEmpty(); - } - } - - // - // Rule 90: new_type_id ::= type_specifier_seq - // - static final class Action90 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeTypeId(false); - } - } - - // - // Rule 91: new_type_id ::= type_specifier_seq new_declarator - // - static final class Action91 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeTypeId(true); - } - } - - // - // Rule 92: new_declarator ::= new_pointer_operators - // - static final class Action92 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeNewDeclarator(); - } - } - - // - // Rule 101: new_initializer_opt ::= $Empty - // - static final class Action101 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeEmpty(); - } - } - - // - // Rule 102: delete_expression ::= dcolon_opt delete cast_expression - // - static final class Action102 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionDelete(false); - } - } - - // - // Rule 103: delete_expression ::= dcolon_opt delete [ ] cast_expression - // - static final class Action103 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionDelete(true); - } - } - - // - // Rule 105: cast_expression ::= ( type_id ) cast_expression - // - static final class Action105 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_cast); - } - } - - // - // Rule 107: pm_expression ::= pm_expression .* cast_expression - // - static final class Action107 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); - } - } - - // - // Rule 108: pm_expression ::= pm_expression ->* cast_expression - // - static final class Action108 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); - } - } - - // - // Rule 110: multiplicative_expression ::= multiplicative_expression * pm_expression - // - static final class Action110 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); - } - } - - // - // Rule 111: multiplicative_expression ::= multiplicative_expression / pm_expression - // - static final class Action111 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); - } - } - - // - // Rule 112: multiplicative_expression ::= multiplicative_expression % pm_expression - // - static final class Action112 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); - } - } - - // - // Rule 114: additive_expression ::= additive_expression + multiplicative_expression - // - static final class Action114 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); - } - } - - // - // Rule 115: additive_expression ::= additive_expression - multiplicative_expression - // - static final class Action115 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); - } - } - - // - // Rule 117: shift_expression ::= shift_expression << additive_expression - // - static final class Action117 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); - } - } - - // - // Rule 118: shift_expression ::= shift_expression >> additive_expression - // - static final class Action118 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); - } - } - - // - // Rule 120: relational_expression ::= relational_expression < shift_expression - // - static final class Action120 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); - } - } - - // - // Rule 121: relational_expression ::= relational_expression > shift_expression - // - static final class Action121 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); - } - } - - // - // Rule 122: relational_expression ::= relational_expression <= shift_expression - // - static final class Action122 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); - } - } - - // - // Rule 123: relational_expression ::= relational_expression >= shift_expression - // - static final class Action123 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); - } - } - - // - // Rule 125: equality_expression ::= equality_expression == relational_expression - // - static final class Action125 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); - } - } - - // - // Rule 126: equality_expression ::= equality_expression != relational_expression - // - static final class Action126 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); - } - } - - // - // Rule 128: and_expression ::= and_expression & equality_expression - // - static final class Action128 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); - } - } - - // - // Rule 130: exclusive_or_expression ::= exclusive_or_expression ^ and_expression - // - static final class Action130 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); - } - } - - // - // Rule 132: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression - // - static final class Action132 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); - } - } - - // - // Rule 134: logical_and_expression ::= logical_and_expression && inclusive_or_expression - // - static final class Action134 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); - } - } - - // - // Rule 136: logical_or_expression ::= logical_or_expression || logical_and_expression - // - static final class Action136 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); - } - } - - // - // Rule 138: conditional_expression ::= logical_or_expression ? expression : assignment_expression - // - static final class Action138 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionConditional(); - } - } - - // - // Rule 139: throw_expression ::= throw - // - static final class Action139 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionThrow(false); - } - } - - // - // Rule 140: throw_expression ::= throw assignment_expression - // - static final class Action140 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionThrow(true); - } - } - - // - // Rule 143: assignment_expression ::= logical_or_expression = assignment_expression - // - static final class Action143 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); - } - } - - // - // Rule 144: assignment_expression ::= logical_or_expression *= assignment_expression - // - static final class Action144 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); - } - } - - // - // Rule 145: assignment_expression ::= logical_or_expression /= assignment_expression - // - static final class Action145 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); - } - } - - // - // Rule 146: assignment_expression ::= logical_or_expression %= assignment_expression - // - static final class Action146 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); - } - } - - // - // Rule 147: assignment_expression ::= logical_or_expression += assignment_expression - // - static final class Action147 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); - } - } - - // - // Rule 148: assignment_expression ::= logical_or_expression -= assignment_expression - // - static final class Action148 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); - } - } - - // - // Rule 149: assignment_expression ::= logical_or_expression >>= assignment_expression - // - static final class Action149 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); - } - } - - // - // Rule 150: assignment_expression ::= logical_or_expression <<= assignment_expression - // - static final class Action150 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); - } - } - - // - // Rule 151: assignment_expression ::= logical_or_expression &= assignment_expression - // - static final class Action151 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); - } - } - - // - // Rule 152: assignment_expression ::= logical_or_expression ^= assignment_expression - // - static final class Action152 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); - } - } - - // - // Rule 153: assignment_expression ::= logical_or_expression |= assignment_expression - // - static final class Action153 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); - } - } - - // - // Rule 155: expression ::= ERROR_TOKEN - // - static final class Action155 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionProblem(); - } - } - - // - // Rule 156: expression_list ::= expression_list_actual - // - static final class Action156 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeExpressionList(); - } - } - - // - // Rule 160: expression_list_opt ::= $Empty - // - static final class Action160 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeEmpty(); - } - } - - // - // Rule 162: expression_opt ::= $Empty - // - static final class Action162 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeEmpty(); - } - } - - // - // Rule 165: constant_expression_opt ::= $Empty - // - static final class Action165 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeEmpty(); - } - } - - // - // Rule 174: statement ::= ERROR_TOKEN - // - static final class Action174 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementProblem(); - } - } - - // - // Rule 175: labeled_statement ::= identifier : statement - // - static final class Action175 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementLabeled(); - } - } - - // - // Rule 176: labeled_statement ::= case constant_expression : - // - static final class Action176 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementCase(); - } - } - - // - // Rule 177: labeled_statement ::= default : - // - static final class Action177 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementDefault(); - } - } - - // - // Rule 178: expression_statement ::= expression ; - // - static final class Action178 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementExpression(); - } - } - - // - // Rule 179: expression_statement ::= ; - // - static final class Action179 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementNull(); - } - } - - // - // Rule 180: compound_statement ::= { statement_seq } - // - static final class Action180 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementCompoundStatement(true); - } - } - - // - // Rule 181: compound_statement ::= { } - // - static final class Action181 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementCompoundStatement(false); - } - } - - // - // Rule 184: selection_statement ::= if ( condition ) statement - // - static final class Action184 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementIf(false); - } - } - - // - // Rule 185: selection_statement ::= if ( condition ) statement else statement - // - static final class Action185 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementIf(true); - } - } - - // - // Rule 186: selection_statement ::= switch ( condition ) statement - // - static final class Action186 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementSwitch(); - } - } - - // - // Rule 188: condition ::= type_specifier_seq declarator = assignment_expression - // - static final class Action188 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeConditionDeclaration(); - } - } - - // - // Rule 189: iteration_statement ::= while ( condition ) statement - // - static final class Action189 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementWhileLoop(); - } - } - - // - // Rule 190: iteration_statement ::= do statement while ( expression ) ; - // - static final class Action190 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementDoLoop(); - } - } - - // - // Rule 191: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement - // - static final class Action191 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementForLoop(); - } - } - - // - // Rule 192: iteration_statement ::= for ( simple_declaration expression_opt ; expression_opt ) statement - // - static final class Action192 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementForLoop(); - } - } - - // - // Rule 193: jump_statement ::= break ; - // - static final class Action193 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementBreak(); - } - } - - // - // Rule 194: jump_statement ::= continue ; - // - static final class Action194 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementContinue(); - } - } - - // - // Rule 195: jump_statement ::= return expression ; - // - static final class Action195 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementReturn(true); - } - } - - // - // Rule 196: jump_statement ::= return ; - // - static final class Action196 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementReturn(false); - } - } - - // - // Rule 197: jump_statement ::= goto identifier ; - // - static final class Action197 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementGoto(); - } - } - - // - // Rule 198: declaration_statement ::= block_declaration - // - static final class Action198 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementDeclaration(); - } - } - - // - // Rule 215: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; - // - static final class Action215 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclarationSimple(true); - } - } - - // - // Rule 216: declaration_specifiers ::= simple_declaration_specifiers - // - static final class Action216 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclarationSpecifiersSimple(); - } - } - - // - // Rule 217: declaration_specifiers ::= class_declaration_specifiers - // - static final class Action217 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclarationSpecifiersComposite(); - } - } - - // - // Rule 218: declaration_specifiers ::= elaborated_declaration_specifiers - // - static final class Action218 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclarationSpecifiersComposite(); - } - } - - // - // Rule 219: declaration_specifiers ::= enum_declaration_specifiers - // - static final class Action219 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclarationSpecifiersComposite(); - } - } - - // - // Rule 220: declaration_specifiers ::= type_name_declaration_specifiers - // - static final class Action220 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclarationSpecifiersTypeName(); - } - } - - // - // Rule 222: declaration_specifiers_opt ::= $Empty - // - static final class Action222 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeEmpty(); - } - } - - // - // Rule 226: no_type_declaration_specifier ::= friend - // - static final class Action226 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclSpecToken(); - } - } - - // - // Rule 227: no_type_declaration_specifier ::= typedef - // - static final class Action227 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclSpecToken(); - } - } - - // - // Rule 255: simple_type_specifier ::= simple_type_specifier_token - // - static final class Action255 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclSpecToken(); - } - } - - // - // Rule 271: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name - // - static final class Action271 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeQualifiedId(false); - } - } - - // - // Rule 272: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name - // - static final class Action272 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeQualifiedId(false); - } - } - - // - // Rule 273: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name - // - static final class Action273 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeQualifiedId(false); - } - } - - // - // Rule 274: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name - // - static final class Action274 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeQualifiedId(true); - } - } - - // - // Rule 275: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name - // - static final class Action275 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeTypeSpecifierElaborated(false); - } - } - - // - // Rule 276: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name - // - static final class Action276 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeTypeSpecifierElaborated(true); - } - } - - // - // Rule 277: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name - // - static final class Action277 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeTypeSpecifierElaborated(false); - } - } - - // - // Rule 279: enum_specifier ::= enum { enumerator_list_opt } - // - static final class Action279 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeTypeSpecifierEnumeration(false); - } - } - - // - // Rule 280: enum_specifier ::= enum identifier { enumerator_list_opt } - // - static final class Action280 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeTypeSpecifierEnumeration(true); - } - } - - // - // Rule 285: enumerator_definition ::= enumerator - // - static final class Action285 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeEnumerator(false); - } - } - - // - // Rule 286: enumerator_definition ::= enumerator = constant_expression - // - static final class Action286 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeEnumerator(true); - } - } - - // - // Rule 295: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } - // - static final class Action295 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeNamespaceDefinition(true); - } - } - - // - // Rule 296: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } - // - static final class Action296 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeNamespaceDefinition(true); - } - } - - // - // Rule 297: unnamed_namespace_definition ::= namespace { declaration_seq_opt } - // - static final class Action297 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeNamespaceDefinition(false); - } - } - - // - // Rule 299: namespace_alias_definition ::= namespace identifier = dcolon_opt nested_name_specifier_opt namespace_name ; - // - static final class Action299 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeNamespaceAliasDefinition(); - } - } - - // - // Rule 300: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; - // - static final class Action300 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeUsingDeclaration(); - } - } - - // - // Rule 301: typename_opt ::= typename - // - static final class Action301 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumePlaceHolder(); - } - } - - // - // Rule 302: typename_opt ::= $Empty - // - static final class Action302 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeEmpty(); - } - } - - // - // Rule 303: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; - // - static final class Action303 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeUsingDirective(); - } - } - - // - // Rule 304: asm_definition ::= asm ( stringlit ) ; - // - static final class Action304 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclarationASM(); - } - } - - // - // Rule 305: linkage_specification ::= extern stringlit { declaration_seq_opt } - // - static final class Action305 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeLinkageSpecification(); - } - } - - // - // Rule 306: linkage_specification ::= extern stringlit declaration - // - static final class Action306 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeLinkageSpecification(); - } - } - - // - // Rule 312: init_declarator ::= declarator initializer - // - static final class Action312 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclaratorWithInitializer(true); - } - } - - // - // Rule 314: declarator ::= ptr_operator_seq direct_declarator - // - static final class Action314 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclaratorWithPointer(true); - } - } - - // - // Rule 318: basic_direct_declarator ::= declarator_id_name - // - static final class Action318 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDirectDeclaratorIdentifier(); - } - } - - // - // Rule 319: basic_direct_declarator ::= ( declarator ) - // - static final class Action319 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDirectDeclaratorBracketed(); - } - } - - // - // Rule 320: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt - // - static final class Action320 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDirectDeclaratorFunctionDeclarator(true); - } - } - - // - // Rule 321: array_direct_declarator ::= array_direct_declarator array_modifier - // - static final class Action321 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); - } - } - - // - // Rule 322: array_direct_declarator ::= basic_direct_declarator array_modifier - // - static final class Action322 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); - } - } - - // - // Rule 323: array_modifier ::= [ constant_expression ] - // - static final class Action323 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDirectDeclaratorArrayModifier(true); - } - } - - // - // Rule 324: array_modifier ::= [ ] - // - static final class Action324 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDirectDeclaratorArrayModifier(false); - } - } - - // - // Rule 325: ptr_operator ::= * cv_qualifier_seq_opt - // - static final class Action325 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumePointer(); - } - } - - // - // Rule 326: ptr_operator ::= & - // - static final class Action326 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeReferenceOperator(); - } - } - - // - // Rule 327: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt - // - static final class Action327 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumePointerToMember(); - } - } - - // - // Rule 333: cv_qualifier ::= const - // - static final class Action333 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclSpecToken(); - } - } - - // - // Rule 334: cv_qualifier ::= volatile - // - static final class Action334 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclSpecToken(); - } - } - - // - // Rule 336: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name - // - static final class Action336 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeQualifiedId(false); - } - } - - // - // Rule 337: type_id ::= type_specifier_seq - // - static final class Action337 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeTypeId(false); - } - } - - // - // Rule 338: type_id ::= type_specifier_seq abstract_declarator - // - static final class Action338 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeTypeId(true); - } - } - - // - // Rule 341: abstract_declarator ::= ptr_operator_seq - // - static final class Action341 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclaratorWithPointer(false); - } - } - - // - // Rule 342: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator - // - static final class Action342 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclaratorWithPointer(true); - } - } - - // - // Rule 346: basic_direct_abstract_declarator ::= ( abstract_declarator ) - // - static final class Action346 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDirectDeclaratorBracketed(); - } - } - - // - // Rule 347: array_direct_abstract_declarator ::= array_modifier - // - static final class Action347 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDirectDeclaratorArrayDeclarator(false); - } - } - - // - // Rule 348: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier - // - static final class Action348 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); - } - } - - // - // Rule 349: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier - // - static final class Action349 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); - } - } - - // - // Rule 350: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt - // - static final class Action350 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDirectDeclaratorFunctionDeclarator(true); - } - } - - // - // Rule 351: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt - // - static final class Action351 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDirectDeclaratorFunctionDeclarator(false); - } - } - - // - // Rule 352: parameter_declaration_clause ::= parameter_declaration_list_opt ... - // - static final class Action352 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumePlaceHolder(); - } - } - - // - // Rule 353: parameter_declaration_clause ::= parameter_declaration_list_opt - // - static final class Action353 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeEmpty(); - } - } - - // - // Rule 354: parameter_declaration_clause ::= parameter_declaration_list , ... - // - static final class Action354 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumePlaceHolder(); - } - } - - // - // Rule 360: abstract_declarator_opt ::= $Empty - // - static final class Action360 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeEmpty(); - } - } - - // - // Rule 361: parameter_declaration ::= declaration_specifiers parameter_init_declarator - // - static final class Action361 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeParameterDeclaration(); - } - } - - // - // Rule 362: parameter_declaration ::= declaration_specifiers - // - static final class Action362 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeParameterDeclarationWithoutDeclarator(); - } - } - - // - // Rule 364: parameter_init_declarator ::= declarator = parameter_initializer - // - static final class Action364 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclaratorWithInitializer(true); - } - } - - // - // Rule 366: parameter_init_declarator ::= abstract_declarator = parameter_initializer - // - static final class Action366 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclaratorWithInitializer(true); - } - } - - // - // Rule 367: parameter_init_declarator ::= = parameter_initializer - // - static final class Action367 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclaratorWithInitializer(false); - } - } - - // - // Rule 368: parameter_initializer ::= assignment_expression - // - static final class Action368 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeInitializer(); - } - } - - // - // Rule 369: function_definition ::= declaration_specifiers_opt function_direct_declarator ctor_initializer_list_opt function_body - // - static final class Action369 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeFunctionDefinition(false); - } - } - - // - // Rule 370: function_definition ::= declaration_specifiers_opt function_direct_declarator try ctor_initializer_list_opt function_body handler_seq - // - static final class Action370 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeFunctionDefinition(true); - } - } - - // - // Rule 373: initializer ::= ( expression_list ) - // - static final class Action373 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeInitializerConstructor(); - } - } - - // - // Rule 374: initializer_clause ::= assignment_expression - // - static final class Action374 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeInitializer(); - } - } - - // - // Rule 375: initializer_clause ::= { initializer_list , } - // - static final class Action375 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeInitializerList(); - } - } - - // - // Rule 376: initializer_clause ::= { initializer_list } - // - static final class Action376 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeInitializerList(); - } - } - - // - // Rule 377: initializer_clause ::= { } - // - static final class Action377 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeInitializerList(); - } - } - - // - // Rule 382: class_specifier ::= class_head { member_declaration_list_opt } - // - static final class Action382 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeClassSpecifier(); - } - } - - // - // Rule 383: class_head ::= class_keyword identifier_name_opt base_clause_opt - // - static final class Action383 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeClassHead(false); - } - } - - // - // Rule 384: class_head ::= class_keyword template_id_name base_clause_opt - // - static final class Action384 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeClassHead(false); - } - } - - // - // Rule 385: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt - // - static final class Action385 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeClassHead(true); - } - } - - // - // Rule 386: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt - // - static final class Action386 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeClassHead(true); - } - } - - // - // Rule 390: identifier_name_opt ::= $Empty - // - static final class Action390 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeEmpty(); - } - } - - // - // Rule 394: visibility_label ::= access_specifier_keyword : - // - static final class Action394 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeVisibilityLabel(); - } - } - - // - // Rule 395: member_declaration ::= declaration_specifiers_opt member_declarator_list ; - // - static final class Action395 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclarationSimple(true); - } - } - - // - // Rule 396: member_declaration ::= declaration_specifiers_opt ; - // - static final class Action396 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclarationSimple(false); - } - } - - // - // Rule 399: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; - // - static final class Action399 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeMemberDeclarationQualifiedId(); - } - } - - // - // Rule 410: member_declarator ::= declarator constant_initializer - // - static final class Action410 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeMemberDeclaratorWithInitializer(); - } - } - - // - // Rule 411: member_declarator ::= bit_field_declarator : constant_expression - // - static final class Action411 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeBitField(true); - } - } - - // - // Rule 412: member_declarator ::= : constant_expression - // - static final class Action412 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeBitField(false); - } - } - - // - // Rule 413: bit_field_declarator ::= identifier_name - // - static final class Action413 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDirectDeclaratorIdentifier(); - } - } - - // - // Rule 420: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name - // - static final class Action420 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeBaseSpecifier(false); - } - } - - // - // Rule 421: base_specifier ::= virtual_opt access_specifier_keyword virtual_opt dcolon_opt nested_name_specifier_opt class_name - // - static final class Action421 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeBaseSpecifier(true); - } - } - - // - // Rule 422: virtual_opt ::= virtual - // - static final class Action422 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumePlaceHolder(); - } - } - - // - // Rule 423: virtual_opt ::= $Empty - // - static final class Action423 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeEmpty(); - } - } - - // - // Rule 429: conversion_function_id_name ::= operator conversion_type_id - // - static final class Action429 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeConversionName(); - } - } - - // - // Rule 430: conversion_type_id ::= type_specifier_seq conversion_declarator - // - static final class Action430 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeTypeId(true); - } - } - - // - // Rule 431: conversion_type_id ::= type_specifier_seq - // - static final class Action431 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeTypeId(false); - } - } - - // - // Rule 432: conversion_declarator ::= ptr_operator_seq - // - static final class Action432 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclaratorWithPointer(false); - } - } - - // - // Rule 438: mem_initializer ::= mem_initializer_name ( expression_list_opt ) - // - static final class Action438 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeConstructorChainInitializer(); - } - } - - // - // Rule 439: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name - // - static final class Action439 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeQualifiedId(false); - } - } - - // - // Rule 442: operator_function_id_name ::= operator_id_name < template_argument_list_opt > - // - static final class Action442 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeTemplateId(); - } - } - - // - // Rule 443: operator_id_name ::= operator overloadable_operator - // - static final class Action443 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeOperatorName(); - } - } - - // - // Rule 486: template_declaration ::= export_opt template < template_parameter_list > declaration - // - static final class Action486 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeTemplateDeclaration(); - } - } - - // - // Rule 487: export_opt ::= export - // - static final class Action487 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumePlaceHolder(); - } - } - - // - // Rule 488: export_opt ::= $Empty - // - static final class Action488 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeEmpty(); - } - } - - // - // Rule 493: type_parameter ::= class identifier_name_opt - // - static final class Action493 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeSimpleTypeTemplateParameter(false); - } - } - - // - // Rule 494: type_parameter ::= class identifier_name_opt = type_id - // - static final class Action494 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeSimpleTypeTemplateParameter(true); - } - } - - // - // Rule 495: type_parameter ::= typename identifier_name_opt - // - static final class Action495 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeSimpleTypeTemplateParameter(false); - } - } - - // - // Rule 496: type_parameter ::= typename identifier_name_opt = type_id - // - static final class Action496 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeSimpleTypeTemplateParameter(true); - } - } - - // - // Rule 497: type_parameter ::= template < template_parameter_list > class identifier_name_opt - // - static final class Action497 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeTemplatedTypeTemplateParameter(false); - } - } - - // - // Rule 498: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression - // - static final class Action498 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeTemplatedTypeTemplateParameter(true); - } - } - - // - // Rule 499: template_id_name ::= template_identifier < template_argument_list_opt > - // - static final class Action499 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeTemplateId(); - } - } - - // - // Rule 508: explicit_instantiation ::= template declaration - // - static final class Action508 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeTemplateExplicitInstantiation(); - } - } - - // - // Rule 509: explicit_specialization ::= template < > declaration - // - static final class Action509 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeTemplateExplicitSpecialization(); - } - } - - // - // Rule 510: try_block ::= try compound_statement handler_seq - // - static final class Action510 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementTryBlock(); - } - } - - // - // Rule 513: handler ::= catch ( exception_declaration ) compound_statement - // - static final class Action513 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementCatchHandler(false); - } - } - - // - // Rule 514: handler ::= catch ( ... ) compound_statement - // - static final class Action514 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeStatementCatchHandler(true); - } - } - - // - // Rule 515: exception_declaration ::= type_specifier_seq declarator - // - static final class Action515 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclarationSimple(true); - } - } - - // - // Rule 516: exception_declaration ::= type_specifier_seq abstract_declarator - // - static final class Action516 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclarationSimple(true); - } - } - - // - // Rule 517: exception_declaration ::= type_specifier_seq - // - static final class Action517 extends DeclaredAction< CPPParserAction , Object > { - - public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. - consumeDeclarationSimple(false); - } - } - +public List getRuleTokens() { + return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1)); +} + + + + public void ruleAction(int ruleNumber) + { + switch (ruleNumber) + { + + // + // Rule 1: ::= $Empty + // + case 1: { action.builder. + openASTScope(); break; + } + + // + // Rule 4: ::= $Empty + // + case 4: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 5: ::= $Empty + // + case 5: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 10: translation_unit ::= declaration_seq + // + case 10: { action.builder. + consumeTranslationUnit(); break; + } + + // + // Rule 11: translation_unit ::= $Empty + // + case 11: { action.builder. + consumeTranslationUnit(); break; + } + + // + // Rule 12: literal ::= integer + // + case 12: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; + } + + // + // Rule 13: literal ::= 0 + // + case 13: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; + } + + // + // Rule 14: literal ::= floating + // + case 14: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; + } + + // + // Rule 15: literal ::= charconst + // + case 15: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; + } + + // + // Rule 16: literal ::= stringlit + // + case 16: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; + } + + // + // Rule 17: literal ::= true + // + case 17: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; + } + + // + // Rule 18: literal ::= false + // + case 18: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; + } + + // + // Rule 19: literal ::= this + // + case 19: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; + } + + // + // Rule 21: primary_expression ::= ( expression ) + // + case 21: { action.builder. + consumeExpressionBracketed(); break; + } + + // + // Rule 23: id_expression ::= qualified_or_unqualified_name + // + case 23: { action.builder. + consumeExpressionName(); break; + } + + // + // Rule 30: unqualified_id_name ::= ~ class_name + // + case 30: { action.builder. + consumeDestructorName(); break; + } + + // + // Rule 31: identifier_name ::= identifier + // + case 31: { action.builder. + consumeIdentifierName(); break; + } + + // + // Rule 32: template_opt ::= template + // + case 32: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 33: template_opt ::= $Empty + // + case 33: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 34: dcolon_opt ::= :: + // + case 34: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 35: dcolon_opt ::= $Empty + // + case 35: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 36: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // + case 36: { action.builder. + consumeQualifiedId(true); break; + } + + // + // Rule 37: qualified_id_name ::= :: identifier_name + // + case 37: { action.builder. + consumeGlobalQualifiedId(); break; + } + + // + // Rule 38: qualified_id_name ::= :: operator_function_id_name + // + case 38: { action.builder. + consumeGlobalQualifiedId(); break; + } + + // + // Rule 39: qualified_id_name ::= :: template_id_name + // + case 39: { action.builder. + consumeGlobalQualifiedId(); break; + } + + // + // Rule 40: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // + case 40: { action.builder. + consumeNestedNameSpecifier(true); break; + } + + // + // Rule 41: nested_name_specifier ::= class_or_namespace_name :: + // + case 41: { action.builder. + consumeNestedNameSpecifier(false); break; + } + + // + // Rule 42: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // + case 42: { action.builder. + consumeNestedNameSpecifier(true); break; + } + + // + // Rule 43: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // + case 43: { action.builder. + consumeNestedNameSpecifier(false); break; + } + + // + // Rule 44: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // + case 44: { action.builder. + consumeNameWithTemplateKeyword(); break; + } + + // + // Rule 46: nested_name_specifier_opt ::= $Empty + // + case 46: { action.builder. + consumeNestedNameSpecifierEmpty(); break; + } + + // + // Rule 50: postfix_expression ::= postfix_expression [ expression ] + // + case 50: { action.builder. + consumeExpressionArraySubscript(); break; + } + + // + // Rule 51: postfix_expression ::= postfix_expression ( expression_list_opt ) + // + case 51: { action.builder. + consumeExpressionFunctionCall(); break; + } + + // + // Rule 52: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // + case 52: { action.builder. + consumeExpressionSimpleTypeConstructor(); break; + } + + // + // Rule 53: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // + case 53: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 54: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // + case 54: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 55: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // + case 55: { action.builder. + consumeExpressionFieldReference(false, false); break; + } + + // + // Rule 56: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // + case 56: { action.builder. + consumeExpressionFieldReference(true, false); break; + } + + // + // Rule 57: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // + case 57: { action.builder. + consumeExpressionFieldReference(false, true); break; + } + + // + // Rule 58: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // + case 58: { action.builder. + consumeExpressionFieldReference(true, true); break; + } + + // + // Rule 59: postfix_expression ::= postfix_expression . pseudo_destructor_name + // + case 59: { action.builder. + consumeExpressionFieldReference(false, false); break; + } + + // + // Rule 60: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // + case 60: { action.builder. + consumeExpressionFieldReference(true, false); break; + } + + // + // Rule 61: postfix_expression ::= postfix_expression ++ + // + case 61: { action.builder. + consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; + } + + // + // Rule 62: postfix_expression ::= postfix_expression -- + // + case 62: { action.builder. + consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; + } + + // + // Rule 63: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // + case 63: { action.builder. + consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; + } + + // + // Rule 64: postfix_expression ::= static_cast < type_id > ( expression ) + // + case 64: { action.builder. + consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; + } + + // + // Rule 65: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // + case 65: { action.builder. + consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; + } + + // + // Rule 66: postfix_expression ::= const_cast < type_id > ( expression ) + // + case 66: { action.builder. + consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; + } + + // + // Rule 67: postfix_expression ::= typeid ( expression ) + // + case 67: { action.builder. + consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; + } + + // + // Rule 68: postfix_expression ::= typeid ( type_id ) + // + case 68: { action.builder. + consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; + } + + // + // Rule 69: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: ~ type_name + // + case 69: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 70: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: ~ type_name + // + case 70: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 71: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt ~ type_name + // + case 71: { action.builder. + consumePsudoDestructorName(false); break; + } + + // + // Rule 75: unary_expression ::= ++ cast_expression + // + case 75: { action.builder. + consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; + } + + // + // Rule 76: unary_expression ::= -- cast_expression + // + case 76: { action.builder. + consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; + } + + // + // Rule 77: unary_expression ::= & cast_expression + // + case 77: { action.builder. + consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; + } + + // + // Rule 78: unary_expression ::= * cast_expression + // + case 78: { action.builder. + consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; + } + + // + // Rule 79: unary_expression ::= + cast_expression + // + case 79: { action.builder. + consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; + } + + // + // Rule 80: unary_expression ::= - cast_expression + // + case 80: { action.builder. + consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; + } + + // + // Rule 81: unary_expression ::= ~ cast_expression + // + case 81: { action.builder. + consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; + } + + // + // Rule 82: unary_expression ::= ! cast_expression + // + case 82: { action.builder. + consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; + } + + // + // Rule 83: unary_expression ::= sizeof unary_expression + // + case 83: { action.builder. + consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; + } + + // + // Rule 84: unary_expression ::= sizeof ( type_id ) + // + case 84: { action.builder. + consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; + } + + // + // Rule 85: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt + // + case 85: { action.builder. + consumeExpressionNew(false); break; + } + + // + // Rule 86: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_initializer_opt + // + case 86: { action.builder. + consumeExpressionNew(true); break; + } + + // + // Rule 89: new_placement_opt ::= $Empty + // + case 89: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 90: new_type_id ::= type_specifier_seq + // + case 90: { action.builder. + consumeTypeId(false); break; + } + + // + // Rule 91: new_type_id ::= type_specifier_seq new_declarator + // + case 91: { action.builder. + consumeTypeId(true); break; + } + + // + // Rule 92: new_declarator ::= new_pointer_operators + // + case 92: { action.builder. + consumeNewDeclarator(); break; + } + + // + // Rule 101: new_initializer_opt ::= $Empty + // + case 101: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 102: delete_expression ::= dcolon_opt delete cast_expression + // + case 102: { action.builder. + consumeExpressionDelete(false); break; + } + + // + // Rule 103: delete_expression ::= dcolon_opt delete [ ] cast_expression + // + case 103: { action.builder. + consumeExpressionDelete(true); break; + } + + // + // Rule 105: cast_expression ::= ( type_id ) cast_expression + // + case 105: { action.builder. + consumeExpressionCast(ICPPASTCastExpression.op_cast); break; + } + + // + // Rule 107: pm_expression ::= pm_expression .* cast_expression + // + case 107: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; + } + + // + // Rule 108: pm_expression ::= pm_expression ->* cast_expression + // + case 108: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; + } + + // + // Rule 110: multiplicative_expression ::= multiplicative_expression * pm_expression + // + case 110: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; + } + + // + // Rule 111: multiplicative_expression ::= multiplicative_expression / pm_expression + // + case 111: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; + } + + // + // Rule 112: multiplicative_expression ::= multiplicative_expression % pm_expression + // + case 112: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; + } + + // + // Rule 114: additive_expression ::= additive_expression + multiplicative_expression + // + case 114: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; + } + + // + // Rule 115: additive_expression ::= additive_expression - multiplicative_expression + // + case 115: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; + } + + // + // Rule 117: shift_expression ::= shift_expression << additive_expression + // + case 117: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; + } + + // + // Rule 118: shift_expression ::= shift_expression >> additive_expression + // + case 118: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; + } + + // + // Rule 120: relational_expression ::= relational_expression < shift_expression + // + case 120: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; + } + + // + // Rule 121: relational_expression ::= relational_expression > shift_expression + // + case 121: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; + } + + // + // Rule 122: relational_expression ::= relational_expression <= shift_expression + // + case 122: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; + } + + // + // Rule 123: relational_expression ::= relational_expression >= shift_expression + // + case 123: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; + } + + // + // Rule 125: equality_expression ::= equality_expression == relational_expression + // + case 125: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; + } + + // + // Rule 126: equality_expression ::= equality_expression != relational_expression + // + case 126: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; + } + + // + // Rule 128: and_expression ::= and_expression & equality_expression + // + case 128: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; + } + + // + // Rule 130: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // + case 130: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; + } + + // + // Rule 132: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // + case 132: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; + } + + // + // Rule 134: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // + case 134: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; + } + + // + // Rule 136: logical_or_expression ::= logical_or_expression || logical_and_expression + // + case 136: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; + } + + // + // Rule 138: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // + case 138: { action.builder. + consumeExpressionConditional(); break; + } + + // + // Rule 139: throw_expression ::= throw + // + case 139: { action.builder. + consumeExpressionThrow(false); break; + } + + // + // Rule 140: throw_expression ::= throw assignment_expression + // + case 140: { action.builder. + consumeExpressionThrow(true); break; + } + + // + // Rule 143: assignment_expression ::= logical_or_expression = assignment_expression + // + case 143: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; + } + + // + // Rule 144: assignment_expression ::= logical_or_expression *= assignment_expression + // + case 144: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; + } + + // + // Rule 145: assignment_expression ::= logical_or_expression /= assignment_expression + // + case 145: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; + } + + // + // Rule 146: assignment_expression ::= logical_or_expression %= assignment_expression + // + case 146: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; + } + + // + // Rule 147: assignment_expression ::= logical_or_expression += assignment_expression + // + case 147: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; + } + + // + // Rule 148: assignment_expression ::= logical_or_expression -= assignment_expression + // + case 148: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; + } + + // + // Rule 149: assignment_expression ::= logical_or_expression >>= assignment_expression + // + case 149: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; + } + + // + // Rule 150: assignment_expression ::= logical_or_expression <<= assignment_expression + // + case 150: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; + } + + // + // Rule 151: assignment_expression ::= logical_or_expression &= assignment_expression + // + case 151: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; + } + + // + // Rule 152: assignment_expression ::= logical_or_expression ^= assignment_expression + // + case 152: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; + } + + // + // Rule 153: assignment_expression ::= logical_or_expression |= assignment_expression + // + case 153: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; + } + + // + // Rule 155: expression ::= ERROR_TOKEN + // + case 155: { action.builder. + consumeExpressionProblem(); break; + } + + // + // Rule 156: expression_list ::= expression_list_actual + // + case 156: { action.builder. + consumeExpressionList(); break; + } + + // + // Rule 160: expression_list_opt ::= $Empty + // + case 160: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 162: expression_opt ::= $Empty + // + case 162: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 165: constant_expression_opt ::= $Empty + // + case 165: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 174: statement ::= ERROR_TOKEN + // + case 174: { action.builder. + consumeStatementProblem(); break; + } + + // + // Rule 175: labeled_statement ::= identifier : statement + // + case 175: { action.builder. + consumeStatementLabeled(); break; + } + + // + // Rule 176: labeled_statement ::= case constant_expression : + // + case 176: { action.builder. + consumeStatementCase(); break; + } + + // + // Rule 177: labeled_statement ::= default : + // + case 177: { action.builder. + consumeStatementDefault(); break; + } + + // + // Rule 178: expression_statement ::= expression ; + // + case 178: { action.builder. + consumeStatementExpression(); break; + } + + // + // Rule 179: expression_statement ::= ; + // + case 179: { action.builder. + consumeStatementNull(); break; + } + + // + // Rule 180: compound_statement ::= { statement_seq } + // + case 180: { action.builder. + consumeStatementCompoundStatement(true); break; + } + + // + // Rule 181: compound_statement ::= { } + // + case 181: { action.builder. + consumeStatementCompoundStatement(false); break; + } + + // + // Rule 184: selection_statement ::= if ( condition ) statement + // + case 184: { action.builder. + consumeStatementIf(false); break; + } + + // + // Rule 185: selection_statement ::= if ( condition ) statement else statement + // + case 185: { action.builder. + consumeStatementIf(true); break; + } + + // + // Rule 186: selection_statement ::= switch ( condition ) statement + // + case 186: { action.builder. + consumeStatementSwitch(); break; + } + + // + // Rule 188: condition ::= type_specifier_seq declarator = assignment_expression + // + case 188: { action.builder. + consumeConditionDeclaration(); break; + } + + // + // Rule 189: iteration_statement ::= while ( condition ) statement + // + case 189: { action.builder. + consumeStatementWhileLoop(); break; + } + + // + // Rule 190: iteration_statement ::= do statement while ( expression ) ; + // + case 190: { action.builder. + consumeStatementDoLoop(); break; + } + + // + // Rule 191: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // + case 191: { action.builder. + consumeStatementForLoop(); break; + } + + // + // Rule 192: iteration_statement ::= for ( simple_declaration expression_opt ; expression_opt ) statement + // + case 192: { action.builder. + consumeStatementForLoop(); break; + } + + // + // Rule 193: jump_statement ::= break ; + // + case 193: { action.builder. + consumeStatementBreak(); break; + } + + // + // Rule 194: jump_statement ::= continue ; + // + case 194: { action.builder. + consumeStatementContinue(); break; + } + + // + // Rule 195: jump_statement ::= return expression ; + // + case 195: { action.builder. + consumeStatementReturn(true); break; + } + + // + // Rule 196: jump_statement ::= return ; + // + case 196: { action.builder. + consumeStatementReturn(false); break; + } + + // + // Rule 197: jump_statement ::= goto identifier ; + // + case 197: { action.builder. + consumeStatementGoto(); break; + } + + // + // Rule 198: declaration_statement ::= block_declaration + // + case 198: { action.builder. + consumeStatementDeclaration(); break; + } + + // + // Rule 215: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // + case 215: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 216: declaration_specifiers ::= simple_declaration_specifiers + // + case 216: { action.builder. + consumeDeclarationSpecifiersSimple(); break; + } + + // + // Rule 217: declaration_specifiers ::= class_declaration_specifiers + // + case 217: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 218: declaration_specifiers ::= elaborated_declaration_specifiers + // + case 218: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 219: declaration_specifiers ::= enum_declaration_specifiers + // + case 219: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 220: declaration_specifiers ::= type_name_declaration_specifiers + // + case 220: { action.builder. + consumeDeclarationSpecifiersTypeName(); break; + } + + // + // Rule 222: declaration_specifiers_opt ::= $Empty + // + case 222: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 226: no_type_declaration_specifier ::= friend + // + case 226: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 227: no_type_declaration_specifier ::= typedef + // + case 227: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 255: simple_type_specifier ::= simple_type_specifier_token + // + case 255: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 271: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // + case 271: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 272: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // + case 272: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 273: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // + case 273: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 274: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // + case 274: { action.builder. + consumeQualifiedId(true); break; + } + + // + // Rule 275: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // + case 275: { action.builder. + consumeTypeSpecifierElaborated(false); break; + } + + // + // Rule 276: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // + case 276: { action.builder. + consumeTypeSpecifierElaborated(true); break; + } + + // + // Rule 277: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // + case 277: { action.builder. + consumeTypeSpecifierElaborated(false); break; + } + + // + // Rule 279: enum_specifier ::= enum { enumerator_list_opt } + // + case 279: { action.builder. + consumeTypeSpecifierEnumeration(false); break; + } + + // + // Rule 280: enum_specifier ::= enum identifier { enumerator_list_opt } + // + case 280: { action.builder. + consumeTypeSpecifierEnumeration(true); break; + } + + // + // Rule 285: enumerator_definition ::= enumerator + // + case 285: { action.builder. + consumeEnumerator(false); break; + } + + // + // Rule 286: enumerator_definition ::= enumerator = constant_expression + // + case 286: { action.builder. + consumeEnumerator(true); break; + } + + // + // Rule 295: original_namespace_definition ::= namespace identifier_name { declaration_seq_opt } + // + case 295: { action.builder. + consumeNamespaceDefinition(true); break; + } + + // + // Rule 296: extension_namespace_definition ::= namespace original_namespace_name { declaration_seq_opt } + // + case 296: { action.builder. + consumeNamespaceDefinition(true); break; + } + + // + // Rule 297: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // + case 297: { action.builder. + consumeNamespaceDefinition(false); break; + } + + // + // Rule 299: namespace_alias_definition ::= namespace identifier = dcolon_opt nested_name_specifier_opt namespace_name ; + // + case 299: { action.builder. + consumeNamespaceAliasDefinition(); break; + } + + // + // Rule 300: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // + case 300: { action.builder. + consumeUsingDeclaration(); break; + } + + // + // Rule 301: typename_opt ::= typename + // + case 301: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 302: typename_opt ::= $Empty + // + case 302: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 303: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // + case 303: { action.builder. + consumeUsingDirective(); break; + } + + // + // Rule 304: asm_definition ::= asm ( stringlit ) ; + // + case 304: { action.builder. + consumeDeclarationASM(); break; + } + + // + // Rule 305: linkage_specification ::= extern stringlit { declaration_seq_opt } + // + case 305: { action.builder. + consumeLinkageSpecification(); break; + } + + // + // Rule 306: linkage_specification ::= extern stringlit declaration + // + case 306: { action.builder. + consumeLinkageSpecification(); break; + } + + // + // Rule 312: init_declarator ::= declarator initializer + // + case 312: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 314: declarator ::= ptr_operator_seq direct_declarator + // + case 314: { action.builder. + consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 318: basic_direct_declarator ::= declarator_id_name + // + case 318: { action.builder. + consumeDirectDeclaratorIdentifier(); break; + } + + // + // Rule 319: basic_direct_declarator ::= ( declarator ) + // + case 319: { action.builder. + consumeDirectDeclaratorBracketed(); break; + } + + // + // Rule 320: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // + case 320: { action.builder. + consumeDirectDeclaratorFunctionDeclarator(true); break; + } + + // + // Rule 321: array_direct_declarator ::= array_direct_declarator array_modifier + // + case 321: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 322: array_direct_declarator ::= basic_direct_declarator array_modifier + // + case 322: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 323: array_modifier ::= [ constant_expression ] + // + case 323: { action.builder. + consumeDirectDeclaratorArrayModifier(true); break; + } + + // + // Rule 324: array_modifier ::= [ ] + // + case 324: { action.builder. + consumeDirectDeclaratorArrayModifier(false); break; + } + + // + // Rule 325: ptr_operator ::= * cv_qualifier_seq_opt + // + case 325: { action.builder. + consumePointer(); break; + } + + // + // Rule 326: ptr_operator ::= & + // + case 326: { action.builder. + consumeReferenceOperator(); break; + } + + // + // Rule 327: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // + case 327: { action.builder. + consumePointerToMember(); break; + } + + // + // Rule 333: cv_qualifier ::= const + // + case 333: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 334: cv_qualifier ::= volatile + // + case 334: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 336: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // + case 336: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 337: type_id ::= type_specifier_seq + // + case 337: { action.builder. + consumeTypeId(false); break; + } + + // + // Rule 338: type_id ::= type_specifier_seq abstract_declarator + // + case 338: { action.builder. + consumeTypeId(true); break; + } + + // + // Rule 341: abstract_declarator ::= ptr_operator_seq + // + case 341: { action.builder. + consumeDeclaratorWithPointer(false); break; + } + + // + // Rule 342: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // + case 342: { action.builder. + consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 346: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // + case 346: { action.builder. + consumeDirectDeclaratorBracketed(); break; + } + + // + // Rule 347: array_direct_abstract_declarator ::= array_modifier + // + case 347: { action.builder. + consumeDirectDeclaratorArrayDeclarator(false); break; + } + + // + // Rule 348: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // + case 348: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 349: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // + case 349: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 350: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // + case 350: { action.builder. + consumeDirectDeclaratorFunctionDeclarator(true); break; + } + + // + // Rule 351: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // + case 351: { action.builder. + consumeDirectDeclaratorFunctionDeclarator(false); break; + } + + // + // Rule 352: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // + case 352: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 353: parameter_declaration_clause ::= parameter_declaration_list_opt + // + case 353: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 354: parameter_declaration_clause ::= parameter_declaration_list , ... + // + case 354: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 360: abstract_declarator_opt ::= $Empty + // + case 360: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 361: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // + case 361: { action.builder. + consumeParameterDeclaration(); break; + } + + // + // Rule 362: parameter_declaration ::= declaration_specifiers + // + case 362: { action.builder. + consumeParameterDeclarationWithoutDeclarator(); break; + } + + // + // Rule 364: parameter_init_declarator ::= declarator = parameter_initializer + // + case 364: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 366: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // + case 366: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 367: parameter_init_declarator ::= = parameter_initializer + // + case 367: { action.builder. + consumeDeclaratorWithInitializer(false); break; + } + + // + // Rule 368: parameter_initializer ::= assignment_expression + // + case 368: { action.builder. + consumeInitializer(); break; + } + + // + // Rule 369: function_definition ::= declaration_specifiers_opt function_direct_declarator ctor_initializer_list_opt function_body + // + case 369: { action.builder. + consumeFunctionDefinition(false); break; + } + + // + // Rule 370: function_definition ::= declaration_specifiers_opt function_direct_declarator try ctor_initializer_list_opt function_body handler_seq + // + case 370: { action.builder. + consumeFunctionDefinition(true); break; + } + + // + // Rule 373: initializer ::= ( expression_list ) + // + case 373: { action.builder. + consumeInitializerConstructor(); break; + } + + // + // Rule 374: initializer_clause ::= assignment_expression + // + case 374: { action.builder. + consumeInitializer(); break; + } + + // + // Rule 375: initializer_clause ::= { initializer_list , } + // + case 375: { action.builder. + consumeInitializerList(); break; + } + + // + // Rule 376: initializer_clause ::= { initializer_list } + // + case 376: { action.builder. + consumeInitializerList(); break; + } + + // + // Rule 377: initializer_clause ::= { } + // + case 377: { action.builder. + consumeInitializerList(); break; + } + + // + // Rule 382: class_specifier ::= class_head { member_declaration_list_opt } + // + case 382: { action.builder. + consumeClassSpecifier(); break; + } + + // + // Rule 383: class_head ::= class_keyword identifier_name_opt base_clause_opt + // + case 383: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 384: class_head ::= class_keyword template_id_name base_clause_opt + // + case 384: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 385: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt + // + case 385: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 386: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // + case 386: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 390: identifier_name_opt ::= $Empty + // + case 390: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 394: visibility_label ::= access_specifier_keyword : + // + case 394: { action.builder. + consumeVisibilityLabel(); break; + } + + // + // Rule 395: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // + case 395: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 396: member_declaration ::= declaration_specifiers_opt ; + // + case 396: { action.builder. + consumeDeclarationSimple(false); break; + } + + // + // Rule 399: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // + case 399: { action.builder. + consumeMemberDeclarationQualifiedId(); break; + } + + // + // Rule 410: member_declarator ::= declarator constant_initializer + // + case 410: { action.builder. + consumeMemberDeclaratorWithInitializer(); break; + } + + // + // Rule 411: member_declarator ::= bit_field_declarator : constant_expression + // + case 411: { action.builder. + consumeBitField(true); break; + } + + // + // Rule 412: member_declarator ::= : constant_expression + // + case 412: { action.builder. + consumeBitField(false); break; + } + + // + // Rule 413: bit_field_declarator ::= identifier_name + // + case 413: { action.builder. + consumeDirectDeclaratorIdentifier(); break; + } + + // + // Rule 420: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // + case 420: { action.builder. + consumeBaseSpecifier(false); break; + } + + // + // Rule 421: base_specifier ::= virtual_opt access_specifier_keyword virtual_opt dcolon_opt nested_name_specifier_opt class_name + // + case 421: { action.builder. + consumeBaseSpecifier(true); break; + } + + // + // Rule 422: virtual_opt ::= virtual + // + case 422: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 423: virtual_opt ::= $Empty + // + case 423: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 429: conversion_function_id_name ::= operator conversion_type_id + // + case 429: { action.builder. + consumeConversionName(); break; + } + + // + // Rule 430: conversion_type_id ::= type_specifier_seq conversion_declarator + // + case 430: { action.builder. + consumeTypeId(true); break; + } + + // + // Rule 431: conversion_type_id ::= type_specifier_seq + // + case 431: { action.builder. + consumeTypeId(false); break; + } + + // + // Rule 432: conversion_declarator ::= ptr_operator_seq + // + case 432: { action.builder. + consumeDeclaratorWithPointer(false); break; + } + + // + // Rule 438: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // + case 438: { action.builder. + consumeConstructorChainInitializer(); break; + } + + // + // Rule 439: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // + case 439: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 442: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // + case 442: { action.builder. + consumeTemplateId(); break; + } + + // + // Rule 443: operator_id_name ::= operator overloadable_operator + // + case 443: { action.builder. + consumeOperatorName(); break; + } + + // + // Rule 486: template_declaration ::= export_opt template < template_parameter_list > declaration + // + case 486: { action.builder. + consumeTemplateDeclaration(); break; + } + + // + // Rule 487: export_opt ::= export + // + case 487: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 488: export_opt ::= $Empty + // + case 488: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 493: type_parameter ::= class identifier_name_opt + // + case 493: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 494: type_parameter ::= class identifier_name_opt = type_id + // + case 494: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 495: type_parameter ::= typename identifier_name_opt + // + case 495: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 496: type_parameter ::= typename identifier_name_opt = type_id + // + case 496: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 497: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // + case 497: { action.builder. + consumeTemplatedTypeTemplateParameter(false); break; + } + + // + // Rule 498: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // + case 498: { action.builder. + consumeTemplatedTypeTemplateParameter(true); break; + } + + // + // Rule 499: template_id_name ::= template_identifier < template_argument_list_opt > + // + case 499: { action.builder. + consumeTemplateId(); break; + } + + // + // Rule 508: explicit_instantiation ::= template declaration + // + case 508: { action.builder. + consumeTemplateExplicitInstantiation(); break; + } + + // + // Rule 509: explicit_specialization ::= template < > declaration + // + case 509: { action.builder. + consumeTemplateExplicitSpecialization(); break; + } + + // + // Rule 510: try_block ::= try compound_statement handler_seq + // + case 510: { action.builder. + consumeStatementTryBlock(); break; + } + + // + // Rule 513: handler ::= catch ( exception_declaration ) compound_statement + // + case 513: { action.builder. + consumeStatementCatchHandler(false); break; + } + + // + // Rule 514: handler ::= catch ( ... ) compound_statement + // + case 514: { action.builder. + consumeStatementCatchHandler(true); break; + } + + // + // Rule 515: exception_declaration ::= type_specifier_seq declarator + // + case 515: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 516: exception_declaration ::= type_specifier_seq abstract_declarator + // + case 516: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 517: exception_declaration ::= type_specifier_seq + // + case 517: { action.builder. + consumeDeclarationSimple(false); break; + } + + + default: + break; + } + return; + } } 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 c261ac53dfa..fbdd8da30ef 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 @@ -29,7 +29,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0 + 0,0,0 }; }; public final static byte isKeyword[] = IsKeyword.isKeyword; @@ -1445,7 +1445,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0 + 0,0,0,0,0,0,0,0,0 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -2103,15 +2103,15 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 8,9,50,54,62,70,76,77,88,89, 104,107,109,114,15,57,63,69,86,90, 92,96,99,101,111,112,113,46,97,60, - 68,80,123,95,124,106,56,108,49,66, + 68,80,122,95,123,106,56,108,49,66, 72,75,78,85,91,100,55,105,3,79, 1,48,20,65,93,103,21,45,34,31, - 122,67,121,98,110,51,52,58,59,61, + 121,67,120,98,110,51,52,58,59,61, 71,73,74,87,94,18,19,7,16,17, 22,23,33,5,24,25,26,27,28,29, 6,35,36,37,38,39,40,41,42,43, - 44,30,120,4,53,82,83,84,125,64, - 116,117,118,119 + 44,30,119,4,53,82,83,84,124,64, + 116,117,118 }; }; public final static char terminalIndex[] = TerminalIndex.terminalIndex; @@ -2119,25 +2119,25 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 135,137,238,0,0,136,234,134,0,133, - 0,145,0,132,0,0,144,149,0,0, - 150,180,159,160,161,162,163,152,164,165, - 138,166,127,167,168,169,0,131,129,170, - 0,197,143,0,0,0,140,177,139,153, - 0,0,0,0,147,173,187,0,179,0, - 203,204,0,0,128,0,156,178,0,0, - 0,0,0,0,0,0,201,205,206,172, - 0,0,0,0,0,0,0,126,148,176, - 0,0,186,0,0,212,158,208,209,210, - 0,0,202,0,0,130,0,207,0,0, - 0,211,0,0,0,241,175,189,190,191, - 192,193,195,196,0,214,217,219,220,0, - 237,0,240,0,0,141,142,146,0,155, - 0,171,181,182,183,184,185,188,0,194, - 0,199,0,215,216,0,221,224,226,228, - 0,231,232,233,0,235,236,239,0,0, - 151,0,0,154,157,174,0,198,200,213, - 218,0,222,223,225,227,229,230,242,243, + 134,136,237,0,0,135,233,133,0,132, + 0,144,0,131,0,0,143,148,0,0, + 149,179,158,159,160,161,162,151,163,164, + 137,165,126,166,167,168,0,130,128,169, + 0,196,142,0,0,0,139,176,138,152, + 0,0,0,0,146,172,186,0,178,0, + 202,203,0,0,127,0,155,177,0,0, + 0,0,0,0,0,0,200,204,205,171, + 0,0,0,0,0,0,0,125,147,175, + 0,0,185,0,0,211,157,207,208,209, + 0,0,201,0,0,129,0,206,0,0, + 0,210,0,0,0,240,174,188,189,190, + 191,192,194,195,0,213,216,218,219,0, + 236,0,239,0,0,140,141,145,0,154, + 0,170,180,181,182,183,184,187,0,193, + 0,198,0,214,215,0,220,223,225,227, + 0,230,231,232,0,234,235,238,0,0, + 150,0,0,153,156,173,0,197,199,212, + 217,0,221,222,224,226,228,229,241,242, 0,0,0,0,0,0,0,0 }; }; @@ -2241,70 +2241,70 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeRhs { public final static char scopeRhs[] = {0, - 314,2,39,0,127,0,313,2,115,0, - 127,173,0,128,180,74,0,216,0,289, - 128,63,127,0,21,0,291,128,63,44, - 0,21,55,0,34,132,0,21,55,0, - 0,291,128,63,44,188,0,21,178,0, - 289,128,63,131,0,182,129,0,138,0, - 226,2,288,0,288,0,2,0,127,0, - 182,129,254,253,254,0,132,190,173,129, - 0,129,0,190,173,129,0,134,129,0, - 168,0,307,128,168,0,128,168,0,222, - 129,0,173,246,0,137,0,0,0,135, - 0,0,0,306,128,59,252,0,128,0, - 252,0,3,0,0,128,0,305,128,59, - 0,45,128,0,152,2,0,128,278,277, - 128,74,186,168,0,277,128,74,186,168, - 0,215,0,216,0,186,168,0,98,0, - 0,215,0,216,0,204,98,0,0,215, - 0,216,0,277,128,186,168,0,215,0, - 204,0,0,215,0,234,128,2,0,127, - 0,0,0,0,0,234,128,2,223,0, - 232,2,0,227,128,0,208,0,148,0, - 173,129,0,11,0,0,0,221,61,0, - 126,0,234,128,2,185,0,185,0,2, - 0,0,127,0,0,0,0,0,214,2, - 0,201,0,233,128,59,24,41,0,182, - 129,60,58,0,143,129,0,132,182,129, - 275,58,0,182,129,275,58,0,182,129, - 69,1,60,0,233,128,59,60,0,233, - 128,59,166,60,0,233,128,59,125,60, - 0,273,128,59,1,64,0,273,128,59, - 64,0,182,129,64,0,135,0,190,182, - 129,246,0,137,0,182,129,246,0,190, - 173,129,10,0,173,129,10,0,95,137, - 0,301,128,168,0,162,84,0,231,163, - 231,172,2,81,0,127,172,0,231,172, - 2,81,0,129,0,127,172,0,231,163, - 231,163,231,2,81,0,231,163,231,2, - 81,0,231,2,81,0,129,0,129,0, - 127,172,0,162,2,75,204,80,0,127, - 129,0,204,80,0,110,2,131,127,129, - 0,241,2,75,0,214,174,0,34,170, - 0,174,0,176,34,170,0,241,2,85, - 0,204,157,241,2,83,0,64,172,0, - 241,2,83,0,127,172,64,172,0,300, - 128,59,0,162,0,221,77,0,31,0, - 162,112,160,0,31,170,0,179,2,0, - 127,150,0,226,2,0,221,61,299,0, - 162,61,0,179,2,294,42,129,0,127, - 0,0,294,42,129,0,2,147,127,0, - 0,179,2,30,0,14,148,0,126,44, - 173,129,0,32,14,148,0,95,137,32, - 14,148,0,213,182,129,0,148,32,14, - 148,0,179,2,34,0,162,2,34,0, - 162,2,67,179,63,26,0,179,63,26, - 0,21,2,131,127,0,162,2,67,179, - 63,29,0,179,63,29,0,162,2,67, - 179,63,31,0,179,63,31,0,162,2, - 67,179,63,27,0,179,63,27,0,226, - 2,126,190,173,129,10,0,126,190,173, - 129,10,0,137,2,0,127,0,226,2, - 125,259,173,129,10,0,259,173,129,10, - 0,135,2,0,127,0,226,2,136,0, - 226,2,141,0,162,61,141,0,261,0, - 32,0,32,141,0,171,0,134,0,162, + 313,2,39,0,126,0,312,2,115,0, + 126,172,0,127,179,74,0,215,0,288, + 127,63,126,0,21,0,290,127,63,44, + 0,21,55,0,34,131,0,21,55,0, + 0,290,127,63,44,187,0,21,177,0, + 288,127,63,130,0,181,128,0,137,0, + 225,2,287,0,287,0,2,0,126,0, + 181,128,253,252,253,0,131,189,172,128, + 0,128,0,189,172,128,0,133,128,0, + 167,0,306,127,167,0,127,167,0,221, + 128,0,172,245,0,136,0,0,0,134, + 0,0,0,305,127,59,251,0,127,0, + 251,0,3,0,0,127,0,304,127,59, + 0,45,127,0,151,2,0,127,277,276, + 127,74,185,167,0,276,127,74,185,167, + 0,214,0,215,0,185,167,0,98,0, + 0,214,0,215,0,203,98,0,0,214, + 0,215,0,276,127,185,167,0,214,0, + 203,0,0,214,0,233,127,2,0,126, + 0,0,0,0,0,233,127,2,222,0, + 231,2,0,226,127,0,207,0,147,0, + 172,128,0,11,0,0,0,220,61,0, + 125,0,233,127,2,184,0,184,0,2, + 0,0,126,0,0,0,0,0,213,2, + 0,200,0,232,127,59,24,41,0,181, + 128,60,58,0,142,128,0,131,181,128, + 274,58,0,181,128,274,58,0,181,128, + 69,1,60,0,232,127,59,60,0,232, + 127,59,165,60,0,232,127,59,124,60, + 0,272,127,59,1,64,0,272,127,59, + 64,0,181,128,64,0,134,0,189,181, + 128,245,0,136,0,181,128,245,0,189, + 172,128,10,0,172,128,10,0,95,136, + 0,300,127,167,0,161,84,0,230,162, + 230,171,2,81,0,126,171,0,230,171, + 2,81,0,128,0,126,171,0,230,162, + 230,162,230,2,81,0,230,162,230,2, + 81,0,230,2,81,0,128,0,128,0, + 126,171,0,161,2,75,203,80,0,126, + 128,0,203,80,0,110,2,130,126,128, + 0,240,2,75,0,213,173,0,34,169, + 0,173,0,175,34,169,0,240,2,85, + 0,203,156,240,2,83,0,64,171,0, + 240,2,83,0,126,171,64,171,0,299, + 127,59,0,161,0,220,77,0,31,0, + 161,112,159,0,31,169,0,178,2,0, + 126,149,0,225,2,0,220,61,298,0, + 161,61,0,178,2,293,42,128,0,126, + 0,0,293,42,128,0,2,146,126,0, + 0,178,2,30,0,14,147,0,125,44, + 172,128,0,32,14,147,0,95,136,32, + 14,147,0,212,181,128,0,147,32,14, + 147,0,178,2,34,0,161,2,34,0, + 161,2,67,178,63,26,0,178,63,26, + 0,21,2,130,126,0,161,2,67,178, + 63,29,0,178,63,29,0,161,2,67, + 178,63,31,0,178,63,31,0,161,2, + 67,178,63,27,0,178,63,27,0,225, + 2,125,189,172,128,10,0,125,189,172, + 128,10,0,136,2,0,126,0,225,2, + 124,258,172,128,10,0,258,172,128,10, + 0,134,2,0,126,0,225,2,135,0, + 225,2,140,0,161,61,140,0,260,0, + 32,0,32,140,0,170,0,133,0,161, 2,0 }; }; @@ -2351,58 +2351,58 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface InSymb { public final static char inSymb[] = {0, - 0,293,41,44,188,168,128,62,60,58, - 230,24,63,44,186,128,185,4,127,6, - 131,1,129,3,2,267,268,252,269,246, - 270,64,271,272,1,10,129,2,59,166, - 125,1,60,275,128,59,67,63,74,128, - 301,214,202,185,128,302,2,63,174,61, - 2,40,42,63,182,171,1,173,6,214, - 59,173,237,129,126,125,1,59,129,129, - 182,173,24,128,59,59,69,129,129,128, - 128,128,277,70,2,69,61,227,129,5, - 68,128,128,128,61,61,128,3,190,128, - 126,125,128,182,128,59,128,182,173,44, - 157,233,230,128,128,129,182,182,233,291, - 44,10,57,146,277,59,287,129,288,152, - 128,59,34,26,29,31,27,10,136,2, - 129,30,25,4,9,8,5,7,12,11, - 141,147,149,148,151,150,154,153,158,156, - 159,39,160,221,160,129,173,128,234,235, - 236,289,174,134,292,227,289,261,190,306, - 129,183,253,58,168,308,128,128,70,190, - 128,273,248,274,190,233,233,182,167,1, - 132,68,67,63,237,237,69,232,214,223, - 224,2,128,278,128,68,182,2,266,128, - 2,63,63,63,63,129,2,179,162,128, - 40,42,173,2,126,125,101,114,2,61, + 0,292,41,44,187,167,127,62,60,58, + 229,24,63,44,185,127,184,4,126,6, + 130,1,128,3,2,266,267,251,268,245, + 269,64,270,271,1,10,128,2,59,165, + 124,1,60,274,127,59,67,63,74,127, + 300,213,201,184,127,301,2,63,173,61, + 2,40,42,63,181,170,1,172,6,213, + 59,172,236,128,125,124,1,59,128,128, + 181,172,24,127,59,59,69,128,128,127, + 127,127,276,70,2,69,61,226,128,5, + 68,127,127,127,61,61,127,3,189,127, + 125,124,127,181,127,59,127,181,172,44, + 156,232,229,127,127,128,181,181,232,290, + 44,10,57,145,276,59,286,128,287,151, + 127,59,34,26,29,31,27,10,135,2, + 128,30,25,4,9,8,5,7,12,11, + 140,146,148,147,150,149,153,152,157,155, + 158,39,159,220,159,128,172,127,233,234, + 235,288,173,133,291,226,288,260,189,305, + 128,182,252,58,167,307,127,127,70,189, + 127,272,247,273,189,232,232,181,166,1, + 131,68,67,63,236,236,69,231,213,222, + 223,2,127,277,127,68,181,2,265,127, + 2,63,63,63,63,128,2,178,161,127, + 40,42,172,2,125,124,101,114,2,61, 88,94,9,8,90,89,5,92,91,67, 63,86,87,7,96,95,98,97,99,111, 110,109,108,107,106,105,104,103,102,69, - 112,100,173,5,181,157,68,128,2,68, - 3,173,128,310,254,129,273,69,68,167, - 128,69,69,69,69,2,232,128,227,128, - 300,79,77,1,162,85,83,81,80,75, - 82,84,78,76,168,60,74,45,226,68, - 305,179,162,179,179,179,179,173,226,157, - 136,10,129,61,294,2,179,44,129,44, - 226,162,148,148,147,147,147,150,150,150, - 150,149,149,153,151,151,156,154,158,162, - 159,128,128,227,128,190,307,125,70,283, - 214,68,253,182,291,128,234,279,115,221, - 70,2,2,2,204,2,1,162,1,180, - 68,67,67,67,67,190,259,129,173,212, - 2,295,174,152,129,182,173,70,228,132, - 68,70,69,254,67,234,157,2,241,174, - 241,172,231,75,241,128,2,2,2,2, - 126,125,173,44,179,128,128,4,213,44, - 128,129,57,157,128,93,313,174,157,214, - 157,231,163,2,157,279,162,162,162,162, - 2,2,190,157,296,299,61,191,3,126, - 39,182,237,128,228,157,157,128,69,204, - 163,231,162,226,226,126,2,61,162,4, - 3,2,69,228,128,120,231,163,157,226, - 221,4,314,128,157,231,68,157 + 112,100,172,5,180,156,68,127,2,68, + 3,172,127,309,253,128,272,69,68,166, + 127,69,69,69,69,2,231,127,226,127, + 299,79,77,1,161,85,83,81,80,75, + 82,84,78,76,167,60,74,45,225,68, + 304,178,161,178,178,178,178,172,225,156, + 135,10,128,61,293,2,178,44,128,44, + 225,161,147,147,146,146,146,149,149,149, + 149,148,148,152,150,150,155,153,157,161, + 158,127,127,226,127,189,306,124,70,282, + 213,68,252,181,290,127,233,278,115,220, + 70,2,2,2,203,2,1,161,1,179, + 68,67,67,67,67,189,258,128,172,211, + 2,294,173,151,128,181,172,70,227,131, + 68,70,69,253,67,233,156,2,240,173, + 240,171,230,75,240,127,2,2,2,2, + 125,124,172,44,178,127,127,4,212,44, + 127,128,57,156,127,93,312,173,156,213, + 156,230,162,2,156,278,161,161,161,161, + 2,2,189,156,295,298,61,190,3,125, + 39,181,236,127,227,156,156,127,69,203, + 162,230,161,225,225,125,2,61,161,4, + 3,2,69,227,127,120,230,162,156,225, + 220,4,313,127,156,230,68,156 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2526,7 +2526,6 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym "charconst", "stringlit", "identifier", - "TypedefName", "Completion", "EndOfCompletion", "Invalid", @@ -2678,12 +2677,12 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final static int NUM_STATES = 518, - NT_OFFSET = 124, + NT_OFFSET = 123, LA_STATE_OFFSET = 5698, MAX_LA = 2147483647, NUM_RULES = 523, NUM_NONTERMINALS = 198, - NUM_SYMBOLS = 322, + NUM_SYMBOLS = 321, SEGMENT_SIZE = 8192, START_STATE = 2612, IDENTIFIER_SYMBOL = 0, 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 b8a99338a38..960815e5a79 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 @@ -83,10 +83,9 @@ public interface CPPParsersym { TK_charconst = 37, TK_stringlit = 24, TK_identifier = 1, - TK_TypedefName = 121, - TK_Completion = 122, - TK_EndOfCompletion = 123, - TK_Invalid = 124, + TK_Completion = 121, + TK_EndOfCompletion = 122, + TK_Invalid = 123, TK_LeftBracket = 61, TK_LeftParen = 2, TK_LeftBrace = 59, @@ -262,7 +261,6 @@ public interface CPPParsersym { "public", "EOF_TOKEN", "else", - "TypedefName", "Completion", "EndOfCompletion", "Invalid"