diff options
Diffstat (limited to 'lrparser')
4 files changed, 2900 insertions, 1917 deletions
diff --git a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/c99/C99CompleteParser2Tests.java b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/c99/C99CompleteParser2Tests.java index 90fecc50a9d..b275d4df1c8 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/c99/C99CompleteParser2Tests.java +++ b/lrparser/org.eclipse.cdt.core.lrparser.tests/src/org/eclipse/cdt/core/lrparser/tests/c99/C99CompleteParser2Tests.java @@ -45,7 +45,6 @@ public class C99CompleteParser2Tests extends CompleteParser2Tests { } catch(Exception _) { return; } - fail(); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPParser.g index c306206738f..61080a90ac8 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPParser.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPParser.g @@ -11,7 +11,7 @@ %options la=2 %options package=org.eclipse.cdt.internal.core.dom.lrparser.cpp -%options template=btParserTemplateD.g +%options template=TrialUndoParserTemplate.g @@ -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 /. , IParserActionTokenProvider, IParser ./ + $additional_interfaces /. ./ $build_action_class /. CPPBuildASTParserAction ./ $resolve_action_class /. C99TypedefTrackerParserAction ./ @@ -176,9 +176,9 @@ $Define $builder /. action.builder./ -- comment out when using trial/undo - $Action /. $BeginAction ./ - $BeginFinal /. ./ - $EndFinal /. ./ + --$Action /. $BeginAction ./ + --$BeginFinal /. ./ + --$EndFinal /. ./ $End @@ -188,8 +188,8 @@ $Headers private $action_class action; // uncomment to use with backtracking parser - public $action_type() { // constructor - } + //public $action_type() { // constructor + //} private void initActions(IASTTranslationUnit tu) { // binding resolution actions need access to IASTName nodes, temporary @@ -199,7 +199,7 @@ $Headers //action.builder.setTokenMap(CPPParsersym.orderedTerminalSymbols); // comment this line to use with backtracking parser - //setParserAction(action); + setParserAction(action); } @@ -231,7 +231,7 @@ $Headers action = null; // Comment this line to use with backtracking parser - //parserAction = null; + parserAction = null; return compNode; } @@ -258,9 +258,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/core/dom/lrparser/action/BuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java index 5138f59eecf..13889304d27 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 @@ -98,7 +98,7 @@ public abstract class BuildASTParserAction { // turn debug tracing on and off // TODO move this into an AspectJ project - protected static final boolean TRACE_ACTIONS = false; + protected static final boolean TRACE_ACTIONS = true; protected static final boolean TRACE_AST_STACK = false; 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 5ddde1317bb..b6a787823ca 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,7 +13,11 @@ 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.*; @@ -25,148 +29,111 @@ 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 PrsStream implements RuleAction , IParserActionTokenProvider, IParser -{ - private static ParseTable prs = new CPPParserprs(); - private BacktrackingParser btParser; +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 BacktrackingParser getParser() { return btParser; } - private void setResult(Object object) { btParser.setSym1(object); } - public Object getRhsSym(int i) { return btParser.getSym(i); } + { + ruleAction = RULE_ACTIONS; + } + + public CPPParser(LexStream lexStream) { + super(lexStream); - 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)); } + 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 getRhsLastTokenIndex(int i) { return btParser.getLastToken(i); } - public IToken getRhsLastIToken(int i) { return super.getIToken(getRhsLastTokenIndex(i)); } + + public CPPParser() { // constructor + // this(new $lexer_class()); + } - public int getLeftSpan() { return btParser.getFirstToken(); } - public IToken getLeftIToken() { return super.getIToken(getLeftSpan()); } + public String[] orderedTerminalSymbols() { + return CPPParsersym.orderedTerminalSymbols; + } - public int getRightSpan() { return btParser.getLastToken(); } - public IToken getRightIToken() { return super.getIToken(getRightSpan()); } + public String getTokenKindName(int kind) { + return CPPParsersym.orderedTerminalSymbols[kind]; + } - 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 int getEOFTokenKind() { + return CPPParserprs.EOFT_SYMBOL; + } + + public PrsStream getParseStream() { + return (PrsStream) this; + } - public CPPParser(LexStream lexStream) - { - super(lexStream); + // + // 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); + } - 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 Object parser() { + return parser(null, 0); + } - 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); - } + public Object parser(Monitor monitor) { + return parser(monitor, 0); + } - 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(int error_repair_count) { + return parser(null, error_repair_count); + } - 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, 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 - { - 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); - } + try { + Object result = (Object) btParser.parse(error_repair_count); + btParser.commit(); + return result; + } catch (BadParseException e) { + reset(e.error_token); // point to error token - return null; - } + //DiagnoseParser diagnoseParser = new DiagnoseParser((TokenStream) this, prs); + //diagnoseParser.diagnose(e.error_token); + } + + return null; + } private CPPParserAction action; // uncomment to use with backtracking parser -public CPPParser() { // constructor -} +//public CPPParser() { // constructor +//} private void initActions(IASTTranslationUnit tu) { // binding resolution actions need access to IASTName nodes, temporary @@ -176,7 +143,7 @@ private void initActions(IASTTranslationUnit tu) { //action.builder.setTokenMap(CPPParsersym.orderedTerminalSymbols); // comment this line to use with backtracking parser - //setParserAction(action); + setParserAction(action); } @@ -208,7 +175,7 @@ public IASTCompletionNode parse(IASTTranslationUnit tu) { action = null; // Comment this line to use with backtracking parser - //parserAction = null; + parserAction = null; return compNode; } @@ -235,1786 +202,2803 @@ public int getKind(int i) { // 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)); +//} - public void ruleAction(int ruleNumber) - { - switch (ruleNumber) - { - - // - // Rule 1: <openscope-ast> ::= $Empty - // - case 1: { action.builder. - openASTScope(); break; - } - - // - // Rule 4: <placeholder> ::= $Empty - // - case 4: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 5: <empty> ::= $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 <empty> 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 <openscope-ast> 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 ::= <openscope-ast> 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 ::= <openscope-ast> 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 ::= { <openscope-ast> 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 <openscope-ast> init_declarator_list_opt ; - // - case 215: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 216: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers - // - case 216: { action.builder. - consumeDeclarationSpecifiersSimple(); break; - } - - // - // Rule 217: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers - // - case 217: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 218: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers - // - case 218: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 219: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers - // - case 219: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 220: declaration_specifiers ::= <openscope-ast> 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 { <openscope-ast> enumerator_list_opt } - // - case 279: { action.builder. - consumeTypeSpecifierEnumeration(false); break; - } - - // - // Rule 280: enum_specifier ::= enum identifier { <openscope-ast> 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 { <openscope-ast> declaration_seq_opt } - // - case 295: { action.builder. - consumeNamespaceDefinition(true); break; - } - - // - // Rule 296: extension_namespace_definition ::= namespace original_namespace_name { <openscope-ast> declaration_seq_opt } - // - case 296: { action.builder. - consumeNamespaceDefinition(true); break; - } - - // - // Rule 297: unnamed_namespace_definition ::= namespace { <openscope-ast> 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 { <openscope-ast> declaration_seq_opt } - // - case 305: { action.builder. - consumeLinkageSpecification(); break; - } - - // - // Rule 306: linkage_specification ::= extern stringlit <openscope-ast> declaration - // - case 306: { action.builder. - consumeLinkageSpecification(); break; - } - - // - // Rule 312: init_declarator ::= declarator initializer - // - case 312: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 314: declarator ::= <openscope-ast> 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 ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> 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 ::= * <openscope-ast> 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 * <openscope-ast> 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 ::= <openscope-ast> ptr_operator_seq - // - case 341: { action.builder. - consumeDeclaratorWithPointer(false); break; - } - - // - // Rule 342: abstract_declarator ::= <openscope-ast> 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 ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt - // - case 350: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(true); break; - } - - // - // Rule 351: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt - // - case 351: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(false); break; - } - - // - // 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 <openscope-ast> ctor_initializer_list_opt function_body - // - case 369: { action.builder. - consumeFunctionDefinition(false); break; - } - - // - // Rule 370: function_definition ::= declaration_specifiers_opt function_direct_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> 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 ::= { <openscope-ast> initializer_list , } - // - case 375: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 376: initializer_clause ::= { <openscope-ast> initializer_list } - // - case 376: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 377: initializer_clause ::= { <openscope-ast> } - // - case 377: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 382: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } - // - case 382: { action.builder. - consumeClassSpecifier(); break; - } - - // - // Rule 383: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt - // - case 383: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 384: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt - // - case 384: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 385: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt - // - case 385: { action.builder. - consumeClassHead(true); break; - } - - // - // Rule 386: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> 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 <openscope-ast> 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 ::= <openscope-ast> 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 < <openscope-ast> 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 < <openscope-ast> 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 < <openscope-ast> template_parameter_list > class identifier_name_opt - // - case 497: { action.builder. - consumeTemplatedTypeTemplateParameter(false); break; - } - - // - // Rule 498: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression - // - case 498: { action.builder. - consumeTemplatedTypeTemplateParameter(true); break; - } - - // - // Rule 499: template_id_name ::= template_identifier < <openscope-ast> 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 <openscope-ast> 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 <openscope-ast> declarator - // - case 515: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 516: exception_declaration ::= type_specifier_seq <openscope-ast> 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; - } + // + // 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: <openscope-ast> ::= $Empty + // + static final class Action1 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + openASTScope(); + } + } + + // + // Rule 4: <placeholder> ::= $Empty + // + static final class Action4 extends DeclaredAction< CPPParserAction , Object > { + + public void doFinal(ITrialUndoActionProvider< Object > provider, CPPParserAction action) { action.builder. + consumePlaceHolder(); + } + } + + // + // Rule 5: <empty> ::= $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 <empty> 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 <openscope-ast> 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 ::= <openscope-ast> 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 ::= <openscope-ast> 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 ::= { <openscope-ast> 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 <openscope-ast> 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 ::= <openscope-ast> 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 ::= <openscope-ast> 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 ::= <openscope-ast> 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 ::= <openscope-ast> 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 ::= <openscope-ast> 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 { <openscope-ast> 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 { <openscope-ast> 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 { <openscope-ast> 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 { <openscope-ast> 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 { <openscope-ast> 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 { <openscope-ast> 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 <openscope-ast> 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 ::= <openscope-ast> 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 ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> 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 ::= * <openscope-ast> 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 * <openscope-ast> 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 ::= <openscope-ast> 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 ::= <openscope-ast> 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 ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> 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 ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> 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 <openscope-ast> 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 <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> 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 ::= { <openscope-ast> 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 ::= { <openscope-ast> 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 ::= { <openscope-ast> } + // + 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 { <openscope-ast> 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 <openscope-ast> 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 <openscope-ast> 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 <openscope-ast> 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 <openscope-ast> 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 <openscope-ast> 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 ::= <openscope-ast> 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 < <openscope-ast> 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 < <openscope-ast> 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 < <openscope-ast> 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 < <openscope-ast> 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 < <openscope-ast> 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 <openscope-ast> 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 <openscope-ast> 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 <openscope-ast> 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); + } + } + } |