diff options
author | Mike Kucera | 2008-02-22 20:14:33 +0000 |
---|---|---|
committer | Mike Kucera | 2008-02-22 20:14:33 +0000 |
commit | d6e82db1f97eb9c7e13c030f5b31ca56d28ccf3e (patch) | |
tree | 4e5fe489ae9c17251f13420ad6f249cc73bce645 /lrparser | |
parent | d96259e1bc0f3244076f8d21ca3641d96a453722 (diff) | |
download | org.eclipse.cdt-d6e82db1f97eb9c7e13c030f5b31ca56d28ccf3e.tar.gz org.eclipse.cdt-d6e82db1f97eb9c7e13c030f5b31ca56d28ccf3e.tar.xz org.eclipse.cdt-d6e82db1f97eb9c7e13c030f5b31ca56d28ccf3e.zip |
content assist kinda works for C++
Diffstat (limited to 'lrparser')
15 files changed, 8275 insertions, 7954 deletions
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g index 39d44fbb1cf..12d835f714a 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g @@ -320,16 +320,16 @@ $Rules ']' ::=? 'RightBracket' - --| 'EndOfCompletion' + | 'EndOfCompletion' ')' ::=? 'RightParen' - --| 'EndOfCompletion' + | 'EndOfCompletion' '}' ::=? 'RightBrace' - --| 'EndOfCompletion' + | 'EndOfCompletion' ';' ::=? 'SemiColon' - --| 'EndOfCompletion' + | 'EndOfCompletion' @@ -363,6 +363,11 @@ external_declaration -- Expressions ------------------------------------------------------------------------------------------ +identifier_token + ::= 'identifier' + | 'Completion' + + literal ::= 'integer' /. $Build consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); $EndBuild ./ @@ -411,7 +416,7 @@ unqualified_id_name -- wrap an identifier in a name node identifier_name - ::= 'identifier' + ::= identifier_token /. $Build consumeIdentifierName(); $EndBuild ./ @@ -885,7 +890,7 @@ jump_statement /. $Build consumeStatementReturn(true); $EndBuild ./ | 'return' ';' /. $Build consumeStatementReturn(false); $EndBuild ./ - | 'goto' 'identifier' ';' + | 'goto' identifier_token ';' /. $Build consumeStatementGoto(); $EndBuild ./ @@ -1034,7 +1039,7 @@ function_specifier typedef_name - ::= 'identifier' + ::= identifier_token --type_specifier @@ -1103,13 +1108,13 @@ elaborated_type_specifier enum_name - ::= 'identifier' + ::= identifier_token enum_specifier ::= 'enum' '{' <openscope-ast> enumerator_list_opt '}' /. $Build consumeTypeSpecifierEnumeration(false); $EndBuild ./ - | 'enum' 'identifier' '{' <openscope-ast> enumerator_list_opt '}' + | 'enum' identifier_token '{' <openscope-ast> enumerator_list_opt '}' /. $Build consumeTypeSpecifierEnumeration(true); $EndBuild ./ @@ -1131,7 +1136,7 @@ enumerator_definition enumerator - ::= 'identifier' + ::= identifier_token namespace_name @@ -1169,11 +1174,11 @@ unnamed_namespace_definition namespace_alias - ::= 'identifier' + ::= identifier_token namespace_alias_definition - ::= 'namespace' 'identifier' '=' dcolon_opt nested_name_specifier_opt namespace_name ';' + ::= 'namespace' identifier_token '=' dcolon_opt nested_name_specifier_opt namespace_name ';' /. $Build consumeNamespaceAliasDefinition(); $EndBuild ./ @@ -1478,11 +1483,6 @@ class_head -- done /. $Build consumeClassHead(true); $EndBuild ./ -identifier_opt - ::= 'identifier' - | $empty - - identifier_name_opt ::= identifier_name | $empty diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java index bbbe10e5f62..cac0d152c5c 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/BaseExtensibleLanguage.java @@ -45,8 +45,8 @@ import org.eclipse.core.runtime.CoreException; public abstract class BaseExtensibleLanguage extends AbstractLanguage implements ILanguage, ICLanguageKeywords { - private static final boolean DEBUG_PRINT_GCC_AST = false; - private static final boolean DEBUG_PRINT_AST = false; + private static final boolean DEBUG_PRINT_GCC_AST = true; + private static final boolean DEBUG_PRINT_AST = true; /** * Retrieve the parser (runs after the preprocessor runs). @@ -148,7 +148,19 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage implements public IASTCompletionNode getCompletionNode(CodeReader reader, IScannerInfo scanInfo, ICodeReaderFactory fileCreator, - IIndex index, IParserLogService log, int offset) { + IIndex index, IParserLogService log, int offset) throws CoreException { + + + if(DEBUG_PRINT_GCC_AST) { + ILanguage gppLanguage = GPPLanguage.getDefault(); + IASTCompletionNode cn = gppLanguage.getCompletionNode(reader, scanInfo, fileCreator, index, log, offset); + + System.out.println(); + System.out.println("********************************************************"); + System.out.println("GPP AST:"); + DebugUtil.printAST(cn.getTranslationUnit()); + System.out.println(); + } // TODO temporary IScannerExtensionConfiguration config = new GCCScannerExtensionConfiguration(); @@ -164,6 +176,14 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage implements // the parser will fill in the rest of the AST IASTCompletionNode completionNode = parser.parse(tu); + + if(DEBUG_PRINT_AST) { + System.out.println("Base Extensible Language AST:"); + DebugUtil.printAST(tu); + System.out.println(); + System.out.println("Completion Node: " + completionNode); + } + return completionNode; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LPGTokenAdapter.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LPGTokenAdapter.java index 1cb84efc6a6..762a9e981be 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LPGTokenAdapter.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/LPGTokenAdapter.java @@ -117,7 +117,7 @@ public class LPGTokenAdapter implements lpg.lpgjavaruntime.IToken { this.tokenIndex = tokenIndex; } - @Override + @Override public String toString() { return token.toString(); } 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 2f2734a45ff..62fe966e147 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 @@ -68,7 +68,9 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCastExpression; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTLiteralExpression; import org.eclipse.cdt.core.dom.lrparser.IParser; import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; +import static org.eclipse.cdt.core.dom.lrparser.util.CollectionUtils.matchTokens; import org.eclipse.cdt.core.dom.lrparser.util.DebugUtil; +import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym; import org.eclipse.cdt.internal.core.dom.parser.ASTNode; @@ -992,6 +994,10 @@ public abstract class BuildASTParserAction { List<Object> declarators = (hasDeclaratorList) ? astStack.closeScope() : Collections.emptyList(); IASTDeclSpecifier declSpecifier = (IASTDeclSpecifier) astStack.pop(); // may be null + // do not generate nodes for extra EOC tokens + if(matchTokens(parser.getRuleTokens(), CPPParsersym.TK_EndOfCompletion)) + return; + if(declSpecifier == null) { // can happen if implicit int is used declSpecifier = nodeFactory.newSimpleDeclSpecifier(); setOffsetAndLength(declSpecifier, parser.getLeftIToken().getStartOffset(), 0); diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java index badc0c00680..3e0c5243b58 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java @@ -122,8 +122,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { @Override protected boolean isCompletionToken(IToken token) { - // TODO Auto-generated method stub - return false; + return token.getKind() == CPPParsersym.TK_Completion; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/util/ASTPrinter.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/util/ASTPrinter.java index 78ea7c70835..d6191baf98c 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/util/ASTPrinter.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/util/ASTPrinter.java @@ -56,6 +56,8 @@ import org.eclipse.cdt.internal.core.dom.parser.ITypeContainer; class ASTPrinter { + private static boolean PRINT_PARENT_PROPERTIES = false; + private static boolean RESOLVE_BINDINGS = false; /** * Prints the AST to the given PrintStream. @@ -144,7 +146,8 @@ class ASTPrinter { if(node.getParent() == null && !(node instanceof IASTTranslationUnit)) { out.print("PARENT IS NULL "); } - out.print(node.getPropertyInParent()); + if(PRINT_PARENT_PROPERTIES) + out.print(node.getPropertyInParent()); } if(n instanceof ICArrayType) { @@ -379,13 +382,14 @@ class ASTPrinter { @Override public int visit(IASTName name) { print(name); - try { - IBinding binding = name.resolveBinding(); - print(binding); - } catch(Exception e) { - System.out.println("Exception while resolving binding: " + name); + if(RESOLVE_BINDINGS) { + try { + IBinding binding = name.resolveBinding(); + print(binding); + } catch(Exception e) { + System.out.println("Exception while resolving binding: " + name); + } } - indentLevel++; return super.visit(name); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java index 437a479ee14..4027dc0a21a 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java @@ -272,1787 +272,1780 @@ public CPPExpressionStatementParser(String[] mapFrom) { // constructor } // - // Rule 4: <placeholder> ::= $Empty + // Rule 2: <empty> ::= $Empty // - case 4: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 5: <empty> ::= $Empty - // - case 5: { action.builder. + case 2: { action.builder. consumeEmpty(); break; } // - // Rule 10: translation_unit ::= external_declaration_list + // Rule 11: translation_unit ::= external_declaration_list // - case 10: { action.builder. + case 11: { action.builder. consumeTranslationUnit(); break; } // - // Rule 11: translation_unit ::= $Empty + // Rule 12: translation_unit ::= $Empty // - case 11: { action.builder. + case 12: { action.builder. consumeTranslationUnit(); break; } // - // Rule 15: external_declaration ::= ERROR_TOKEN + // Rule 16: external_declaration ::= ERROR_TOKEN // - case 15: { action.builder. + case 16: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 16: literal ::= integer + // Rule 19: literal ::= integer // - case 16: { action.builder. + case 19: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } // - // Rule 17: literal ::= 0 + // Rule 20: literal ::= 0 // - case 17: { action.builder. + case 20: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } // - // Rule 18: literal ::= floating + // Rule 21: literal ::= floating // - case 18: { action.builder. + case 21: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; } // - // Rule 19: literal ::= charconst + // Rule 22: literal ::= charconst // - case 19: { action.builder. + case 22: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } // - // Rule 20: literal ::= stringlit + // Rule 23: literal ::= stringlit // - case 20: { action.builder. + case 23: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } // - // Rule 21: literal ::= true + // Rule 24: literal ::= true // - case 21: { action.builder. + case 24: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } // - // Rule 22: literal ::= false + // Rule 25: literal ::= false // - case 22: { action.builder. + case 25: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } // - // Rule 23: literal ::= this + // Rule 26: literal ::= this // - case 23: { action.builder. + case 26: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } // - // Rule 25: primary_expression ::= ( expression ) + // Rule 28: primary_expression ::= ( expression ) // - case 25: { action.builder. + case 28: { action.builder. consumeExpressionBracketed(); break; } // - // Rule 27: id_expression ::= qualified_or_unqualified_name + // Rule 30: id_expression ::= qualified_or_unqualified_name // - case 27: { action.builder. + case 30: { action.builder. consumeExpressionName(); break; } // - // Rule 34: unqualified_id_name ::= ~ class_name + // Rule 37: unqualified_id_name ::= ~ class_name // - case 34: { action.builder. + case 37: { action.builder. consumeDestructorName(); break; } // - // Rule 35: identifier_name ::= identifier + // Rule 38: identifier_name ::= identifier_token // - case 35: { action.builder. + case 38: { action.builder. consumeIdentifierName(); break; } // - // Rule 36: template_opt ::= template + // Rule 39: template_opt ::= template // - case 36: { action.builder. + case 39: { action.builder. consumePlaceHolder(); break; } // - // Rule 37: template_opt ::= $Empty + // Rule 40: template_opt ::= $Empty // - case 37: { action.builder. + case 40: { action.builder. consumeEmpty(); break; } // - // Rule 38: dcolon_opt ::= :: + // Rule 41: dcolon_opt ::= :: // - case 38: { action.builder. + case 41: { action.builder. consumePlaceHolder(); break; } // - // Rule 39: dcolon_opt ::= $Empty + // Rule 42: dcolon_opt ::= $Empty // - case 39: { action.builder. + case 42: { action.builder. consumeEmpty(); break; } // - // Rule 40: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // Rule 43: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name // - case 40: { action.builder. + case 43: { action.builder. consumeQualifiedId(true); break; } // - // Rule 41: qualified_id_name ::= :: identifier_name + // Rule 44: qualified_id_name ::= :: identifier_name // - case 41: { action.builder. + case 44: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 42: qualified_id_name ::= :: operator_function_id_name + // Rule 45: qualified_id_name ::= :: operator_function_id_name // - case 42: { action.builder. + case 45: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 43: qualified_id_name ::= :: template_id_name + // Rule 46: qualified_id_name ::= :: template_id_name // - case 43: { action.builder. + case 46: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 44: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 47: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // - case 44: { action.builder. + case 47: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 45: nested_name_specifier ::= class_or_namespace_name :: + // Rule 48: nested_name_specifier ::= class_or_namespace_name :: // - case 45: { action.builder. + case 48: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 46: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 49: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // - case 46: { action.builder. + case 49: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 47: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // - case 47: { action.builder. + case 50: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 48: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // Rule 51: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name // - case 48: { action.builder. + case 51: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 50: nested_name_specifier_opt ::= $Empty + // Rule 53: nested_name_specifier_opt ::= $Empty // - case 50: { action.builder. + case 53: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 54: postfix_expression ::= postfix_expression [ expression ] + // Rule 57: postfix_expression ::= postfix_expression [ expression ] // - case 54: { action.builder. + case 57: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 55: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 55: { action.builder. + case 58: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 56: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 56: { action.builder. + case 59: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 57: postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt ) + // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt ) // - case 57: { action.builder. + case 60: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 58: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) // - case 58: { action.builder. + case 61: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 59: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // - case 59: { action.builder. + case 62: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 60: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 60: { action.builder. + case 63: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 61: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 61: { action.builder. + case 64: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 62: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 62: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 63: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 63: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 64: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 64: { action.builder. + case 67: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 65: postfix_expression ::= postfix_expression ++ + // Rule 68: postfix_expression ::= postfix_expression ++ // - case 65: { action.builder. + case 68: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 66: postfix_expression ::= postfix_expression -- + // Rule 69: postfix_expression ::= postfix_expression -- // - case 66: { action.builder. + case 69: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 67: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 67: { action.builder. + case 70: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 68: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) // - case 68: { action.builder. + case 71: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 69: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 69: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 70: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) // - case 70: { action.builder. + case 73: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 71: postfix_expression ::= typeid ( expression ) + // Rule 74: postfix_expression ::= typeid ( expression ) // - case 71: { action.builder. + case 74: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 72: postfix_expression ::= typeid ( type_id ) + // Rule 75: postfix_expression ::= typeid ( type_id ) // - case 72: { action.builder. + case 75: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 73: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: ~ type_name + // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: ~ type_name // - case 73: { action.builder. + case 76: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 74: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: ~ type_name + // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: ~ type_name // - case 74: { action.builder. + case 77: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 75: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt ~ type_name + // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt ~ type_name // - case 75: { action.builder. + case 78: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 79: unary_expression ::= ++ cast_expression + // Rule 82: unary_expression ::= ++ cast_expression // - case 79: { action.builder. + case 82: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 80: unary_expression ::= -- cast_expression + // Rule 83: unary_expression ::= -- cast_expression // - case 80: { action.builder. + case 83: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 81: unary_expression ::= & cast_expression + // Rule 84: unary_expression ::= & cast_expression // - case 81: { action.builder. + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 82: unary_expression ::= * cast_expression + // Rule 85: unary_expression ::= * cast_expression // - case 82: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 83: unary_expression ::= + cast_expression + // Rule 86: unary_expression ::= + cast_expression // - case 83: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 84: unary_expression ::= - cast_expression + // Rule 87: unary_expression ::= - cast_expression // - case 84: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 85: unary_expression ::= ~ cast_expression + // Rule 88: unary_expression ::= ~ cast_expression // - case 85: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 86: unary_expression ::= ! cast_expression + // Rule 89: unary_expression ::= ! cast_expression // - case 86: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 87: unary_expression ::= sizeof unary_expression + // Rule 90: unary_expression ::= sizeof unary_expression // - case 87: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 88: unary_expression ::= sizeof ( type_id ) + // Rule 91: unary_expression ::= sizeof ( type_id ) // - case 88: { action.builder. + case 91: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } // - // Rule 89: new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt + // Rule 92: new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt // - case 89: { action.builder. + case 92: { action.builder. consumeExpressionNew(true); break; } // - // Rule 90: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_initializer_opt + // Rule 93: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_initializer_opt // - case 90: { action.builder. + case 93: { action.builder. consumeExpressionNew(false); break; } // - // Rule 93: new_placement_opt ::= $Empty + // Rule 96: new_placement_opt ::= $Empty // - case 93: { action.builder. + case 96: { action.builder. consumeEmpty(); break; } // - // Rule 94: new_type_id ::= type_specifier_seq + // Rule 97: new_type_id ::= type_specifier_seq // - case 94: { action.builder. + case 97: { action.builder. consumeTypeId(false); break; } // - // Rule 95: new_type_id ::= type_specifier_seq new_declarator + // Rule 98: new_type_id ::= type_specifier_seq new_declarator // - case 95: { action.builder. + case 98: { action.builder. consumeTypeId(true); break; } // - // Rule 96: new_declarator ::= <openscope-ast> new_pointer_operators + // Rule 99: new_declarator ::= <openscope-ast> new_pointer_operators // - case 96: { action.builder. + case 99: { action.builder. consumeNewDeclarator(); break; } // - // Rule 105: new_initializer_opt ::= $Empty + // Rule 108: new_initializer_opt ::= $Empty // - case 105: { action.builder. + case 108: { action.builder. consumeEmpty(); break; } // - // Rule 106: delete_expression ::= dcolon_opt delete cast_expression + // Rule 109: delete_expression ::= dcolon_opt delete cast_expression // - case 106: { action.builder. + case 109: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 107: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 110: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 107: { action.builder. + case 110: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 109: cast_expression ::= ( type_id ) cast_expression + // Rule 112: cast_expression ::= ( type_id ) cast_expression // - case 109: { action.builder. + case 112: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 111: pm_expression ::= pm_expression .* cast_expression + // Rule 114: pm_expression ::= pm_expression .* cast_expression // - case 111: { action.builder. + case 114: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 112: pm_expression ::= pm_expression ->* cast_expression + // Rule 115: pm_expression ::= pm_expression ->* cast_expression // - case 112: { action.builder. + case 115: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 114: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 117: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 114: { action.builder. + case 117: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 115: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 118: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 115: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 116: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 119: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 116: { action.builder. + case 119: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 118: additive_expression ::= additive_expression + multiplicative_expression + // Rule 121: additive_expression ::= additive_expression + multiplicative_expression // - case 118: { action.builder. + case 121: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 119: additive_expression ::= additive_expression - multiplicative_expression + // Rule 122: additive_expression ::= additive_expression - multiplicative_expression // - case 119: { action.builder. + case 122: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 121: shift_expression ::= shift_expression << additive_expression + // Rule 124: shift_expression ::= shift_expression << additive_expression // - case 121: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 122: shift_expression ::= shift_expression >> additive_expression + // Rule 125: shift_expression ::= shift_expression >> additive_expression // - case 122: { action.builder. + case 125: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 124: relational_expression ::= relational_expression < shift_expression + // Rule 127: relational_expression ::= relational_expression < shift_expression // - case 124: { action.builder. + case 127: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 125: relational_expression ::= relational_expression > shift_expression + // Rule 128: relational_expression ::= relational_expression > shift_expression // - case 125: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 126: relational_expression ::= relational_expression <= shift_expression + // Rule 129: relational_expression ::= relational_expression <= shift_expression // - case 126: { action.builder. + case 129: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 127: relational_expression ::= relational_expression >= shift_expression + // Rule 130: relational_expression ::= relational_expression >= shift_expression // - case 127: { action.builder. + case 130: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 129: equality_expression ::= equality_expression == relational_expression + // Rule 132: equality_expression ::= equality_expression == relational_expression // - case 129: { action.builder. + case 132: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 130: equality_expression ::= equality_expression != relational_expression + // Rule 133: equality_expression ::= equality_expression != relational_expression // - case 130: { action.builder. + case 133: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 132: and_expression ::= and_expression & equality_expression + // Rule 135: and_expression ::= and_expression & equality_expression // - case 132: { action.builder. + case 135: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 134: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 137: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 134: { action.builder. + case 137: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 136: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 139: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 136: { action.builder. + case 139: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 138: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 141: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 138: { action.builder. + case 141: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 140: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 143: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 140: { action.builder. + case 143: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 142: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 145: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 142: { action.builder. + case 145: { action.builder. consumeExpressionConditional(); break; } // - // Rule 143: throw_expression ::= throw + // Rule 146: throw_expression ::= throw // - case 143: { action.builder. + case 146: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 144: throw_expression ::= throw assignment_expression + // Rule 147: throw_expression ::= throw assignment_expression // - case 144: { action.builder. + case 147: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 147: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 150: assignment_expression ::= logical_or_expression = assignment_expression // - case 147: { action.builder. + case 150: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 148: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 151: assignment_expression ::= logical_or_expression *= assignment_expression // - case 148: { action.builder. + case 151: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 149: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 152: assignment_expression ::= logical_or_expression /= assignment_expression // - case 149: { action.builder. + case 152: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 150: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression %= assignment_expression // - case 150: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 151: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression += assignment_expression // - case 151: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 152: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression -= assignment_expression // - case 152: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 153: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 153: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 157: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 154: { action.builder. + case 157: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 158: assignment_expression ::= logical_or_expression &= assignment_expression // - case 155: { action.builder. + case 158: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 159: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 156: { action.builder. + case 159: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 160: assignment_expression ::= logical_or_expression |= assignment_expression // - case 157: { action.builder. + case 160: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 159: expression ::= ERROR_TOKEN + // Rule 162: expression ::= ERROR_TOKEN // - case 159: { action.builder. + case 162: { action.builder. consumeExpressionProblem(); break; } // - // Rule 160: expression_list ::= <openscope-ast> expression_list_actual + // Rule 163: expression_list ::= <openscope-ast> expression_list_actual // - case 160: { action.builder. + case 163: { action.builder. consumeExpressionList(); break; } // - // Rule 164: expression_list_opt ::= $Empty + // Rule 167: expression_list_opt ::= $Empty // - case 164: { action.builder. + case 167: { action.builder. consumeEmpty(); break; } // - // Rule 166: expression_opt ::= $Empty + // Rule 169: expression_opt ::= $Empty // - case 166: { action.builder. + case 169: { action.builder. consumeEmpty(); break; } // - // Rule 169: constant_expression_opt ::= $Empty + // Rule 172: constant_expression_opt ::= $Empty // - case 169: { action.builder. + case 172: { action.builder. consumeEmpty(); break; } // - // Rule 178: statement ::= ERROR_TOKEN + // Rule 181: statement ::= ERROR_TOKEN // - case 178: { action.builder. + case 181: { action.builder. consumeStatementProblem(); break; } // - // Rule 179: labeled_statement ::= identifier : statement + // Rule 182: labeled_statement ::= identifier : statement // - case 179: { action.builder. + case 182: { action.builder. consumeStatementLabeled(); break; } // - // Rule 180: labeled_statement ::= case constant_expression : + // Rule 183: labeled_statement ::= case constant_expression : // - case 180: { action.builder. + case 183: { action.builder. consumeStatementCase(); break; } // - // Rule 181: labeled_statement ::= default : + // Rule 184: labeled_statement ::= default : // - case 181: { action.builder. + case 184: { action.builder. consumeStatementDefault(); break; } // - // Rule 182: expression_statement ::= expression ; + // Rule 185: expression_statement ::= expression ; // - case 182: { action.builder. + case 185: { action.builder. consumeStatementExpression(); break; } // - // Rule 183: expression_statement ::= ; + // Rule 186: expression_statement ::= ; // - case 183: { action.builder. + case 186: { action.builder. consumeStatementNull(); break; } // - // Rule 184: compound_statement ::= { <openscope-ast> statement_seq } + // Rule 187: compound_statement ::= { <openscope-ast> statement_seq } // - case 184: { action.builder. + case 187: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 185: compound_statement ::= { } + // Rule 188: compound_statement ::= { } // - case 185: { action.builder. + case 188: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 188: selection_statement ::= if ( condition ) statement + // Rule 191: selection_statement ::= if ( condition ) statement // - case 188: { action.builder. + case 191: { action.builder. consumeStatementIf(false); break; } // - // Rule 189: selection_statement ::= if ( condition ) statement else statement + // Rule 192: selection_statement ::= if ( condition ) statement else statement // - case 189: { action.builder. + case 192: { action.builder. consumeStatementIf(true); break; } // - // Rule 190: selection_statement ::= switch ( condition ) statement + // Rule 193: selection_statement ::= switch ( condition ) statement // - case 190: { action.builder. + case 193: { action.builder. consumeStatementSwitch(); break; } // - // Rule 192: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 195: condition ::= type_specifier_seq declarator = assignment_expression // - case 192: { action.builder. + case 195: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 193: iteration_statement ::= while ( condition ) statement + // Rule 196: iteration_statement ::= while ( condition ) statement // - case 193: { action.builder. + case 196: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 194: iteration_statement ::= do statement while ( expression ) ; + // Rule 197: iteration_statement ::= do statement while ( expression ) ; // - case 194: { action.builder. + case 197: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 195: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // Rule 198: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement // - case 195: { action.builder. + case 198: { action.builder. consumeStatementForLoop(); break; } // - // Rule 196: iteration_statement ::= for ( simple_declaration expression_opt ; expression_opt ) statement + // Rule 199: iteration_statement ::= for ( simple_declaration expression_opt ; expression_opt ) statement // - case 196: { action.builder. + case 199: { action.builder. consumeStatementForLoop(); break; } // - // Rule 197: jump_statement ::= break ; + // Rule 200: jump_statement ::= break ; // - case 197: { action.builder. + case 200: { action.builder. consumeStatementBreak(); break; } // - // Rule 198: jump_statement ::= continue ; + // Rule 201: jump_statement ::= continue ; // - case 198: { action.builder. + case 201: { action.builder. consumeStatementContinue(); break; } // - // Rule 199: jump_statement ::= return expression ; + // Rule 202: jump_statement ::= return expression ; // - case 199: { action.builder. + case 202: { action.builder. consumeStatementReturn(true); break; } // - // Rule 200: jump_statement ::= return ; + // Rule 203: jump_statement ::= return ; // - case 200: { action.builder. + case 203: { action.builder. consumeStatementReturn(false); break; } // - // Rule 201: jump_statement ::= goto identifier ; + // Rule 204: jump_statement ::= goto identifier_token ; // - case 201: { action.builder. + case 204: { action.builder. consumeStatementGoto(); break; } // - // Rule 202: declaration_statement ::= block_declaration + // Rule 205: declaration_statement ::= block_declaration // - case 202: { action.builder. + case 205: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 219: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ; + // Rule 222: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ; // - case 219: { action.builder. + case 222: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 220: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers + // Rule 223: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers // - case 220: { action.builder. + case 223: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 221: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers + // Rule 224: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers // - case 221: { action.builder. + case 224: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 222: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers + // Rule 225: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers // - case 222: { action.builder. + case 225: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 223: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers + // Rule 226: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers // - case 223: { action.builder. + case 226: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 224: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers + // Rule 227: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers // - case 224: { action.builder. + case 227: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 226: declaration_specifiers_opt ::= $Empty + // Rule 229: declaration_specifiers_opt ::= $Empty // - case 226: { action.builder. + case 229: { action.builder. consumeEmpty(); break; } // - // Rule 230: no_type_declaration_specifier ::= friend + // Rule 233: no_type_declaration_specifier ::= friend // - case 230: { action.builder. + case 233: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 231: no_type_declaration_specifier ::= typedef + // Rule 234: no_type_declaration_specifier ::= typedef // - case 231: { action.builder. + case 234: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 260: simple_type_specifier ::= simple_type_specifier_token + // Rule 263: simple_type_specifier ::= simple_type_specifier_token // - case 260: { action.builder. + case 263: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 279: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 276: { action.builder. + case 279: { action.builder. consumeQualifiedId(false); break; } // - // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 277: { action.builder. + case 280: { action.builder. consumeQualifiedId(false); break; } // - // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 281: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 278: { action.builder. + case 281: { action.builder. consumeQualifiedId(false); break; } // - // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 279: { action.builder. + case 282: { action.builder. consumeQualifiedId(true); break; } // - // Rule 280: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 283: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 280: { action.builder. + case 283: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 281: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 284: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 281: { action.builder. + case 284: { action.builder. consumeTypeSpecifierElaborated(true); break; } // - // Rule 282: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 285: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 282: { action.builder. + case 285: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 284: enum_specifier ::= enum { <openscope-ast> enumerator_list_opt } + // Rule 287: enum_specifier ::= enum { <openscope-ast> enumerator_list_opt } // - case 284: { action.builder. + case 287: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 285: enum_specifier ::= enum identifier { <openscope-ast> enumerator_list_opt } + // Rule 288: enum_specifier ::= enum identifier_token { <openscope-ast> enumerator_list_opt } // - case 285: { action.builder. + case 288: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 290: enumerator_definition ::= enumerator + // Rule 293: enumerator_definition ::= enumerator // - case 290: { action.builder. + case 293: { action.builder. consumeEnumerator(false); break; } // - // Rule 291: enumerator_definition ::= enumerator = constant_expression + // Rule 294: enumerator_definition ::= enumerator = constant_expression // - case 291: { action.builder. + case 294: { action.builder. consumeEnumerator(true); break; } // - // Rule 300: original_namespace_definition ::= namespace identifier_name { <openscope-ast> declaration_seq_opt } + // Rule 303: original_namespace_definition ::= namespace identifier_name { <openscope-ast> declaration_seq_opt } // - case 300: { action.builder. + case 303: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 301: extension_namespace_definition ::= namespace original_namespace_name { <openscope-ast> declaration_seq_opt } + // Rule 304: extension_namespace_definition ::= namespace original_namespace_name { <openscope-ast> declaration_seq_opt } // - case 301: { action.builder. + case 304: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 302: unnamed_namespace_definition ::= namespace { <openscope-ast> declaration_seq_opt } + // Rule 305: unnamed_namespace_definition ::= namespace { <openscope-ast> declaration_seq_opt } // - case 302: { action.builder. + case 305: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 304: namespace_alias_definition ::= namespace identifier = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 307: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 304: { action.builder. + case 307: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 305: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 308: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 305: { action.builder. + case 308: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 306: typename_opt ::= typename + // Rule 309: typename_opt ::= typename // - case 306: { action.builder. + case 309: { action.builder. consumePlaceHolder(); break; } // - // Rule 307: typename_opt ::= $Empty + // Rule 310: typename_opt ::= $Empty // - case 307: { action.builder. + case 310: { action.builder. consumeEmpty(); break; } // - // Rule 308: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 311: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 308: { action.builder. + case 311: { action.builder. consumeUsingDirective(); break; } // - // Rule 309: asm_definition ::= asm ( stringlit ) ; + // Rule 312: asm_definition ::= asm ( stringlit ) ; // - case 309: { action.builder. + case 312: { action.builder. consumeDeclarationASM(); break; } // - // Rule 310: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt } + // Rule 313: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt } // - case 310: { action.builder. + case 313: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 311: linkage_specification ::= extern stringlit <openscope-ast> declaration + // Rule 314: linkage_specification ::= extern stringlit <openscope-ast> declaration // - case 311: { action.builder. + case 314: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 317: init_declarator ::= declarator initializer + // Rule 320: init_declarator ::= declarator initializer // - case 317: { action.builder. + case 320: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 319: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator + // Rule 322: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator // - case 319: { action.builder. + case 322: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 321: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator + // Rule 324: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator // - case 321: { action.builder. + case 324: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 325: basic_direct_declarator ::= declarator_id_name + // Rule 328: basic_direct_declarator ::= declarator_id_name // - case 325: { action.builder. + case 328: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 326: basic_direct_declarator ::= ( declarator ) + // Rule 329: basic_direct_declarator ::= ( declarator ) // - case 326: { action.builder. + case 329: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 327: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt + // Rule 330: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt // - case 327: { action.builder. + case 330: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 328: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 331: array_direct_declarator ::= array_direct_declarator array_modifier // - case 328: { action.builder. + case 331: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 329: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 332: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 329: { action.builder. + case 332: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 330: array_modifier ::= [ constant_expression ] + // Rule 333: array_modifier ::= [ constant_expression ] // - case 330: { action.builder. + case 333: { action.builder. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 331: array_modifier ::= [ ] + // Rule 334: array_modifier ::= [ ] // - case 331: { action.builder. + case 334: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 332: ptr_operator ::= * <openscope-ast> cv_qualifier_seq_opt + // Rule 335: ptr_operator ::= * <openscope-ast> cv_qualifier_seq_opt // - case 332: { action.builder. + case 335: { action.builder. consumePointer(); break; } // - // Rule 333: ptr_operator ::= & + // Rule 336: ptr_operator ::= & // - case 333: { action.builder. + case 336: { action.builder. consumeReferenceOperator(); break; } // - // Rule 334: ptr_operator ::= dcolon_opt nested_name_specifier * <openscope-ast> cv_qualifier_seq_opt + // Rule 337: ptr_operator ::= dcolon_opt nested_name_specifier * <openscope-ast> cv_qualifier_seq_opt // - case 334: { action.builder. + case 337: { action.builder. consumePointerToMember(); break; } // - // Rule 340: cv_qualifier ::= const + // Rule 343: cv_qualifier ::= const // - case 340: { action.builder. + case 343: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 341: cv_qualifier ::= volatile + // Rule 344: cv_qualifier ::= volatile // - case 341: { action.builder. + case 344: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 343: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 346: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // - case 343: { action.builder. + case 346: { action.builder. consumeQualifiedId(false); break; } // - // Rule 344: type_id ::= type_specifier_seq + // Rule 347: type_id ::= type_specifier_seq // - case 344: { action.builder. + case 347: { action.builder. consumeTypeId(false); break; } // - // Rule 345: type_id ::= type_specifier_seq abstract_declarator + // Rule 348: type_id ::= type_specifier_seq abstract_declarator // - case 345: { action.builder. + case 348: { action.builder. consumeTypeId(true); break; } // - // Rule 348: abstract_declarator ::= <openscope-ast> ptr_operator_seq + // Rule 351: abstract_declarator ::= <openscope-ast> ptr_operator_seq // - case 348: { action.builder. + case 351: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 349: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator + // Rule 352: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator // - case 349: { action.builder. + case 352: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 353: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 356: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 353: { action.builder. + case 356: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 354: array_direct_abstract_declarator ::= array_modifier + // Rule 357: array_direct_abstract_declarator ::= array_modifier // - case 354: { action.builder. + case 357: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 355: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 358: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 355: { action.builder. + case 358: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 356: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 359: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 356: { action.builder. + case 359: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 357: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt + // Rule 360: 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 357: { action.builder. + case 360: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 358: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt + // Rule 361: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt // - case 358: { action.builder. + case 361: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 362: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 359: { action.builder. + case 362: { action.builder. consumePlaceHolder(); break; } // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 363: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 360: { action.builder. + case 363: { action.builder. consumeEmpty(); break; } // - // Rule 361: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 364: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 361: { action.builder. + case 364: { action.builder. consumePlaceHolder(); break; } // - // Rule 367: abstract_declarator_opt ::= $Empty + // Rule 370: abstract_declarator_opt ::= $Empty // - case 367: { action.builder. + case 370: { action.builder. consumeEmpty(); break; } // - // Rule 368: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 371: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 368: { action.builder. + case 371: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 369: parameter_declaration ::= declaration_specifiers + // Rule 372: parameter_declaration ::= declaration_specifiers // - case 369: { action.builder. + case 372: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 371: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 374: parameter_init_declarator ::= declarator = parameter_initializer // - case 371: { action.builder. + case 374: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 373: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 376: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 373: { action.builder. + case 376: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 374: parameter_init_declarator ::= = parameter_initializer + // Rule 377: parameter_init_declarator ::= = parameter_initializer // - case 374: { action.builder. + case 377: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 375: parameter_initializer ::= assignment_expression + // Rule 378: parameter_initializer ::= assignment_expression // - case 375: { action.builder. + case 378: { action.builder. consumeInitializer(); break; } // - // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body + // Rule 379: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body // - case 376: { action.builder. + case 379: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 377: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq + // Rule 380: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq // - case 377: { action.builder. + case 380: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 380: initializer ::= ( expression_list ) + // Rule 383: initializer ::= ( expression_list ) // - case 380: { action.builder. + case 383: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 381: initializer_clause ::= assignment_expression + // Rule 384: initializer_clause ::= assignment_expression // - case 381: { action.builder. + case 384: { action.builder. consumeInitializer(); break; } // - // Rule 382: initializer_clause ::= { <openscope-ast> initializer_list , } + // Rule 385: initializer_clause ::= { <openscope-ast> initializer_list , } // - case 382: { action.builder. + case 385: { action.builder. consumeInitializerList(); break; } // - // Rule 383: initializer_clause ::= { <openscope-ast> initializer_list } + // Rule 386: initializer_clause ::= { <openscope-ast> initializer_list } // - case 383: { action.builder. + case 386: { action.builder. consumeInitializerList(); break; } // - // Rule 384: initializer_clause ::= { <openscope-ast> } + // Rule 387: initializer_clause ::= { <openscope-ast> } // - case 384: { action.builder. + case 387: { action.builder. consumeInitializerList(); break; } // - // Rule 389: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } + // Rule 392: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } // - case 389: { action.builder. + case 392: { action.builder. consumeClassSpecifier(); break; } // - // Rule 390: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt + // Rule 393: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt // - case 390: { action.builder. + case 393: { action.builder. consumeClassHead(false); break; } // - // Rule 391: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt + // Rule 394: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt // - case 391: { action.builder. + case 394: { action.builder. consumeClassHead(false); break; } // - // Rule 392: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt + // Rule 395: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt // - case 392: { action.builder. + case 395: { action.builder. consumeClassHead(true); break; } // - // Rule 393: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt + // Rule 396: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt // - case 393: { action.builder. + case 396: { action.builder. consumeClassHead(true); break; } // - // Rule 397: identifier_name_opt ::= $Empty + // Rule 398: identifier_name_opt ::= $Empty // - case 397: { action.builder. + case 398: { action.builder. consumeEmpty(); break; } // - // Rule 401: visibility_label ::= access_specifier_keyword : + // Rule 402: visibility_label ::= access_specifier_keyword : // - case 401: { action.builder. + case 402: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 402: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; + // Rule 403: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; // - case 402: { action.builder. + case 403: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 403: member_declaration ::= declaration_specifiers_opt ; + // Rule 404: member_declaration ::= declaration_specifiers_opt ; // - case 403: { action.builder. + case 404: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 406: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 407: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 406: { action.builder. + case 407: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 410: member_declaration ::= ERROR_TOKEN + // Rule 411: member_declaration ::= ERROR_TOKEN // - case 410: { action.builder. + case 411: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 418: member_declarator ::= declarator constant_initializer + // Rule 419: member_declarator ::= declarator constant_initializer // - case 418: { action.builder. + case 419: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 419: member_declarator ::= bit_field_declarator : constant_expression + // Rule 420: member_declarator ::= bit_field_declarator : constant_expression // - case 419: { action.builder. + case 420: { action.builder. consumeBitField(true); break; } // - // Rule 420: member_declarator ::= : constant_expression + // Rule 421: member_declarator ::= : constant_expression // - case 420: { action.builder. + case 421: { action.builder. consumeBitField(false); break; } // - // Rule 421: bit_field_declarator ::= identifier_name + // Rule 422: bit_field_declarator ::= identifier_name // - case 421: { action.builder. + case 422: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 428: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 428: { action.builder. + case 429: { action.builder. consumeBaseSpecifier(false); break; } // - // Rule 429: base_specifier ::= virtual_opt access_specifier_keyword virtual_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 430: base_specifier ::= virtual_opt access_specifier_keyword virtual_opt dcolon_opt nested_name_specifier_opt class_name // - case 429: { action.builder. + case 430: { action.builder. consumeBaseSpecifier(true); break; } // - // Rule 430: virtual_opt ::= virtual + // Rule 431: virtual_opt ::= virtual // - case 430: { action.builder. + case 431: { action.builder. consumePlaceHolder(); break; } // - // Rule 431: virtual_opt ::= $Empty + // Rule 432: virtual_opt ::= $Empty // - case 431: { action.builder. + case 432: { action.builder. consumeEmpty(); break; } // - // Rule 437: conversion_function_id_name ::= operator conversion_type_id + // Rule 438: conversion_function_id_name ::= operator conversion_type_id // - case 437: { action.builder. + case 438: { action.builder. consumeConversionName(); break; } // - // Rule 438: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 439: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 438: { action.builder. + case 439: { action.builder. consumeTypeId(true); break; } // - // Rule 439: conversion_type_id ::= type_specifier_seq + // Rule 440: conversion_type_id ::= type_specifier_seq // - case 439: { action.builder. + case 440: { action.builder. consumeTypeId(false); break; } // - // Rule 440: conversion_declarator ::= <openscope-ast> ptr_operator_seq + // Rule 441: conversion_declarator ::= <openscope-ast> ptr_operator_seq // - case 440: { action.builder. + case 441: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 446: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 447: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 446: { action.builder. + case 447: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 447: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 448: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 447: { action.builder. + case 448: { action.builder. consumeQualifiedId(false); break; } // - // Rule 450: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > + // Rule 451: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > // - case 450: { action.builder. + case 451: { action.builder. consumeTemplateId(); break; } // - // Rule 451: operator_id_name ::= operator overloadable_operator + // Rule 452: operator_id_name ::= operator overloadable_operator // - case 451: { action.builder. + case 452: { action.builder. consumeOperatorName(); break; } // - // Rule 494: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration + // Rule 495: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration // - case 494: { action.builder. + case 495: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 495: export_opt ::= export + // Rule 496: export_opt ::= export // - case 495: { action.builder. + case 496: { action.builder. consumePlaceHolder(); break; } // - // Rule 496: export_opt ::= $Empty + // Rule 497: export_opt ::= $Empty // - case 496: { action.builder. + case 497: { action.builder. consumeEmpty(); break; } // - // Rule 501: type_parameter ::= class identifier_name_opt + // Rule 502: type_parameter ::= class identifier_name_opt // - case 501: { action.builder. + case 502: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 502: type_parameter ::= class identifier_name_opt = type_id + // Rule 503: type_parameter ::= class identifier_name_opt = type_id // - case 502: { action.builder. + case 503: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 503: type_parameter ::= typename identifier_name_opt + // Rule 504: type_parameter ::= typename identifier_name_opt // - case 503: { action.builder. + case 504: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 504: type_parameter ::= typename identifier_name_opt = type_id + // Rule 505: type_parameter ::= typename identifier_name_opt = type_id // - case 504: { action.builder. + case 505: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 505: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt + // Rule 506: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt // - case 505: { action.builder. + case 506: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 506: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression + // Rule 507: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression // - case 506: { action.builder. + case 507: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 507: template_id_name ::= template_identifier < <openscope-ast> template_argument_list_opt > + // Rule 508: template_id_name ::= template_identifier < <openscope-ast> template_argument_list_opt > // - case 507: { action.builder. + case 508: { action.builder. consumeTemplateId(); break; } // - // Rule 516: explicit_instantiation ::= template declaration + // Rule 517: explicit_instantiation ::= template declaration // - case 516: { action.builder. + case 517: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 517: explicit_specialization ::= template < > declaration + // Rule 518: explicit_specialization ::= template < > declaration // - case 517: { action.builder. + case 518: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 518: try_block ::= try compound_statement <openscope-ast> handler_seq + // Rule 519: try_block ::= try compound_statement <openscope-ast> handler_seq // - case 518: { action.builder. + case 519: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 521: handler ::= catch ( exception_declaration ) compound_statement + // Rule 522: handler ::= catch ( exception_declaration ) compound_statement // - case 521: { action.builder. + case 522: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 522: handler ::= catch ( ... ) compound_statement + // Rule 523: handler ::= catch ( ... ) compound_statement // - case 522: { action.builder. + case 523: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 523: exception_declaration ::= type_specifier_seq <openscope-ast> declarator + // Rule 524: exception_declaration ::= type_specifier_seq <openscope-ast> declarator // - case 523: { action.builder. + case 524: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator + // Rule 525: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator // - case 524: { action.builder. + case 525: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq + // Rule 526: exception_declaration ::= type_specifier_seq // - case 525: { action.builder. + case 526: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 533: expression_parser_start ::= ERROR_TOKEN + // Rule 534: expression_parser_start ::= ERROR_TOKEN // - case 533: { action.builder. + case 534: { action.builder. consumeExpressionProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java index 98e4d836370..1fdddddda87 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java @@ -37,507 +37,517 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface BaseCheck { public final static short baseCheck[] = {0, - 0,0,0,0,0,1,1,1,1,1, - 0,1,2,1,1,1,1,1,1,1, - 1,1,1,1,3,1,1,1,1,1, - 1,1,1,2,1,1,0,1,0,4, - 2,2,2,3,2,3,2,2,1,0, - 1,1,1,4,4,4,8,8,3,3, - 4,4,3,3,2,2,7,7,7,7, - 4,4,6,7,4,1,1,1,2,2, - 2,2,2,2,2,2,2,4,7,7, - 3,1,0,1,2,2,1,2,3,4, - 1,0,3,1,0,3,5,1,4,1, - 3,3,1,3,3,3,1,3,3,1, - 3,3,1,3,3,3,3,1,3,3, - 1,3,1,3,1,3,1,3,1,3, - 1,5,1,2,1,1,3,3,3,3, - 3,3,3,3,3,3,3,1,1,2, - 1,3,1,0,1,0,1,1,0,1, - 1,1,1,1,1,1,1,1,3,3, - 2,2,1,4,2,1,2,5,7,5, - 1,4,5,7,9,8,2,2,3,2, - 3,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,2,1,0,4,2, - 2,2,2,2,1,0,1,1,1,1, - 1,1,2,1,2,2,2,1,1,2, - 2,1,2,2,1,2,2,1,2,2, + 0,0,1,1,1,1,1,1,1,1, + 1,0,1,2,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3,1,1, + 1,1,1,1,1,1,2,1,1,0, + 1,0,4,2,2,2,3,2,3,2, + 2,1,0,1,1,1,4,4,4,8, + 8,3,3,4,4,3,3,2,2,7, + 7,7,7,4,4,6,7,4,1,1, + 1,2,2,2,2,2,2,2,2,2, + 4,7,7,3,1,0,1,2,2,1, + 2,3,4,1,0,3,1,0,3,5, + 1,4,1,3,3,1,3,3,3,1, + 3,3,1,3,3,1,3,3,3,3, + 1,3,3,1,3,1,3,1,3,1, + 3,1,3,1,5,1,2,1,1,3, + 3,3,3,3,3,3,3,3,3,3, + 1,1,2,1,3,1,0,1,0,1, + 1,0,1,1,1,1,1,1,1,1, + 1,3,3,2,2,1,4,2,1,2, + 5,7,5,1,4,5,7,9,8,2, + 2,3,2,3,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,2,1, + 0,4,2,2,2,2,2,1,0,1, + 1,1,1,1,1,2,1,2,2,2, + 1,1,2,2,1,2,2,1,2,2, + 1,2,2,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3,4, + 4,5,4,5,4,1,5,6,1,3, + 1,0,1,3,1,1,1,1,1,1, + 1,1,6,6,5,1,7,6,1,0, + 6,5,6,4,1,3,1,0,1,2, + 1,3,1,3,1,1,1,1,3,9, + 2,2,3,2,3,1,5,1,2,2, + 1,0,1,1,1,3,1,2,1,1, + 2,3,1,1,1,3,1,2,2,9, + 8,2,1,3,1,3,1,0,1,0, + 2,1,1,3,1,3,2,1,5,8, + 1,2,3,1,5,4,3,1,3,1, + 1,5,4,4,5,5,1,0,1,1, + 1,2,4,2,2,1,5,1,1,1, + 1,1,2,1,0,1,3,1,2,3, + 2,1,2,2,1,0,1,3,3,6, + 1,0,1,1,1,1,0,2,2,1, + 2,2,1,0,1,3,4,3,1,1, + 5,2,1,1,3,3,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3,4,4,5,4, - 5,4,1,5,6,1,3,1,0,1, - 3,1,1,1,1,1,1,1,1,6, - 6,5,1,7,6,1,0,6,5,6, - 4,1,3,1,0,1,2,1,3,1, - 3,1,1,1,1,3,9,2,2,3, - 2,3,1,5,1,2,2,1,0,1, - 1,1,3,1,2,1,1,2,3,1, - 1,1,3,1,2,2,9,8,2,1, - 3,1,3,1,0,1,0,2,1,1, - 3,1,3,2,1,5,8,1,2,3, - 1,5,4,3,1,3,1,1,5,4, - 4,5,5,1,0,1,0,1,1,1, - 2,4,2,2,1,5,1,1,1,1, - 1,2,1,0,1,3,1,2,3,2, - 1,2,2,1,0,1,3,3,6,1, - 0,1,1,1,1,0,2,2,1,2, - 2,1,0,1,3,4,3,1,1,5, - 2,1,1,3,3,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,2,2,7,1,0,1,3,1,1, - 2,4,2,4,7,9,5,1,1,3, - 1,0,1,1,1,2,4,4,1,2, - 5,5,3,3,1,4,3,1,0,1, - 3,2,1,-64,0,0,0,-342,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-12,0,0,0, - 0,0,0,0,0,0,-2,0,0,0, - 0,-398,0,0,0,-126,-74,0,0,0, - 0,0,0,0,0,0,0,0,-181,0, - -80,0,0,0,0,0,0,0,0,0, + 1,1,2,2,7,1,0,1,3,1, + 1,2,4,2,4,7,9,5,1,1, + 3,1,0,1,1,1,2,4,4,1, + 2,5,5,3,3,1,4,3,1,0, + 1,3,2,1,-64,0,0,0,0,-55, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-148,0,0,0, - 0,0,0,0,0,0,0,0,0,-23, - 0,0,0,-5,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-2,0, + 0,0,0,-212,0,0,0,0,0,0, + 0,0,0,0,-5,0,0,-12,-74,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-357,0,-369,0, - 0,0,0,-514,0,0,0,-267,0,0, - 0,0,0,0,0,-6,0,0,0,0, - 0,0,0,0,-118,0,0,0,0,0, + 0,-80,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-185,0,0,-119,-126, + 0,0,0,0,0,0,-334,-6,0,0, + 0,-21,0,0,0,0,-3,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-185,0,0,0,0,0,0,0, - 0,0,-373,0,0,0,0,-330,0,0, - 0,-291,0,0,0,0,0,-237,0,0, - -135,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-344,-515, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-67,0,0,0,-7,0,-8, + 0,0,0,0,0,0,-118,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-309,0,0,0,0,-51,-7, - 0,0,0,-18,0,0,0,0,0,0, - 0,-85,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-131,0,0,0,0,0, - 0,0,0,0,-226,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -373,0,0,0,0,0,-9,0,0,-148, + 0,0,0,0,-10,0,0,0,0,0, + 0,0,0,-135,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-119,0,0, - 0,0,0,-8,0,0,-180,0,0,0, - -66,0,0,0,0,-189,0,0,0,0, - -512,0,0,0,-67,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-51,0,0,-11,0,0,0,0, + 0,0,-13,0,0,0,0,-357,0,0, + 0,0,0,0,-89,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-9,-10, - 0,0,-95,0,0,0,-149,0,0,0, + 0,0,0,0,0,0,0,0,-140,0, + 0,0,-398,0,0,-59,-226,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-522,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-143,0,0, - 0,0,0,0,0,-140,0,-334,0,0, - 0,0,0,-344,0,0,-151,0,0,0, - -141,0,0,0,0,0,0,0,0,-58, - -468,-233,0,0,0,-4,0,0,0,0, + -131,0,0,0,0,0,0,0,0,-18, + 0,0,0,0,-249,0,0,0,0,-435, + 0,-14,0,-513,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-54,0,0, + 0,0,0,0,0,0,0,-58,0,0, + 0,0,0,-116,0,0,-22,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-292,0,0,0,-239,0,0, - 0,-248,0,0,0,-75,0,0,0,0, - 0,0,0,0,0,0,0,0,-280,0, + -15,-228,-291,0,0,0,-523,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-303,0,0,0,0,0,0,0,-3, - 0,-11,0,0,0,0,0,-13,0,0, - -315,0,0,0,0,0,0,0,0,0, + -52,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-151, + 0,0,0,0,-17,0,0,0,0,0, + 0,0,0,0,-30,-61,0,-4,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-14,0,0,0,0,0,-355, - 0,0,-316,0,0,0,-54,0,0,0, + 0,-31,0,0,0,0,-403,0,0,0, + 0,-32,0,0,0,0,0,0,0,0, + 0,-280,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-137,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -15,-363,0,0,0,0,0,-313,-475,0, - 0,0,-208,0,0,0,0,0,0,0, + -33,0,0,0,0,0,0,0,0,0, + -414,0,0,0,-315,0,0,0,0,-62, 0,0,0,0,0,0,0,0,0,0, - 0,-420,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-34,0, + 0,0,0,-50,0,0,-232,0,0,0, + 0,0,0,0,-35,0,0,-75,0,0, + 0,0,-66,0,0,0,0,0,0,0, + -110,0,0,0,-36,-316,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -41,0,0,0,-133,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-17,0,0,0,0,0,0, - 0,0,0,-59,0,0,0,0,0,0, - 0,0,-43,0,0,0,-403,0,0,0, + 0,0,0,0,0,0,0,-37,0,-38, + 0,0,0,0,-133,0,0,0,-476,0, + 0,0,0,-111,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -433,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-55,0,-97,0,0, - 0,-218,0,0,0,0,0,0,0,0, + -134,0,-39,0,0,0,0,0,-117,0, + 0,0,0,-41,0,0,0,0,-355,0, 0,0,0,0,0,0,0,0,0,0, - -262,0,0,0,0,-343,0,0,0,0, - 0,0,0,0,0,-472,-30,0,0,-98, - 0,0,0,-399,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-267,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-275,0,0,0,0,0,0,0, - -264,0,0,0,0,0,0,-283,-31,0, - 0,-99,0,0,0,0,0,0,0,0, + 0,0,-40,0,0,0,-42,-43,0,0, + 0,0,-141,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-32,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-33, - -34,0,0,-100,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-145,0,0,0,0,-156,0,0,0, + -97,0,0,0,0,-150,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-35,0,0,0,0,0, - 0,-284,-36,0,0,-101,0,0,0,-301, + 0,0,0,0,-187,0,0,0,0,0, + 0,0,0,0,-143,0,0,0,0,0, + 0,0,0,-98,0,0,0,0,-155,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-208,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-435,0, - 0,0,0,-37,-38,0,0,-102,0,0, - 0,-319,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-99,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-504,0, - -460,0,0,0,0,0,-39,0,0,-103, - 0,0,0,-40,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-311,0,0,0,0,0,0,0, - -336,0,-42,0,0,0,0,-56,-57,0, - 0,-104,0,0,0,0,0,0,0,0, + -188,0,0,0,0,0,0,0,-56,0, + -190,0,0,0,0,0,-283,0,0,-100, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-352,0,-495,0,0,0,0,-60, - -68,0,0,-105,0,0,0,0,0,0, + 0,0,0,-192,0,0,0,0,0,0, + 0,-309,0,-195,0,0,0,0,0,-57, + 0,0,-101,0,0,0,0,-204,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-505,0,0,0, - 0,0,0,0,-371,0,-69,0,0,0, - 0,-70,-72,0,0,-106,0,0,0,-73, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-478,0, - 0,0,0,0,0,0,-112,0,-113,0, - 0,0,0,0,-114,0,0,-107,0,0, - 0,-232,0,0,0,0,0,0,0,0, + 0,-202,0,0,-60,0,-303,0,0,0, + 0,0,0,0,0,-102,0,0,0,0, + -218,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-206, + 0,0,0,0,0,0,0,-68,0,-211, + 0,0,0,0,0,-69,0,0,-103,0, + 0,0,0,-213,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-249,0,0,-134,0, - 0,0,0,0,0,-115,-122,0,0,-138, 0,0,0,0,0,0,0,0,0,0, + -70,0,0,0,0,0,0,0,-72,0, + 0,-104,0,0,0,0,-284,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-129,0,0,0,0,-61,0,0, - -130,0,-142,0,0,0,0,-219,0,0, + 0,0,0,0,0,-230,0,0,0,0, + 0,0,0,-73,0,-231,0,0,0,0, + 0,-112,0,0,-105,0,0,0,0,-240, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-235,0, + 0,0,0,0,0,0,0,0,-363,0, + 0,0,0,0,0,0,0,-106,0,0, + 0,0,-247,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-295,0,0,0,0, + 0,-260,0,0,0,0,0,0,0,-264, + 0,-433,0,0,0,0,0,0,0,0, + -107,0,0,0,0,-254,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -154,0,0,0,-157,0,0,0,0,0, - 0,0,-360,-507,0,0,0,0,0,0, + 0,0,0,0,-113,0,0,0,0,0, + 0,0,-114,0,-461,0,0,0,0,0, + 0,0,0,-138,0,0,0,0,-255,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-158,0,0,0, - 0,0,0,0,-145,0,0,0,0,0, - 0,-159,-160,0,0,-312,0,0,0,-161, + 0,0,0,0,0,0,0,-279,0,0, + 0,0,0,0,0,-115,0,-122,0,0, + 0,0,0,-129,-219,0,0,0,0,-256, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-420,0, + 0,0,0,-356,0,0,-130,0,-142,0, + 0,0,0,0,0,0,0,-248,-157,-152, + 0,0,0,0,-181,0,0,-508,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-62,0,0,-162,0,-163,0, - 0,0,0,-326,0,0,0,-408,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-158, + 0,0,0,0,0,0,-419,0,0,0, + -312,0,0,0,0,-262,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-228,0,0,0,0,0,0,0,0, - 0,-354,0,0,0,-164,0,0,0,0, - 0,-152,0,0,0,-246,0,0,0,-340, + 0,0,0,0,-304,0,0,0,0,0, + 0,0,-159,0,-160,0,0,0,0,-326, + 0,0,0,0,-161,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-76,0,0,0,0,0,0, + 0,0,0,-162,0,0,0,0,-154,0, + 0,0,0,-163,0,0,0,0,0,0, + 0,0,0,-164,-340,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-110,0,0, - -165,0,0,0,0,0,0,-361,0,0, + 0,0,0,0,0,0,0,0,-292,0, + 0,0,0,0,0,0,0,0,-165,0, + 0,0,0,-361,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-166,0,0, + 0,0,-372,0,0,-167,0,0,0,0, + 0,0,-330,0,0,0,0,-168,-257,0, + 0,0,0,-180,0,0,0,0,-362,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-261,0,0,-166,0, - -234,0,0,0,0,0,0,-253,0,0, - 0,-273,0,0,0,-345,0,0,0,-278, - 0,0,0,-362,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-289,0,0, + 0,0,-298,0,0,0,0,-406,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-111,0,0,-455,0,0,0,0,0, - 0,-406,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-167, - 0,0,-364,0,-168,0,0,0,0,0, - 0,-290,0,0,0,-169,-416,-170,-171,-389, - 0,0,0,-380,0,0,-270,-109,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-354,0,0,0, + 0,-336,-299,0,0,0,0,-189,0,0, + 0,0,-109,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-496,0, - -77,0,0,-117,0,-96,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-301,0,-234,0,0,-319, + 0,-96,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-172,0,0,0,0,0,0, - -94,0,0,0,-271,0,0,0,0,0, + 0,0,0,0,0,-317,0,0,0,0, + 0,0,0,-327,0,-399,0,-94,0,0, + 0,0,-275,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-270, + 0,-95,0,0,0,0,-320,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-356,0,-53,0,0,0,0,0,-212, - 0,0,-450,0,0,0,0,-238,0,0, - -370,0,-391,0,0,0,-484,0,0,-173, + 0,0,0,0,0,-244,0,0,0,0, + 0,0,0,-53,0,0,0,0,0,0, + 0,0,0,-63,0,-343,0,0,0,0, + -169,0,-198,0,0,0,0,-369,0,0, -91,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-147, + 0,-475,-311,-45,0,0,0,-170,0,-360, + -335,0,0,0,0,-349,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-484,0,0,0,0,0, + -20,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-171,-172,0, + -352,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -173,0,-479,0,0,0,0,0,0,0, + 0,0,0,0,0,-92,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-93,0,0,0,0,-174, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-85,0,0,0,0,-175,0, 0,0,0,0,0,0,0,0,0,0, - -81,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-483,0,0,0, - 0,0,-500,0,-150,-174,0,0,0,-22, - 0,0,0,-175,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-176,0,0,0, - 0,-177,0,0,0,0,0,-52,0,0, - -499,0,-187,-178,-155,-179,0,0,0,0, - 0,0,0,0,-92,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-93,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -86,0,0,0,-236,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-182,0,0,0,-87,0,0, - 0,-183,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -184,0,0,0,-88,0,0,0,-300,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-250,0,0, - 0,-242,0,0,0,0,0,0,0,0, - 0,0,0,-89,0,0,0,-417,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -193,-108,-188,-194,-272,0,0,0,0,0, - -198,0,0,0,-190,-199,0,-200,0,0, - 0,0,-203,0,0,0,-156,-63,-192,0, - 0,0,0,-381,-288,0,0,0,0,0, - 0,0,0,0,-286,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-245,0, - 0,0,0,0,-90,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-458,0,0, - -214,0,0,-224,0,0,0,0,0,-204, - -225,-195,0,0,0,0,0,0,0,-501, - 0,-139,-202,0,-227,0,-124,0,0,0, - -327,0,-519,0,0,-241,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-314,-206, - -243,0,-473,0,0,0,0,0,0,0, - 0,0,-121,0,-213,0,0,0,0,-444, - 0,0,0,0,0,0,0,0,0,0, - 0,-252,-240,-132,0,0,0,0,-388,0, - -265,0,0,0,0,0,0,0,0,-247, - 0,0,0,0,0,0,0,-372,0,0, - 0,0,0,0,0,0,-266,-480,0,0, - 0,0,0,0,-276,0,0,0,0,0, - 0,-277,0,0,-281,0,0,0,0,-254, - 0,0,0,0,0,0,-282,-293,-144,0, - 0,0,0,0,-211,0,0,0,0,-296, - 0,0,-297,0,0,-302,0,0,0,0, - 0,0,0,-20,0,0,0,-230,-350,0, - -274,0,-482,-307,0,0,0,0,-255,-256, - 0,0,0,0,-308,0,-257,-289,0,-120, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-324,-287,0,0,0,0,0, - 0,0,0,-1,-329,0,0,0,0,0, - 0,0,0,0,0,0,0,-506,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-298,-337,0,-339, - 0,0,0,0,0,0,0,0,0,-341, - 0,0,0,0,0,-268,0,0,0,0, - 0,0,0,0,0,0,0,-348,-367,0, - 0,0,0,0,0,0,0,0,-231,-368, - 0,0,0,0,0,-235,0,-260,-279,0, - 0,0,0,0,0,-445,0,-305,0,0, - 0,0,0,0,0,0,0,0,0,-374, - -454,0,0,0,0,0,0,0,0,0, - -49,0,0,0,0,-299,-123,-376,0,-469, - -125,-387,-304,0,0,0,0,-306,0,0, - 0,0,0,0,0,0,0,0,0,0, - -378,0,-384,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-320,0,0,0, - 0,0,0,-477,-317,0,0,0,0,-116, - 0,0,0,0,0,0,-385,0,0,-349, - -404,0,-394,0,0,0,0,0,-397,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-244,0,0,-405,0,0,-407,0,0, - 0,0,0,0,0,0,-147,-347,0,0, - 0,0,-409,-323,0,-410,0,0,-411,0, - 0,0,0,0,0,0,-413,0,-331,-333, - 0,-414,0,0,0,0,-127,-419,0,0, - -421,0,0,0,0,0,0,0,0,-427, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-82,0,0,0,-365,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-346,-426,-491,0,0, - 0,-186,0,0,0,0,-474,0,-502,0, - 0,0,0,0,0,0,-366,0,0,0, - 0,-379,0,0,-428,0,-146,0,0,0, - 0,-383,0,-386,0,0,0,0,0,0, - 0,0,-430,0,0,0,0,0,0,0, - -431,-83,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-176,0,0, + 0,-86,0,0,0,0,-177,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-178,0,0,0,-87, + 0,0,0,0,-179,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-418,-432,-434,-436,0, - -84,0,0,0,0,0,0,0,0,0, + 0,0,0,-182,0,0,0,-88,0,0, + 0,0,-183,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-437,-217,0,0,0,-322, + 0,-342,0,0,0,-242,0,0,0,0, + 0,0,0,0,0,0,0,0,-90,0, + 0,0,0,-184,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-442,-422,-424,-447,-50,-464,0,-439,0, - 0,-382,0,-456,-463,0,0,-396,0,0, + 0,0,-193,0,0,-345,0,0,0,0, + -286,0,0,0,0,0,0,0,0,0, + 0,0,0,-323,0,0,0,-331,0,0, + 0,-333,0,-236,0,0,0,0,-313,0, + -23,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -510,0,-470,0,0,0,0,-393,-489,-503, - -197,0,0,0,-508,0,0,0,0,0, - 0,-425,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-423,0,-513,0, - -395,0,0,0,0,0,0,0,0,0, + 0,0,0,-274,0,0,0,0,0,0, + 0,0,0,0,0,0,-245,0,0,-473, + 0,-456,-194,-388,0,0,-233,0,0,0, + 0,-507,0,0,0,0,0,0,0,0, + 0,0,0,0,-239,0,0,0,0,-371, + 0,0,0,0,-370,0,0,-350,0,-81, + 0,0,0,0,-199,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-200,-203,0,0,0, + 0,0,0,0,-364,0,0,0,0,-346, + -149,0,0,0,0,-217,0,0,0,0, + -214,0,-305,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-365, + -16,0,0,0,0,0,0,0,0,0, + -427,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-77,-224,-366, + -459,-120,0,0,0,0,-408,0,0,0, + -225,0,0,0,0,0,0,0,0,0, + -379,-501,0,0,0,0,0,-271,0,0, + 0,0,0,0,0,-227,0,0,-347,0, + 0,0,0,0,0,0,0,0,-241,0, + 0,0,0,0,0,0,-237,0,0,-121, + 0,0,0,0,0,0,0,-137,0,0, + 0,0,-243,0,-422,-383,-474,0,0,0, + 0,0,0,-19,0,0,0,0,0,-288, + 0,0,0,0,0,0,0,0,-416,-252, + 0,-251,0,0,0,0,0,0,0,0, + 0,-265,0,0,0,0,-318,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-429,-415,0,0,0, - 0,-492,0,-448,-452,0,0,0,0,0, - 0,0,0,0,0,0,0,-229,0,-412, - -457,0,0,0,0,0,0,0,0,0, - 0,0,0,-205,0,0,-518,0,0,0, - 0,0,0,0,0,0,0,0,-465,0, - 0,0,0,0,0,-459,0,0,0,0, - -438,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-153,0,0, - 0,0,-467,0,0,0,0,0,0,0, + 0,0,0,0,-250,0,0,0,0,0, + 0,-481,0,0,0,0,0,0,0,0, + 0,0,-386,0,0,0,-266,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -451,-461,0,0,0,0,0,0,0,0, + -124,0,0,0,0,-276,0,-246,0,0, + 0,0,-277,-281,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-282,-418,0, + -293,0,0,0,0,0,-483,-296,-123,0, + 0,0,0,0,0,0,0,-125,0,-146, + -238,0,0,0,0,0,0,0,0,-496, + 0,0,0,0,0,-297,-302,-132,0,0, + 0,0,-307,0,-389,0,0,0,0,-417, + 0,0,-423,0,-308,-445,0,0,0,0, + 0,0,-49,0,0,0,0,-458,0,0, + 0,-324,0,0,0,0,0,0,-329,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-471,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -485,-486,-497,0,0,0,0,0,0,0, - 0,0,0,0,0,-453,-321,0,0,0, - 0,0,-487,-511,-516,-441,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-424, + 0,0,0,0,0,0,0,-82,0,0, + 0,0,-339,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -521,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-498,0,0,0,0,0, + 0,-83,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -479,0,0,0,0,0,0,0,0,0, - -220,0,0,0,0,0,-16,-19,-45,0, + 0,0,0,0,0,-84,0,0,0,0, + -341,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-322, 0,0,0,0,0,0,0,0,0,0, + 0,0,-391,0,0,0,0,-477,0,0, 0,0,0,0,0,0,0,0,0,0, + -425,-367,-1,-387,-139,0,-108,0,0,0, + -368,0,-374,-376,0,-253,0,0,0,0, + -273,0,0,0,0,-466,0,0,0,0, + 0,0,0,0,0,0,-378,-384,-385,0, + -394,0,0,0,-404,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -446,0,-278,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-488, + 0,0,0,0,0,-290,0,0,0,0, + -397,0,-405,-407,0,0,0,0,0,0, + 0,-409,0,-429,0,0,0,0,0,-449, + 0,-410,0,0,0,-505,0,0,0,0, + 0,0,0,0,-24,0,0,0,0,-411, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-207,0,0,0,0, + 0,0,0,0,0,0,0,-25,0,0, + 0,0,-413,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -421,-453,-460,0,-426,0,0,0,-26,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-27,0,0,0,0,-428,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-28,0,0,0,0,-380, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-29,0,0, + 0,0,-430,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -65,0,0,0,0,-431,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -490,0,0,0,0,0,0,0,0,0, + 0,0,0,-78,0,0,0,0,-497,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-79,0,0,0, + 0,-451,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-128, + 0,0,0,0,-432,0,-434,-436,-437,-485, + 0,0,0,0,-455,-500,0,-328,0,0, + 0,0,-438,-443,0,0,-136,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -76,-494,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-215,0, + -415,-448,-457,-464,0,0,-209,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-515,0,0,0,0,0,0,0, + -382,0,0,-471,-470,0,-220,0,0,0, + 0,0,-395,0,0,0,-462,0,-490,-504, + 0,0,-468,-472,0,0,0,-127,0,-186, + 0,0,0,0,-509,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-478,0, + 0,0,0,0,0,0,0,0,-261,0, + -502,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-300,0,-492,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-412,0,0,0,0, + 0,-221,0,0,0,0,0,0,-506,0, + -486,-197,0,0,0,0,0,-487,0,0, + 0,0,0,0,0,-272,0,-520,-46,0, + 0,0,-258,0,0,0,-439,0,0,-503, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-498,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-520,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-511,0, + -488,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-447,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-452,0,0,-512, + 0,0,-268,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-381,-499,0, + 0,0,0,0,0,0,-517,-144,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-514,0,0,0,0,0, + 0,0,0,-454,-519,0,0,-522,0,0, + 0,0,0,0,0,0,-314,0,-295,0, + 0,0,0,0,0,0,0,0,0,-287, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-523,0,0,0,0,0, + 0,0,-205,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-480, + 0,0,0,0,0,0,0,0,-442,0, 0,0,0,0,0,0,0,0,0,0, - 0,-216,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-489,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-207,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-24,0,0,0,0,0,0, + 0,0,0,0,0,0,-259,0,0,-491, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-25,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-26,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-27, 0,0,0,0,0,0,0,0,0,0, + -495,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-28,0,0,0,0,0,0,0,0, + -440,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-29,0,0,0,0,0,0, + 0,-516,0,-348,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-65,0,0,0,0, + 0,-441,-393,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-78,0,0, + 0,0,-521,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-79, + 0,0,-465,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-524,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-128,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-258,0,0,0,0,0,-136,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-509,-517,0,0,0,0,-209,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-358,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-251,0,0,0,0,0, - 0,0,0,0,0,0,0,-446,0,0, + 0,0,0,0,-306,0,0,0,0,0, + 0,0,0,0,0,0,0,-467,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-337,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-359,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-21,0,0,0, + 0,-469,0,0,0,0,0,-222,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-259, - -325,0,0,0,0,0,0,0,0,0, - 0,0,-318,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-358, + -229,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-476,0,0,0, - 0,0,0,0,0,0,0,0,-466,0, 0,0,0,0,0,0,0,0,0,0, - -390,0,0,0,0,-335,0,0,0,0, + 0,0,0,0,-396,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-153,0,0,0,0,0,-191, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-269,0,0, + 0,0,0,0,-215,0,0,0,0,0, + -196,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-221,0,0,0,0,0, - 0,0,-440,0,0,0,0,0,0,0, - -359,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-222,0,0,0,0,0, - 0,0,0,-191,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-269,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-196,0,0,0,-201,0, 0,0,0,0,0,0,0,0,0,0, + -325,0,0,0,0,0,0,-285,0,0, + 0,0,-201,0,0,0,-390,0,0,-223, 0,0,0,0,0,0,0,0,0,0, - 0,-285,0,0,0,0,0,-310,0,0, + 0,0,-310,0,0,0,0,0,0,0, + -332,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-332,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-338, + 0,0,0,0,0,0,0,-375,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-338,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-375,0,0,0,0, - 0,-377,0,0,0,0,0,0,0,0, + 0,0,-377,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-462,0,0,0,0,0,-481,0, + 0,0,0,0,0,0,-463,0,0,0, + 0,0,0,0,0,-482,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-321, + 0,0,-353,0,0,0,0,0,0,-216, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-263, - 0,0,0,0,0,0,0,0,-353,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-328,0,0,0, - 0,0,0,0,0,-351,0,0,0,0, - 0,0,0,0,0,-44,0,-71,-392,0, - 0,0,0,0,-400,0,-443,0,0,0, - 0,0,0,-46,0,0,0,0,0,0, - 0,0,0,0,0,0,-47,0,-48,0, - 0,0,0,0,0,0,0,-210,0,0, + 0,0,0,0,-263,0,0,0,0,0, + 0,0,-351,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-44, + -71,0,-400,0,0,0,0,0,-392,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-401,-402,0,0,0, - 0,-449,0,0,0,0,0,0,-223,0, - -294,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-493,0,0,0, + -444,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-47,0,0,0,0,0,0, + 0,-48,-210,-401,0,0,0,0,0,0, + 0,0,0,-402,0,0,0,0,0,0, + 0,0,0,-450,0,0,0,0,0,0, + 0,-493,0,0,-510,0,0,0,-518,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-294,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-494,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0 + 0,0,0,0,0,0,0 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -547,538 +557,553 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface BaseAction { public final static char baseAction[] = { - 172,4,193,194,195,136,80,33,65,39, - 196,196,197,197,198,198,15,15,15,15, - 15,15,15,15,16,16,16,14,10,10, - 8,8,8,8,8,1,66,66,5,5, - 11,11,11,11,47,47,137,137,138,62, - 62,45,45,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17, - 17,17,17,139,139,139,18,18,18,18, - 18,18,18,18,18,18,18,18,18,19, - 19,176,173,173,174,174,177,141,141,178, - 178,175,175,142,140,140,20,20,21,21, - 22,22,22,24,24,24,24,25,25,25, - 26,26,26,27,27,27,27,27,29,29, - 29,30,30,32,32,34,34,35,35,36, - 36,37,37,41,41,40,40,40,40,40, - 40,40,40,40,40,40,40,40,38,38, - 28,143,143,103,103,106,106,98,199,199, - 71,71,71,71,71,71,71,71,71,72, - 72,72,73,73,57,57,179,179,74,74, - 74,117,117,75,75,75,75,76,76,76, - 76,76,77,81,81,81,81,81,81,81, - 51,51,51,51,51,108,108,109,109,50, - 23,23,23,23,23,46,46,93,93,93, - 93,93,150,150,145,145,145,145,145,146, + 173,5,137,81,81,34,34,66,66,40, + 40,194,194,195,195,196,196,1,1,16, + 16,16,16,16,16,16,16,17,17,17, + 15,11,11,9,9,9,9,9,2,67, + 67,6,6,12,12,12,12,48,48,138, + 138,139,63,63,46,46,18,18,18,18, + 18,18,18,18,18,18,18,18,18,18, + 18,18,18,18,18,18,140,140,140,19, + 19,19,19,19,19,19,19,19,19,19, + 19,19,20,20,177,174,174,175,175,178, + 142,142,179,179,176,176,143,141,141,21, + 21,22,22,23,23,23,25,25,25,25, + 26,26,26,27,27,27,28,28,28,28, + 28,30,30,30,31,31,33,33,35,35, + 36,36,37,37,38,38,42,42,41,41, + 41,41,41,41,41,41,41,41,41,41, + 41,39,39,29,144,144,104,104,107,107, + 99,197,197,72,72,72,72,72,72,72, + 72,72,73,73,73,74,74,58,58,180, + 180,75,75,75,118,118,76,76,76,76, + 77,77,77,77,77,78,82,82,82,82, + 82,82,82,52,52,52,52,52,109,109, + 110,110,51,24,24,24,24,24,47,47, + 94,94,94,94,94,151,151,146,146,146, 146,146,147,147,147,148,148,148,149,149, - 149,94,94,94,94,94,95,95,95,87, - 12,13,13,13,13,13,13,13,13,13, - 13,13,82,82,82,121,121,121,121,121, - 119,119,119,88,120,120,152,152,151,151, - 123,123,124,43,43,42,86,86,89,89, - 91,92,90,44,53,49,153,153,54,52, - 85,85,154,154,144,144,125,125,79,79, - 155,155,63,63,63,59,59,58,64,64, - 69,69,56,56,56,96,96,105,104,104, - 61,61,60,60,55,55,48,107,107,107, - 99,99,99,100,101,101,101,102,102,110, - 110,110,112,112,111,111,200,200,97,97, - 181,181,181,181,181,127,67,67,157,180, - 180,128,128,128,128,182,182,31,31,118, - 129,129,129,129,201,201,113,113,122,122, - 122,159,160,160,160,160,160,160,160,160, - 160,185,185,183,183,184,184,161,161,161, - 161,162,186,115,114,114,187,187,163,163, - 131,131,130,130,130,202,202,9,188,188, - 189,164,156,156,165,165,166,167,167,6, - 6,7,169,169,169,169,169,169,169,169, - 169,169,169,169,169,169,169,169,169,169, - 169,169,169,169,169,169,169,169,169,169, - 169,169,169,169,169,169,169,169,169,169, - 169,169,169,169,68,70,70,170,170,132, - 132,133,133,133,133,133,133,2,3,171, - 171,168,168,134,134,134,83,84,78,158, - 158,116,116,190,190,190,135,135,126,126, - 191,191,172,172,1410,1720,1713,1201,3529,2899, - 31,1274,28,32,27,29,1833,260,26,24, - 53,1377,108,77,78,110,1419,56,1460,1445, - 1495,1461,3091,1544,1503,272,1587,1609,1545,1594, - 1623,145,2889,3357,161,146,1450,2125,1154,33, - 1201,4595,3588,31,1274,28,32,60,29,1774, - 2751,3309,1154,33,1201,229,2924,31,1274,28, - 32,27,29,1118,260,26,24,53,1377,108, - 77,78,110,1419,3323,1885,275,69,1154,33, - 1201,274,273,31,1274,40,32,232,227,228, - 3309,1720,1713,1201,1943,2924,31,1274,28,32, - 27,29,1118,260,26,24,53,1377,108,77, - 78,85,239,242,245,248,2767,2109,448,2606, - 396,34,4706,1797,499,1154,33,1201,63,4002, - 31,1274,28,32,27,29,837,676,506,2950, - 2813,3097,3101,3227,4262,2272,1154,33,1201,2324, - 2924,31,1274,28,32,2562,29,1118,260,26, - 24,53,1377,108,77,78,110,1419,346,1460, - 1445,1495,1461,1605,1544,1503,64,1587,3282,1545, - 1594,1623,145,3532,418,513,146,3102,69,1154, - 33,1201,2990,2678,31,1274,1663,32,1774,282, - 514,2272,1154,33,1201,2324,2924,31,1274,28, - 32,2562,29,1118,260,26,24,53,1377,108, - 77,78,110,1419,346,1460,1445,1495,1461,336, - 1544,1503,3123,1587,1553,1545,1594,1623,145,67, - 587,513,146,685,585,1670,43,1201,185,2678, - 42,1274,3309,1154,33,1201,514,2924,31,1274, - 28,32,27,29,1118,260,26,24,53,1377, - 108,77,78,110,1419,56,1460,1445,1967,509, - 3441,1102,441,3080,3098,2651,1154,33,1201,2324, - 2924,31,1274,28,32,2562,29,1118,260,26, - 24,53,1377,108,77,78,110,1419,346,1460, - 1445,1495,1461,2554,1544,1503,2581,1587,1473,1545, - 1594,1623,145,3282,843,513,146,1774,508,2744, - 1201,2034,90,2678,104,509,1774,3049,2928,1201, - 514,2693,1154,33,1201,2876,2924,31,1274,28, - 32,27,29,1118,260,26,24,53,1377,108, - 77,78,110,1419,994,1460,1445,1495,1461,2668, - 1544,1503,2581,1587,335,1545,1594,1623,145,1689, - 2823,381,146,3309,1154,33,1201,2060,2924,31, - 1274,28,32,27,29,1118,260,26,24,53, - 1377,108,77,78,110,1419,384,1460,1445,1495, - 1461,617,1544,2284,713,2765,1154,33,1201,510, - 2924,31,1274,28,32,27,29,1118,260,26, - 24,53,1377,108,77,78,110,1419,56,1460, - 1445,1495,1461,3796,1544,1503,1093,1587,3493,1545, - 1594,1623,145,3879,2225,381,146,413,1154,33, - 1201,2886,4002,31,1274,28,32,62,29,385, - 67,1901,3077,280,741,1016,1812,1154,33,1201, - 382,2924,31,1274,28,32,27,29,1118,260, - 26,24,53,1377,108,77,78,110,1419,158, - 1460,1445,1495,1461,3307,1544,1503,92,1587,165, - 1545,1594,1623,145,2990,355,161,146,1774,508, - 277,1201,1205,2773,44,2741,2327,1154,33,1201, - 356,3588,31,1274,28,32,59,29,2112,1812, - 1154,33,1201,386,2924,31,1274,28,32,27, - 29,1118,260,26,24,53,1377,108,77,78, - 110,1419,56,1460,1445,1495,1461,4649,1544,1503, - 847,1587,2937,1545,1594,1623,145,3278,761,375, - 146,1812,1154,33,1201,1202,2924,31,1274,28, - 32,27,29,1118,260,26,24,53,1377,108, - 77,78,110,1419,2322,1460,1445,1495,1461,532, - 1544,1503,442,1587,3087,1545,1594,1623,145,676, - 3493,375,146,1812,1154,33,1201,918,2924,31, - 1274,28,32,27,29,1118,260,26,24,53, - 1377,108,77,78,110,1419,1473,1460,1445,1495, - 1461,3282,1544,1503,89,1587,104,1545,1594,1623, - 145,3088,56,375,146,63,374,4712,2561,3029, - 1154,33,1201,2879,2924,31,1274,28,32,27, - 29,1118,260,26,24,53,1377,108,77,78, - 110,1419,3531,1460,1445,1495,1461,1054,1544,1503, - 2898,1587,335,1545,1594,1623,145,493,373,381, - 146,2609,1154,33,1201,918,2924,31,1274,28, - 32,27,29,1118,260,26,24,53,1377,108, - 77,78,110,1419,3090,1460,1445,1495,1461,617, - 1544,1503,4599,1587,2917,1545,1594,1623,145,3514, - 371,144,146,1812,1154,33,1201,3139,2924,31, - 1274,28,32,27,29,1118,260,26,24,53, - 1377,108,77,78,110,1419,2858,1460,1445,1495, - 1461,56,1544,1503,442,1587,4733,1545,1594,1623, - 145,287,2875,162,146,455,1519,379,1812,1154, - 33,1201,2843,2924,31,1274,28,32,27,29, - 1118,260,26,24,53,1377,108,77,78,110, - 1419,3413,1460,1445,1495,1461,2837,1544,1503,492, - 1587,4628,1545,1594,1623,145,3139,2822,157,146, - 1812,1154,33,1201,2946,2924,31,1274,28,32, - 27,29,1118,260,26,24,53,1377,108,77, - 78,110,1419,3413,1460,1445,1495,1461,617,1544, - 1503,3399,1587,519,1545,1594,1623,145,1403,2033, - 156,146,1812,1154,33,1201,389,2924,31,1274, - 28,32,27,29,1118,260,26,24,53,1377, - 108,77,78,110,1419,916,1460,1445,1495,1461, - 404,1544,1503,451,1587,1539,1545,1594,1623,145, - 583,2872,155,146,1812,1154,33,1201,284,2924, - 31,1274,28,32,27,29,1118,260,26,24, - 53,1377,108,77,78,110,1419,328,1460,1445, - 1495,1461,519,1544,1503,2733,1587,774,1545,1594, - 1623,145,3071,142,154,146,1812,1154,33,1201, - 2876,2924,31,1274,28,32,27,29,1118,260, - 26,24,53,1377,108,77,78,110,1419,427, - 1460,1445,1495,1461,1665,1544,1503,1102,1587,3147, - 1545,1594,1623,145,849,317,153,146,1812,1154, - 33,1201,3083,2924,31,1274,28,32,27,29, - 1118,260,26,24,53,1377,108,77,78,110, - 1419,329,1460,1445,1495,1461,728,1544,1503,3531, - 1587,56,1545,1594,1623,145,4739,228,152,146, - 1812,1154,33,1201,572,2924,31,1274,28,32, - 27,29,1118,260,26,24,53,1377,108,77, - 78,110,1419,3413,1460,1445,1495,1461,617,1544, - 1503,3411,1587,1518,1545,1594,1623,145,1034,1081, - 151,146,1812,1154,33,1201,522,2924,31,1274, - 28,32,27,29,1118,260,26,24,53,1377, - 108,77,78,110,1419,520,1460,1445,1495,1461, - 402,1544,1503,847,1587,3445,1545,1594,1623,145, - 3091,400,150,146,1812,1154,33,1201,285,2924, - 31,1274,28,32,27,29,1118,260,26,24, - 53,1377,108,77,78,110,1419,3531,1460,1445, - 1495,1461,406,1544,1503,847,1587,1546,1545,1594, - 1623,145,486,1472,149,146,1812,1154,33,1201, - 1545,2924,31,1274,28,32,27,29,1118,260, - 26,24,53,1377,108,77,78,110,1419,3413, - 1460,1445,1495,1461,305,1544,1503,2899,1587,3010, - 1545,1594,1623,145,521,3075,148,146,1812,1154, - 33,1201,3417,2924,31,1274,28,32,27,29, - 1118,260,26,24,53,1377,108,77,78,110, - 1419,520,1460,1445,1495,1461,1473,1544,1503,918, - 1587,3282,1545,1594,1623,145,3085,3392,147,146, - 3156,1154,33,1201,302,2924,31,1274,28,32, - 27,29,1118,260,26,24,53,1377,108,77, - 78,110,1419,861,1460,1445,1495,1461,1519,1544, - 1503,3393,1587,2332,1545,1594,2673,167,1812,1154, - 33,1201,1866,2924,31,1274,28,32,27,29, - 1118,260,26,24,53,1377,108,77,78,110, - 1419,4289,1460,1445,1495,1461,1799,1544,1503,454, - 1587,3282,1545,1594,1623,145,390,424,142,146, - 331,413,1154,33,1201,669,4002,31,1274,28, - 32,61,29,2944,3195,1154,33,1201,2763,2924, - 31,1274,28,32,27,29,1118,260,26,24, - 53,1377,108,77,78,110,1419,755,1460,1445, - 1495,1461,1866,1544,1503,918,1587,96,1545,1594, - 1623,145,2738,2747,192,146,3309,1154,33,1201, - 2883,2924,31,1274,28,32,27,29,1118,260, - 26,24,53,1377,108,77,78,110,1419,617, - 1460,1445,1495,1461,1519,1544,1503,2763,1587,2864, - 1545,1594,2673,167,3309,1154,33,1201,847,2924, - 31,1274,28,32,27,29,1118,260,26,24, - 53,1377,108,77,78,110,1419,25,1460,1445, - 1495,1461,830,1544,1503,4319,1587,98,1545,1594, - 2673,167,69,1154,33,1201,2869,182,31,1274, - 1705,32,1774,1831,388,1201,2516,508,277,1201, - 3309,1154,33,1201,291,2924,31,1274,28,32, - 27,29,1118,260,26,24,53,1377,108,77, - 78,110,1419,34,1460,1445,1495,1461,1519,1544, - 1503,2887,1587,2096,1545,1594,2673,167,3309,1154, - 33,1201,2929,2924,31,1274,28,32,27,29, - 1118,260,26,24,53,1377,108,77,78,110, - 1419,72,1460,1445,1495,1461,830,1544,1503,1726, - 1587,3417,1545,1594,2673,167,332,338,2516,508, - 2913,1201,1774,508,281,1201,1774,1831,388,1201, - 1774,508,279,1201,3309,1154,33,1201,420,2924, - 31,1274,28,32,27,29,1118,260,26,24, - 53,1377,108,77,78,110,1419,428,1460,1445, - 1495,1461,1519,1544,1503,675,1587,2096,1545,1594, - 2673,167,3348,1154,33,1201,419,2924,31,1274, - 28,32,27,29,1118,260,26,24,53,1377, - 108,77,78,110,1419,71,1460,1445,1495,1461, - 2123,1544,1503,3389,1587,1391,1545,1594,2673,167, - 337,338,1774,508,2964,1201,2875,847,2877,314, - 1774,1831,388,1201,3389,391,424,3417,3309,1154, - 33,1201,422,2924,31,1274,28,32,27,29, - 1118,260,26,24,53,1377,108,77,78,110, - 1419,447,1460,1445,1495,1461,198,1544,1503,3413, - 1587,2182,1545,2424,1519,1016,3309,1154,33,1201, - 3385,2924,31,1274,28,32,27,29,1118,260, - 26,24,53,1377,108,77,78,110,1419,158, - 1460,1445,1495,1461,658,1544,1503,56,1587,2677, - 2350,3309,1154,33,1201,3417,2924,31,1274,28, - 32,27,29,1118,260,26,24,53,1377,108, - 77,78,110,1419,310,1460,1445,1495,1461,358, - 1544,1503,3531,2209,3387,1831,388,1201,528,2834, - 1722,393,424,3389,1786,317,234,260,3077,278, - 357,2606,396,1774,1831,388,1201,2606,396,528, - 2329,3309,1154,33,1201,272,2924,31,1274,28, - 32,27,29,1118,260,26,24,53,1377,108, - 77,78,110,1419,429,1460,1445,1495,1461,378, - 2195,3309,1154,33,1201,229,2924,31,1274,28, - 32,27,29,1118,260,26,24,53,1377,108, - 77,78,110,1419,2120,1917,275,920,295,392, - 424,274,273,920,295,1519,3000,232,227,228, - 3309,1154,33,1201,1619,2924,31,1274,28,32, - 27,29,1118,260,26,24,53,1377,108,77, - 78,86,239,242,245,248,2767,2748,88,293, - 3289,294,2752,1797,3157,293,3469,294,1532,327, - 3440,3413,858,67,2760,1519,2970,2002,528,2950, - 2813,3097,3101,3227,4262,3309,1154,33,1201,376, - 2924,31,1274,28,32,27,29,1118,260,26, - 24,53,1377,108,77,78,110,1419,55,1460, - 1445,1495,2206,3309,1154,33,1201,95,2924,31, - 1274,28,32,27,29,1118,260,26,24,53, - 1377,108,77,78,110,1419,301,1460,1445,1495, - 2208,3309,1154,33,1201,2471,2924,31,1274,28, - 32,27,29,1118,260,26,24,53,1377,108, - 77,78,110,1419,3412,1460,1445,1969,3309,1154, - 33,1201,2269,2924,31,1274,28,32,27,29, - 1118,260,26,24,53,1377,108,77,78,110, - 1419,1468,1460,1445,2016,3309,1154,33,1201,830, - 2924,31,1274,28,32,27,29,1118,260,26, - 24,53,1377,108,77,78,110,1419,3081,1460, - 1445,2061,2044,1154,33,1201,2965,4622,31,1274, - 28,32,342,29,3309,1154,33,1201,847,2924, - 31,1274,28,32,27,29,1118,260,26,24, - 53,1377,108,77,78,110,1419,438,1460,2099, - 2096,2755,2227,67,3396,2837,1016,3528,286,2875, - 4628,2316,1831,388,1201,67,3398,197,3414,1762, - 323,1502,325,2224,3879,318,1418,918,2759,1217, - 158,354,1186,2101,2932,3142,1403,2882,2324,2324, - 2416,2897,272,334,338,1684,1154,33,1201,3667, - 4622,31,1274,28,32,342,29,2612,2612,3079, - 278,347,1001,986,352,3309,1154,33,1201,2885, - 2924,31,1274,28,32,27,29,1118,260,26, - 24,53,1377,108,77,78,110,1419,3511,1460, - 2190,1279,2324,276,2978,46,2741,354,274,273, - 1519,2982,67,323,1502,325,2535,54,318,1418, - 3413,225,2749,918,354,2111,3544,2865,2651,2679, - 1201,918,4574,3072,3137,2202,2981,347,1001,986, - 352,500,363,353,3418,345,774,213,210,203, - 211,212,214,368,347,1001,986,352,51,830, - 67,2885,2750,3519,3182,204,205,2324,2867,293, - 52,294,1671,833,876,1519,498,499,426,215, - 847,206,207,208,209,300,225,296,297,298, - 299,354,1341,1519,1700,1712,388,1201,383,2959, - 448,3458,2945,330,4706,589,3721,1739,91,3418, - 1519,99,213,210,203,211,212,214,3531,201, - 2096,347,1001,986,352,51,3059,3426,3545,2750, - 204,205,2324,2867,229,3486,293,52,294,1671, - 2665,2666,3488,732,215,3489,206,207,208,209, - 1519,225,296,297,298,299,2661,3490,1454,1769, - 1712,388,1201,3276,338,67,241,227,228,1062, - 231,3721,2249,2998,3418,378,3475,213,210,203, - 211,212,214,70,1732,1712,388,1201,67,918, - 51,2471,2217,3620,3150,204,205,2324,2867,1519, - 1519,293,52,294,1671,3527,1213,1519,1519,215, - 1475,206,207,208,209,51,225,296,297,298, - 299,2661,236,260,3236,1473,293,52,294,1671, - 3282,885,69,68,2137,493,3721,2461,1016,3418, - 67,3204,213,210,203,211,212,214,2319,1154, - 33,1201,2965,4622,31,1274,28,32,342,29, - 204,205,158,2867,445,3080,3098,1519,1473,100, - 2918,229,1110,3282,215,3314,206,207,208,209, - 3507,335,296,297,298,299,1508,1154,33,1201, - 3068,4622,31,1274,28,32,342,29,830,2925, - 58,3721,2760,237,227,228,323,1502,325,3416, - 3477,318,1418,2295,286,2875,67,354,67,67, - 2931,3390,2589,2799,335,403,847,523,1691,3010, - 33,1201,3008,4685,31,1274,28,32,342,29, - 3568,847,1613,2882,320,2934,325,347,1001,986, - 352,920,1712,388,1201,524,1519,846,3237,2096, - 847,1548,87,3431,4551,199,534,988,155,1154, - 33,1201,3008,4622,31,1274,28,32,342,29, - 219,3240,51,3530,335,225,323,1502,325,57, - 158,318,1418,293,52,294,1671,1519,3150,3512, - 1978,183,3297,338,847,67,567,538,3356,3198, - 1748,213,210,202,211,212,214,3536,229,172, - 1519,1,229,3241,4486,534,323,1502,325,3243, - 326,318,1418,186,170,171,173,174,175,176, - 177,3103,2746,309,225,3567,2324,3137,3569,158, - 244,227,228,103,247,227,228,67,2746,1978, - 183,1016,2324,3244,67,2612,3247,3356,3038,3248, - 213,210,202,211,212,214,867,3251,172,67, - 67,2612,2734,4769,1160,2815,184,2806,2744,415, - 3020,3564,187,170,171,173,174,175,176,177, - 1499,1154,33,1201,3008,4685,31,1274,28,32, - 342,29,1621,3309,1154,33,1201,1519,2924,31, - 1274,28,32,27,29,1118,260,26,24,53, - 1377,108,77,78,110,1932,67,3572,847,362, - 2193,3161,920,1712,388,1201,589,67,229,847, - 3302,1016,2948,2776,2801,362,335,67,323,1502, - 325,2214,67,318,1418,3391,3438,2740,3257,2776, - 2801,2324,67,51,67,3653,4815,4313,1297,2155, - 250,227,228,3613,293,52,294,1671,308,2765, - 346,3571,3309,1154,33,1201,4486,2924,31,1274, - 28,32,27,29,1118,260,26,24,53,1377, - 108,77,78,110,1933,2330,67,3614,3069,3255, - 4358,3309,1154,33,1201,312,2924,31,1274,28, - 32,27,29,1118,260,26,24,53,1377,108, - 77,78,110,1940,3081,3573,2314,1831,388,1201, - 2052,1154,33,1201,3414,4685,31,1274,28,32, - 342,29,3570,1519,67,3596,874,3589,2333,1224, - 1016,2324,3628,534,3618,1795,2324,272,241,1154, - 33,1201,3240,4622,31,1274,28,32,342,29, - 346,847,346,3256,163,225,446,158,830,3664, - 3666,920,1712,388,1201,3617,336,191,323,1502, - 325,5311,3581,319,1418,3673,3611,4469,3418,354, - 5311,213,210,203,211,212,214,1699,2832,847, - 4314,3418,51,274,273,2324,320,2934,325,204, - 205,2905,2867,293,52,294,1671,5311,2338,349, - 1001,986,352,494,225,206,207,208,209,2096, - 526,296,297,298,299,5311,67,1856,304,2254, - 2738,1016,1946,5311,67,67,1016,3418,1376,2803, - 213,210,203,211,212,214,3559,5311,1660,5311, - 173,1519,2324,4760,534,158,5311,5311,204,205, - 158,2867,3404,338,2736,3066,200,847,2324,3282, - 165,225,516,225,206,207,208,209,158,1519, - 296,297,298,299,3144,5311,67,2612,1978,183, - 2868,259,5311,3103,3026,534,3356,407,5311,213, - 210,202,211,212,214,5311,194,172,2134,1712, - 388,1201,3780,1519,225,1411,408,3652,2867,158, - 335,3402,170,171,173,174,175,176,177,1978, - 183,3646,67,5311,5311,2324,2933,3356,3431,51, - 213,210,202,211,212,214,3821,5311,172,5311, - 293,52,294,1671,225,1342,1519,5311,5311,5311, - 4599,362,179,170,171,173,174,175,176,177, - 3386,1519,1519,1519,2833,2776,2801,3418,2841,5311, - 213,210,203,211,212,214,3654,2736,5311,3862, - 2324,2324,3282,3597,1519,1519,976,2988,204,205, - 534,2867,5311,5311,1579,1697,380,409,411,225, - 2612,1519,311,5311,206,207,208,209,5311,225, - 296,297,298,299,158,67,5311,3547,3944,881, - 5311,1361,3418,4518,165,213,210,203,211,212, - 214,3537,3356,335,3985,2324,1011,5311,5311,5311, - 5311,2339,5311,204,205,1016,2867,2805,1038,67, - 5311,2324,534,2324,225,5311,5311,517,5311,206, - 207,208,209,5311,5311,296,297,298,299,158, - 346,346,346,3390,362,5311,158,3418,5311,2890, - 213,210,203,211,212,214,1964,2833,2776,2801, - 345,5311,3100,5311,534,2458,2678,2678,204,205, - 5311,2867,5311,1828,1747,5311,920,1712,388,1201, - 5311,5311,216,225,206,207,208,209,158,5311, - 296,297,298,299,5311,5311,5311,5311,1978,183, - 5311,431,5311,5311,5311,534,3356,51,5311,213, - 210,202,211,212,214,5311,5311,172,293,52, - 294,1671,5311,2709,225,5311,5311,5311,5311,158, - 5311,190,170,171,173,174,175,176,177,1978, - 183,874,517,5311,5311,1016,534,3356,5311,5311, - 213,210,202,211,212,214,5311,5311,172,920, - 1712,388,1201,5311,5311,225,5311,5311,5311,163, - 158,5311,3445,170,171,173,174,175,176,177, - 1978,183,5311,603,5311,5311,451,534,3356,5311, - 51,213,210,202,211,212,214,5311,5311,172, - 5311,293,52,294,48,437,225,5311,5311,5311, - 5311,158,5311,193,170,171,173,174,175,176, - 177,1978,183,5311,689,5311,5311,5311,534,3356, - 5311,5311,213,210,202,211,212,214,5311,5311, - 172,5311,5311,5311,2465,5311,5311,225,5311,5311, - 5311,5311,158,5311,189,170,171,173,174,175, - 176,177,1978,183,5311,775,5311,5311,5311,534, - 3356,5311,5311,213,210,202,211,212,214,5311, - 5311,172,920,1712,388,1201,5311,5311,225,5311, - 5311,5311,5311,158,5311,196,170,171,173,174, - 175,176,177,1978,183,5311,5311,5311,5311,5311, - 5311,3356,5311,51,213,210,202,211,212,214, - 5311,5311,172,5311,293,52,294,1671,5311,885, - 5311,5311,5311,5311,5311,5311,195,170,171,173, - 174,175,176,177,3309,1154,33,1201,5311,2924, - 31,1274,28,32,27,29,1118,260,26,24, - 53,1377,108,77,78,84,3309,1154,33,1201, - 5311,2924,31,1274,28,32,27,29,1118,260, - 26,24,53,1377,108,77,78,83,3309,1154, - 33,1201,5311,2924,31,1274,28,32,27,29, - 1118,260,26,24,53,1377,108,77,78,82, - 3309,1154,33,1201,5311,2924,31,1274,28,32, - 27,29,1118,260,26,24,53,1377,108,77, - 78,81,3309,1154,33,1201,5311,2924,31,1274, - 28,32,27,29,1118,260,26,24,53,1377, - 108,77,78,80,3309,1154,33,1201,5311,2924, - 31,1274,28,32,27,29,1118,260,26,24, - 53,1377,108,77,78,79,3093,1154,33,1201, - 5311,2924,31,1274,28,32,27,29,1118,260, - 26,24,53,1377,108,77,78,106,3309,1154, - 33,1201,5311,2924,31,1274,28,32,27,29, - 1118,260,26,24,53,1377,108,77,78,112, - 3309,1154,33,1201,5311,2924,31,1274,28,32, - 27,29,1118,260,26,24,53,1377,108,77, - 78,111,3449,1831,388,1201,5311,2834,5311,5311, - 5311,5311,5311,5311,235,260,5311,5311,5311,5311, - 5311,5311,5311,874,5311,5311,5311,1016,5311,3309, - 1154,33,1201,272,2924,31,1274,28,32,27, - 29,1118,260,26,24,53,1377,108,77,78, - 109,163,5311,1991,2064,5311,5311,1016,1016,3309, - 1154,33,1201,229,2924,31,1274,28,32,27, - 29,1118,260,26,24,53,1377,108,77,78, - 107,158,158,5311,275,2316,1831,388,1201,274, - 273,165,165,5311,5311,233,227,228,1762,1154, - 33,1201,3008,4622,31,1274,28,32,342,29, - 5311,5311,5311,5311,5311,5311,272,5311,5311,5311, - 240,243,246,249,2767,5311,3007,3270,1154,33, - 1201,1797,2924,31,1274,28,32,27,29,1118, - 260,26,24,53,1377,87,77,78,5311,5311, - 874,874,5311,5311,1016,1016,323,1502,325,3675, - 3691,318,1418,2316,1831,388,1201,75,5311,5311, - 5311,5311,274,273,5311,5311,5311,2155,163,163, - 2037,3010,33,1201,3008,4622,31,1274,28,32, - 342,29,5311,5311,272,5311,5311,327,1154,33, - 1201,3008,4622,31,1274,28,32,342,29,155, - 1154,33,1201,3008,4622,31,1274,28,32,342, - 29,874,5311,312,5311,1016,935,1154,33,1201, - 5311,4685,31,1274,28,32,342,29,323,1502, - 325,5311,3081,318,1418,343,5311,5311,5311,163, - 274,273,3414,3096,3160,323,1502,325,1737,538, - 318,1418,2324,4760,5311,5311,5311,323,1502,325, - 5311,5311,318,1418,5311,2384,2155,5311,5311,1016, - 5311,225,336,1286,323,1502,325,534,3439,321, - 1418,935,1154,33,1201,5311,4685,31,1274,28, - 32,342,29,158,3026,2429,346,407,5311,1016, - 5311,158,5311,2939,2134,1712,388,1201,5311,5311, - 5311,191,313,5311,3403,1411,408,5311,2867,5311, - 5311,4469,5311,158,5311,1700,1712,388,1201,2117, - 5311,416,3020,2940,3282,51,5311,336,5311,323, - 1502,325,5311,5311,319,1418,293,52,294,1671, - 5311,49,1700,1712,388,1201,51,5311,1700,1712, - 388,1201,5311,5311,5311,5311,1012,293,52,294, - 1671,5311,49,5311,5311,5311,5311,5311,2841,2134, - 1712,388,1201,51,5311,336,5311,738,5311,51, - 3593,5311,5311,5311,293,52,294,1671,354,1552, - 293,52,294,1671,5311,49,5311,409,412,5311, - 51,5311,5311,5311,4423,1700,1712,388,1201,5311, - 2116,293,52,294,1671,5311,49,5311,349,1001, - 986,352,5311,5311,5311,5311,1700,1712,388,1201, - 5311,2012,1700,1712,388,1201,51,5311,5311,5311, - 5311,5311,5311,5311,5311,5311,5311,293,52,294, - 1671,5311,1893,3153,1712,388,1201,51,5311,3259, - 1712,388,1201,51,5311,5311,5311,4423,293,52, - 294,1671,5311,49,293,52,294,1671,5311,49, - 920,1712,388,1201,51,5311,5311,5311,2210,2932, - 51,5311,5311,2324,2343,293,52,294,1671,5311, - 49,293,52,294,1671,5311,49,2316,1831,388, - 1201,51,2612,5311,5311,2407,2316,1831,388,1201, - 5311,2413,293,52,294,1671,1100,1510,1162,3534, - 534,5311,534,2324,5311,2939,5311,1348,272,2324, - 5311,534,5311,5311,67,5311,5311,272,2324,346, - 5311,346,346,5311,158,5311,158,67,2612,67, - 346,2324,527,2324,2152,158,1964,346,67,5311, - 5311,5311,2324,5311,2678,191,2678,2678,5311,5311, - 346,2058,346,2415,530,4469,500,5311,5311,73, - 5311,346,2678,5311,274,273,67,67,74,1749, - 2324,2324,67,274,273,2678,2324,2678,5311,2474, - 5311,2519,1755,1016,1796,1016,2678,5311,5311,346, - 346,497,499,2850,5311,346,5311,2564,5311,5311, - 5311,1016,500,5311,5311,5311,5311,158,5311,158, - 5311,5311,5311,5311,2678,2678,5311,2947,5311,2771, - 2678,504,502,5311,3636,158,5311,531,5311,3039, - 5311,5311,5311,5311,5311,3674,5311,497,499,5311, - 5311,5311,5311,5311,5311,5311,5311,5311,5311,5311, - 5311,5311,5311,5311,5311,5311,5311,5311,5311,5311, - 5311,5311,5311,5311,5311,5311,5311,5311,5311,5311, - 5311,5311,5311,5311,5311,3358,5311,5311,5311,5311, - 5311,5311,5311,5311,5311,5311,5311,5311,5311,5311, - 3467,5311,0,5346,39,0,508,30,0,449, - 1010,0,5346,38,0,2558,128,0,1,439, - 0,1823,39,0,453,1255,0,452,1789,0, - 508,41,0,3197,93,0,35,303,0,387, - 295,0,33,388,0,30,387,0,508,30, - 387,0,2022,39,0,1,557,0,1,5582, - 0,1,5581,0,1,5580,0,1,5579,0, - 1,5578,0,1,5577,0,1,5576,0,1, - 5575,0,1,5574,0,1,5573,0,1,5572, - 0,1,5346,39,0,1,784,0,1707,39, - 0,39,2654,0,5542,238,0,5541,238,0, - 5652,238,0,5651,238,0,5569,238,0,5568, - 238,0,5567,238,0,5566,238,0,5565,238, - 0,5564,238,0,5563,238,0,5562,238,0, - 5582,238,0,5581,238,0,5580,238,0,5579, - 238,0,5578,238,0,5577,238,0,5576,238, - 0,5575,238,0,5574,238,0,5573,238,0, - 5572,238,0,1823,39,238,0,5349,238,0, - 35,283,259,0,508,387,0,1707,50,0, - 3406,234,0,45,5347,0,45,37,0,2558, - 130,0,2558,129,0,27,515,0,5644,440, - 0,2463,440,0,1,5349,0,1,39,0, - 49,37,0,1,94,0,1,5349,226,0, - 1,39,226,0,5346,37,0,5346,5,37, - 0,5346,36,0,5347,47,0,37,47,0, - 5320,405,0,1,3108,0,1,3737,0,1, - 2022,0,3145,322,0,5644,97,0,2463,97, - 0,1,5644,0,1,2463,0,4283,279,0, - 1,659,0,1,2341,0,496,3471,0,1, - 226,0,1,226,3188,0,5320,226,0,159, - 178,0,295,3612,0,226,166,0,188,3903, - 0 + 149,150,150,150,95,95,95,95,95,96, + 96,96,88,13,14,14,14,14,14,14, + 14,14,14,14,14,83,83,83,122,122, + 122,122,122,120,120,120,89,121,121,153, + 153,152,152,124,124,125,44,44,43,87, + 87,90,90,92,93,91,45,54,50,154, + 154,55,53,86,86,155,155,145,145,126, + 126,80,80,156,156,64,64,64,60,60, + 59,65,65,70,70,57,57,57,97,97, + 106,105,105,62,62,61,61,56,56,49, + 108,108,108,100,100,100,101,102,102,102, + 103,103,111,111,111,113,113,112,112,198, + 198,98,98,182,182,182,182,182,128,68, + 68,158,181,181,129,129,129,129,183,183, + 32,32,119,130,130,130,130,114,114,123, + 123,123,160,161,161,161,161,161,161,161, + 161,161,186,186,184,184,185,185,162,162, + 162,162,163,187,116,115,115,188,188,164, + 164,132,132,131,131,131,199,199,10,189, + 189,190,165,157,157,166,166,167,168,168, + 7,7,8,170,170,170,170,170,170,170, + 170,170,170,170,170,170,170,170,170,170, + 170,170,170,170,170,170,170,170,170,170, + 170,170,170,170,170,170,170,170,170,170, + 170,170,170,170,170,69,71,71,171,171, + 133,133,134,134,134,134,134,134,3,4, + 172,172,169,169,135,135,135,84,85,79, + 159,159,117,117,191,191,191,136,136,127, + 127,192,192,173,173,1534,1854,1674,1639,951, + 2794,4038,34,1005,31,35,30,32,1889,263, + 29,27,56,1015,111,80,81,113,1042,1962, + 1091,1052,1145,1129,3188,1198,1165,275,1243,875, + 1200,1293,1297,148,493,2954,164,149,510,1899, + 38,882,36,951,3213,4594,34,1005,31,35, + 63,32,3509,38,882,36,951,232,2471,34, + 1005,31,35,30,32,783,263,29,27,56, + 1015,111,80,81,113,1042,3177,1899,278,2887, + 1755,2813,3820,277,276,3820,4621,3743,1608,235, + 230,231,3468,38,882,36,951,3164,2471,34, + 1005,31,35,30,32,783,263,29,27,56, + 1015,90,80,81,242,245,248,251,3121,1530, + 3216,38,882,36,951,1848,4850,34,1005,31, + 35,30,32,339,953,507,338,533,159,628, + 1765,2952,3010,3159,3168,3818,3710,2413,38,882, + 36,951,2374,2471,34,1005,31,35,2673,32, + 783,263,29,27,56,1015,111,80,81,113, + 1042,349,1091,1052,1145,1129,616,1198,1165,67, + 1243,3649,1200,1293,1297,148,3374,2197,514,149, + 1953,38,882,36,951,2469,2384,34,1005,43, + 35,730,98,515,2413,38,882,36,951,2374, + 2471,34,1005,31,35,2673,32,783,263,29, + 27,56,1015,111,80,81,113,1042,349,1091, + 1052,1145,1129,67,1198,1165,3146,1243,687,1200, + 1293,1297,148,601,1884,514,149,188,70,38, + 449,1719,443,2384,4768,3509,38,882,36,951, + 515,2471,34,1005,31,35,30,32,783,263, + 29,27,56,1015,111,80,81,113,1042,1144, + 1091,2108,510,2267,3646,3715,3258,2942,38,882, + 36,951,2374,2471,34,1005,31,35,2673,32, + 783,263,29,27,56,1015,111,80,81,113, + 1042,349,1091,1052,1145,1129,2664,1198,1165,2714, + 1243,510,1200,1293,1297,148,3623,3902,514,149, + 1030,38,1545,46,951,2887,2384,45,1005,510, + 3799,3820,3148,515,2752,38,882,36,951,358, + 2471,34,1005,31,35,30,32,783,263,29, + 27,56,1015,111,80,81,113,1042,863,1091, + 1052,1145,1129,2876,1198,1165,2714,1243,67,1200, + 1293,1297,148,744,1748,384,149,3509,38,882, + 36,951,4079,2471,34,1005,31,35,30,32, + 783,263,29,27,56,1015,111,80,81,89, + 387,3151,1592,3601,442,3383,3384,2825,38,882, + 36,951,511,2471,34,1005,31,35,30,32, + 783,263,29,27,56,1015,111,80,81,113, + 1042,3159,1091,1052,1145,1129,619,1198,1165,494, + 1243,2134,1200,1293,1297,148,452,521,384,149, + 3168,38,882,36,951,3660,4850,34,1005,31, + 35,65,32,388,3849,3079,2794,99,3102,38, + 882,36,951,385,2471,34,1005,31,35,30, + 32,783,263,29,27,56,1015,111,80,81, + 113,1042,59,1091,1052,1145,1129,3775,1198,1165, + 3737,1243,237,1200,1293,1297,148,335,341,164, + 149,1905,3102,38,882,36,951,3918,2471,34, + 1005,31,35,30,32,783,263,29,27,56, + 1015,111,80,81,113,1042,389,1091,1052,1145, + 1129,158,1198,1165,93,1243,107,1200,1293,1297, + 148,688,3206,378,149,3102,38,882,36,951, + 2794,2471,34,1005,31,35,30,32,783,263, + 29,27,56,1015,111,80,81,113,1042,3219, + 1091,1052,1145,1129,2195,1198,1165,963,1243,1018, + 1200,1293,1297,148,28,335,378,149,2259,38, + 882,36,951,859,4594,34,1005,31,35,62, + 32,2794,628,166,520,587,3102,38,882,36, + 951,439,2471,34,1005,31,35,30,32,783, + 263,29,27,56,1015,111,80,81,113,1042, + 377,1091,1052,1145,1129,75,1198,1165,589,1243, + 677,1200,1293,1297,148,863,880,378,149,3027, + 38,882,36,951,2794,2471,34,1005,31,35, + 30,32,783,263,29,27,56,1015,111,80, + 81,113,1042,376,1091,1052,1145,1129,1249,1198, + 1165,863,1243,61,1200,1293,1297,148,74,2794, + 384,149,393,425,2898,38,882,36,951,3743, + 2471,34,1005,31,35,30,32,783,263,29, + 27,56,1015,111,80,81,113,1042,771,1091, + 1052,1145,1129,59,1198,1165,456,1243,66,1200, + 1293,1297,148,422,374,147,149,1805,3102,38, + 882,36,951,1721,2471,34,1005,31,35,30, + 32,783,263,29,27,56,1015,111,80,81, + 113,1042,455,1091,1052,1145,1129,3170,1198,1165, + 95,1243,863,1200,1293,1297,148,863,382,165, + 149,3102,38,882,36,951,2794,2471,34,1005, + 31,35,30,32,783,263,29,27,56,1015, + 111,80,81,113,1042,67,1091,1052,1145,1129, + 952,1198,1165,359,1243,510,1200,1293,1297,148, + 91,4195,160,149,3102,38,882,36,951,2794, + 2471,34,1005,31,35,30,32,783,263,29, + 27,56,1015,111,80,81,113,1042,3095,1091, + 1052,1145,1129,3767,1198,1165,2113,1243,57,1200, + 1293,1297,148,58,443,159,149,3102,38,882, + 36,951,1547,2471,34,1005,31,35,30,32, + 783,263,29,27,56,1015,111,80,81,113, + 1042,67,1091,1052,1145,1129,4541,1198,1165,699, + 1243,67,1200,1293,1297,148,1137,1272,158,149, + 3102,38,882,36,951,730,2471,34,1005,31, + 35,30,32,783,263,29,27,56,1015,111, + 80,81,113,1042,2884,1091,1052,1145,1129,2267, + 1198,1165,1820,1243,67,1200,1293,1297,148,2764, + 787,157,149,3102,38,882,36,951,2794,2471, + 34,1005,31,35,30,32,783,263,29,27, + 56,1015,111,80,81,113,1042,331,1091,1052, + 1145,1129,863,1198,1165,3719,1243,510,1200,1293, + 1297,148,356,4711,156,149,3102,38,882,36, + 951,1664,2471,34,1005,31,35,30,32,783, + 263,29,27,56,1015,111,80,81,113,1042, + 67,1091,1052,1145,1129,2366,1198,1165,1658,1243, + 67,1200,1293,1297,148,1898,3162,155,149,3102, + 38,882,36,951,2794,2471,34,1005,31,35, + 30,32,783,263,29,27,56,1015,111,80, + 81,113,1042,333,1091,1052,1145,1129,730,1198, + 1165,1798,1243,659,1200,1293,1297,148,94,1758, + 154,149,3102,38,882,36,951,3259,2471,34, + 1005,31,35,30,32,783,263,29,27,56, + 1015,111,80,81,113,1042,67,1091,1052,1145, + 1129,2340,1198,1165,1875,1243,3724,1200,1293,1297, + 148,2978,1880,153,149,3102,38,882,36,951, + 2794,2471,34,1005,31,35,30,32,783,263, + 29,27,56,1015,111,80,81,113,1042,67, + 1091,1052,1145,1129,2794,1198,1165,332,1243,510, + 1200,1293,1297,148,1838,4793,152,149,3102,38, + 882,36,951,2794,2471,34,1005,31,35,30, + 32,783,263,29,27,56,1015,111,80,81, + 113,1042,67,1091,1052,1145,1129,3867,1198,1165, + 3294,1243,510,1200,1293,1297,148,953,4817,151, + 149,3102,38,882,36,951,2794,2471,34,1005, + 31,35,30,32,783,263,29,27,56,1015, + 111,80,81,113,1042,2189,1091,1052,1145,1129, + 405,1198,1165,2798,1243,510,1200,1293,1297,148, + 73,4826,150,149,2986,38,882,36,951,2794, + 2471,34,1005,31,35,30,32,783,263,29, + 27,56,1015,111,80,81,113,1042,67,1091, + 1052,1145,1129,4077,1198,1165,2804,1243,83,1200, + 1293,2877,170,72,969,3102,38,882,36,951, + 2794,2471,34,1005,31,35,30,32,783,263, + 29,27,56,1015,111,80,81,113,1042,1259, + 1091,1052,1145,1129,1259,1198,1165,3722,1243,984, + 1200,1293,1297,148,71,334,145,149,1208,246, + 688,38,1887,391,951,688,38,2961,3426,38, + 882,36,951,1542,2471,34,1005,31,35,30, + 32,783,263,29,27,56,1015,111,80,81, + 113,1042,37,1091,1052,1145,1129,3480,1198,1165, + 334,1243,381,1200,1293,1297,148,688,3762,195, + 149,3509,38,882,36,951,3622,2471,34,1005, + 31,35,30,32,783,263,29,27,56,1015, + 111,80,81,113,1042,3624,1091,1052,1145,1129, + 627,1198,1165,235,1243,323,1200,1293,2877,170, + 3509,38,882,36,951,411,2471,34,1005,31, + 35,30,32,783,263,29,27,56,1015,111, + 80,81,113,1042,2195,1091,1052,1145,1129,1018, + 1198,1165,392,1243,939,1200,1293,2877,170,3168, + 38,882,36,951,1579,4850,34,1005,31,35, + 64,32,379,166,1834,3509,38,882,36,951, + 294,2471,34,1005,31,35,30,32,783,263, + 29,27,56,1015,111,80,81,113,1042,3601, + 1091,1052,1145,1129,2069,1198,1165,3151,1243,2378, + 1200,1293,2877,170,3509,38,882,36,951,2848, + 2471,34,1005,31,35,30,32,783,263,29, + 27,56,1015,111,80,81,113,1042,999,1091, + 1052,1145,1129,1259,1198,1165,1741,1243,1389,1200, + 1293,2877,170,1953,38,882,36,951,1528,2794, + 34,1005,2491,35,688,38,509,2949,951,3509, + 38,882,36,951,421,2471,34,1005,31,35, + 30,32,783,263,29,27,56,1015,111,80, + 81,113,1042,70,1091,1052,1145,1129,2794,1198, + 1165,381,1243,2794,1200,1293,2877,170,3550,38, + 882,36,951,420,2471,34,1005,31,35,30, + 32,783,263,29,27,56,1015,111,80,81, + 113,1042,2754,1091,1052,1145,1129,61,1198,1165, + 92,1243,107,1200,1293,2877,170,1953,38,882, + 36,951,3620,2794,34,1005,2840,35,688,38, + 1676,1666,951,3509,38,882,36,951,423,2471, + 34,1005,31,35,30,32,783,263,29,27, + 56,1015,111,80,81,113,1042,60,1091,1052, + 1145,1129,403,1198,1165,953,1243,963,1200,2589, + 3422,3103,3509,38,882,36,951,3733,2471,34, + 1005,31,35,30,32,783,263,29,27,56, + 1015,111,80,81,113,1042,67,1091,1052,1145, + 1129,2989,1198,1165,863,1243,3193,2511,3509,38, + 882,36,951,3622,2471,34,1005,31,35,30, + 32,783,263,29,27,56,1015,111,80,81, + 113,1042,2123,1091,1052,1145,1129,730,1198,1165, + 963,2488,3509,38,882,36,951,2794,2471,34, + 1005,31,35,30,32,783,263,29,27,56, + 1015,111,80,81,113,1042,3212,1091,1052,1145, + 1129,2374,1198,2489,3591,1854,1887,391,951,287, + 3188,329,394,425,2802,102,3289,237,263,3018, + 2696,3226,4703,688,1854,1887,391,951,3303,38, + 397,3509,38,882,36,951,275,2471,34,1005, + 31,35,30,32,783,263,29,27,56,1015, + 111,80,81,113,1042,275,1091,1052,1145,1129, + 67,2128,67,3622,67,1018,232,1018,3239,2374, + 2817,1046,38,882,36,951,2794,4760,34,1005, + 31,35,345,32,357,396,425,278,349,1604, + 1547,3949,277,276,365,688,1596,298,235,230, + 231,3273,1596,1631,391,951,279,2168,2999,3023, + 106,277,276,2384,350,1303,819,355,336,675, + 1682,3164,348,242,245,248,251,3121,339,288, + 326,1647,328,54,1848,324,1467,730,296,3930, + 297,1936,3408,3622,296,55,297,1588,1502,674, + 2952,3010,3159,3168,3818,3710,3509,38,882,36, + 951,407,2471,34,1005,31,35,30,32,783, + 263,29,27,56,1015,111,80,81,113,1042, + 428,1091,1052,1145,2391,3509,38,882,36,951, + 778,2471,34,1005,31,35,30,32,783,263, + 29,27,56,1015,111,80,81,113,1042,305, + 1091,1052,1145,2438,3509,38,882,36,951,1594, + 2471,34,1005,31,35,30,32,783,263,29, + 27,56,1015,111,80,81,113,1042,1902,1091, + 1052,2024,3509,38,882,36,951,2465,2471,34, + 1005,31,35,30,32,783,263,29,27,56, + 1015,111,80,81,113,1042,3077,1091,1052,2034, + 3509,38,882,36,951,3222,2471,34,1005,31, + 35,30,32,783,263,29,27,56,1015,111, + 80,81,113,1042,3284,1091,1052,2044,3509,38, + 882,36,951,986,2471,34,1005,31,35,30, + 32,783,263,29,27,56,1015,111,80,81, + 113,1042,3768,1091,1052,2079,1890,38,882,36, + 951,4090,4678,34,1005,31,35,345,32,3509, + 38,882,36,951,3265,2471,34,1005,31,35, + 30,32,783,263,29,27,56,1015,111,80, + 81,113,1042,3180,1091,2116,688,38,1887,391, + 951,2199,38,882,36,951,4840,4678,34,1005, + 31,35,345,32,67,326,1647,328,67,4304, + 321,1467,67,4843,2820,295,357,1259,429,688, + 295,3509,38,1674,1639,951,3148,2471,34,1005, + 31,35,30,32,783,263,29,27,56,1015, + 111,80,81,88,2820,295,350,1303,819,355, + 326,1647,328,37,3134,321,1467,3276,38,281, + 3775,357,1691,1162,598,38,449,3098,38,283, + 4768,2347,2808,38,882,36,951,4090,4678,34, + 1005,31,35,345,32,688,38,509,280,951, + 3164,350,1303,819,355,3303,38,397,863,1518, + 3509,38,882,36,951,1826,2471,34,1005,31, + 35,30,32,783,263,29,27,56,1015,111, + 80,81,113,1042,3456,1940,3562,3200,371,419, + 308,326,1647,328,3391,3737,321,1467,289,3126, + 67,1821,357,290,3126,2885,511,1854,1887,391, + 951,2892,524,2180,38,3273,36,951,4492,4760, + 34,1005,31,35,345,32,2313,3133,289,3126, + 2794,3144,350,1303,819,355,2374,520,275,103, + 525,1789,38,882,36,951,4492,4760,34,1005, + 31,35,345,32,1905,349,2433,3133,2319,3337, + 67,3728,1760,1018,2971,3600,2374,3164,4615,3409, + 338,3594,326,1647,328,239,263,321,1467,3180, + 981,67,688,1596,298,228,4323,161,963,3050, + 446,3383,3384,2692,277,276,1937,1337,338,3212, + 326,1647,328,320,2374,321,1467,185,4575,76, + 2441,216,213,206,214,215,217,688,38,285, + 941,2812,361,2696,232,296,4055,297,2887,207, + 208,529,3107,3596,3820,2794,67,3753,2441,47, + 2901,4903,2374,218,1150,209,210,211,212,535, + 1195,299,300,301,302,2374,240,230,231,3164, + 3421,228,688,1854,1887,391,951,315,349,447, + 4120,2513,3627,161,2696,416,3321,688,1854,1887, + 391,951,232,1110,4575,338,3725,216,213,206, + 214,215,217,2384,275,3296,3763,365,2222,201, + 1016,452,3826,395,425,207,208,2374,3107,275, + 2920,2999,3023,67,244,230,231,3713,1047,218, + 438,209,210,211,212,4683,228,299,300,301, + 302,950,1596,2733,1494,951,428,4600,3227,38, + 509,280,951,3599,692,78,4120,3669,366,4575, + 277,276,216,213,206,214,215,217,3267,67, + 346,1336,4615,54,3986,277,276,3874,3089,1580, + 207,208,2374,3107,296,55,297,1588,1788,2228, + 1609,3098,38,281,218,2374,209,210,211,212, + 3823,228,299,300,301,302,3619,3752,774,1596, + 1631,391,951,3742,349,688,38,1887,391,951, + 3164,4120,3726,3621,4575,3668,3164,216,213,206, + 214,215,217,688,1596,1631,391,951,2794,564, + 54,232,3744,49,2901,207,208,448,3107,3326, + 232,296,55,297,1588,1461,2855,527,3433,218, + 200,209,210,211,212,54,204,299,300,301, + 302,2393,3839,247,230,231,296,55,297,1588, + 67,924,250,230,231,3692,4120,3851,3509,38, + 882,36,951,3270,2471,34,1005,31,35,30, + 32,783,263,29,27,56,1015,111,80,81, + 113,1983,3509,38,882,36,951,521,2471,34, + 1005,31,35,30,32,783,263,29,27,56, + 1015,111,80,81,113,1985,3509,38,882,36, + 951,3764,2471,34,1005,31,35,30,32,783, + 263,29,27,56,1015,111,80,81,113,1995, + 1707,38,882,36,951,1590,4760,34,1005,31, + 35,345,32,688,38,1887,391,951,3083,38, + 882,36,951,4492,4678,34,1005,31,35,345, + 32,1354,1882,2272,177,1720,4007,2366,1018,535, + 4103,3762,1018,3766,3767,430,3227,38,509,3186, + 951,688,38,509,284,951,2794,339,228,326, + 1647,328,161,161,322,1467,161,3774,3769,3776, + 357,3788,637,2957,186,1,2560,326,1647,328, + 535,3149,321,1467,216,213,205,214,215,217, + 4179,3164,175,688,38,509,282,951,2812,228, + 352,1303,819,355,161,357,189,173,174,176, + 177,178,179,180,2957,186,688,38,509,3222, + 951,3780,3149,3781,3785,216,213,205,214,215, + 217,202,3789,175,67,350,1303,819,355,2951, + 67,187,3791,1518,316,2810,1259,190,173,174, + 176,177,178,179,180,3509,38,882,36,951, + 3841,2471,34,1005,31,35,30,32,783,263, + 29,27,56,1015,111,80,81,87,3509,38, + 882,36,951,3848,2471,34,1005,31,35,30, + 32,783,263,29,27,56,1015,111,80,81, + 86,3617,67,67,523,3787,559,3027,3092,3509, + 38,882,36,951,3415,2471,34,1005,31,35, + 30,32,783,263,29,27,56,1015,111,80, + 81,85,3509,38,882,36,951,3817,2471,34, + 1005,31,35,30,32,783,263,29,27,56, + 1015,111,80,81,84,3509,38,882,36,951, + 3737,2471,34,1005,31,35,30,32,783,263, + 29,27,56,1015,111,80,81,83,3509,38, + 882,36,951,1387,2471,34,1005,31,35,30, + 32,783,263,29,27,56,1015,111,80,81, + 82,3372,38,882,36,951,3819,2471,34,1005, + 31,35,30,32,783,263,29,27,56,1015, + 111,80,81,109,3509,38,882,36,951,3622, + 2471,34,1005,31,35,30,32,783,263,29, + 27,56,1015,111,80,81,115,3509,38,882, + 36,951,3737,2471,34,1005,31,35,30,32, + 783,263,29,27,56,1015,111,80,81,114, + 3655,1854,1887,391,951,1400,3188,3344,3849,89, + 3303,38,397,238,263,3164,3622,360,688,1854, + 1887,391,951,3815,2178,313,529,3509,38,882, + 36,951,275,2471,34,1005,31,35,30,32, + 783,263,29,27,56,1015,111,80,81,112, + 275,1992,3824,3842,947,222,1018,3509,38,882, + 36,951,232,2471,34,1005,31,35,30,32, + 783,263,29,27,56,1015,111,80,81,110, + 161,3899,304,278,3850,3164,2374,2470,277,276, + 3431,203,1018,3681,236,230,231,67,2374,3855, + 3857,76,3157,2794,2794,228,277,276,1877,330, + 688,1596,1631,391,951,3860,161,228,529,243, + 246,249,252,3121,3810,4992,1776,5462,4575,3164, + 1848,216,213,206,214,215,217,4220,4261,1592, + 4575,3622,54,216,213,206,214,215,217,207, + 208,5462,3107,296,55,297,1588,1592,2986,3164, + 5462,207,208,495,3107,209,210,211,212,312, + 232,299,300,301,302,517,265,209,210,211, + 212,535,2517,299,300,301,302,1018,5462,1259, + 5462,2794,688,1596,1631,391,951,5462,2794,4995, + 228,3849,253,230,231,161,3289,303,3625,67, + 5462,161,4703,2195,2374,2957,186,353,1018,3849, + 3164,1819,535,3149,54,3486,216,213,205,214, + 215,217,3899,349,175,296,55,297,1588,2794, + 3171,228,166,5462,340,341,161,522,3734,173, + 174,176,177,178,179,180,2957,186,2384,3164, + 311,3715,337,341,3149,1795,2822,216,213,205, + 214,215,217,383,386,175,3069,38,882,36, + 951,4492,4678,34,1005,31,35,345,32,182, + 173,174,176,177,178,179,180,3947,5462,4999, + 2794,5462,2374,1000,38,882,36,951,2903,4678, + 34,1005,31,35,345,32,5462,2173,3283,67, + 5462,228,5462,2374,884,5462,5462,2794,3280,1596, + 1631,391,951,5462,4065,326,1647,328,1502,5462, + 321,1467,2696,404,4575,3164,5462,216,213,206, + 214,215,217,5462,3972,3164,2812,5462,2794,2374, + 54,4343,323,3193,328,207,208,1592,3107,3197, + 427,296,55,297,1588,3820,1408,5462,228,314, + 2887,209,210,211,212,307,3820,299,300,301, + 302,2393,4384,2795,3205,197,5462,5462,2374,3820, + 5462,4575,315,5462,216,213,206,214,215,217, + 3801,5462,5462,5462,5462,2374,501,2696,5462,1086, + 5462,3725,207,208,535,3107,4079,5462,5462,3849, + 5462,3763,5462,5462,228,5462,518,338,209,210, + 211,212,5462,228,299,300,301,302,161,5462, + 338,499,500,5462,5462,5462,5462,4575,168,1975, + 216,213,206,214,215,217,3149,5462,5462,441, + 4522,5462,2890,341,535,5462,5462,3340,207,208, + 5462,3107,5462,5462,5462,688,1596,1631,391,951, + 4683,365,219,228,209,210,211,212,161,5462, + 299,300,301,302,1690,2999,3023,2195,2957,186, + 529,101,1018,5462,5462,535,3149,54,5462,216, + 213,205,214,215,217,5462,3795,175,296,55, + 297,1588,5462,2807,228,5462,166,5462,5462,161, + 5462,193,173,174,176,177,178,179,180,2957, + 186,617,5462,5462,5462,5462,535,3149,5462,5462, + 216,213,205,214,215,217,5462,5462,175,5462, + 5462,1342,5462,5462,5462,228,535,5462,5462,5462, + 161,5462,3825,173,174,176,177,178,179,180, + 2957,186,705,5462,1592,349,5462,535,3149,5462, + 161,216,213,205,214,215,217,5462,5462,175, + 194,2223,1406,1592,5462,5462,228,535,5462,5462, + 4478,161,5462,196,173,174,176,177,178,179, + 180,2957,186,793,5462,5462,349,5462,535,3149, + 5462,161,216,213,205,214,215,217,5462,5462, + 175,194,5462,2316,5462,5462,3849,228,2374,5462, + 5462,4478,161,5462,192,173,174,176,177,178, + 179,180,2957,186,881,3849,5462,349,5462,535, + 3149,5462,5462,216,213,205,214,215,217,3396, + 5462,175,5462,5462,5462,5462,5462,5462,228,2950, + 341,5462,3971,161,5462,199,173,174,176,177, + 178,179,180,2957,186,5462,5462,5462,3260,341, + 5462,3149,5462,5462,216,213,205,214,215,217, + 3813,5462,175,1672,38,3273,36,951,4492,4678, + 34,1005,31,35,345,32,198,173,174,176, + 177,178,179,180,5462,2457,38,882,36,951, + 4492,4678,34,1005,31,35,345,32,2457,38, + 882,36,951,4492,4678,34,1005,31,35,345, + 32,5462,2887,5462,5462,5462,5462,5462,3820,5462, + 5462,5462,326,1647,328,5462,5462,321,1467,1046, + 38,882,36,951,5462,4760,34,1005,31,35, + 345,32,2039,2692,326,1647,328,1018,2564,321, + 1467,5462,5462,1018,5462,5462,5462,326,1647,328, + 5462,1598,321,1467,5462,2347,2374,4875,5462,338, + 5462,161,5462,5462,3908,5462,5462,161,3809,5462, + 5462,168,5462,5462,5462,228,339,1860,326,1647, + 328,5462,5462,322,1467,2878,38,882,36,951, + 2931,4678,34,1005,31,35,345,32,4013,4509, + 5462,408,5462,5462,864,1596,1631,391,951,5462, + 864,1596,1631,391,951,417,3321,5462,5462,1760, + 409,5462,3107,5462,5462,688,1596,1631,391,951, + 5462,774,1596,1631,391,951,54,5462,5462,3869, + 5462,5462,54,5462,323,3193,328,296,55,297, + 1588,5462,1561,296,55,297,1588,54,52,1681, + 5462,5462,5462,54,2374,4875,5462,2896,296,55, + 297,51,5462,2817,296,55,297,1588,5462,52, + 5462,2195,3062,228,5462,5462,1018,5462,774,1596, + 1631,391,951,2190,3007,5462,5462,2195,5462,3820, + 2611,5462,1018,5462,5462,1018,4013,5462,5462,408, + 166,410,412,774,1596,1631,391,951,5462,5462, + 54,864,1596,1631,391,951,166,1760,409,161, + 3107,296,55,297,1588,1956,2270,4649,5462,2129, + 5462,1975,5462,5462,5462,54,5462,5462,5462,5462, + 339,3067,5462,54,5462,5462,296,55,297,1588, + 5462,52,5462,357,296,55,297,1588,5462,52, + 774,1596,1631,391,951,5462,2736,5462,774,1596, + 1631,391,951,5462,2217,2446,5462,5462,5462,5462, + 3062,5462,5462,352,1303,819,355,5462,5462,5462, + 5462,3025,54,774,1596,1631,391,951,5462,5462, + 54,5462,5462,296,55,297,1588,5462,2440,410, + 413,296,55,297,1588,5462,52,3415,1596,1631, + 391,951,5462,3067,5462,54,3418,1596,1631,391, + 951,3195,5462,5462,5462,5462,296,55,297,1588, + 2795,52,5462,3283,5462,2374,3820,5462,2374,54, + 688,1596,1631,391,951,5462,3353,5462,54,5462, + 296,55,297,1588,2696,52,5462,2696,5462,296, + 55,297,1588,5462,52,688,1596,1631,391,951, + 2465,5462,54,688,1854,1887,391,951,5462,2972, + 5462,5462,5462,296,55,297,1588,338,674,5462, + 1214,1278,5462,3692,5462,535,535,54,2374,3309, + 5462,5462,5462,5462,2374,275,5462,5462,296,55, + 297,1588,5462,2265,349,349,5462,2696,5462,161, + 161,1470,5462,349,5462,5462,535,3340,365,1214, + 1110,501,5462,528,5462,5462,5462,5462,5462,2384, + 2384,1690,2999,3023,67,349,1161,1346,2384,2374, + 161,5462,67,67,67,531,77,2374,2374,2374, + 194,277,276,5462,67,5462,498,500,349,2374, + 4478,5462,5462,5462,67,5462,349,349,349,2374, + 5462,5462,2086,5462,5462,2133,5462,1018,349,2209, + 1018,501,5462,2384,1018,5462,5462,5462,349,5462, + 1803,2384,2384,2384,3372,5462,5462,2658,1846,1733, + 505,161,1018,2384,161,5462,5462,5462,161,5462, + 503,168,5462,2384,168,5462,498,500,168,2705, + 532,5462,5462,5462,1018,5462,161,5462,5462,3814, + 5462,5462,5462,5462,5462,5462,2304,5462,5462,5462, + 5462,5462,5462,5462,5462,5462,5462,5462,161,5462, + 5462,5462,5462,5462,3717,5462,5462,5462,4010,5462, + 5462,5462,5462,5462,5462,5462,5462,5462,5462,5462, + 5462,5462,5462,5462,5462,5462,5462,5462,5462,3969, + 5462,3203,4037,5462,5462,5462,4068,5462,0,5480, + 42,0,5479,42,0,509,33,0,450,918, + 0,5480,41,0,5479,41,0,2640,131,0, + 1,440,0,454,1205,0,453,1241,0,509, + 44,0,2430,96,0,38,306,0,390,298, + 0,36,391,0,33,390,0,509,33,390, + 0,1900,42,0,1,578,0,1,5736,0, + 1,5735,0,1,5734,0,1,5733,0,1, + 5732,0,1,5731,0,1,5730,0,1,5729, + 0,1,5728,0,1,5727,0,1,5726,0, + 1,5480,42,0,1,5479,42,0,1,870, + 0,5696,241,0,5695,241,0,5806,241,0, + 5805,241,0,5723,241,0,5722,241,0,5721, + 241,0,5720,241,0,5719,241,0,5718,241, + 0,5717,241,0,5716,241,0,5736,241,0, + 5735,241,0,5734,241,0,5733,241,0,5732, + 241,0,5731,241,0,5730,241,0,5729,241, + 0,5728,241,0,5727,241,0,5726,241,0, + 5480,42,241,0,5479,42,241,0,5503,241, + 0,38,286,262,0,509,390,0,5480,53, + 0,5479,53,0,1134,237,0,48,5501,0, + 48,40,0,2640,133,0,2640,132,0,30, + 516,0,5798,441,0,1365,441,0,1,5503, + 0,1,42,0,52,40,0,1,97,0, + 1,5503,229,0,1,42,229,0,229,415, + 0,5480,40,0,5479,40,0,5480,2,40, + 0,5479,2,40,0,5480,39,0,5479,39, + 0,5501,50,0,40,50,0,5472,406,0, + 5471,406,0,1,4465,0,1,2921,0,1, + 1900,0,229,414,0,2296,325,0,5798,100, + 0,1365,100,0,1,5798,0,1,1365,0, + 3923,282,0,1,2398,0,1,2845,0,5470, + 1,0,497,3803,0,1,229,0,1,229, + 3464,0,5472,229,0,5471,229,0,3719,229, + 0,162,181,0,298,3807,0,8,10,0, + 229,169,0,229,221,0,229,220,0,191, + 4302,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1093,381 +1118,411 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,0,56,57,3,59, - 60,61,0,63,64,65,0,67,0,1, - 8,71,4,73,6,75,76,77,78,79, - 80,81,82,83,84,85,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,0,56,57,0,59,60,61,7,63, - 64,65,0,67,0,1,2,3,4,73, - 6,75,76,77,78,79,80,81,82,83, - 84,85,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,0,56,57, - 0,59,60,61,4,63,64,65,0,67, - 0,1,2,3,4,73,6,75,76,77, - 78,79,80,81,82,83,84,85,0,1, + 50,51,52,53,54,55,56,57,0,59, + 0,61,62,63,64,65,0,67,68,0, + 1,2,72,4,74,0,76,77,78,79, + 80,81,0,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,0,56,57,0,59,60,61, - 0,63,64,65,97,67,0,1,2,3, - 4,73,6,75,76,77,78,79,80,81, - 82,83,84,85,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 46,47,48,49,50,51,52,53,54,0, - 56,57,3,59,60,61,0,63,64,65, - 97,67,0,1,98,3,4,73,6,75, - 76,77,78,79,80,81,82,83,84,85, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,0,56,57,3,59, - 60,61,0,63,64,65,4,67,0,1, - 0,3,4,73,6,75,76,77,78,79, - 80,81,82,83,84,85,0,1,2,3, + 52,53,54,55,56,57,64,59,90,61, + 62,63,64,65,96,67,68,0,0,99, + 72,3,74,6,76,77,78,79,80,81, + 95,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, 44,45,46,47,48,49,50,51,52,53, - 54,0,56,57,0,59,60,61,0,63, - 64,65,0,67,0,1,0,5,2,73, - 6,75,76,77,78,79,80,81,82,83, - 84,85,0,1,2,3,4,5,6,7, + 54,55,56,57,0,59,0,61,62,63, + 64,65,0,67,68,0,10,11,91,92, + 74,6,76,77,78,79,80,81,0,83, + 84,85,86,87,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,42,43,44,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,0,59,90,61,62,63,64,65, + 96,67,68,0,0,0,91,92,74,6, + 76,77,78,79,80,81,0,83,84,85, + 86,87,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,0,56,57, - 0,59,60,61,7,63,64,65,0,67, - 99,89,90,5,0,73,2,75,76,77, - 78,79,80,81,82,83,84,85,0,1, + 48,49,50,51,52,53,54,55,56,57, + 0,59,90,61,62,63,64,65,96,67, + 68,0,88,89,91,92,74,0,76,77, + 78,79,80,81,99,83,84,85,86,87, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,71,59, + 90,61,62,63,64,65,96,67,68,0, + 0,1,2,4,74,5,76,77,78,79, + 80,81,101,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,69,56,57,0,59,60,61, - 0,63,64,65,0,67,0,89,90,5, - 0,73,2,75,76,77,78,79,80,81, - 82,83,84,85,0,1,2,3,4,5, + 52,53,54,55,56,57,0,59,0,61, + 62,63,64,65,8,67,68,0,1,2, + 0,4,74,3,76,77,78,79,80,81, + 0,83,84,85,86,87,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,55,56,57,0,59,0,61,62,63, + 64,65,8,67,68,97,98,0,1,2, + 74,0,76,77,78,79,80,81,0,83, + 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, - 46,47,48,49,50,51,52,53,54,0, - 56,57,0,59,60,61,0,63,64,65, - 0,67,0,89,90,0,0,73,0,75, - 76,77,78,79,80,81,82,83,84,85, - 0,1,2,3,4,5,6,7,0,9, - 10,11,12,0,42,46,47,45,46,47, - 48,49,50,51,52,53,54,42,56,43, - 45,46,47,48,49,50,51,52,53,54, - 58,56,42,43,68,45,46,47,48,49, - 50,51,52,53,54,0,56,0,58,0, - 1,0,62,63,9,10,66,0,68,69, - 70,71,72,73,0,1,2,3,4,5, - 6,7,0,95,96,72,86,87,88,89, - 90,91,92,93,94,95,96,97,98,99, - 100,101,102,103,104,105,106,107,108,109, - 110,111,112,113,114,0,1,2,3,4, + 46,47,48,49,50,51,52,53,54,55, + 56,57,71,59,66,61,62,63,64,65, + 0,67,68,0,1,2,100,0,74,9, + 76,77,78,79,80,81,0,83,84,85, + 86,87,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,55,56,57, + 73,59,66,61,62,63,64,65,0,67, + 68,3,0,0,1,2,74,0,76,77, + 78,79,80,81,12,83,84,85,86,87, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,0,59, + 0,61,62,63,64,65,0,67,68,0, + 1,2,0,4,74,0,76,77,78,79, + 80,81,0,83,84,85,86,87,0,1, + 2,3,4,5,6,7,8,115,10,11, + 12,13,14,0,44,0,3,47,48,49, + 50,51,52,53,54,55,56,57,0,0, + 1,2,3,4,5,59,7,58,10,11, + 58,12,44,45,0,47,48,49,50,51, + 52,53,54,55,56,57,88,89,60,0, + 1,2,64,0,66,73,7,69,70,71, + 72,73,74,75,45,0,1,2,3,4, + 5,6,7,8,69,70,88,89,90,91, + 92,93,94,95,96,97,98,99,100,101, + 102,103,104,105,106,107,108,109,110,111, + 112,113,114,115,116,0,1,2,3,4, 5,6,7,8,9,10,11,12,13,14, 15,16,17,18,19,20,21,22,23,24, 25,26,27,28,29,30,31,32,33,34, 35,36,37,38,39,40,41,42,43,44, 45,46,47,48,49,50,51,52,53,54, - 113,56,57,0,59,60,61,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,40,41,42, - 0,44,45,46,47,48,49,50,51,52, - 53,54,0,56,57,62,59,60,61,0, + 55,56,57,0,59,0,61,62,63,0, 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, + 11,0,13,14,15,16,17,18,19,20, 21,22,23,24,25,26,27,28,29,30, 31,32,33,34,35,36,37,38,39,40, - 41,42,62,44,45,46,47,48,49,50, - 51,52,53,54,62,56,57,0,59,60, - 61,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,36,37,38, - 39,40,41,42,0,44,45,46,47,48, - 49,50,51,52,53,54,0,56,57,3, - 59,60,61,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, + 41,42,43,44,0,46,47,48,49,50, + 51,52,53,54,55,56,57,0,59,66, + 61,62,63,0,1,2,3,4,5,6, + 7,8,9,10,11,64,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,42,62,44,45,46, - 47,48,49,50,51,52,53,54,0,56, - 57,3,59,60,61,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,42,0,44, - 45,46,47,48,49,50,51,52,53,54, - 0,56,57,3,59,60,61,0,1,2, - 3,4,5,6,7,8,9,10,11,12, + 37,38,39,40,41,42,43,44,0,46, + 47,48,49,50,51,52,53,54,55,56, + 57,0,59,66,61,62,63,0,1,2, + 3,4,5,6,7,8,9,10,11,95, 13,14,15,16,17,18,19,20,21,22, 23,24,25,26,27,28,29,30,31,32, 33,34,35,36,37,38,39,40,41,42, - 0,44,45,46,47,48,49,50,51,52, - 53,54,0,56,57,0,59,60,61,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,0, - 1,42,3,0,45,46,47,48,49,50, - 51,52,53,54,62,56,57,0,59,60, - 61,0,0,2,0,3,5,5,7,7, - 9,10,11,12,0,95,96,13,14,15, - 16,17,18,19,20,21,22,23,0,1, - 2,3,4,5,6,7,0,0,1,2, - 3,4,63,6,43,62,42,0,0,45, - 46,47,48,49,50,51,52,53,54,58, - 56,0,1,62,3,68,5,66,7,68, - 69,70,71,72,0,0,2,0,3,5, - 43,7,0,9,10,11,12,86,87,88, - 89,90,91,92,93,94,95,96,97,98, - 99,100,101,102,103,104,105,106,107,108, - 109,110,111,112,113,114,69,43,43,42, - 72,0,45,46,47,48,49,50,51,52, - 53,54,58,56,0,1,62,3,0,5, - 66,7,68,69,70,71,72,100,0,102, - 103,104,105,106,107,108,109,110,111,112, - 86,87,88,89,90,91,92,93,94,95, - 96,97,98,99,100,101,102,103,104,105, - 106,107,108,109,110,111,112,113,114,0, - 1,2,3,4,5,6,7,8,116,117, - 118,0,13,14,15,16,17,18,19,20, - 21,22,23,0,1,2,3,4,0,6, - 0,1,2,3,4,5,6,7,0,0, - 1,42,43,44,45,46,47,48,49,50, - 51,52,53,54,55,56,57,99,59,60, - 61,0,1,64,3,0,5,119,7,70, - 71,0,1,74,9,10,0,1,2,3, - 4,5,6,7,8,62,58,0,1,13, - 14,15,16,17,18,19,20,21,22,23, - 70,0,1,2,3,4,68,6,0,1, - 72,40,41,0,1,116,117,118,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,55,56,57,0,59,60,61,0,1, - 64,3,55,5,43,7,70,71,40,41, - 74,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, + 43,44,64,46,47,48,49,50,51,52, + 53,54,55,56,57,0,59,66,61,62, + 63,0,1,2,3,4,5,6,7,8, + 9,10,11,0,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, 29,30,31,32,33,34,35,36,37,38, - 39,57,116,117,118,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, + 39,40,41,42,43,44,0,46,47,48, + 49,50,51,52,53,54,55,56,57,0, + 59,66,61,62,63,0,1,2,3,4, + 5,6,7,8,9,10,11,64,13,14, 15,16,17,18,19,20,21,22,23,24, 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,0,43,44, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,41,0,43,44,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,39,40,41,0,43,44, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,41,0,0,44,2,0,1,2,3, - 4,0,6,0,1,2,3,4,5,6, - 7,0,1,2,3,4,5,6,7,0, - 1,119,72,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, + 35,36,37,38,39,40,41,42,43,44, + 64,46,47,48,49,50,51,52,53,54, + 55,56,57,64,59,0,61,62,63,0, + 1,2,3,4,5,6,7,8,9,10, + 11,0,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,43,44,0,46,47,48,49,50, + 51,52,53,54,55,56,57,0,59,0, + 61,62,63,0,1,2,3,4,5,6, + 7,8,9,10,11,0,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,62,70,44,0,1, - 0,3,69,62,55,5,0,1,2,3, - 88,5,0,7,0,1,94,3,4,0, - 6,9,10,0,1,72,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,62,55, - 44,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,36,37,38, - 39,40,41,0,0,44,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,0,45, - 44,0,1,2,3,4,5,6,7,8, + 37,38,39,40,41,0,47,44,0,0, + 47,48,49,50,51,52,53,54,55,56, + 57,0,59,0,61,62,63,0,1,2, + 3,4,5,6,7,8,9,0,0,12, + 0,3,15,16,17,18,19,20,21,22, + 23,24,25,44,97,98,47,48,49,50, + 51,52,53,54,55,56,57,0,0,48, + 49,44,45,46,47,48,49,50,51,52, + 53,54,55,56,57,58,59,0,61,62, + 63,4,65,0,1,2,88,89,5,72, + 73,0,1,2,3,4,5,70,7,82, + 0,1,2,3,4,5,6,7,8,9, + 0,0,12,3,101,15,16,17,18,19, + 20,21,22,23,24,25,0,1,2,3, + 4,5,6,7,8,118,119,120,0,0, + 0,58,3,3,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 0,61,62,63,73,65,0,0,1,2, + 10,11,72,73,0,1,2,0,4,0, + 3,71,82,6,0,8,0,10,11,12, + 13,14,66,0,15,16,17,18,19,20, + 21,22,23,24,25,66,66,0,0,1, + 2,3,4,5,6,7,8,0,118,119, + 120,4,45,44,0,58,47,48,49,50, + 51,52,53,54,55,56,57,60,64,0, + 0,1,2,66,60,0,69,70,71,72, + 73,44,75,0,47,48,49,50,51,52, + 53,54,55,56,57,88,89,90,91,92, + 93,94,95,96,97,98,99,100,101,102, + 103,104,105,106,107,108,109,110,111,112, + 113,114,115,116,0,71,0,3,58,0, + 6,0,8,58,10,11,12,13,14,0, + 1,2,3,4,5,6,7,8,0,1, + 2,0,4,5,3,7,102,0,104,105, + 106,107,108,109,110,111,112,113,114,45, + 44,88,89,47,48,49,50,51,52,53, + 54,55,56,57,60,0,0,118,119,120, + 66,0,6,69,70,71,72,73,69,75, + 69,70,0,1,2,66,58,5,0,7, + 71,0,88,89,90,91,92,93,94,95, + 96,97,98,99,100,101,102,103,104,105, + 106,107,108,109,110,111,112,113,114,115, + 116,0,1,2,3,4,5,6,7,8, 9,10,11,12,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, 29,30,31,32,33,34,35,36,37,38, - 39,40,41,0,1,0,1,4,0,1, - 2,3,4,100,6,0,0,1,0,3, - 4,0,6,2,66,112,68,66,0,1, + 39,40,41,42,43,100,45,46,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, - 62,55,44,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,0,98,44,0,1, + 42,43,121,45,46,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,43,0, + 45,46,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,0,0,46,0, + 1,2,3,4,5,6,7,8,0,0, + 1,2,3,4,0,6,0,8,0,1, + 2,3,4,5,0,7,12,75,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, - 0,1,44,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,0,1,44,0,1, + 42,43,73,76,46,66,60,69,0,1, + 2,0,4,5,66,7,0,1,2,75, + 0,0,1,2,3,4,5,6,7,8, + 9,10,11,75,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,43,0,58,46,0,1, 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, + 64,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, - 0,1,44,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, + 42,43,0,0,46,0,1,2,3,4, + 5,6,7,8,9,10,11,0,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,43,0, + 95,46,0,1,2,3,4,5,6,7, + 8,9,10,11,0,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,0,1,2,3, + 4,5,0,7,0,88,89,3,0,0, + 1,2,3,4,5,6,7,8,9,10, + 11,69,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,43,0,0,46,0,1,2,3, + 4,5,6,7,8,9,10,11,60,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 0,0,46,0,1,2,3,4,5,6, + 7,8,9,10,11,0,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, 27,28,29,30,31,32,33,34,35,36, - 37,38,39,40,41,0,1,44,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, + 37,38,39,40,41,42,43,0,0,46, 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, + 10,11,0,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, - 40,41,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,0,0,1,0,1,0,3,0, - 5,2,7,0,1,0,0,0,0,2, - 2,0,0,2,0,63,0,3,0,0, - 2,2,0,71,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, + 40,41,42,43,0,0,46,0,1,2, + 3,4,5,6,7,8,9,10,11,0, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,41,42, + 43,0,0,46,0,1,2,3,4,5, + 6,7,8,9,10,11,0,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,0,0,2,72,4,5, - 62,7,58,9,10,11,12,72,86,87, - 62,0,0,2,66,88,68,63,93,25, - 72,94,11,12,88,71,0,1,93,3, - 94,0,0,1,40,41,4,42,86,87, - 45,46,47,48,49,50,51,52,53,54, - 0,56,58,0,0,1,62,3,0,0, - 66,0,68,69,0,0,0,0,0,1, - 58,45,0,62,0,0,0,2,0,1, - 86,87,88,89,90,91,92,55,0,95, - 96,97,98,99,100,101,102,103,104,105, - 106,107,108,109,110,111,0,0,2,55, - 4,5,101,7,0,9,10,11,12,58, - 55,0,58,55,58,114,0,66,0,8, - 66,25,66,0,1,0,8,62,5,86, - 87,63,68,8,86,87,40,41,0,1, - 0,3,91,92,66,91,92,91,92,0, - 88,2,86,87,58,58,94,0,62,2, - 0,0,66,2,68,69,55,70,57,0, - 66,2,68,55,58,57,0,0,55,0, - 3,0,86,87,88,89,90,91,92,0, - 65,95,96,97,98,99,100,101,102,103, - 104,105,106,107,108,109,110,111,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,0,70, - 0,0,2,93,0,66,0,1,0,1, - 0,1,0,1,0,0,0,0,3,0, - 0,63,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,55,62,55,66,55,68,55,0,68, - 66,0,71,58,58,58,0,58,58,0, - 66,2,0,1,62,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,30,31,32,33,34, - 35,36,37,38,0,1,2,3,4,5, + 36,37,38,39,40,41,42,43,0,0, + 46,0,1,2,3,4,5,6,7,8, + 9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,0,0,1,2,0,4,0, + 6,0,8,0,3,12,12,0,1,2, + 3,4,5,12,7,64,0,1,2,0, + 1,2,6,72,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,93,0,0,2,2,0, - 0,2,0,0,2,2,0,0,2,2, - 0,0,2,115,0,0,2,2,0,1, - 0,115,0,0,24,0,0,0,113,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,0,1,2, - 3,4,5,6,7,8,9,10,11,12, + 36,37,38,39,40,41,69,66,75,75, + 69,70,69,66,58,0,75,0,1,2, + 3,4,5,0,7,0,0,4,64,95, + 4,0,6,0,8,4,72,0,1,2, + 3,4,5,6,7,8,9,10,11,0, 13,14,15,16,17,18,19,20,21,22, 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,0,1,0,3, - 0,0,0,0,8,0,0,0,0,13, + 33,34,35,36,37,38,39,40,41,42, + 43,0,1,2,3,4,5,6,7,8, + 9,10,11,0,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,43,0,1,2,3,4, + 5,6,7,8,9,10,11,12,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,0,1,2,3, + 4,5,6,7,8,9,10,11,0,13, 14,15,16,17,18,19,20,21,22,23, - 0,0,0,0,24,0,0,0,1,2, - 3,4,5,6,7,0,0,39,42,0, - 0,45,46,47,48,49,50,51,52,53, - 54,43,56,57,0,59,60,61,0,1, - 58,3,55,43,63,0,8,0,63,42, - 43,13,14,15,16,17,18,19,20,21, - 22,23,55,58,0,58,0,66,68,66, - 55,64,65,71,67,0,70,0,0,0, - 42,74,0,45,46,47,48,49,50,51, - 52,53,54,73,56,57,0,59,60,61, - 0,1,2,3,4,5,6,7,0,1, - 2,3,4,5,6,7,0,70,0,0, - 0,0,58,0,58,0,0,1,2,3, - 4,5,6,7,0,1,2,3,4,5, - 6,7,42,43,69,68,0,69,69,115, - 42,43,70,0,0,55,0,0,0,0, - 0,0,0,55,64,65,70,67,42,43, - 0,71,64,65,74,67,42,43,0,71, - 0,55,74,63,68,0,0,69,69,55, - 64,65,71,67,69,72,43,71,64,65, - 74,67,0,0,58,71,0,0,74,0, - 1,2,3,4,5,6,7,0,1,2, - 3,4,5,6,7,68,70,66,70,69, - 0,0,70,63,75,0,1,2,3,4, - 5,6,7,0,1,2,3,4,5,6, - 7,42,43,0,69,0,0,0,72,42, - 43,0,0,0,55,63,63,0,0,0, - 0,93,55,64,65,68,67,42,43,0, - 71,64,65,74,67,42,43,24,0,0, - 55,74,0,0,0,0,0,0,55,64, - 65,0,67,0,0,0,0,64,65,74, - 67,0,0,0,0,0,0,74,0,0, - 0,0,69,0,69,0,120,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0 + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,0,1, + 2,3,4,5,121,7,0,0,0,3, + 12,3,0,1,2,3,4,5,0,7, + 64,13,14,5,0,1,2,0,1,2, + 115,0,1,2,3,4,5,6,7,8, + 9,10,11,45,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,0,66,0,3,0,5,6, + 0,8,58,10,11,58,13,14,0,1, + 2,0,4,0,6,4,8,0,1,2, + 27,4,5,12,7,12,0,1,2,0, + 4,103,6,4,8,42,43,0,1,2, + 0,4,0,6,116,8,0,1,2,0, + 4,9,6,60,8,60,45,60,45,66, + 60,0,69,70,71,0,1,2,0,4, + 5,0,7,12,3,0,0,1,2,0, + 0,88,89,90,91,92,93,94,0,60, + 97,98,99,100,101,102,103,104,105,106, + 107,108,109,110,111,112,113,0,0,67, + 3,3,5,6,0,8,0,10,11,0, + 13,14,0,1,2,0,1,2,60,0, + 1,2,0,0,27,60,75,69,0,1, + 2,9,4,0,69,0,1,2,60,42, + 43,102,0,1,2,12,95,69,0,0, + 0,93,94,114,42,43,0,60,93,94, + 12,42,43,66,66,0,69,70,71,60, + 5,93,94,58,70,47,0,71,45,3, + 58,59,73,0,0,88,89,90,91,92, + 93,94,69,58,97,98,99,100,101,102, + 103,104,105,106,107,108,109,110,111,112, + 113,0,1,2,3,4,5,6,7,8, + 9,10,11,75,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,69,70,0,1,2,0,1,2, + 0,0,1,2,4,0,1,2,3,4, + 5,6,7,8,9,10,11,66,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,0,1,2, + 3,4,5,6,7,8,9,10,11,58, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,36,37,38,39,40,0,1, + 2,3,4,5,6,7,8,9,10,11, + 0,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,36,37,38,39,40,0, + 1,2,3,4,5,6,7,8,9,10, + 11,0,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 0,1,2,0,4,0,3,0,0,9, + 0,4,0,3,0,15,16,17,18,19, + 20,21,22,23,24,25,0,0,0,0, + 0,0,4,0,0,0,0,0,12,0, + 69,12,12,12,44,0,12,47,48,49, + 50,51,52,53,54,55,56,57,0,59, + 0,61,62,63,0,1,2,60,4,0, + 12,45,0,9,45,70,4,0,70,15, + 16,17,18,19,20,21,22,23,24,25, + 0,1,2,3,4,5,6,7,8,70, + 70,0,12,72,70,75,72,74,44,73, + 9,47,48,49,50,51,52,53,54,55, + 56,57,0,59,0,61,62,63,0,60, + 72,0,60,0,44,45,12,0,1,2, + 3,4,5,6,7,8,0,70,58,12, + 60,0,0,0,3,65,3,67,68,58, + 59,0,0,1,2,3,4,5,6,7, + 8,0,82,0,12,0,0,0,0,3, + 58,44,45,0,0,0,3,41,60,0, + 0,60,3,60,0,58,0,0,0,75, + 0,3,65,3,67,68,44,45,0,72, + 0,1,2,3,4,5,6,7,8,82, + 58,60,12,26,0,73,0,65,0,67, + 68,60,0,0,72,0,1,2,3,4, + 5,6,7,8,82,70,73,12,71,71, + 0,0,26,3,44,45,71,0,0,0, + 3,3,3,73,0,69,0,73,58,0, + 0,0,0,0,0,65,0,67,68,44, + 45,0,72,0,1,2,3,4,5,6, + 7,8,82,58,0,12,0,73,26,71, + 65,117,67,68,71,0,0,72,0,1, + 2,3,4,5,6,7,8,82,0,0, + 12,70,0,0,0,117,0,44,45,0, + 60,0,0,0,0,71,0,71,0,0, + 0,58,0,0,0,0,0,0,65,117, + 67,68,44,45,0,72,0,1,2,3, + 4,5,6,7,8,82,58,0,12,0, + 0,0,0,65,0,67,68,0,0,0, + 0,0,1,2,3,4,5,6,7,8, + 82,122,0,12,0,0,0,0,0,0, + 44,45,0,0,0,0,0,0,0,0, + 0,0,0,0,58,0,0,0,0,0, + 0,65,0,67,68,44,45,0,0,0, + 0,0,0,0,0,0,0,0,82,58, + 0,0,0,0,0,0,65,0,67,68, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,82,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -1475,380 +1530,412 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface TermAction { public final static char termAction[] = {0, - 5311,5292,5289,5289,5289,5289,5289,5289,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5296,3231,1,1,1,1,1, - 1,1,1,1,1,39,1,1,5349,1, - 1,1,307,723,1384,3228,1,3169,5311,5346, - 5617,5319,2022,1232,3737,3217,2628,2162,2207,3185, - 3530,3209,3222,3206,3507,3203,5311,5292,5289,5289, - 5289,5289,5289,5289,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5296, - 3231,1,1,1,1,1,1,1,1,1, - 1,133,1,1,5311,1,1,1,2351,723, - 1384,3228,5311,3169,1,5091,3108,5095,2022,1232, - 3737,3217,2628,2162,2207,3185,3530,3209,3222,3206, - 3507,3203,5311,5292,5289,5289,5289,5289,5289,5289, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5296,3231,1,1,1, - 1,1,1,1,1,1,1,135,1,1, - 5311,1,1,1,4787,723,1384,3228,5311,3169, - 1,5091,5253,5095,5259,1232,5256,3217,2628,2162, - 2207,3185,3530,3209,3222,3206,3507,3203,5311,5292, - 5289,5289,5289,5289,5289,5289,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5296,3231,1,1,1,1,1,1,1, - 1,1,1,136,1,1,137,1,1,1, - 5311,723,1384,3228,923,3169,1,5091,3108,5095, - 2022,1232,3737,3217,2628,2162,2207,3185,3530,3209, - 3222,3206,3507,3203,5311,5292,5289,5289,5289,5289, - 5289,5289,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5296,3231,1, - 1,1,1,1,1,1,1,1,1,5311, - 1,1,927,1,1,1,5311,723,1384,3228, - 923,3169,5311,5003,2291,784,2022,1232,3737,3217, - 2628,2162,2207,3185,3530,3209,3222,3206,3507,3203, - 5311,5292,5289,5289,5289,5289,5289,5289,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5296,3231,1,1,1,1,1, - 1,1,1,1,1,508,1,1,5039,1, - 1,1,5311,723,1384,3228,4796,3169,5311,5003, - 5311,784,2022,1232,3737,3217,2628,2162,2207,3185, - 3530,3209,3222,3206,3507,3203,5311,5292,5289,5289, - 5289,5289,5289,5289,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5296, - 3231,1,1,1,1,1,1,1,1,1, - 1,139,1,1,5311,1,1,1,5311,723, - 1384,3228,117,3169,38,5012,5311,3361,4806,1232, - 1284,3217,2628,2162,2207,3185,3530,3209,3222,3206, - 3507,3203,5311,5292,5289,5289,5289,5289,5289,5289, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5296,3231,1,1,1, - 1,1,1,1,1,1,1,134,1,1, - 5311,1,1,1,2351,723,1384,3228,119,3169, - 2256,3332,3253,3361,316,1232,3287,3217,2628,2162, - 2207,3185,3530,3209,3222,3206,3507,3203,5311,5292, - 5289,5289,5289,5289,5289,5289,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5296,3231,1,1,1,1,1,1,1, - 1,1,1,1209,1,1,5311,1,1,1, - 5311,723,1384,3228,118,3169,5311,3332,3253,3361, - 5311,1232,3406,3217,2628,2162,2207,3185,3530,3209, - 3222,3206,3507,3203,5311,3188,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5320,3231,1, - 1,1,1,1,1,1,1,1,1,339, - 1,1,221,1,1,1,160,723,1384,3228, - 5311,3169,5311,3332,3253,222,5311,1232,131,3217, - 2628,2162,2207,3185,3530,3209,3222,3206,3507,3203, - 5311,5180,5180,5180,5180,5180,5180,5180,5311,5180, - 5180,5180,5180,1,5565,5651,5652,5568,5651,5652, - 5562,5569,5541,5567,5566,5563,5564,5565,5542,5320, - 5568,5651,5652,5562,5569,5541,5567,5566,5563,5564, - 3739,5542,5180,5180,1293,5180,5180,5180,5180,5180, - 5180,5180,5180,5180,5180,120,5180,5311,5180,5311, - 1707,5311,5180,5180,2381,591,5180,5311,5180,5180, - 5180,5180,5180,5180,5311,5003,3108,784,2022,2463, - 3737,5644,5311,2503,2475,164,5180,5180,5180,5180, - 5180,5180,5180,5180,5180,5180,5180,5180,5180,5180, - 5180,5180,5180,5180,5180,5180,5180,5180,5180,5180, - 5180,5180,5180,5180,5180,5311,5289,5289,5289,5289, - 5289,5289,5289,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5305,5470, - 1,1,1,1,1,1,1,1,1,1, - 5317,1,1,453,1,1,1,5311,1,1, - 1,1,1,1,1,1,1,1,1,1, + 5462,5428,5425,5425,5425,5425,5425,5425,5425,1, + 1,1,5438,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5435,3541,1,1,1, + 1,1,1,1,1,1,1,1,116,1, + 138,1,1,1,721,2306,1,1947,3461,5462, + 5112,5109,5469,5503,1879,363,3523,3200,2178,3049, + 3463,3886,5462,3500,1101,3482,3761,3472,8,5447, + 5447,5447,5447,5447,5447,5447,5447,5447,5447,5447, + 5447,5447,5447,5447,5447,5447,5447,5447,5447,5447, + 5447,5447,5447,5447,5447,5447,5447,5447,5447,5447, + 5447,5447,5447,5447,5447,5447,5447,5447,5447,5447, + 5447,5447,5447,5447,5447,5447,5447,5447,5447,5447, + 5447,5447,5447,5447,5447,5447,1451,5447,3664,5447, + 5447,5447,5447,5447,3687,5447,5447,120,5462,2342, + 5447,4900,5447,3316,5447,5447,5447,5447,5447,5447, + 5824,5447,5447,5447,5447,5447,5462,5428,5425,5425, + 5425,5425,5425,5425,5425,1,1,1,5432,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 452,5470,1,1,1,1,1,1,1,1, - 1,1,351,1,1,5024,1,1,1,5311, + 1,5435,3541,1,1,1,1,1,1,1, + 1,1,1,1,119,1,123,1,1,1, + 721,2306,5462,1947,3461,122,2850,592,3292,3268, + 1879,3316,3523,3200,2178,3049,3463,3886,5462,3500, + 1101,3482,3761,3472,5462,5428,5425,5425,5425,5425, + 5425,5425,5425,1,1,1,5432,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5435, + 3541,1,1,1,1,1,1,1,1,1, + 1,1,118,1,3664,1,1,1,721,2306, + 3687,1947,3461,121,126,139,3292,3268,1879,3316, + 3523,3200,2178,3049,3463,3886,5462,3500,1101,3482, + 3761,3472,5462,5428,5425,5425,5425,5425,5425,5425, + 5425,1,1,1,5432,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5027,5470,1,1,1,1,1,1, - 1,1,1,1,1800,1,1,5311,1,1, - 1,5311,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5435,3541,1, 1,1,1,1,1,1,1,1,1,1, + 117,1,3664,1,1,1,721,2306,3687,1947, + 3461,142,795,2709,3292,3268,1879,293,3523,3200, + 2178,3049,3463,3886,2342,3500,1101,3482,3761,3472, + 5462,5428,5425,5425,5425,5425,5425,5425,5425,1, + 1,1,5432,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,102,5470,1,1,1,1, - 1,1,1,1,1,1,1,1,1,388, - 1,1,1,5311,1,1,1,1,1,1, + 1,1,1,1,1,5435,3541,1,1,1, + 1,1,1,1,1,1,1,1,1951,1, + 3664,1,1,1,721,2306,3687,1947,3461,42, + 5462,5479,5480,5503,1879,3052,3523,3200,2178,3049, + 3463,3886,2272,3500,1101,3482,3761,3472,5462,5428, + 5425,5425,5425,5425,5425,5425,5425,1,1,1, + 5432,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5435,3541,1,1,1,1,1, + 1,1,1,1,1,1,136,1,134,1, + 1,1,721,2306,2401,1947,3461,5462,5112,5109, + 5462,5503,1879,1134,3523,3200,2178,3049,3463,3886, + 5462,3500,1101,3482,3761,3472,5462,5428,5425,5425, + 5425,5425,5425,5425,5425,1,1,1,5432,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,4891,5470,1,1, - 1,1,1,1,1,1,1,1,5311,1, - 1,2608,1,1,1,5311,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,5435,3541,1,1,1,1,1,1,1, + 1,1,1,1,137,1,140,1,1,1, + 721,2306,2401,1947,3461,2555,2526,5462,5479,5480, + 1879,375,3523,3200,2178,3049,3463,3886,454,3500, + 1101,3482,3761,3472,5462,5428,5425,5425,5425,5425, + 5425,5425,5425,1,1,1,5432,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5311,5470, 1,1,1,1,1,1,1,1,1,1, - 5311,1,1,2910,1,1,1,5311,1,1, + 1,1,1,1,1,1,1,1,1,5435, + 3541,1,1,1,1,1,1,1,1,1, + 1,1,1105,1,5133,1,1,1,721,2306, + 310,1947,3461,5462,5301,5298,2308,5462,1879,5771, + 3523,3200,2178,3049,3463,3886,453,3500,1101,3482, + 3761,3472,5462,5428,5425,5425,5425,5425,5425,5425, + 5425,1,1,1,5432,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5435,3541,1, + 1,1,1,1,1,1,1,1,1,1, + 1855,1,5136,1,1,1,721,2306,96,1947, + 3461,5142,5462,53,5301,5298,1879,5462,3523,3200, + 2178,3049,3463,3886,5466,3500,1101,3482,3761,3472, + 5462,3464,1,1,1,1,1,1,1,1, + 1,1,5472,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5471,3541,1,1,1, + 1,1,1,1,1,1,1,1,130,1, + 224,1,1,1,721,2306,5462,1947,3461,398, + 5112,5109,40,5503,1879,5462,3523,3200,2178,3049, + 3463,3886,426,3500,1101,3482,3761,3472,5462,5291, + 5291,5291,5291,5291,5291,5291,5291,5465,5291,5291, + 5291,5291,5291,237,5719,30,5304,5722,5805,5806, + 5716,5723,5695,5721,5720,5717,5718,5696,125,1, + 5204,5200,5383,5208,5389,3720,5386,42,2850,592, + 5501,5472,5291,5291,5462,5291,5291,5291,5291,5291, + 5291,5291,5291,5291,5291,5291,795,2709,5291,41, + 5124,5121,5291,5462,5291,3916,826,5291,5291,5291, + 5291,5291,5291,5291,5471,5462,5112,5109,4465,870, + 1900,1365,2921,5798,5319,5319,5291,5291,5291,5291, + 5291,5291,5291,5291,5291,5291,5291,5291,5291,5291, + 5291,5291,5291,5291,5291,5291,5291,5291,5291,5291, + 5291,5291,5291,5291,5291,5462,5425,5425,5425,5425, + 5425,5425,5425,5425,1,1,1,5450,1,1, + 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 132,5470,1,1,1,1,1,1,1,1, - 1,1,324,1,1,5311,1,1,1,39, - 5021,3738,784,630,4108,3737,4130,978,4086,4064, - 4174,4152,5574,5572,5581,5580,5576,5577,5575,5578, - 5579,5582,5573,5331,2420,864,1112,5333,919,4387, - 920,5334,5332,780,5327,5329,5330,5328,1251,5311, - 5101,5565,5349,101,5568,5651,5652,5562,5569,5541, - 5567,5566,5563,5564,1800,5542,5709,511,576,5710, - 5711,388,39,5042,220,5349,5042,2463,5042,5644, - 5042,5042,5042,5042,5311,2503,2475,5574,5572,5581, - 5580,5576,5577,5575,5578,5579,5582,5573,315,5091, - 3108,5095,2022,5274,3737,5271,5311,1,5091,5253, - 5095,5259,2752,5256,5042,1974,5565,141,5311,5568, - 5651,5652,5562,5569,5541,5567,5566,5563,5564,5042, - 5542,439,1,5042,1,825,5018,5042,5018,5042, - 5042,5042,5042,5042,387,35,5045,223,5036,5045, - 5320,5045,5311,5045,5045,5045,5045,5042,5042,5042, - 5042,5042,5042,5042,5042,5042,5042,5042,5042,5042, - 5042,5042,5042,5042,5042,5042,5042,5042,5042,5042, - 5042,5042,5042,5042,5042,5042,1758,5045,5036,5565, - 5318,5311,5568,5651,5652,5562,5569,5541,5567,5566, - 5563,5564,5048,5542,440,39,5045,5349,5311,5211, - 5045,5208,5045,5045,5045,5045,5045,2218,140,1716, - 1674,1632,1590,1548,1506,1464,1422,1380,1338,2652, - 5045,5045,5045,5045,5045,5045,5045,5045,5045,5045, - 5045,5045,5045,5045,5045,5045,5045,5045,5045,5045, - 5045,5045,5045,5045,5045,5045,5045,5045,5045,5311, - 5230,226,5226,226,226,226,226,1,5743,5744, - 5745,5311,1,1,1,1,1,1,1,1, - 1,1,1,1,5091,2695,5095,2022,5311,3737, - 5311,5091,3108,5095,2022,5274,3737,5271,5311,5311, - 5187,1,226,5721,1,1,1,1,1,1, - 1,1,1,1,496,1,1,2256,1,1, - 1,94,1,668,1,122,5223,5002,5223,226, - 414,5311,1707,5806,2381,591,5311,5230,226,5226, - 226,226,226,226,1,1800,4824,5311,9401,1, + 5450,5624,1,1,1,1,1,1,1,1, + 1,1,1,354,1,5462,1,1,1,5462, 1,1,1,1,1,1,1,1,1,1, - 2030,1,5091,3108,5095,2022,4882,3737,5311,5187, - 5318,4196,871,5311,5346,5743,5744,5745,1,226, - 5721,1,1,1,1,1,1,1,1,1, - 1,496,1,1,5311,1,1,1,97,39, - 668,5349,5347,5268,315,5265,226,413,4196,871, - 5806,39,5003,3738,784,630,4108,3737,4130,557, - 4086,4064,4174,4152,5574,5572,5581,5580,5576,5577, - 5575,5578,5579,5582,5573,5331,2420,864,1112,5333, - 919,4387,920,5334,5332,780,5327,5329,5330,5328, - 1251,2347,5743,5744,5745,5311,1,1,1,1, + 1,5462,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5624,1,1,1,1, + 1,1,1,1,1,1,1,105,1,1814, + 1,1,1,5462,1,1,1,1,1,1, + 1,1,1,1,1,1709,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5311,5320,5470, - 5311,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5462,5624, 1,1,1,1,1,1,1,1,1,1, + 1,327,1,5017,1,1,1,5462,1,1, + 1,1,1,1,1,1,1,1,1,5826, 1,1,1,1,1,1,1,1,1,1, - 1,1,159,166,5470,5311,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,721,5624,1,1,1,1,1,1, + 1,1,1,1,1,104,1,1814,1,1, + 1,5462,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5311,166,5470, - 5311,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5462,5624,1,1, + 1,1,1,1,1,1,1,1,1,5462, + 1,1990,1,1,1,5462,1,1,1,1, + 1,1,1,1,1,1,1,3542,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,113,93,5470,5033,1,5091,3108,5095, - 2022,5311,3737,369,5091,2695,5095,2022,1,3737, - 1,348,5003,2695,784,2022,2463,3737,5644,45, - 5196,533,166,5311,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 3543,5624,1,1,1,1,1,1,1,1, + 1,1,1,5444,1,5462,1,1,1,5462, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1800,2030,5470,5311,5003, - 5311,5349,1079,1800,5193,3058,348,39,2762,5349, - 4218,2463,121,5644,5311,5003,4240,784,5052,5311, - 3737,2381,591,50,5187,166,5311,1,1,1, + 1,5462,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5462,5624,1,1,1,1, + 1,1,1,1,1,1,1,135,1,432, + 1,1,1,42,5112,5109,3034,870,2771,3549, + 2921,3572,1375,3518,3495,5462,3618,3595,5728,5726, + 5735,5734,5730,5731,5729,5732,5733,5736,5727,5485, + 927,680,776,5487,727,632,735,5488,5486,678, + 5481,5483,5484,5482,1254,5462,5893,5719,129,225, + 5722,5805,5806,5716,5723,5695,5721,5720,5717,5718, + 5696,342,5861,143,620,5862,5863,5462,5344,5344, + 229,5340,229,229,229,229,1,163,1,5348, + 5462,4963,1,1,1,1,1,1,1,1, + 1,1,1,5719,2555,2526,5722,5805,5806,5716, + 5723,5695,5721,5720,5717,5718,5696,5462,5462,5805, + 5806,1,229,5873,1,1,1,1,1,1, + 1,1,1,1,1,497,1,5462,1,1, + 1,2891,1278,40,5334,5334,795,2709,5334,415, + 229,1,5204,5200,4465,5208,1900,1298,2921,5958, + 5462,5344,5344,229,5340,229,229,229,229,1, + 319,5462,5392,2432,2272,1,1,1,1,1, + 1,1,1,1,1,1,351,5112,5109,2741, + 870,1900,1365,2921,5798,5895,5896,5897,5462,1, + 353,3386,3375,1580,1,229,5873,1,1,1, + 1,1,1,1,1,1,1,1,497,1, + 124,1,1,1,2045,1278,5462,5462,9857,9857, + 2850,592,414,229,5462,5112,5109,391,5503,223, + 5151,1209,5958,5151,5462,5151,5462,5151,5151,5151, + 5151,5151,1814,5462,5728,5726,5735,5734,5730,5731, + 5729,5732,5733,5736,5727,1814,1814,226,318,5204, + 5200,4465,5208,1900,5407,2921,5404,509,5895,5896, + 5897,5148,5151,5719,144,5501,5722,5805,5806,5716, + 5723,5695,5721,5720,5717,5718,5696,5151,1504,5462, + 48,5310,5310,5151,2434,52,5151,5151,5151,5151, + 5151,5719,5151,128,5722,5805,5806,5716,5723,5695, + 5721,5720,5717,5718,5696,5151,5151,5151,5151,5151, + 5151,5151,5151,5151,5151,5151,5151,5151,5151,5151, + 5151,5151,5151,5151,5151,5151,5151,5151,5151,5151, + 5151,5151,5151,5151,390,1771,227,5154,5307,5462, + 5154,5462,5154,2835,5154,5154,5154,5154,5154,372, + 5204,5200,2741,5208,1900,1,2921,1,5462,5112, + 5109,5462,870,5161,3797,2921,2233,5462,1728,1685, + 1642,1599,1556,1513,1470,1427,1384,1341,3377,5154, + 5719,795,2709,5722,5805,5806,5716,5723,5695,5721, + 5720,5717,5718,5696,5157,141,5462,5895,5896,5897, + 5154,5462,1752,5154,5154,5154,5154,5154,2608,5154, + 3791,4028,5462,5479,5480,1814,1000,1900,5462,2921, + 1062,5462,5154,5154,5154,5154,5154,5154,5154,5154, + 5154,5154,5154,5154,5154,5154,5154,5154,5154,5154, + 5154,5154,5154,5154,5154,5154,5154,5154,5154,5154, + 5154,5462,1,1,1,1,1,1,1,1, + 1,1,1,5472,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1800,997, - 634,5311,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,2308,5471,5624,5462,1, 1,1,1,1,1,1,1,1,1,1, + 169,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,141,431,5470,5311,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,5108,169,5624,5462,1,1,1,1, + 1,1,1,1,1,1,1,169,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,27,5741, - 5470,1,5091,3738,5095,630,4108,3737,4130,5055, - 4086,4064,4174,4152,5082,5088,5061,5064,5076,5073, - 5079,5070,5067,5058,5085,5331,2420,864,1112,5333, - 919,4387,920,5334,5332,780,5327,5329,5330,5328, - 1251,39,39,5311,1823,5311,1823,4345,1,5091, - 2695,5095,2022,2218,3737,5311,5311,5003,138,784, - 5052,234,3737,5190,5205,2652,5205,512,5311,1, + 1,1,1,1,1,1,1,1,1,5462, + 169,5624,5462,1,1,1,1,1,1,1, + 1,1,1,1,169,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1800,1881,5470,5311,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5311,2291,5470,5311,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 289,5603,5470,5311,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,36,5241,5470,5311,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 5311,5603,5470,5311,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,397,5346,5470,143,5003, - 3738,784,630,4108,3737,4130,557,4086,4064,4174, - 4152,5574,5572,5581,5580,5576,5577,5575,5578,5579, - 5582,5573,5331,2420,864,1112,5333,919,4387,920, - 5334,5332,780,5327,5329,5330,5328,1251,39,39, - 1,5091,3738,5095,630,4108,3737,4130,5055,4086, - 4064,4174,4152,5082,5088,5061,5064,5076,5073,5079, - 5070,5067,5058,5085,5331,2420,864,1112,5333,919, - 4387,920,5334,5332,780,5327,5329,5330,5328,1251, - 39,39,39,5003,3738,784,630,4108,3737,4130, - 557,4086,4064,4174,4152,5574,5572,5581,5580,5576, - 5577,5575,5578,5579,5582,5573,5331,2420,864,1112, - 5333,919,4387,920,5334,5332,780,5327,5329,5330, - 5328,1251,123,5311,2820,1,5217,116,5214,1, - 2463,4848,5644,5311,3405,1,115,5311,1,3731, - 2762,5311,5311,4535,396,3705,5311,5039,1,5311, - 2762,4565,127,5319,39,5003,3738,784,630,4108, - 3737,4130,557,4086,4064,4174,4152,5574,5572,5581, - 5580,5576,5577,5575,5578,5579,5582,5573,5331,2420, - 864,1112,5333,919,4387,920,5334,5332,780,5327, - 5329,5330,5328,1251,1,224,1336,365,5775,5769, - 1800,5773,508,5767,5768,5798,5799,365,2624,2715, - 1800,76,5311,3861,344,4218,344,3705,365,5776, - 344,4240,5376,5377,4218,5319,431,39,365,5349, - 4240,5311,37,5220,1628,1629,5220,5565,2624,2715, - 5568,5651,5652,5562,5569,5541,5567,5566,5563,5564, - 5311,5542,5778,126,397,5098,1167,5349,125,5311, - 5779,128,5800,5777,130,37,129,5311,37,5220, - 4837,5741,114,2251,364,350,124,2800,5311,3331, - 5789,5788,5801,5770,5771,5794,5795,2108,5311,5792, - 5793,5772,5774,5796,5797,5802,5782,5783,5784,5780, - 5781,5790,5791,5786,5785,5787,5311,30,1336,39, - 5775,5769,577,5773,5311,5767,5768,5798,5799,2585, - 5347,1,2585,2026,2585,1066,5311,5015,1,5280, - 5199,5776,5202,37,5220,307,5280,1800,3058,2624, - 2715,3506,2685,5617,2624,2715,1628,1629,5311,5003, - 5311,5349,2531,792,2447,2531,792,2531,792,5311, - 4218,4889,2624,2715,5778,508,4240,5311,1167,4283, - 360,5311,5779,4410,5800,5777,3050,421,5283,105, - 3412,4411,2684,3050,4839,5283,5311,5311,5347,5311, - 2975,5311,5789,5788,5801,5770,5771,5794,5795,5311, - 1321,5792,5793,5772,5774,5796,5797,5802,5782,5783, - 5784,5780,5781,5790,5791,5786,5785,5787,39,5003, - 3738,784,630,4108,3737,4130,557,4086,4064,4174, - 4152,5574,5572,5581,5580,5576,5577,5575,5578,5579, - 5582,5573,5331,2420,864,1112,5333,919,4387,920, - 5334,5332,780,5327,5329,5330,5328,1251,5311,1838, - 322,5311,5262,5670,5311,2452,5311,5234,5311,5237, - 47,5247,37,5220,5311,50,30,5311,1707,449, - 41,3705,39,5003,3738,784,630,4108,3737,4130, - 557,4086,4064,4174,4152,5574,5572,5581,5580,5576, - 5577,5575,5578,5579,5582,5573,5331,2420,864,1112, - 5333,919,4387,920,5334,5332,780,5327,5329,5330, - 5328,5347,1800,5347,3415,5244,2684,5347,5311,955, - 2464,1,5319,1707,5006,779,377,5009,5030,5311, - 2466,3145,5311,8930,1925,39,5003,3738,784,630, - 4108,3737,4130,557,4086,4064,4174,4152,5574,5572, - 5581,5580,5576,5577,5575,5578,5579,5582,5573,5331, - 2420,864,1112,5333,919,4387,920,5334,5332,780, - 5327,5329,5330,5328,39,5003,3738,784,630,4108, - 3737,4130,557,4086,4064,4174,4152,5574,5572,5581, - 5580,5576,5577,5575,5578,5579,5582,5573,5331,2420, - 864,1112,5333,919,4387,920,5334,5332,780,5327, - 5329,5330,5328,1251,5672,279,5311,5277,4481,5311, - 5311,4809,5311,5311,3305,3409,5311,5311,4543,3676, - 5311,5311,4817,3359,5311,5311,3407,4907,5311,8930, - 5311,3359,5311,5311,3452,5311,5311,5311,5317,39, - 5003,4808,784,630,4108,3737,4130,557,4086,4064, - 4174,4152,5574,5572,5581,5580,5576,5577,5575,5578, - 5579,5582,5573,5331,2420,864,1112,5333,919,4387, - 920,5334,5332,780,5327,5329,5330,5328,39,5003, - 3738,784,630,4108,3737,4130,557,4086,4064,4174, - 4152,5574,5572,5581,5580,5576,5577,5575,5578,5579, - 5582,5573,5331,2420,864,1112,5333,919,4387,920, - 5334,5332,780,5327,5329,5330,5328,39,5003,3738, - 784,630,4108,3737,4130,557,4086,4064,4174,4152, - 5574,5572,5581,5580,5576,5577,5575,5578,5579,5582, - 5573,5331,2420,864,1112,5333,919,4387,920,5334, - 5332,780,5327,5329,5330,5328,5311,5021,529,5349, - 5311,5311,387,5311,815,5311,5311,49,405,5574, - 5572,5581,5580,5576,5577,5575,5578,5579,5582,5573, - 5311,5311,5311,5311,3531,1,425,1,5289,226, - 5289,226,226,226,226,5311,5311,3121,5565,5311, - 1,5568,5651,5652,5562,5569,5541,5567,5566,5563, - 5564,5250,5542,5709,518,576,5710,5711,238,5173, - 5184,5177,1058,5320,2653,5311,815,5311,3056,9518, - 226,5164,5170,5143,5146,5158,5155,5161,5152,5149, - 5140,5167,5286,508,5311,3277,5311,5818,4440,5761, - 2916,1384,572,5319,3169,290,2655,288,372,370, - 5128,5806,443,5119,5113,5110,5137,5116,5107,5122, - 5125,5134,5131,3220,5104,5709,5311,576,5710,5711, - 1,5289,226,5289,226,226,226,226,1,5289, - 226,5289,226,226,226,226,423,5712,417,503, - 5311,1,3219,1,3312,501,1,5289,226,5289, - 226,226,226,226,1,5289,226,5289,226,226, - 226,226,9518,226,1936,1208,5,1121,1163,3359, - 9518,226,657,178,5311,5286,5311,444,5311,5311, - 35,5311,5311,5286,1384,572,2068,3169,9518,226, - 1,218,1384,572,5806,3169,9518,226,1,218, - 5311,5286,5806,723,1366,5311,1,2124,4876,5286, - 1384,572,5319,3169,4877,5318,5299,217,1384,572, - 5806,3169,5311,5311,37,218,188,314,5806,1, - 5289,226,5289,226,226,226,226,1,5289,226, - 5289,226,226,226,226,2839,5492,3666,3571,1581, - 5311,5311,5491,3515,3433,1,5289,226,5289,226, - 226,226,226,1,5289,226,5289,226,226,226, - 226,9518,226,5311,1581,505,5311,5311,525,9518, - 226,5311,5311,1,5286,3566,5302,5311,5311,5311, - 5311,3651,5286,1384,572,4457,3169,9518,226,5311, - 218,1384,572,5806,3169,9518,226,3163,5311,5311, - 5286,5806,5311,5311,5311,5311,5311,5311,5286,1384, - 572,5311,3169,5311,5311,5311,5311,1384,572,5806, - 3169,5311,5311,5311,5311,5311,5311,5806,5311,5311, - 5311,5311,1894,5311,664,5311,5308 + 1,1,1,1,1,1,5462,5462,5624,5462, + 5204,5200,4465,5208,1900,5407,2921,5404,5462,351, + 42,42,3375,5503,1,1365,5462,5798,1,5204, + 5200,2741,5208,1900,5462,2921,167,169,5462,1, + 1,1,1,1,1,1,1,1,1,1, + 169,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,2045,3794,5624,1814,3919,2617,5462,5112, + 5109,5462,870,5161,1814,2921,5462,5479,5480,167, + 5462,5462,1,1,1,1,1,1,1,1, + 1,1,1,169,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,2029,575,5462,1, + 1,1,1,1,1,1,1,1,1,1, + 3474,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5462,5462,5624,5462,1,1,1,1, + 1,1,1,1,1,1,1,127,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5462, + 3901,5624,1,5204,5200,3034,5208,2771,3549,2921, + 3572,5164,3518,3495,5462,3618,3595,5191,5197,5170, + 5173,5185,5182,5188,5179,5176,5167,5194,5485,927, + 680,776,5487,727,632,735,5488,5486,678,5481, + 5483,5484,5482,1254,42,42,1,5204,5200,4465, + 5208,1900,5462,2921,5462,795,2709,3892,5462,5462, + 1,1,1,1,1,1,1,1,1,1, + 1,513,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5462,5462,5624,5462,1,1,1, + 1,1,1,1,1,1,1,1,4954,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5462,5462,5624,5462,1,1,1,1,1,1, + 1,1,1,1,1,5462,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5462,5462,5624, + 5462,1,1,1,1,1,1,1,1,1, + 1,1,5462,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5462,5462,5624,5462,1,1, + 1,1,1,1,1,1,1,1,1,5462, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5462,5462,5624,5462,1,1,1,1,1, + 1,1,1,1,1,1,5462,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5462,5462, + 5624,42,5112,5109,3034,870,2771,3549,2921,3572, + 578,3518,3495,5470,3618,3595,5728,5726,5735,5734, + 5730,5731,5729,5732,5733,5736,5727,5485,927,680, + 776,5487,727,632,735,5488,5486,678,5481,5483, + 5484,5482,1254,5462,1,5331,5331,5462,5328,5462, + 1365,1,5798,5462,3375,5468,368,1,5204,5200, + 2741,5208,1900,347,2921,4029,40,5334,5334,292, + 5479,5480,1752,5469,42,5112,5109,3034,870,2771, + 3549,2921,3572,578,3518,3495,5470,3618,3595,5728, + 5726,5735,5734,5730,5731,5729,5732,5733,5736,5727, + 5485,927,680,776,5487,727,632,735,5488,5486, + 678,5481,5483,5484,5482,1254,2636,1814,5467,368, + 347,347,2645,1814,5501,5462,347,1,5204,5200, + 5383,5208,5389,1,5386,5462,42,391,4029,368, + 5503,5462,1365,5462,5798,3085,5469,146,5112,5109, + 3034,870,2771,3549,2921,3572,578,3518,3495,5462, + 3618,3595,5728,5726,5735,5734,5730,5731,5729,5732, + 5733,5736,5727,5485,927,680,776,5487,727,632, + 735,5488,5486,678,5481,5483,5484,5482,1254,42, + 42,1,5204,5200,3034,5208,2771,3549,2921,3572, + 5164,3518,3495,162,3618,3595,5191,5197,5170,5173, + 5185,5182,5188,5179,5176,5167,5194,5485,927,680, + 776,5487,727,632,735,5488,5486,678,5481,5483, + 5484,5482,1254,42,42,42,5112,5109,3034,870, + 2771,3549,2921,3572,578,3518,3495,5466,3618,3595, + 5728,5726,5735,5734,5730,5731,5729,5732,5733,5736, + 5727,5485,927,680,776,5487,727,632,735,5488, + 5486,678,5481,5483,5484,5482,42,5112,5109,3034, + 870,2771,3549,2921,3572,578,3518,3495,5462,3618, + 3595,5728,5726,5735,5734,5730,5731,5729,5732,5733, + 5736,5727,5485,927,680,776,5487,727,632,735, + 5488,5486,678,5481,5483,5484,5482,1254,1,5204, + 5200,4465,5208,1900,534,2921,5462,5462,79,4528, + 318,2014,1,5204,5200,4465,5208,1900,5462,2921, + 4029,5530,5531,3728,40,5334,5334,5462,5354,5351, + 5465,42,5112,5109,3034,870,2771,3549,2921,3572, + 578,3518,3495,318,3618,3595,5728,5726,5735,5734, + 5730,5731,5729,5732,5733,5736,5727,5485,927,680, + 776,5487,727,632,735,5488,5486,678,5481,5483, + 5484,5482,1254,1,2948,5462,540,33,5927,5921, + 5462,5925,3128,5919,5920,5501,5950,5951,440,1, + 1,38,1,5462,5130,5145,5130,5462,5112,5109, + 5928,870,1900,5145,2921,5472,441,42,42,397, + 5503,579,5325,5148,5322,1459,1510,97,1,1, + 5462,1,310,5337,1148,5337,100,42,42,144, + 5503,5771,5401,5930,5398,4962,5145,5115,5471,908, + 773,1,5931,5952,5929,5462,5112,5109,131,870, + 1900,5462,2921,368,4690,133,39,5368,5365,5462, + 5462,5941,5940,5953,5922,5923,5946,5947,132,509, + 5944,5945,5924,5926,5948,5949,5954,5934,5935,5936, + 5932,5933,5942,5943,5938,5937,5939,5462,325,1762, + 540,5395,5927,5921,512,5925,373,5919,5920,33, + 5950,5951,5462,5479,5480,5462,5361,5357,2668,5462, + 5301,5298,1,5462,5928,2668,368,5127,432,42, + 42,5413,5503,406,5313,50,5374,5374,2668,1459, + 1510,2233,398,5479,5480,5377,368,5316,1,5462, + 5462,2612,2584,3377,3641,1153,5462,5930,2612,2584, + 5468,3641,1153,908,1814,5462,5931,5952,5929,509, + 4883,2612,2584,5501,827,5893,5462,1166,5380,3923, + 3381,5416,422,5462,5462,5941,5940,5953,5922,5923, + 5946,5947,5970,5371,5944,5945,5924,5926,5948,5949, + 5954,5934,5935,5936,5932,5933,5942,5943,5938,5937, + 5939,42,5112,5109,3034,870,2771,3549,2921,3572, + 578,3518,3495,5467,3618,3595,5728,5726,5735,5734, + 5730,5731,5729,5732,5733,5736,5727,5485,927,680, + 776,5487,727,632,735,5488,5486,678,5481,5483, + 5484,5482,3764,4028,5462,9659,9594,5462,9659,9594, + 5462,40,5334,5334,3158,42,5112,5109,3034,870, + 2771,3549,2921,3572,578,3518,3495,1332,3618,3595, + 5728,5726,5735,5734,5730,5731,5729,5732,5733,5736, + 5727,5485,927,680,776,5487,727,632,735,5488, + 5486,678,5481,5483,5484,5482,1254,42,5112,5109, + 4901,870,2771,3549,2921,3572,578,3518,3495,5501, + 3618,3595,5728,5726,5735,5734,5730,5731,5729,5732, + 5733,5736,5727,5485,927,680,776,5487,727,632, + 735,5488,5486,678,5481,5483,5484,5482,42,5112, + 5109,3034,870,2771,3549,2921,3572,578,3518,3495, + 5462,3618,3595,5728,5726,5735,5734,5730,5731,5729, + 5732,5733,5736,5727,5485,927,680,776,5487,727, + 632,735,5488,5486,678,5481,5483,5484,5482,42, + 5112,5109,3034,870,2771,3549,2921,3572,578,3518, + 3495,5462,3618,3595,5728,5726,5735,5734,5730,5731, + 5729,5732,5733,5736,5727,5485,927,680,776,5487, + 727,632,735,5488,5486,678,5481,5483,5484,5482, + 5462,5112,5109,5462,5503,367,4217,53,291,861, + 108,5480,5462,4671,5462,5728,5726,5735,5734,5730, + 5731,5729,5732,5733,5736,5727,181,5462,5462,5462, + 5462,5462,3229,1,5462,5462,5462,5462,5441,5462, + 5913,5472,5468,5470,5719,5462,5470,5722,5805,5806, + 5716,5723,5695,5721,5720,5717,5718,5696,1,5861, + 5462,620,5862,5863,241,5284,5280,5480,5288,450, + 5419,5441,53,861,5471,3040,5479,424,2769,5271, + 5277,5250,5253,5265,5262,5268,5259,5256,5247,5274, + 1,5425,5425,229,5425,229,229,229,229,4443, + 4984,1,229,5469,957,5467,5469,2762,5235,5864, + 5413,5226,5220,5217,5244,5223,5214,5229,5232,5241, + 5238,5211,5462,5861,1,620,5862,5863,44,5118, + 5469,390,5479,1,9859,229,526,1,5425,5425, + 229,5425,229,229,229,229,530,2386,5422,5453, + 3545,5462,444,282,2296,2306,5410,823,3461,3381, + 5416,5462,1,5425,5425,229,5425,229,229,229, + 229,5462,5958,5462,5453,445,5462,418,504,4687, + 3187,9859,229,5462,5462,502,4909,3407,5139,5462, + 5462,5295,3577,509,5462,5422,5462,5462,5462,526, + 5462,4281,2306,4322,823,3461,9859,229,380,221, + 1,5425,5425,229,5425,229,229,229,229,5958, + 5422,2758,5456,3371,5462,788,5462,2306,38,823, + 3461,3026,519,5462,221,1,5425,5425,229,5425, + 229,229,229,229,5958,2814,2084,5453,2139,4964, + 5462,317,3218,4129,9859,229,4974,5462,5462,5462, + 4931,4363,5039,5646,5462,4064,506,3927,5422,191, + 2,5462,1,5462,5462,2306,5462,823,3461,9859, + 229,5462,220,1,5425,5425,229,5425,229,229, + 229,229,5958,5422,5462,5453,5462,5645,3411,1805, + 2306,3718,823,3461,1805,5462,5462,221,1,5425, + 5425,229,5425,229,229,229,229,5958,5462,5462, + 229,3358,5462,5462,5462,3718,5462,9859,229,5462, + 40,5462,5462,5462,5462,1908,5462,660,5462,5462, + 5462,5422,5462,5462,5462,5462,5462,5462,2306,3718, + 823,3461,9859,229,5462,221,1,5425,5425,229, + 5425,229,229,229,229,5958,5422,5462,229,5462, + 5462,5462,5462,2306,5462,823,3461,5462,5462,5462, + 5462,1,5425,5425,229,5425,229,229,229,229, + 5958,5459,5462,229,5462,5462,5462,5462,5462,5462, + 9859,229,5462,5462,5462,5462,5462,5462,5462,5462, + 5462,5462,5462,5462,5422,5462,5462,5462,5462,5462, + 5462,2306,5462,823,3461,9859,229,5462,5462,5462, + 5462,5462,5462,5462,5462,5462,5462,5462,5958,5422, + 5462,5462,5462,5462,5462,5462,2306,5462,823,3461, + 5462,5462,5462,5462,5462,5462,5462,5462,5462,5462, + 5462,5462,5462,5958 }; }; public final static char termAction[] = TermAction.termAction; @@ -1856,59 +1943,59 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface Asb { public final static char asb[] = {0, - 1023,6,1020,226,5,13,783,566,566,566, - 566,75,783,360,566,829,360,1060,209,1062, - 227,227,227,227,227,227,227,227,227,976, - 982,987,984,991,989,996,994,998,997,999, - 78,1000,226,209,47,47,47,47,126,85, - 19,358,47,17,450,360,360,19,859,360, - 450,450,442,210,900,46,650,76,268,274, - 209,960,960,692,692,85,1023,227,227,227, - 227,227,227,227,227,227,227,227,227,227, - 227,227,227,227,227,227,226,226,226,226, - 226,226,226,226,226,226,226,1023,227,450, - 450,898,898,898,898,186,450,19,824,947, - 958,551,958,547,958,1,958,942,958,958, - 75,126,17,17,19,227,824,277,507,459, - 458,319,75,1062,17,46,226,264,649,450, - 263,126,265,263,450,17,984,984,982,982, - 982,989,989,989,989,987,987,994,991,991, - 997,996,998,576,999,783,783,783,783,126, - 126,898,368,897,358,126,354,143,126,550, - 186,549,269,551,544,126,126,126,186,898, - 442,17,1014,450,509,511,126,650,227,47, - 980,408,450,76,126,126,265,650,226,1023, - 1023,1023,1023,783,783,210,827,354,143,550, - 270,550,186,550,544,544,126,186,126,450, - 602,452,601,511,186,264,450,980,824,649, - 126,76,264,450,450,450,450,85,85,354, - 353,555,126,143,576,187,122,568,143,550, - 550,466,126,544,555,553,554,126,578,226, - 599,599,128,128,126,505,824,473,450,126, - 981,981,980,1023,408,266,76,450,450,354, - 650,566,263,587,569,260,783,557,469,126, - 555,227,126,578,226,226,511,126,650,450, - 509,452,578,330,85,227,17,126,266,264, - 157,264,550,550,260,1019,824,126,560,227, - 576,136,466,74,126,598,511,578,450,17, - 126,1020,157,264,550,551,75,569,260,649, - 227,227,75,598,450,598,897,566,8,8, - 1020,551,191,557,126,783,126,783,591,598, - 157,699,157,896,896,605,192,75,126,85, - 126,512,591,317,655,776,783,2,734,157, - 47,47,605,191,576,227,576,1020,783,783, - 783,192,783,126,741,1020,1020,776,126,551, - 190,450,449,593,612,898,776,317,698,551, - 607,551,75,897,140,783,576,192,209,209, - 208,610,209,1020,1020,776,406,605,47,593, - 699,698,699,1020,135,1019,450,698,698,75, - 698,126,542,473,450,260,450,741,1020,783, - 450,605,698,226,786,260,1020,555,698,698, - 126,698,126,8,450,450,343,192,406,192, - 1020,741,1023,192,189,555,450,785,555,126, - 555,1020,896,551,551,933,226,190,1022,1020, - 450,785,1020,263,192,450,1022,1020,554,192, - 450,785,192 + 1081,49,773,820,47,51,909,554,554,554, + 554,114,909,964,554,410,964,1118,803,1120, + 821,821,821,821,821,821,821,821,821,729, + 735,740,737,744,742,749,747,751,750,752, + 169,753,820,803,86,86,86,86,860,176, + 58,961,86,294,44,964,964,58,441,964, + 44,44,35,804,648,85,595,116,243,250, + 803,712,712,949,949,176,1081,821,821,821, + 821,821,821,821,821,821,821,821,821,821, + 821,821,821,821,821,821,820,820,820,820, + 820,820,820,820,820,820,820,1081,821,44, + 44,480,480,480,480,165,44,58,1073,699, + 710,537,710,532,710,534,710,694,710,710, + 114,860,294,294,58,821,1073,253,371,361, + 360,307,114,1120,294,85,820,858,594,44, + 857,860,859,857,44,294,737,737,735,735, + 735,742,742,742,742,740,740,747,744,744, + 750,749,751,1031,752,909,909,909,909,860, + 860,480,973,479,961,860,957,121,860,247, + 165,234,245,537,238,860,860,860,165,480, + 35,294,767,44,373,375,860,595,821,86, + 733,1,44,116,860,860,859,595,820,1081, + 1081,1081,1081,909,909,804,1077,957,121,247, + 246,247,165,247,238,238,860,165,860,44, + 365,353,364,375,165,858,44,733,1073,594, + 860,116,858,44,44,44,44,176,176,957, + 956,541,860,121,1031,167,214,1021,121,247, + 247,1013,860,238,541,539,540,860,297,820, + 362,362,221,221,860,369,1073,497,44,860, + 734,734,733,1081,1,219,116,44,44,957, + 595,554,857,343,1023,854,909,544,1017,860, + 541,821,860,297,820,820,375,860,595,44, + 373,353,297,318,176,821,294,860,219,858, + 136,858,247,247,854,772,1073,860,547,821, + 1031,229,1013,113,860,489,375,297,44,294, + 860,773,136,858,247,537,114,1023,854,594, + 821,821,114,489,44,489,479,554,347,347, + 773,537,784,544,860,909,860,909,482,489, + 136,604,136,478,478,530,785,114,860,176, + 860,376,482,601,911,900,909,535,640,136, + 86,86,530,784,1031,821,1031,773,909,909, + 909,785,909,860,865,773,773,900,860,537, + 783,44,43,484,556,480,900,601,603,537, + 691,537,114,479,118,909,776,1031,785,803, + 803,801,863,803,773,773,900,1011,530,86, + 484,604,603,604,773,228,772,44,603,603, + 114,603,860,408,497,44,854,44,865,773, + 909,44,530,603,820,1035,854,773,541,603, + 603,860,603,860,347,44,44,331,785,1011, + 785,773,865,1081,785,782,541,44,1033,541, + 860,541,773,478,537,537,681,820,783,1079, + 773,44,1033,773,857,785,44,1079,773,540, + 785,44,1033,785 }; }; public final static char asb[] = Asb.asb; @@ -1916,113 +2003,119 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface Asr { public final static byte asr[] = {0, - 3,1,63,0,43,119,0,66,69,68, - 1,0,70,72,43,68,113,0,26,40, - 27,28,41,6,29,30,31,32,39,33, - 34,35,36,37,24,11,12,7,5,9, - 10,4,25,66,38,2,48,13,14,57, - 46,15,59,49,42,16,50,51,17,18, - 52,53,19,20,54,60,56,8,61,21, - 22,47,23,45,1,3,0,66,70,93, - 68,113,71,43,72,13,14,26,40,15, - 27,28,16,17,18,41,29,19,20,30, - 31,32,39,33,34,21,22,23,35,36, - 37,24,2,11,12,7,5,9,10,25, - 38,6,4,3,8,1,0,73,63,66, - 70,93,72,62,2,68,43,69,0,67, - 65,115,74,6,116,117,118,64,2,7, - 5,4,70,71,43,44,48,13,14,57, - 46,15,59,49,42,16,50,51,17,18, - 52,53,19,20,54,60,56,8,61,21, - 45,22,47,23,3,1,55,0,115,120, - 71,73,64,65,67,76,78,84,82,75, - 80,81,83,85,63,77,79,43,44,59, - 57,60,61,48,53,54,42,52,51,45, - 49,46,47,50,56,39,40,41,8,27, - 31,29,26,34,14,23,13,19,17,18, - 20,21,16,15,22,35,38,36,37,24, - 33,28,32,11,12,9,10,25,30,7, - 5,2,3,6,1,4,0,43,3,58, - 63,70,0,58,3,0,40,41,113,2, - 8,27,31,29,26,34,14,23,13,19, - 17,18,20,21,16,15,22,35,38,36, - 37,33,28,32,4,6,3,11,12,7, - 5,9,10,25,30,1,24,0,13,14, - 15,16,17,18,19,20,21,22,23,48, - 46,49,42,50,51,52,53,54,56,45, - 47,43,72,6,1,62,2,7,5,4, - 3,0,39,46,6,47,4,1,3,73, - 63,70,93,113,72,71,43,62,2,114, - 94,101,88,11,12,7,5,9,10,89, - 90,86,87,58,91,92,95,96,97,98, - 99,100,112,102,103,104,105,106,107,108, - 109,110,111,66,68,69,0,94,88,9, - 10,89,90,86,87,58,91,92,95,96, - 97,98,99,100,112,70,93,69,102,103, - 104,105,106,107,108,109,110,111,113,71, - 43,66,1,7,5,3,2,62,68,72, - 0,7,5,6,4,3,1,2,66,93, - 69,68,72,62,0,1,45,3,116,117, - 118,0,48,13,14,57,46,15,59,49, - 42,16,50,51,17,18,52,53,19,20, - 54,60,56,8,61,21,45,22,47,23, - 1,3,93,0,4,6,2,62,5,7, - 93,48,13,14,46,15,59,49,42,16, - 50,51,17,18,52,53,19,20,54,60, - 56,8,61,21,45,22,47,23,1,3, - 72,57,0,1,71,0,55,1,3,70, - 63,0,69,68,71,0,63,68,0,70, - 62,2,69,68,43,58,0,43,4,6, - 2,1,3,5,7,70,0,46,39,47, - 66,93,69,68,72,0,63,70,73,0, - 46,47,73,2,63,70,43,39,66,69, - 68,72,93,0,115,0,63,69,0,75, - 0,67,48,13,14,57,46,15,59,49, - 74,42,16,50,51,17,18,52,65,53, - 19,20,54,60,56,8,61,21,64,45, - 22,47,23,2,7,3,43,63,5,6, - 1,4,55,0,14,57,46,15,59,49, - 16,50,51,17,18,52,53,19,20,54, - 60,56,8,61,21,45,22,47,23,13, - 48,2,7,5,43,64,65,67,74,42, - 58,6,3,55,4,1,0,71,14,57, - 46,15,59,49,16,50,51,17,18,52, - 53,19,20,54,60,56,61,21,45,22, - 47,23,13,48,2,7,5,43,64,67, - 74,42,55,6,1,4,3,8,65,0, - 13,14,26,40,15,27,28,16,17,18, - 41,29,19,20,30,31,32,39,33,34, - 8,21,22,23,35,36,37,24,11,12, - 9,10,25,38,44,7,5,43,4,6, - 1,3,2,0,71,40,41,39,11,12, - 9,10,4,25,30,2,6,35,38,36, - 37,24,33,28,32,14,23,13,19,17, - 18,20,21,16,15,22,8,27,31,29, - 26,34,63,1,7,3,5,0,48,13, - 14,57,46,15,59,49,42,16,50,51, - 17,18,52,53,19,20,54,60,56,8, - 61,21,45,22,47,23,1,3,41,40, - 9,10,5,89,90,97,7,98,4,25, - 58,105,106,102,103,104,110,109,111,87, - 86,107,108,95,96,91,92,99,100,11, - 12,88,101,2,62,69,68,66,0,40, - 41,11,12,9,10,25,30,35,38,36, - 37,24,33,28,32,14,23,13,19,17, - 18,20,21,16,15,22,8,27,31,29, - 26,34,7,5,2,62,4,6,1,3, - 0,8,59,57,60,61,14,23,13,19, - 17,18,20,21,16,15,22,73,63,3, - 4,1,47,45,56,54,53,6,52,51, - 50,42,49,46,48,114,101,11,12,62, - 2,94,88,5,89,90,9,10,87,86, - 58,91,92,95,96,7,97,98,99,66, - 93,72,69,102,103,104,105,106,107,108, - 109,110,111,70,113,71,100,112,68,43, - 0,72,13,14,26,15,27,28,16,17, - 18,29,19,20,30,31,32,39,33,34, - 8,21,22,23,35,36,37,24,2,11, - 12,7,5,9,10,25,3,38,44,4, - 6,1,41,40,0 + 96,90,10,11,91,92,88,89,60,93, + 94,97,98,99,100,101,102,114,73,95, + 71,104,105,106,107,108,109,110,111,112, + 113,115,72,45,69,1,2,8,6,4, + 3,66,70,75,12,0,12,45,121,0, + 12,73,115,75,45,70,0,28,42,29, + 30,43,7,31,32,33,34,41,35,36, + 37,38,39,26,13,14,8,6,10,11, + 5,27,69,40,3,50,15,16,59,48, + 17,61,51,44,18,52,53,19,20,54, + 55,21,22,56,62,57,9,63,23,24, + 49,25,47,1,2,4,0,68,67,117, + 82,7,118,119,120,65,12,3,8,6, + 5,73,72,45,46,50,15,16,59,48, + 17,61,51,44,18,52,53,19,20,54, + 55,21,22,56,62,57,9,63,23,47, + 24,49,25,4,1,2,58,0,69,73, + 95,70,115,72,45,12,75,15,16,28, + 42,17,29,30,18,19,20,43,31,21, + 22,32,33,34,41,35,36,23,24,25, + 37,38,39,26,3,13,14,8,6,10, + 11,27,40,7,1,2,4,9,5,0, + 74,64,69,73,95,75,66,3,12,70, + 45,71,0,4,64,73,0,1,2,12, + 72,0,12,45,4,60,64,73,0,60, + 4,0,42,43,3,9,29,33,31,28, + 36,16,25,15,21,19,20,22,23,18, + 17,24,37,40,38,39,26,35,30,34, + 5,7,4,13,14,8,6,10,11,27, + 32,1,2,115,12,0,48,41,49,12, + 69,95,71,70,75,0,15,16,17,18, + 19,20,21,22,23,24,25,50,48,51, + 44,52,53,54,55,56,57,47,49,45, + 12,75,7,1,2,66,3,8,6,5, + 4,0,64,73,74,0,69,71,70,1, + 2,0,8,6,7,5,4,1,2,3, + 66,69,71,70,12,75,95,0,5,7, + 3,66,6,8,95,50,15,16,48,17, + 61,51,44,18,52,53,19,20,54,55, + 21,22,56,62,57,9,63,23,47,24, + 49,25,1,2,4,75,12,59,0,50, + 15,16,59,48,17,61,51,44,18,52, + 53,19,20,54,55,21,22,56,62,57, + 9,63,23,47,24,49,25,1,2,4, + 43,42,10,11,6,91,92,99,8,100, + 5,27,60,107,108,104,105,106,112,111, + 113,89,88,109,110,97,98,93,94,101, + 102,13,14,90,103,3,66,71,70,69, + 0,48,49,74,3,64,73,45,41,12, + 69,95,71,70,75,0,50,15,16,59, + 48,17,61,51,44,18,52,53,19,20, + 54,55,21,22,56,62,57,9,63,23, + 47,24,49,25,1,2,4,95,0,117, + 0,58,73,4,1,2,64,0,71,70, + 72,12,0,64,70,0,73,12,66,3, + 71,70,45,60,0,68,50,15,16,59, + 48,17,61,51,82,44,18,52,53,19, + 20,54,67,55,21,22,56,62,57,9, + 63,23,65,47,24,49,25,12,3,8, + 4,45,64,6,7,1,2,5,58,0, + 26,0,72,59,48,17,61,51,18,52, + 53,19,20,54,55,21,22,56,62,57, + 63,23,47,24,49,25,16,15,50,12, + 3,8,6,45,65,68,82,44,58,7, + 1,2,5,4,9,67,0,42,43,13, + 14,10,11,27,32,37,40,38,39,26, + 35,30,34,16,25,15,21,19,20,22, + 23,18,17,24,9,29,33,31,28,36, + 8,6,3,66,5,7,1,2,4,0, + 64,71,0,9,61,59,62,63,16,25, + 15,21,19,20,22,23,18,17,24,74, + 64,5,4,2,1,49,47,57,56,55, + 7,54,53,52,44,51,48,50,116,103, + 13,14,66,3,96,90,6,91,92,10, + 11,89,88,60,93,94,97,98,8,99, + 100,101,69,95,75,71,104,105,106,107, + 108,109,110,111,112,113,73,115,72,102, + 114,70,45,12,0,82,118,119,120,58, + 73,117,122,72,74,65,67,68,77,79, + 86,84,76,81,83,85,87,64,78,80, + 12,45,46,61,59,62,63,50,55,56, + 44,54,53,47,51,48,49,52,57,41, + 42,43,9,29,33,31,28,36,16,25, + 15,21,19,20,22,23,18,17,24,37, + 40,38,39,26,35,30,34,13,14,10, + 11,27,32,8,6,3,4,7,5,1, + 2,0,76,0,15,16,28,42,17,29, + 30,18,19,20,43,31,21,22,32,33, + 34,41,35,36,9,23,24,25,37,38, + 39,26,13,14,10,11,27,40,46,12, + 8,6,45,5,7,1,2,4,3,0, + 59,48,17,61,51,18,52,53,19,20, + 54,55,21,22,56,62,57,9,63,23, + 47,24,49,25,16,15,50,12,3,8, + 6,45,65,67,68,82,44,60,7,4, + 58,5,1,2,0,41,48,7,49,5, + 1,2,4,74,12,64,73,95,115,75, + 72,45,66,3,116,96,103,90,13,14, + 8,6,10,11,91,92,88,89,60,93, + 94,97,98,99,100,101,102,114,104,105, + 106,107,108,109,110,111,112,113,69,70, + 71,0,1,2,47,4,118,119,120,0, + 45,12,5,7,3,1,2,4,6,8, + 73,0,12,72,42,43,41,13,14,10, + 11,5,27,32,3,7,37,40,38,39, + 26,35,30,34,16,25,15,21,19,20, + 22,23,18,17,24,9,29,33,31,28, + 36,64,1,2,8,4,6,0,12,75, + 15,16,28,17,29,30,18,19,20,31, + 21,22,32,33,34,41,35,36,9,23, + 24,25,37,38,39,26,3,13,14,8, + 6,10,11,27,4,40,46,5,7,1, + 2,43,42,0 }; }; public final static byte asr[] = Asr.asr; @@ -2030,59 +2123,59 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface Nasb { public final static char nasb[] = {0, - 132,11,189,35,11,11,11,11,11,11, - 11,148,11,11,11,208,11,21,212,129, - 35,35,19,35,35,35,35,35,35,11, + 158,11,184,24,11,11,11,11,11,11, + 11,130,11,11,11,132,11,109,141,147, + 24,24,107,24,24,24,24,24,24,11, 11,11,11,11,11,11,11,11,11,11, - 35,11,35,212,179,179,179,179,129,175, - 108,97,4,82,235,11,11,108,210,11, - 235,235,114,1,35,48,120,11,11,11, - 212,11,11,14,14,175,161,35,35,35, - 35,35,35,35,35,35,35,35,35,35, - 35,35,35,35,35,35,35,35,35,35, - 35,35,35,35,35,35,35,161,35,235, - 235,11,11,11,11,155,235,33,147,222, - 223,11,223,127,223,148,223,216,11,11, - 148,129,82,82,33,35,147,78,114,60, - 60,11,148,129,82,179,164,172,56,235, - 171,10,129,171,235,82,11,11,11,11, + 24,11,24,141,213,213,213,213,147,58, + 103,53,4,71,233,11,11,103,134,11, + 233,233,82,1,24,63,115,11,11,11, + 141,11,11,15,15,58,170,24,24,24, + 24,24,24,24,24,24,24,24,24,24, + 24,24,24,24,24,24,24,24,24,24, + 24,24,24,24,24,24,24,170,24,233, + 233,11,11,11,11,46,233,22,129,179, + 180,11,180,145,180,9,180,173,11,11, + 130,147,71,71,22,24,129,67,82,36, + 36,11,130,147,71,213,92,155,121,233, + 154,156,147,154,233,71,11,11,11,11, 11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,45, - 10,11,11,11,230,129,108,108,22,108, - 225,108,11,11,108,225,129,10,11,11, - 228,82,11,235,198,108,129,120,35,179, - 108,92,235,11,10,129,10,120,35,161, - 161,161,161,11,11,33,11,84,191,108, - 108,76,119,76,108,100,10,119,45,235, - 11,102,11,200,118,45,235,64,230,56, - 10,11,45,235,235,235,235,175,175,108, - 84,54,129,189,11,11,31,136,191,76, - 76,110,45,100,54,11,11,45,108,35, - 11,11,60,60,129,102,147,200,235,45, - 43,43,11,161,230,11,11,235,235,84, - 120,11,148,108,143,104,11,11,196,225, - 54,35,100,84,35,35,108,10,120,235, - 198,167,108,11,175,35,82,10,11,172, - 108,225,108,62,169,189,147,129,11,35, - 11,12,70,72,10,108,200,84,235,82, - 10,189,200,172,62,90,25,104,169,120, - 35,35,148,88,235,108,11,11,29,29, - 189,90,40,11,225,11,225,11,108,88, - 200,182,108,11,11,108,150,25,10,175, - 10,233,84,11,182,137,11,10,31,200, - 179,179,68,158,11,35,11,189,11,11, - 11,159,11,11,187,189,189,108,11,66, - 11,235,235,108,108,11,143,11,108,11, - 11,11,148,11,74,11,11,159,178,178, - 203,11,178,189,189,104,11,108,179,88, - 182,108,182,189,86,11,235,122,108,148, - 108,225,11,179,235,104,235,205,189,11, - 235,68,122,164,35,104,189,54,182,122, - 225,122,95,29,235,235,108,159,11,159, - 189,205,161,159,74,54,235,108,54,95, - 54,189,11,66,66,102,35,11,205,189, - 235,50,189,171,159,235,205,189,54,159, - 235,50,159 + 11,11,11,11,11,11,11,11,11,79, + 156,11,11,11,228,147,103,103,110,103, + 223,103,11,11,103,223,147,10,11,11, + 226,71,11,233,202,103,147,115,24,213, + 103,12,233,11,10,147,10,115,24,170, + 170,170,170,11,11,22,11,49,216,103, + 103,61,114,61,103,105,156,114,79,233, + 11,97,11,204,113,79,233,77,228,121, + 10,11,79,233,233,233,233,58,58,103, + 49,44,147,184,11,11,65,195,216,61, + 61,191,79,105,44,11,11,79,103,24, + 11,11,36,36,147,97,129,204,233,79, + 51,51,11,170,228,11,11,233,233,49, + 115,11,130,103,125,99,11,11,221,223, + 44,24,105,49,24,24,103,10,115,233, + 202,150,103,11,58,24,71,10,11,155, + 103,223,103,20,152,184,129,147,11,24, + 11,95,86,88,156,103,204,49,233,71, + 10,184,204,155,20,75,32,99,152,115, + 24,24,130,119,233,103,11,11,90,90, + 184,75,29,11,223,11,223,11,103,119, + 204,186,103,11,11,103,162,32,156,58, + 156,231,49,11,186,196,11,10,65,204, + 213,213,56,167,11,24,11,184,11,11, + 11,168,11,10,182,184,184,103,10,73, + 11,233,233,103,103,11,125,11,103,11, + 11,11,130,11,38,11,11,11,168,212, + 212,207,11,212,184,184,99,11,103,213, + 119,186,103,186,184,117,11,233,136,103, + 130,103,223,11,213,233,99,233,209,184, + 11,233,56,136,92,24,99,184,44,186, + 136,223,136,10,90,233,233,103,168,11, + 168,184,209,170,168,38,44,233,103,44, + 10,44,184,11,73,73,97,24,11,209, + 184,233,40,184,154,168,233,209,184,44, + 168,233,40,168 }; }; public final static char nasb[] = Nasb.nasb; @@ -2090,30 +2183,30 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface Nasr { public final static char nasr[] = {0, - 2,12,7,5,150,148,122,147,146,1, - 0,186,0,5,1,7,139,0,5,12, - 7,1,2,0,167,5,166,0,113,0, - 153,0,48,4,5,7,1,12,0,4, - 65,0,140,0,3,2,0,173,0,12, - 1,7,5,65,0,66,138,137,0,69, - 0,156,0,178,0,57,0,158,0,5, - 163,131,0,116,0,114,0,12,1,7, - 5,80,0,61,0,180,0,126,0,157, - 0,4,177,0,43,0,4,189,0,124, - 0,101,100,64,5,1,7,4,0,5, - 131,187,0,100,101,4,0,136,1,66, - 0,108,4,46,70,0,2,5,1,47, - 0,4,38,172,0,39,5,1,7,4, - 155,0,1,64,7,4,96,5,0,4, - 46,38,179,0,136,66,0,65,46,71, - 4,38,0,4,28,0,101,100,64,56, - 5,7,1,0,4,103,0,117,4,48, - 0,4,46,70,81,0,4,38,39,0, - 4,46,70,67,5,130,0,5,96,23, - 4,0,46,50,4,106,0,4,48,169, - 0,4,48,38,0,1,5,122,118,119, - 120,12,93,0,1,62,0,101,100,5, - 56,0,48,4,33,0 + 3,13,8,151,149,123,148,147,6,1, + 0,5,178,0,6,2,8,140,0,157, + 0,49,5,6,8,2,13,0,5,66, + 0,168,6,167,0,70,0,117,0,13, + 2,8,6,66,0,137,67,0,62,0, + 141,0,5,190,0,159,0,5,104,0, + 115,0,174,0,154,0,13,2,8,6, + 81,0,58,0,158,0,179,0,4,3, + 0,101,102,5,0,6,164,132,0,114, + 0,5,29,0,187,0,102,101,65,6, + 2,8,5,0,125,0,6,13,8,2, + 3,0,137,2,67,0,181,0,127,0, + 67,139,138,0,2,65,8,5,97,6, + 0,5,49,170,0,109,5,47,71,0, + 5,49,39,0,3,6,1,48,0,102, + 101,65,57,6,8,2,0,5,39,173, + 0,5,47,39,180,0,66,47,72,5, + 39,0,1,6,123,119,120,121,13,94, + 0,5,39,40,0,5,47,71,82,0, + 6,132,188,0,40,6,2,8,5,156, + 0,6,97,24,5,0,47,51,5,107, + 0,118,5,49,0,5,47,71,68,6, + 131,0,1,63,0,102,101,6,57,0, + 49,5,34,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -2121,19 +2214,19 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface TerminalIndex { public final static char terminalIndex[] = {0, - 115,2,32,14,11,81,10,102,12,13, - 8,9,50,54,62,70,76,77,88,89, - 104,107,109,114,15,57,63,69,86,90, - 92,96,99,101,111,112,113,46,97,60, - 80,68,122,123,106,56,108,49,66,72, - 75,78,85,91,95,100,55,20,65,93, - 103,1,3,105,79,21,48,45,34,31, - 121,120,98,67,110,51,52,58,59,61, - 71,73,74,87,94,18,19,7,16,17, - 22,23,33,5,24,25,26,27,28,29, - 6,35,36,37,38,39,40,41,42,43, - 44,30,119,4,53,82,83,84,124,64, - 116,117,118 + 115,116,2,32,14,11,81,10,102,12, + 13,117,8,9,50,54,62,70,76,77, + 88,89,104,107,109,114,15,57,63,69, + 86,90,92,96,99,101,111,112,113,46, + 97,60,80,68,122,123,106,56,108,49, + 66,72,75,78,85,91,100,95,55,20, + 65,93,103,3,105,1,79,48,21,45, + 34,121,31,98,120,110,51,52,58,59, + 61,67,71,73,74,87,94,18,19,7, + 16,17,22,23,33,5,24,25,26,27, + 28,29,6,35,36,37,38,39,40,41, + 42,43,44,30,119,4,53,82,83,84, + 124,64,118 }; }; public final static char terminalIndex[] = TerminalIndex.terminalIndex; @@ -2141,27 +2234,26 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 135,137,238,0,0,136,234,134,0,133, - 0,145,0,132,0,0,144,149,0,0, - 150,159,180,160,161,162,163,152,164,165, - 138,166,127,167,168,169,0,131,129,170, - 0,197,143,0,140,0,139,153,0,177, - 0,0,0,0,147,156,173,0,204,0, - 187,0,201,205,128,0,178,0,206,0, - 172,0,0,0,0,0,0,0,176,126, - 130,148,0,0,0,0,0,0,0,0, - 0,0,186,0,0,202,212,158,208,209, - 210,0,0,0,0,0,207,179,0,0, - 0,211,0,0,0,241,175,189,190,191, - 192,193,195,196,199,0,214,217,219,220, - 0,237,0,240,0,0,141,142,146,0, - 155,0,171,0,181,182,183,184,185,188, - 0,194,0,198,203,0,215,216,0,221, - 224,226,228,0,231,232,233,0,235,236, - 239,125,0,151,0,0,154,157,174,200, - 213,218,0,222,223,225,227,229,230,242, - 243,0,0,0,0,0,0,0,0,0, - 0,0 + 131,136,138,239,0,0,137,235,135,0, + 134,0,146,0,133,0,0,145,150,0, + 0,151,160,181,161,162,163,164,153,165, + 166,139,167,127,168,169,170,0,132,129, + 171,0,198,144,0,141,0,140,154,0, + 178,0,0,0,0,148,157,174,0,205, + 0,188,0,202,206,128,0,179,0,207, + 0,173,0,0,0,0,0,0,0,177, + 126,130,149,0,0,0,0,0,0,0, + 0,0,0,187,0,0,203,213,159,209, + 210,211,0,0,0,0,0,208,180,0, + 0,0,212,0,0,0,242,176,190,191, + 192,193,194,196,197,200,0,215,218,220, + 221,0,238,0,241,0,0,142,143,147, + 0,156,0,172,0,182,183,184,185,186, + 189,0,195,0,199,204,0,216,217,0, + 222,225,227,229,0,232,233,234,0,236, + 237,240,125,0,152,0,0,155,158,175, + 201,214,219,0,223,224,226,228,230,231, + 243,244,0,0,0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2207,18 +2299,18 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface ScopeLhs { public final static char scopeLhs[] = { - 67,17,17,75,17,17,17,17,75,163, - 85,49,92,91,120,68,53,75,74,19, - 67,17,75,2,6,160,118,67,90,120, - 119,121,54,49,133,139,75,17,17,133, - 102,58,135,78,166,160,128,119,119,121, - 50,57,178,18,17,17,17,17,17,11, - 116,160,128,75,74,74,37,139,74,19, - 17,17,17,17,102,75,167,163,180,100, - 107,60,69,59,155,79,121,76,72,142, - 178,176,16,160,121,117,21,139,129,129, - 56,139,75,139,67,160,73,137,47,137, - 47,166,117,118,67,67,58 + 68,18,18,76,18,18,18,18,76,164, + 86,50,93,92,121,69,54,76,75,20, + 68,18,76,3,7,161,119,68,91,121, + 120,122,55,50,134,140,76,18,18,134, + 103,59,136,79,167,161,129,120,120,122, + 51,58,179,19,18,18,18,18,18,12, + 117,161,129,76,75,75,38,140,75,20, + 18,18,18,18,103,76,168,164,181,101, + 108,61,70,60,156,80,122,77,73,143, + 179,177,17,161,122,118,22,140,130,130, + 57,140,76,140,68,161,74,138,48,138, + 48,167,118,119,68,68,59 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2226,18 +2318,18 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface ScopeLa { public final static byte scopeLa[] = { - 115,72,72,72,72,72,72,72,72,1, - 71,43,71,71,71,66,1,72,120,72, - 63,2,43,66,66,43,71,63,71,71, - 1,1,1,1,66,3,43,1,1,66, - 72,72,72,115,72,43,71,1,1,1, - 43,71,113,72,72,72,72,72,113,1, - 72,1,68,72,72,72,70,3,72,2, - 66,66,66,66,72,43,1,1,72,72, - 2,1,113,72,1,1,1,43,70,72, - 113,72,72,1,55,69,72,4,1,1, - 5,1,75,55,73,43,43,3,3,3, - 3,2,1,63,1,1,2 + 117,75,75,75,75,75,75,75,75,1, + 72,45,72,72,72,69,1,75,122,75, + 64,3,45,69,69,45,72,64,72,72, + 1,1,1,1,69,4,45,1,1,69, + 75,75,75,117,75,45,72,1,1,1, + 45,72,115,75,75,75,75,75,115,1, + 75,1,70,75,75,75,73,4,75,3, + 69,69,69,69,75,45,1,1,75,75, + 3,1,115,75,1,1,1,45,73,75, + 115,75,75,1,58,71,75,5,1,1, + 6,1,76,58,74,45,45,4,4,4, + 4,3,1,64,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2264,71 +2356,71 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface ScopeRhs { public final static char scopeRhs[] = {0, - 314,2,39,0,127,0,313,2,115,0, - 127,173,0,127,180,73,0,216,0,291, - 127,58,126,0,21,0,293,127,58,55, - 0,21,55,0,34,132,0,21,55,0, - 0,293,127,58,55,193,0,21,130,0, - 291,127,58,130,0,185,128,0,138,0, - 226,2,290,0,290,0,2,0,127,0, - 185,128,254,253,254,0,131,189,170,128, - 0,129,0,189,170,128,0,134,129,0, - 169,0,307,127,169,0,127,169,0,222, - 129,0,170,245,0,137,0,0,0,135, - 0,0,0,306,127,63,252,0,128,0, - 252,0,3,0,0,128,0,305,127,63, - 0,45,128,0,151,2,0,127,280,279, - 127,73,278,169,0,279,127,73,278,169, - 0,215,0,216,0,278,169,0,98,0, - 0,215,0,216,0,203,98,0,0,215, - 0,216,0,279,127,278,169,0,215,0, - 203,0,0,215,0,233,127,2,0,127, - 0,0,0,0,0,233,127,2,223,0, - 230,2,0,219,127,0,208,0,148,0, - 170,128,0,11,0,0,0,221,62,0, - 126,0,233,127,2,182,0,182,0,2, - 0,0,127,0,0,0,0,0,202,2, - 0,201,0,232,127,63,24,42,0,185, - 128,65,64,0,143,129,0,131,185,128, - 276,64,0,185,128,276,64,0,185,128, - 69,1,65,0,232,127,63,65,0,232, - 127,63,165,65,0,232,127,63,124,65, - 0,274,127,63,1,59,0,274,127,63, - 59,0,185,128,59,0,135,0,189,185, - 128,245,0,137,0,185,128,245,0,189, - 170,128,8,0,170,128,8,0,95,137, - 0,267,127,169,0,161,84,0,229,162, - 229,173,2,81,0,127,172,0,229,173, - 2,81,0,129,0,127,172,0,229,162, - 229,162,229,2,81,0,229,162,229,2, - 81,0,229,2,81,0,129,0,129,0, - 127,172,0,161,2,75,194,80,0,127, - 129,0,194,80,0,110,2,131,127,129, - 0,240,2,75,0,202,171,0,34,170, - 0,171,0,176,34,170,0,240,2,85, - 0,194,156,240,2,83,0,64,172,0, - 240,2,83,0,127,172,64,172,0,302, - 127,63,0,161,0,221,77,0,31,0, - 161,112,159,0,31,170,0,178,2,0, - 127,150,0,226,2,0,221,62,301,0, - 161,62,0,178,2,296,41,128,0,127, - 0,0,296,41,128,0,2,147,127,0, - 0,178,2,30,0,14,148,0,125,55, - 170,128,0,32,14,148,0,95,137,32, - 14,148,0,205,185,128,0,148,32,14, - 148,0,178,2,34,0,161,2,34,0, - 161,2,66,178,58,26,0,178,58,26, - 0,21,2,131,127,0,161,2,66,178, - 58,29,0,178,58,29,0,161,2,66, - 178,58,31,0,178,58,31,0,161,2, - 66,178,58,27,0,178,58,27,0,226, - 2,125,189,170,128,8,0,125,189,170, - 128,8,0,137,2,0,127,0,226,2, - 124,259,170,128,8,0,259,170,128,8, - 0,135,2,0,127,0,226,2,135,0, - 226,2,140,0,161,62,140,0,261,0, - 32,0,32,141,0,168,0,134,0,161, - 2,0 + 315,3,41,0,127,0,314,3,117,0, + 127,174,0,128,181,74,0,217,0,292, + 128,60,127,0,21,0,294,128,60,58, + 0,21,55,0,34,133,0,21,55,0, + 0,294,128,60,58,194,0,21,130,0, + 292,128,60,131,0,186,129,0,139,0, + 227,3,291,0,291,0,2,0,127,0, + 186,129,255,254,255,0,132,190,171,129, + 0,129,0,190,171,129,0,135,129,0, + 170,0,308,128,170,0,128,170,0,223, + 129,0,171,246,0,138,0,0,0,136, + 0,0,0,307,128,64,253,0,128,0, + 253,0,3,0,0,128,0,306,128,64, + 0,45,128,0,152,3,0,128,281,280, + 128,74,279,170,0,280,128,74,279,170, + 0,216,0,217,0,279,170,0,98,0, + 0,216,0,217,0,204,98,0,0,216, + 0,217,0,280,128,279,170,0,216,0, + 204,0,0,216,0,234,128,3,0,127, + 0,0,0,0,0,234,128,3,224,0, + 231,3,0,220,128,0,209,0,149,0, + 171,129,0,11,0,0,0,222,66,0, + 126,0,234,128,3,183,0,183,0,2, + 0,0,127,0,0,0,0,0,203,3, + 0,202,0,233,128,64,26,44,0,186, + 129,67,65,0,144,129,0,132,186,129, + 277,65,0,186,129,277,65,0,186,129, + 71,124,67,0,233,128,64,67,0,233, + 128,64,166,67,0,233,128,64,125,67, + 0,275,128,64,124,61,0,275,128,64, + 61,0,186,129,61,0,136,0,190,186, + 129,246,0,138,0,186,129,246,0,190, + 171,129,9,0,171,129,9,0,95,138, + 0,268,128,170,0,162,86,0,230,163, + 230,174,3,83,0,127,173,0,230,174, + 3,83,0,129,0,127,173,0,230,163, + 230,163,230,3,83,0,230,163,230,3, + 83,0,230,3,83,0,129,0,129,0, + 127,173,0,162,3,76,195,81,0,127, + 129,0,195,81,0,110,2,132,127,129, + 0,241,3,76,0,203,172,0,34,171, + 0,172,0,177,34,171,0,241,3,87, + 0,195,157,241,3,85,0,64,173,0, + 241,3,85,0,127,173,64,173,0,303, + 128,64,0,162,0,222,78,0,31,0, + 162,114,160,0,31,171,0,179,3,0, + 127,151,0,227,3,0,222,66,302,0, + 162,66,0,179,3,297,43,129,0,127, + 0,0,297,43,129,0,2,148,127,0, + 0,179,3,32,0,14,149,0,126,58, + 171,129,0,32,14,149,0,95,138,32, + 14,149,0,206,186,129,0,149,32,14, + 149,0,179,3,36,0,162,3,36,0, + 162,3,69,179,60,28,0,179,60,28, + 0,21,2,132,127,0,162,3,69,179, + 60,31,0,179,60,31,0,162,3,69, + 179,60,33,0,179,60,33,0,162,3, + 69,179,60,29,0,179,60,29,0,227, + 3,126,190,171,129,9,0,126,190,171, + 129,9,0,138,2,0,127,0,227,3, + 125,260,171,129,9,0,260,171,129,9, + 0,136,2,0,127,0,227,3,136,0, + 227,3,141,0,162,66,141,0,262,0, + 32,0,32,142,0,169,0,135,0,162, + 3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2336,38 +2428,38 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface ScopeState { public final static char scopeState[] = {0, - 2155,0,4817,4543,3409,0,1665,1376,1539,1297, - 0,3985,3944,3903,3862,3821,3780,3676,3571,3530, - 3161,3102,2933,2868,3721,2803,2738,3666,3611,3471, - 3412,0,2333,2214,2193,0,2839,657,0,3985, - 3944,3903,1697,1579,3862,3821,3780,3571,1232,3530, - 3161,3102,2858,2322,0,4815,2684,4769,0,1054, - 732,0,1366,2655,0,3418,3026,0,1062,0, - 3418,4551,4486,3390,3026,2988,4457,4469,4358,3240, - 4440,3108,3068,2695,2612,0,2933,2868,3721,2803, - 2738,3666,3611,3471,3412,4518,3528,0,4518,3528, - 2933,2868,3721,2803,2738,3666,3611,3471,3412,3985, - 3944,3903,3862,3821,3780,3571,3530,3161,3102,0, - 2608,927,0,3240,4551,3008,4486,3390,3667,3068, - 1866,2965,1786,3544,4599,713,1186,858,0,1066, - 577,0,871,0,1502,1418,1001,986,3390,4599, - 2988,2695,2612,2762,2678,0,4262,534,2324,0, - 4739,4733,4712,4706,4685,4649,4628,4622,4760,4002, - 3796,3441,4595,4574,3282,3588,2899,2834,2767,3091, - 2924,0,4739,4733,2343,2210,4712,4706,4796,2116, - 4685,4649,4787,4423,4628,2202,4622,2120,2112,4760, - 2108,4345,2026,1058,3386,4002,3879,3796,2661,3441, - 4595,4574,876,3282,867,3588,2022,2899,2834,4262, - 2767,2324,3091,2924,2012,728,617,784,664,2988, - 4457,4469,4358,3240,3418,4551,4440,4486,3390,3108, - 3068,2695,3026,2612,1881,997,1066,577,4387,4319, - 4289,2218,2256,923,2291,2503,2475,2351,2715,2624, - 2585,2558,2531,792,3361,3332,3253,2381,591,4240, - 4218,4196,4174,4152,4130,4108,4086,4064,630,2420, - 1894,2162,2124,2068,2030,1974,1163,1121,1936,1079, - 825,1838,1800,741,685,1758,1716,1674,1632,1590, - 1548,1506,1464,1422,1380,1338,534,1293,1251,1016, - 955,881,1209,0 + 2812,0,4931,4322,4281,0,3180,2810,880,1047, + 0,4384,4343,4302,4261,4220,4179,4129,3927,3886, + 3415,3374,3157,3092,4120,3027,2951,4064,4007,3803, + 3791,0,3692,3600,2885,0,2814,788,0,4384, + 4343,4302,3899,3486,4261,4220,4179,3927,1879,3886, + 3415,3374,2113,1884,0,4903,4028,4843,0,2069, + 953,0,2386,3916,0,4575,4013,0,1898,0, + 4575,4509,2441,3340,4013,2822,3358,4478,3986,2931, + 4443,4465,2903,2741,2696,0,3157,3092,4120,3027, + 2951,4064,4007,3803,3791,4649,4541,0,4649,4541, + 3157,3092,4120,3027,2951,4064,4007,3803,3791,4384, + 4343,4302,4261,4220,4179,3927,3886,3415,3374,0, + 3085,2891,0,2931,4509,4492,2441,3340,4840,2903, + 4079,4090,875,4103,4683,616,3018,619,0,1148, + 579,0,1153,0,1647,1467,1303,819,3340,4683, + 2822,2741,2696,3375,2384,0,3710,535,2374,0, + 4826,4817,4793,4768,4760,4711,4703,4678,4875,4850, + 4195,3902,4621,4600,3820,4594,4038,3188,3121,3213, + 2471,0,4826,4817,3353,3195,4793,4768,4883,2736, + 4760,4711,3728,3067,4703,3456,4678,3433,3391,4875, + 3386,3052,3128,2835,2896,4850,4615,4195,2393,3902, + 4621,4600,2228,3820,2134,4594,1900,4038,3188,3710, + 3121,2374,3213,2471,2217,2123,730,870,660,2822, + 3358,4478,3986,2931,4575,4509,4443,2441,3340,4465, + 2903,2741,4013,2696,2029,1000,1148,579,632,3767, + 3737,2233,2272,2342,2308,2555,2526,2401,2709,795, + 2668,2640,2612,2584,3316,3292,3268,2850,592,3687, + 3664,3641,3618,3595,3572,3549,3518,3495,2771,927, + 1908,2178,2139,2084,2045,1990,1166,1105,1951,1062, + 827,1855,1814,744,687,1771,1728,1685,1642,1599, + 1556,1513,1470,1427,1384,1341,535,1298,1254,1018, + 957,884,1209,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2375,59 +2467,59 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public interface InSymb { public final static char inSymb[] = {0, - 0,295,161,127,44,266,34,26,29,31, - 27,8,135,124,126,6,130,3,2,128, - 30,25,4,10,9,5,7,12,11,140, - 145,148,147,150,149,153,152,157,155,158, - 39,159,68,2,58,58,58,58,128,2, - 58,171,127,62,2,40,41,58,6,124, - 178,161,171,127,40,41,170,168,1,124, - 2,125,124,101,114,2,62,88,94,10, - 9,90,89,5,92,91,66,58,86,87, - 7,96,95,98,97,99,111,110,109,108, - 107,106,105,104,103,102,69,112,100,178, - 161,178,178,178,178,170,226,127,127,268, - 269,252,270,245,271,59,272,273,1,124, - 8,128,62,62,127,156,127,62,2,224, - 223,135,8,128,62,296,2,189,3,178, - 55,4,128,55,226,161,147,147,145,145, - 145,149,149,149,149,148,148,152,150,150, - 155,153,157,161,158,66,66,66,66,189, - 259,291,133,294,219,128,5,63,170,236, - 128,125,124,1,63,128,128,185,170,291, - 219,221,159,230,127,2,128,170,203,2, - 297,171,151,261,189,128,185,170,70,2, - 2,2,2,125,124,68,170,127,127,125, - 124,127,185,127,63,127,185,170,55,233, - 234,146,235,127,170,55,178,127,127,3, - 4,205,55,161,161,161,161,2,2,5, - 184,306,128,190,253,193,64,169,308,127, - 127,70,189,127,274,247,275,189,156,69, - 230,202,187,182,128,2,127,68,233,189, - 156,298,301,62,179,3,125,226,226,127, - 170,55,276,278,127,2,182,310,254,128, - 274,69,68,127,69,69,2,185,170,202, - 127,219,156,125,2,62,161,4,3,189, - 58,128,73,127,219,307,127,128,124,70, - 285,202,68,253,185,227,127,127,226,221, - 4,131,127,185,127,279,70,68,219,170, - 70,69,254,127,233,227,293,55,8,57, - 131,279,63,289,128,290,128,39,156,127, - 68,66,58,236,236,280,127,68,185,2, - 185,2,127,42,55,169,67,65,64,127, - 69,69,127,302,79,77,1,161,85,83, - 81,80,75,82,84,78,76,169,65,73, - 44,226,314,227,24,58,127,2,63,165, - 1,124,65,293,281,115,221,70,2,2, - 2,194,2,1,161,127,1,180,68,127, - 127,63,66,267,202,277,24,127,63,69, - 63,128,66,2,240,171,240,173,229,75, - 240,127,127,2,69,68,156,232,231,127, - 128,127,185,57,93,313,171,156,202,156, - 229,162,2,156,281,232,151,63,232,185, - 232,166,236,156,156,127,69,194,162,229, - 161,127,166,69,120,229,162,156,305,156, - 229,68,156 + 0,296,162,128,46,267,36,28,31,33, + 29,9,136,125,127,7,131,4,3,129, + 32,27,5,11,10,6,8,14,13,141, + 146,149,148,151,150,154,153,158,156,159, + 41,160,70,3,60,60,60,60,129,3, + 60,172,128,66,3,42,43,60,7,125, + 179,162,172,128,42,43,171,169,124,125, + 3,126,125,103,116,3,66,90,96,11, + 10,92,91,6,94,93,69,60,88,89, + 8,98,97,100,99,101,113,112,111,110, + 109,108,107,106,105,104,71,114,102,179, + 162,179,179,179,179,171,227,128,128,269, + 270,253,271,246,272,61,273,274,124,125, + 9,129,66,66,128,157,128,66,3,225, + 224,136,9,129,66,297,3,190,4,179, + 58,5,129,58,227,162,148,148,146,146, + 146,150,150,150,150,149,149,153,151,151, + 156,154,158,162,159,69,69,69,69,190, + 260,292,134,295,220,129,6,64,171,237, + 129,126,125,124,64,129,129,186,171,292, + 220,222,160,231,128,3,129,171,204,3, + 298,172,152,262,190,129,186,171,73,3, + 3,3,3,126,125,70,171,128,128,126, + 125,128,186,128,64,128,186,171,58,234, + 235,147,236,128,171,58,179,128,128,4, + 5,206,58,162,162,162,162,3,3,6, + 185,307,129,191,254,194,65,170,309,128, + 128,73,190,128,275,248,276,190,157,71, + 231,203,188,183,129,3,128,70,234,190, + 157,299,302,66,180,4,126,227,227,128, + 171,58,277,279,128,3,183,311,255,129, + 275,71,70,128,71,71,3,186,171,203, + 128,220,157,126,3,66,162,5,4,190, + 60,129,74,128,220,308,128,129,125,73, + 286,203,70,254,186,228,128,128,227,222, + 5,132,128,186,128,280,73,70,220,171, + 73,71,255,128,234,228,294,58,9,59, + 132,280,64,290,129,291,129,41,157,128, + 70,69,60,237,237,281,128,70,186,3, + 186,3,128,44,58,170,68,67,65,128, + 71,71,128,303,80,78,1,162,87,85, + 83,81,76,84,86,79,77,170,67,74, + 46,227,315,228,26,60,128,3,64,166, + 124,125,67,294,282,117,12,222,73,3, + 3,3,195,3,124,162,128,124,181,70, + 128,128,64,69,268,203,278,26,128,64, + 71,64,129,69,3,241,172,241,174,230, + 76,241,128,128,3,71,70,157,233,232, + 128,129,128,186,59,95,314,172,157,203, + 157,230,163,3,157,282,233,152,64,233, + 186,233,167,237,157,157,128,71,195,163, + 230,162,128,167,71,122,230,163,157,306, + 157,230,70,157 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2566,6 +2658,7 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse "}", ";", "declaration", + "identifier_token", "expression", "id_expression", "qualified_or_unqualified_name", @@ -2691,7 +2784,7 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 44, + ERROR_SYMBOL = 46, SCOPE_UBOUND = 116, SCOPE_SIZE = 117, MAX_NAME_LENGTH = 37; @@ -2702,20 +2795,20 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 523, + NUM_STATES = 524, NT_OFFSET = 123, - LA_STATE_OFFSET = 5844, + LA_STATE_OFFSET = 5996, MAX_LA = 2147483647, - NUM_RULES = 533, - NUM_NONTERMINALS = 202, - NUM_SYMBOLS = 325, + NUM_RULES = 534, + NUM_NONTERMINALS = 199, + NUM_SYMBOLS = 322, SEGMENT_SIZE = 8192, - START_STATE = 2974, + START_STATE = 3373, IDENTIFIER_SYMBOL = 0, - EOFT_SYMBOL = 119, - EOLT_SYMBOL = 119, - ACCEPT_ACTION = 5002, - ERROR_ACTION = 5311; + EOFT_SYMBOL = 121, + EOLT_SYMBOL = 121, + ACCEPT_ACTION = 5108, + ERROR_ACTION = 5462; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParsersym.java index a1506501e93..74ef7f14913 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParsersym.java @@ -15,133 +15,134 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPExpressionStatementParsersym { public final static int - TK_asm = 67, - TK_auto = 48, - TK_bool = 13, - TK_break = 76, - TK_case = 77, - TK_catch = 115, - TK_char = 14, - TK_class = 57, - TK_const = 46, - TK_const_cast = 26, - TK_continue = 78, - TK_default = 79, - TK_delete = 40, - TK_do = 80, - TK_double = 15, - TK_dynamic_cast = 27, - TK_else = 120, - TK_enum = 59, - TK_explicit = 49, - TK_export = 74, - TK_extern = 42, - TK_false = 28, - TK_float = 16, - TK_for = 81, - TK_friend = 50, - TK_goto = 82, - TK_if = 83, - TK_inline = 51, - TK_int = 17, - TK_long = 18, - TK_mutable = 52, - TK_namespace = 65, - TK_new = 41, - TK_operator = 6, - TK_private = 116, - TK_protected = 117, - TK_public = 118, - TK_register = 53, - TK_reinterpret_cast = 29, - TK_return = 84, - TK_short = 19, - TK_signed = 20, - TK_sizeof = 30, - TK_static = 54, - TK_static_cast = 31, - TK_struct = 60, - TK_switch = 85, - TK_template = 55, - TK_this = 32, - TK_throw = 39, - TK_try = 73, - TK_true = 33, - TK_typedef = 56, - TK_typeid = 34, - TK_typename = 8, - TK_union = 61, - TK_unsigned = 21, - TK_using = 64, - TK_virtual = 45, - TK_void = 22, - TK_volatile = 47, - TK_wchar_t = 23, - TK_while = 75, - TK_integer = 35, - TK_floating = 36, - TK_charconst = 37, - TK_stringlit = 24, + TK_asm = 68, + TK_auto = 50, + TK_bool = 15, + TK_break = 77, + TK_case = 78, + TK_catch = 117, + TK_char = 16, + TK_class = 59, + TK_const = 48, + TK_const_cast = 28, + TK_continue = 79, + TK_default = 80, + TK_delete = 42, + TK_do = 81, + TK_double = 17, + TK_dynamic_cast = 29, + TK_else = 122, + TK_enum = 61, + TK_explicit = 51, + TK_export = 82, + TK_extern = 44, + TK_false = 30, + TK_float = 18, + TK_for = 83, + TK_friend = 52, + TK_goto = 84, + TK_if = 85, + TK_inline = 53, + TK_int = 19, + TK_long = 20, + TK_mutable = 54, + TK_namespace = 67, + TK_new = 43, + TK_operator = 7, + TK_private = 118, + TK_protected = 119, + TK_public = 120, + TK_register = 55, + TK_reinterpret_cast = 31, + TK_return = 86, + TK_short = 21, + TK_signed = 22, + TK_sizeof = 32, + TK_static = 56, + TK_static_cast = 33, + TK_struct = 62, + TK_switch = 87, + TK_template = 58, + TK_this = 34, + TK_throw = 41, + TK_try = 74, + TK_true = 35, + TK_typedef = 57, + TK_typeid = 36, + TK_typename = 9, + TK_union = 63, + TK_unsigned = 23, + TK_using = 65, + TK_virtual = 47, + TK_void = 24, + TK_volatile = 49, + TK_wchar_t = 25, + TK_while = 76, + TK_integer = 37, + TK_floating = 38, + TK_charconst = 39, + TK_stringlit = 26, TK_identifier = 1, - TK_Completion = 121, - TK_EndOfCompletion = 122, + TK_Completion = 2, + TK_EndOfCompletion = 12, TK_Invalid = 123, - TK_LeftBracket = 62, - TK_LeftParen = 2, - TK_LeftBrace = 63, - TK_Dot = 114, - TK_DotStar = 94, - TK_Arrow = 101, - TK_ArrowStar = 88, - TK_PlusPlus = 11, - TK_MinusMinus = 12, - TK_And = 7, - TK_Star = 5, - TK_Plus = 9, - TK_Minus = 10, - TK_Tilde = 4, - TK_Bang = 25, - TK_Slash = 89, - TK_Percent = 90, - TK_RightShift = 86, - TK_LeftShift = 87, - TK_LT = 58, - TK_GT = 66, - TK_LE = 91, - TK_GE = 92, - TK_EQ = 95, - TK_NE = 96, - TK_Caret = 97, - TK_Or = 98, - TK_AndAnd = 99, - TK_OrOr = 100, - TK_Question = 112, - TK_Colon = 70, - TK_ColonColon = 3, - TK_DotDotDot = 93, - TK_Assign = 69, - TK_StarAssign = 102, - TK_SlashAssign = 103, - TK_PercentAssign = 104, - TK_PlusAssign = 105, - TK_MinusAssign = 106, - TK_RightShiftAssign = 107, - TK_LeftShiftAssign = 108, - TK_AndAssign = 109, - TK_CaretAssign = 110, - TK_OrAssign = 111, - TK_Comma = 68, - TK_zero = 38, - TK_RightBracket = 113, - TK_RightParen = 72, - TK_RightBrace = 71, - TK_SemiColon = 43, - TK_ERROR_TOKEN = 44, - TK_EOF_TOKEN = 119; + TK_LeftBracket = 66, + TK_LeftParen = 3, + TK_LeftBrace = 64, + TK_Dot = 116, + TK_DotStar = 96, + TK_Arrow = 103, + TK_ArrowStar = 90, + TK_PlusPlus = 13, + TK_MinusMinus = 14, + TK_And = 8, + TK_Star = 6, + TK_Plus = 10, + TK_Minus = 11, + TK_Tilde = 5, + TK_Bang = 27, + TK_Slash = 91, + TK_Percent = 92, + TK_RightShift = 88, + TK_LeftShift = 89, + TK_LT = 60, + TK_GT = 69, + TK_LE = 93, + TK_GE = 94, + TK_EQ = 97, + TK_NE = 98, + TK_Caret = 99, + TK_Or = 100, + TK_AndAnd = 101, + TK_OrOr = 102, + TK_Question = 114, + TK_Colon = 73, + TK_ColonColon = 4, + TK_DotDotDot = 95, + TK_Assign = 71, + TK_StarAssign = 104, + TK_SlashAssign = 105, + TK_PercentAssign = 106, + TK_PlusAssign = 107, + TK_MinusAssign = 108, + TK_RightShiftAssign = 109, + TK_LeftShiftAssign = 110, + TK_AndAssign = 111, + TK_CaretAssign = 112, + TK_OrAssign = 113, + TK_Comma = 70, + TK_zero = 40, + TK_RightBracket = 115, + TK_RightParen = 75, + TK_RightBrace = 72, + TK_SemiColon = 45, + TK_ERROR_TOKEN = 46, + TK_EOF_TOKEN = 121; public final static String orderedTerminalSymbols[] = { "", "identifier", + "Completion", "LeftParen", "ColonColon", "Tilde", @@ -151,6 +152,7 @@ public interface CPPExpressionStatementParsersym { "typename", "Plus", "Minus", + "EndOfCompletion", "PlusPlus", "MinusMinus", "bool", @@ -195,32 +197,32 @@ public interface CPPExpressionStatementParsersym { "mutable", "register", "static", - "template", "typedef", + "template", "class", "LT", "enum", "struct", "union", - "LeftBracket", "LeftBrace", "using", + "LeftBracket", "namespace", - "GT", "asm", + "GT", "Comma", "Assign", - "Colon", "RightBrace", - "RightParen", + "Colon", "try", - "export", + "RightParen", "while", "break", "case", "continue", "default", "do", + "export", "for", "goto", "if", @@ -261,8 +263,6 @@ public interface CPPExpressionStatementParsersym { "public", "EOF_TOKEN", "else", - "Completion", - "EndOfCompletion", "Invalid" }; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java index d6fdd6ccc76..d575a92308d 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java @@ -272,1780 +272,1773 @@ public CPPNoCastExpressionParser(String[] mapFrom) { // constructor } // - // Rule 4: <placeholder> ::= $Empty + // Rule 2: <empty> ::= $Empty // - case 4: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 5: <empty> ::= $Empty - // - case 5: { action.builder. + case 2: { action.builder. consumeEmpty(); break; } // - // Rule 10: translation_unit ::= external_declaration_list + // Rule 11: translation_unit ::= external_declaration_list // - case 10: { action.builder. + case 11: { action.builder. consumeTranslationUnit(); break; } // - // Rule 11: translation_unit ::= $Empty + // Rule 12: translation_unit ::= $Empty // - case 11: { action.builder. + case 12: { action.builder. consumeTranslationUnit(); break; } // - // Rule 15: external_declaration ::= ERROR_TOKEN + // Rule 16: external_declaration ::= ERROR_TOKEN // - case 15: { action.builder. + case 16: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 16: literal ::= integer + // Rule 19: literal ::= integer // - case 16: { action.builder. + case 19: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } // - // Rule 17: literal ::= 0 + // Rule 20: literal ::= 0 // - case 17: { action.builder. + case 20: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } // - // Rule 18: literal ::= floating + // Rule 21: literal ::= floating // - case 18: { action.builder. + case 21: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; } // - // Rule 19: literal ::= charconst + // Rule 22: literal ::= charconst // - case 19: { action.builder. + case 22: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } // - // Rule 20: literal ::= stringlit + // Rule 23: literal ::= stringlit // - case 20: { action.builder. + case 23: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } // - // Rule 21: literal ::= true + // Rule 24: literal ::= true // - case 21: { action.builder. + case 24: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } // - // Rule 22: literal ::= false + // Rule 25: literal ::= false // - case 22: { action.builder. + case 25: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } // - // Rule 23: literal ::= this + // Rule 26: literal ::= this // - case 23: { action.builder. + case 26: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } // - // Rule 25: primary_expression ::= ( expression ) + // Rule 28: primary_expression ::= ( expression ) // - case 25: { action.builder. + case 28: { action.builder. consumeExpressionBracketed(); break; } // - // Rule 27: id_expression ::= qualified_or_unqualified_name + // Rule 30: id_expression ::= qualified_or_unqualified_name // - case 27: { action.builder. + case 30: { action.builder. consumeExpressionName(); break; } // - // Rule 34: unqualified_id_name ::= ~ class_name + // Rule 37: unqualified_id_name ::= ~ class_name // - case 34: { action.builder. + case 37: { action.builder. consumeDestructorName(); break; } // - // Rule 35: identifier_name ::= identifier + // Rule 38: identifier_name ::= identifier_token // - case 35: { action.builder. + case 38: { action.builder. consumeIdentifierName(); break; } // - // Rule 36: template_opt ::= template + // Rule 39: template_opt ::= template // - case 36: { action.builder. + case 39: { action.builder. consumePlaceHolder(); break; } // - // Rule 37: template_opt ::= $Empty + // Rule 40: template_opt ::= $Empty // - case 37: { action.builder. + case 40: { action.builder. consumeEmpty(); break; } // - // Rule 38: dcolon_opt ::= :: + // Rule 41: dcolon_opt ::= :: // - case 38: { action.builder. + case 41: { action.builder. consumePlaceHolder(); break; } // - // Rule 39: dcolon_opt ::= $Empty + // Rule 42: dcolon_opt ::= $Empty // - case 39: { action.builder. + case 42: { action.builder. consumeEmpty(); break; } // - // Rule 40: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // Rule 43: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name // - case 40: { action.builder. + case 43: { action.builder. consumeQualifiedId(true); break; } // - // Rule 41: qualified_id_name ::= :: identifier_name + // Rule 44: qualified_id_name ::= :: identifier_name // - case 41: { action.builder. + case 44: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 42: qualified_id_name ::= :: operator_function_id_name + // Rule 45: qualified_id_name ::= :: operator_function_id_name // - case 42: { action.builder. + case 45: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 43: qualified_id_name ::= :: template_id_name + // Rule 46: qualified_id_name ::= :: template_id_name // - case 43: { action.builder. + case 46: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 44: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 47: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // - case 44: { action.builder. + case 47: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 45: nested_name_specifier ::= class_or_namespace_name :: + // Rule 48: nested_name_specifier ::= class_or_namespace_name :: // - case 45: { action.builder. + case 48: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 46: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 49: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // - case 46: { action.builder. + case 49: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 47: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // - case 47: { action.builder. + case 50: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 48: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // Rule 51: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name // - case 48: { action.builder. + case 51: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 50: nested_name_specifier_opt ::= $Empty + // Rule 53: nested_name_specifier_opt ::= $Empty // - case 50: { action.builder. + case 53: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 54: postfix_expression ::= postfix_expression [ expression ] + // Rule 57: postfix_expression ::= postfix_expression [ expression ] // - case 54: { action.builder. + case 57: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 55: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 55: { action.builder. + case 58: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 56: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 56: { action.builder. + case 59: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 57: postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt ) + // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt ) // - case 57: { action.builder. + case 60: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 58: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) // - case 58: { action.builder. + case 61: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 59: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // - case 59: { action.builder. + case 62: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 60: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 60: { action.builder. + case 63: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 61: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 61: { action.builder. + case 64: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 62: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 62: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 63: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 63: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 64: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 64: { action.builder. + case 67: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 65: postfix_expression ::= postfix_expression ++ + // Rule 68: postfix_expression ::= postfix_expression ++ // - case 65: { action.builder. + case 68: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 66: postfix_expression ::= postfix_expression -- + // Rule 69: postfix_expression ::= postfix_expression -- // - case 66: { action.builder. + case 69: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 67: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 67: { action.builder. + case 70: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 68: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) // - case 68: { action.builder. + case 71: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 69: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 69: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 70: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) // - case 70: { action.builder. + case 73: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 71: postfix_expression ::= typeid ( expression ) + // Rule 74: postfix_expression ::= typeid ( expression ) // - case 71: { action.builder. + case 74: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 72: postfix_expression ::= typeid ( type_id ) + // Rule 75: postfix_expression ::= typeid ( type_id ) // - case 72: { action.builder. + case 75: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 73: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: ~ type_name + // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: ~ type_name // - case 73: { action.builder. + case 76: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 74: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: ~ type_name + // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: ~ type_name // - case 74: { action.builder. + case 77: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 75: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt ~ type_name + // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt ~ type_name // - case 75: { action.builder. + case 78: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 79: unary_expression ::= ++ cast_expression + // Rule 82: unary_expression ::= ++ cast_expression // - case 79: { action.builder. + case 82: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 80: unary_expression ::= -- cast_expression + // Rule 83: unary_expression ::= -- cast_expression // - case 80: { action.builder. + case 83: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 81: unary_expression ::= & cast_expression + // Rule 84: unary_expression ::= & cast_expression // - case 81: { action.builder. + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 82: unary_expression ::= * cast_expression + // Rule 85: unary_expression ::= * cast_expression // - case 82: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 83: unary_expression ::= + cast_expression + // Rule 86: unary_expression ::= + cast_expression // - case 83: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 84: unary_expression ::= - cast_expression + // Rule 87: unary_expression ::= - cast_expression // - case 84: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 85: unary_expression ::= ~ cast_expression + // Rule 88: unary_expression ::= ~ cast_expression // - case 85: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 86: unary_expression ::= ! cast_expression + // Rule 89: unary_expression ::= ! cast_expression // - case 86: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 87: unary_expression ::= sizeof unary_expression + // Rule 90: unary_expression ::= sizeof unary_expression // - case 87: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 88: unary_expression ::= sizeof ( type_id ) + // Rule 91: unary_expression ::= sizeof ( type_id ) // - case 88: { action.builder. + case 91: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } // - // Rule 89: new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt + // Rule 92: new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt // - case 89: { action.builder. + case 92: { action.builder. consumeExpressionNew(true); break; } // - // Rule 90: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_initializer_opt + // Rule 93: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_initializer_opt // - case 90: { action.builder. + case 93: { action.builder. consumeExpressionNew(false); break; } // - // Rule 93: new_placement_opt ::= $Empty + // Rule 96: new_placement_opt ::= $Empty // - case 93: { action.builder. + case 96: { action.builder. consumeEmpty(); break; } // - // Rule 94: new_type_id ::= type_specifier_seq + // Rule 97: new_type_id ::= type_specifier_seq // - case 94: { action.builder. + case 97: { action.builder. consumeTypeId(false); break; } // - // Rule 95: new_type_id ::= type_specifier_seq new_declarator + // Rule 98: new_type_id ::= type_specifier_seq new_declarator // - case 95: { action.builder. + case 98: { action.builder. consumeTypeId(true); break; } // - // Rule 96: new_declarator ::= <openscope-ast> new_pointer_operators + // Rule 99: new_declarator ::= <openscope-ast> new_pointer_operators // - case 96: { action.builder. + case 99: { action.builder. consumeNewDeclarator(); break; } // - // Rule 105: new_initializer_opt ::= $Empty + // Rule 108: new_initializer_opt ::= $Empty // - case 105: { action.builder. + case 108: { action.builder. consumeEmpty(); break; } // - // Rule 106: delete_expression ::= dcolon_opt delete cast_expression + // Rule 109: delete_expression ::= dcolon_opt delete cast_expression // - case 106: { action.builder. + case 109: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 107: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 110: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 107: { action.builder. + case 110: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 110: pm_expression ::= pm_expression .* cast_expression + // Rule 113: pm_expression ::= pm_expression .* cast_expression // - case 110: { action.builder. + case 113: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 111: pm_expression ::= pm_expression ->* cast_expression + // Rule 114: pm_expression ::= pm_expression ->* cast_expression // - case 111: { action.builder. + case 114: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 113: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 116: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 113: { action.builder. + case 116: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 114: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 117: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 114: { action.builder. + case 117: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 115: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 118: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 115: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 117: additive_expression ::= additive_expression + multiplicative_expression + // Rule 120: additive_expression ::= additive_expression + multiplicative_expression // - case 117: { action.builder. + case 120: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 118: additive_expression ::= additive_expression - multiplicative_expression + // Rule 121: additive_expression ::= additive_expression - multiplicative_expression // - case 118: { action.builder. + case 121: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 120: shift_expression ::= shift_expression << additive_expression + // Rule 123: shift_expression ::= shift_expression << additive_expression // - case 120: { action.builder. + case 123: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 121: shift_expression ::= shift_expression >> additive_expression + // Rule 124: shift_expression ::= shift_expression >> additive_expression // - case 121: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 123: relational_expression ::= relational_expression < shift_expression + // Rule 126: relational_expression ::= relational_expression < shift_expression // - case 123: { action.builder. + case 126: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 124: relational_expression ::= relational_expression > shift_expression + // Rule 127: relational_expression ::= relational_expression > shift_expression // - case 124: { action.builder. + case 127: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 125: relational_expression ::= relational_expression <= shift_expression + // Rule 128: relational_expression ::= relational_expression <= shift_expression // - case 125: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 126: relational_expression ::= relational_expression >= shift_expression + // Rule 129: relational_expression ::= relational_expression >= shift_expression // - case 126: { action.builder. + case 129: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 128: equality_expression ::= equality_expression == relational_expression + // Rule 131: equality_expression ::= equality_expression == relational_expression // - case 128: { action.builder. + case 131: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 129: equality_expression ::= equality_expression != relational_expression + // Rule 132: equality_expression ::= equality_expression != relational_expression // - case 129: { action.builder. + case 132: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 131: and_expression ::= and_expression & equality_expression + // Rule 134: and_expression ::= and_expression & equality_expression // - case 131: { action.builder. + case 134: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 133: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 136: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 133: { action.builder. + case 136: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 135: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 138: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 135: { action.builder. + case 138: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 137: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 140: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 137: { action.builder. + case 140: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 139: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 142: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 139: { action.builder. + case 142: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 141: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 144: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 141: { action.builder. + case 144: { action.builder. consumeExpressionConditional(); break; } // - // Rule 142: throw_expression ::= throw + // Rule 145: throw_expression ::= throw // - case 142: { action.builder. + case 145: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 143: throw_expression ::= throw assignment_expression + // Rule 146: throw_expression ::= throw assignment_expression // - case 143: { action.builder. + case 146: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 146: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 149: assignment_expression ::= logical_or_expression = assignment_expression // - case 146: { action.builder. + case 149: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 147: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 150: assignment_expression ::= logical_or_expression *= assignment_expression // - case 147: { action.builder. + case 150: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 148: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 151: assignment_expression ::= logical_or_expression /= assignment_expression // - case 148: { action.builder. + case 151: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 149: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 152: assignment_expression ::= logical_or_expression %= assignment_expression // - case 149: { action.builder. + case 152: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 150: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression += assignment_expression // - case 150: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 151: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression -= assignment_expression // - case 151: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 152: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 152: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 153: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 153: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 157: assignment_expression ::= logical_or_expression &= assignment_expression // - case 154: { action.builder. + case 157: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 158: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 155: { action.builder. + case 158: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 159: assignment_expression ::= logical_or_expression |= assignment_expression // - case 156: { action.builder. + case 159: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 158: expression ::= ERROR_TOKEN + // Rule 161: expression ::= ERROR_TOKEN // - case 158: { action.builder. + case 161: { action.builder. consumeExpressionProblem(); break; } // - // Rule 159: expression_list ::= <openscope-ast> expression_list_actual + // Rule 162: expression_list ::= <openscope-ast> expression_list_actual // - case 159: { action.builder. + case 162: { action.builder. consumeExpressionList(); break; } // - // Rule 163: expression_list_opt ::= $Empty + // Rule 166: expression_list_opt ::= $Empty // - case 163: { action.builder. + case 166: { action.builder. consumeEmpty(); break; } // - // Rule 165: expression_opt ::= $Empty + // Rule 168: expression_opt ::= $Empty // - case 165: { action.builder. + case 168: { action.builder. consumeEmpty(); break; } // - // Rule 168: constant_expression_opt ::= $Empty + // Rule 171: constant_expression_opt ::= $Empty // - case 168: { action.builder. + case 171: { action.builder. consumeEmpty(); break; } // - // Rule 177: statement ::= ERROR_TOKEN + // Rule 180: statement ::= ERROR_TOKEN // - case 177: { action.builder. + case 180: { action.builder. consumeStatementProblem(); break; } // - // Rule 178: labeled_statement ::= identifier : statement + // Rule 181: labeled_statement ::= identifier : statement // - case 178: { action.builder. + case 181: { action.builder. consumeStatementLabeled(); break; } // - // Rule 179: labeled_statement ::= case constant_expression : + // Rule 182: labeled_statement ::= case constant_expression : // - case 179: { action.builder. + case 182: { action.builder. consumeStatementCase(); break; } // - // Rule 180: labeled_statement ::= default : + // Rule 183: labeled_statement ::= default : // - case 180: { action.builder. + case 183: { action.builder. consumeStatementDefault(); break; } // - // Rule 181: expression_statement ::= expression ; + // Rule 184: expression_statement ::= expression ; // - case 181: { action.builder. + case 184: { action.builder. consumeStatementExpression(); break; } // - // Rule 182: expression_statement ::= ; + // Rule 185: expression_statement ::= ; // - case 182: { action.builder. + case 185: { action.builder. consumeStatementNull(); break; } // - // Rule 183: compound_statement ::= { <openscope-ast> statement_seq } + // Rule 186: compound_statement ::= { <openscope-ast> statement_seq } // - case 183: { action.builder. + case 186: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 184: compound_statement ::= { } + // Rule 187: compound_statement ::= { } // - case 184: { action.builder. + case 187: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 187: selection_statement ::= if ( condition ) statement + // Rule 190: selection_statement ::= if ( condition ) statement // - case 187: { action.builder. + case 190: { action.builder. consumeStatementIf(false); break; } // - // Rule 188: selection_statement ::= if ( condition ) statement else statement + // Rule 191: selection_statement ::= if ( condition ) statement else statement // - case 188: { action.builder. + case 191: { action.builder. consumeStatementIf(true); break; } // - // Rule 189: selection_statement ::= switch ( condition ) statement + // Rule 192: selection_statement ::= switch ( condition ) statement // - case 189: { action.builder. + case 192: { action.builder. consumeStatementSwitch(); break; } // - // Rule 191: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 194: condition ::= type_specifier_seq declarator = assignment_expression // - case 191: { action.builder. + case 194: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 192: iteration_statement ::= while ( condition ) statement + // Rule 195: iteration_statement ::= while ( condition ) statement // - case 192: { action.builder. + case 195: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 193: iteration_statement ::= do statement while ( expression ) ; + // Rule 196: iteration_statement ::= do statement while ( expression ) ; // - case 193: { action.builder. + case 196: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 194: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // Rule 197: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement // - case 194: { action.builder. + case 197: { action.builder. consumeStatementForLoop(); break; } // - // Rule 195: iteration_statement ::= for ( simple_declaration expression_opt ; expression_opt ) statement + // Rule 198: iteration_statement ::= for ( simple_declaration expression_opt ; expression_opt ) statement // - case 195: { action.builder. + case 198: { action.builder. consumeStatementForLoop(); break; } // - // Rule 196: jump_statement ::= break ; + // Rule 199: jump_statement ::= break ; // - case 196: { action.builder. + case 199: { action.builder. consumeStatementBreak(); break; } // - // Rule 197: jump_statement ::= continue ; + // Rule 200: jump_statement ::= continue ; // - case 197: { action.builder. + case 200: { action.builder. consumeStatementContinue(); break; } // - // Rule 198: jump_statement ::= return expression ; + // Rule 201: jump_statement ::= return expression ; // - case 198: { action.builder. + case 201: { action.builder. consumeStatementReturn(true); break; } // - // Rule 199: jump_statement ::= return ; + // Rule 202: jump_statement ::= return ; // - case 199: { action.builder. + case 202: { action.builder. consumeStatementReturn(false); break; } // - // Rule 200: jump_statement ::= goto identifier ; + // Rule 203: jump_statement ::= goto identifier_token ; // - case 200: { action.builder. + case 203: { action.builder. consumeStatementGoto(); break; } // - // Rule 201: declaration_statement ::= block_declaration + // Rule 204: declaration_statement ::= block_declaration // - case 201: { action.builder. + case 204: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 218: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ; + // Rule 221: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ; // - case 218: { action.builder. + case 221: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 219: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers + // Rule 222: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers // - case 219: { action.builder. + case 222: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 220: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers + // Rule 223: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers // - case 220: { action.builder. + case 223: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 221: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers + // Rule 224: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers // - case 221: { action.builder. + case 224: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 222: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers + // Rule 225: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers // - case 222: { action.builder. + case 225: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 223: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers + // Rule 226: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers // - case 223: { action.builder. + case 226: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 225: declaration_specifiers_opt ::= $Empty + // Rule 228: declaration_specifiers_opt ::= $Empty // - case 225: { action.builder. + case 228: { action.builder. consumeEmpty(); break; } // - // Rule 229: no_type_declaration_specifier ::= friend + // Rule 232: no_type_declaration_specifier ::= friend // - case 229: { action.builder. + case 232: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 230: no_type_declaration_specifier ::= typedef + // Rule 233: no_type_declaration_specifier ::= typedef // - case 230: { action.builder. + case 233: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 259: simple_type_specifier ::= simple_type_specifier_token + // Rule 262: simple_type_specifier ::= simple_type_specifier_token // - case 259: { action.builder. + case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 275: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 278: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 275: { action.builder. + case 278: { action.builder. consumeQualifiedId(false); break; } // - // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 279: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 276: { action.builder. + case 279: { action.builder. consumeQualifiedId(false); break; } // - // Rule 277: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name + // Rule 280: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // - case 277: { action.builder. + case 280: { action.builder. consumeQualifiedId(false); break; } // - // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name + // Rule 281: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // - case 278: { action.builder. + case 281: { action.builder. consumeQualifiedId(true); break; } // - // Rule 279: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 282: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name // - case 279: { action.builder. + case 282: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 280: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 283: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name // - case 280: { action.builder. + case 283: { action.builder. consumeTypeSpecifierElaborated(true); break; } // - // Rule 281: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name + // Rule 284: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // - case 281: { action.builder. + case 284: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 283: enum_specifier ::= enum { <openscope-ast> enumerator_list_opt } + // Rule 286: enum_specifier ::= enum { <openscope-ast> enumerator_list_opt } // - case 283: { action.builder. + case 286: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 284: enum_specifier ::= enum identifier { <openscope-ast> enumerator_list_opt } + // Rule 287: enum_specifier ::= enum identifier_token { <openscope-ast> enumerator_list_opt } // - case 284: { action.builder. + case 287: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 289: enumerator_definition ::= enumerator + // Rule 292: enumerator_definition ::= enumerator // - case 289: { action.builder. + case 292: { action.builder. consumeEnumerator(false); break; } // - // Rule 290: enumerator_definition ::= enumerator = constant_expression + // Rule 293: enumerator_definition ::= enumerator = constant_expression // - case 290: { action.builder. + case 293: { action.builder. consumeEnumerator(true); break; } // - // Rule 299: original_namespace_definition ::= namespace identifier_name { <openscope-ast> declaration_seq_opt } + // Rule 302: original_namespace_definition ::= namespace identifier_name { <openscope-ast> declaration_seq_opt } // - case 299: { action.builder. + case 302: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 300: extension_namespace_definition ::= namespace original_namespace_name { <openscope-ast> declaration_seq_opt } + // Rule 303: extension_namespace_definition ::= namespace original_namespace_name { <openscope-ast> declaration_seq_opt } // - case 300: { action.builder. + case 303: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 301: unnamed_namespace_definition ::= namespace { <openscope-ast> declaration_seq_opt } + // Rule 304: unnamed_namespace_definition ::= namespace { <openscope-ast> declaration_seq_opt } // - case 301: { action.builder. + case 304: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 303: namespace_alias_definition ::= namespace identifier = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 306: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 303: { action.builder. + case 306: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 304: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 307: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 304: { action.builder. + case 307: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 305: typename_opt ::= typename + // Rule 308: typename_opt ::= typename // - case 305: { action.builder. + case 308: { action.builder. consumePlaceHolder(); break; } // - // Rule 306: typename_opt ::= $Empty + // Rule 309: typename_opt ::= $Empty // - case 306: { action.builder. + case 309: { action.builder. consumeEmpty(); break; } // - // Rule 307: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 310: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 307: { action.builder. + case 310: { action.builder. consumeUsingDirective(); break; } // - // Rule 308: asm_definition ::= asm ( stringlit ) ; + // Rule 311: asm_definition ::= asm ( stringlit ) ; // - case 308: { action.builder. + case 311: { action.builder. consumeDeclarationASM(); break; } // - // Rule 309: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt } + // Rule 312: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt } // - case 309: { action.builder. + case 312: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 310: linkage_specification ::= extern stringlit <openscope-ast> declaration + // Rule 313: linkage_specification ::= extern stringlit <openscope-ast> declaration // - case 310: { action.builder. + case 313: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 316: init_declarator ::= declarator initializer + // Rule 319: init_declarator ::= declarator initializer // - case 316: { action.builder. + case 319: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 318: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator + // Rule 321: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator // - case 318: { action.builder. + case 321: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 320: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator + // Rule 323: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator // - case 320: { action.builder. + case 323: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 324: basic_direct_declarator ::= declarator_id_name + // Rule 327: basic_direct_declarator ::= declarator_id_name // - case 324: { action.builder. + case 327: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 325: basic_direct_declarator ::= ( declarator ) + // Rule 328: basic_direct_declarator ::= ( declarator ) // - case 325: { action.builder. + case 328: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 326: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt + // Rule 329: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt // - case 326: { action.builder. + case 329: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 327: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 330: array_direct_declarator ::= array_direct_declarator array_modifier // - case 327: { action.builder. + case 330: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 328: array_direct_declarator ::= basic_direct_declarator array_modifier + // Rule 331: array_direct_declarator ::= basic_direct_declarator array_modifier // - case 328: { action.builder. + case 331: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 329: array_modifier ::= [ constant_expression ] + // Rule 332: array_modifier ::= [ constant_expression ] // - case 329: { action.builder. + case 332: { action.builder. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 330: array_modifier ::= [ ] + // Rule 333: array_modifier ::= [ ] // - case 330: { action.builder. + case 333: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 331: ptr_operator ::= * <openscope-ast> cv_qualifier_seq_opt + // Rule 334: ptr_operator ::= * <openscope-ast> cv_qualifier_seq_opt // - case 331: { action.builder. + case 334: { action.builder. consumePointer(); break; } // - // Rule 332: ptr_operator ::= & + // Rule 335: ptr_operator ::= & // - case 332: { action.builder. + case 335: { action.builder. consumeReferenceOperator(); break; } // - // Rule 333: ptr_operator ::= dcolon_opt nested_name_specifier * <openscope-ast> cv_qualifier_seq_opt + // Rule 336: ptr_operator ::= dcolon_opt nested_name_specifier * <openscope-ast> cv_qualifier_seq_opt // - case 333: { action.builder. + case 336: { action.builder. consumePointerToMember(); break; } // - // Rule 339: cv_qualifier ::= const + // Rule 342: cv_qualifier ::= const // - case 339: { action.builder. + case 342: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 340: cv_qualifier ::= volatile + // Rule 343: cv_qualifier ::= volatile // - case 340: { action.builder. + case 343: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 342: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 345: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // - case 342: { action.builder. + case 345: { action.builder. consumeQualifiedId(false); break; } // - // Rule 343: type_id ::= type_specifier_seq + // Rule 346: type_id ::= type_specifier_seq // - case 343: { action.builder. + case 346: { action.builder. consumeTypeId(false); break; } // - // Rule 344: type_id ::= type_specifier_seq abstract_declarator + // Rule 347: type_id ::= type_specifier_seq abstract_declarator // - case 344: { action.builder. + case 347: { action.builder. consumeTypeId(true); break; } // - // Rule 347: abstract_declarator ::= <openscope-ast> ptr_operator_seq + // Rule 350: abstract_declarator ::= <openscope-ast> ptr_operator_seq // - case 347: { action.builder. + case 350: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 348: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator + // Rule 351: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator // - case 348: { action.builder. + case 351: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 352: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 355: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 352: { action.builder. + case 355: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 353: array_direct_abstract_declarator ::= array_modifier + // Rule 356: array_direct_abstract_declarator ::= array_modifier // - case 353: { action.builder. + case 356: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 354: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 357: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier // - case 354: { action.builder. + case 357: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 355: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // Rule 358: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier // - case 355: { action.builder. + case 358: { action.builder. consumeDirectDeclaratorArrayDeclarator(true); break; } // - // Rule 356: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt + // Rule 359: 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 356: { action.builder. + case 359: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 357: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt + // Rule 360: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt // - case 357: { action.builder. + case 360: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 361: parameter_declaration_clause ::= parameter_declaration_list_opt ... // - case 358: { action.builder. + case 361: { action.builder. consumePlaceHolder(); break; } // - // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 362: parameter_declaration_clause ::= parameter_declaration_list_opt // - case 359: { action.builder. + case 362: { action.builder. consumeEmpty(); break; } // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 363: parameter_declaration_clause ::= parameter_declaration_list , ... // - case 360: { action.builder. + case 363: { action.builder. consumePlaceHolder(); break; } // - // Rule 366: abstract_declarator_opt ::= $Empty + // Rule 369: abstract_declarator_opt ::= $Empty // - case 366: { action.builder. + case 369: { action.builder. consumeEmpty(); break; } // - // Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // Rule 370: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 367: { action.builder. + case 370: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 368: parameter_declaration ::= declaration_specifiers + // Rule 371: parameter_declaration ::= declaration_specifiers // - case 368: { action.builder. + case 371: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 370: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 373: parameter_init_declarator ::= declarator = parameter_initializer // - case 370: { action.builder. + case 373: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 372: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 375: parameter_init_declarator ::= abstract_declarator = parameter_initializer // - case 372: { action.builder. + case 375: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 373: parameter_init_declarator ::= = parameter_initializer + // Rule 376: parameter_init_declarator ::= = parameter_initializer // - case 373: { action.builder. + case 376: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 374: parameter_initializer ::= assignment_expression + // Rule 377: parameter_initializer ::= assignment_expression // - case 374: { action.builder. + case 377: { action.builder. consumeInitializer(); break; } // - // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body + // Rule 378: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body // - case 375: { action.builder. + case 378: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq + // Rule 379: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq // - case 376: { action.builder. + case 379: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 379: initializer ::= ( expression_list ) + // Rule 382: initializer ::= ( expression_list ) // - case 379: { action.builder. + case 382: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 380: initializer_clause ::= assignment_expression + // Rule 383: initializer_clause ::= assignment_expression // - case 380: { action.builder. + case 383: { action.builder. consumeInitializer(); break; } // - // Rule 381: initializer_clause ::= { <openscope-ast> initializer_list , } + // Rule 384: initializer_clause ::= { <openscope-ast> initializer_list , } // - case 381: { action.builder. + case 384: { action.builder. consumeInitializerList(); break; } // - // Rule 382: initializer_clause ::= { <openscope-ast> initializer_list } + // Rule 385: initializer_clause ::= { <openscope-ast> initializer_list } // - case 382: { action.builder. + case 385: { action.builder. consumeInitializerList(); break; } // - // Rule 383: initializer_clause ::= { <openscope-ast> } + // Rule 386: initializer_clause ::= { <openscope-ast> } // - case 383: { action.builder. + case 386: { action.builder. consumeInitializerList(); break; } // - // Rule 388: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } + // Rule 391: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt } // - case 388: { action.builder. + case 391: { action.builder. consumeClassSpecifier(); break; } // - // Rule 389: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt + // Rule 392: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt // - case 389: { action.builder. + case 392: { action.builder. consumeClassHead(false); break; } // - // Rule 390: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt + // Rule 393: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt // - case 390: { action.builder. + case 393: { action.builder. consumeClassHead(false); break; } // - // Rule 391: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt + // Rule 394: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt // - case 391: { action.builder. + case 394: { action.builder. consumeClassHead(true); break; } // - // Rule 392: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt + // Rule 395: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt // - case 392: { action.builder. + case 395: { action.builder. consumeClassHead(true); break; } // - // Rule 396: identifier_name_opt ::= $Empty + // Rule 397: identifier_name_opt ::= $Empty // - case 396: { action.builder. + case 397: { action.builder. consumeEmpty(); break; } // - // Rule 400: visibility_label ::= access_specifier_keyword : + // Rule 401: visibility_label ::= access_specifier_keyword : // - case 400: { action.builder. + case 401: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 401: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; + // Rule 402: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ; // - case 401: { action.builder. + case 402: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 402: member_declaration ::= declaration_specifiers_opt ; + // Rule 403: member_declaration ::= declaration_specifiers_opt ; // - case 402: { action.builder. + case 403: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 406: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 405: { action.builder. + case 406: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 409: member_declaration ::= ERROR_TOKEN + // Rule 410: member_declaration ::= ERROR_TOKEN // - case 409: { action.builder. + case 410: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 417: member_declarator ::= declarator constant_initializer + // Rule 418: member_declarator ::= declarator constant_initializer // - case 417: { action.builder. + case 418: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 418: member_declarator ::= bit_field_declarator : constant_expression + // Rule 419: member_declarator ::= bit_field_declarator : constant_expression // - case 418: { action.builder. + case 419: { action.builder. consumeBitField(true); break; } // - // Rule 419: member_declarator ::= : constant_expression + // Rule 420: member_declarator ::= : constant_expression // - case 419: { action.builder. + case 420: { action.builder. consumeBitField(false); break; } // - // Rule 420: bit_field_declarator ::= identifier_name + // Rule 421: bit_field_declarator ::= identifier_name // - case 420: { action.builder. + case 421: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 427: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 428: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 427: { action.builder. + case 428: { action.builder. consumeBaseSpecifier(false); break; } // - // Rule 428: base_specifier ::= virtual_opt access_specifier_keyword virtual_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 429: base_specifier ::= virtual_opt access_specifier_keyword virtual_opt dcolon_opt nested_name_specifier_opt class_name // - case 428: { action.builder. + case 429: { action.builder. consumeBaseSpecifier(true); break; } // - // Rule 429: virtual_opt ::= virtual + // Rule 430: virtual_opt ::= virtual // - case 429: { action.builder. + case 430: { action.builder. consumePlaceHolder(); break; } // - // Rule 430: virtual_opt ::= $Empty + // Rule 431: virtual_opt ::= $Empty // - case 430: { action.builder. + case 431: { action.builder. consumeEmpty(); break; } // - // Rule 436: conversion_function_id_name ::= operator conversion_type_id + // Rule 437: conversion_function_id_name ::= operator conversion_type_id // - case 436: { action.builder. + case 437: { action.builder. consumeConversionName(); break; } // - // Rule 437: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 438: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 437: { action.builder. + case 438: { action.builder. consumeTypeId(true); break; } // - // Rule 438: conversion_type_id ::= type_specifier_seq + // Rule 439: conversion_type_id ::= type_specifier_seq // - case 438: { action.builder. + case 439: { action.builder. consumeTypeId(false); break; } // - // Rule 439: conversion_declarator ::= <openscope-ast> ptr_operator_seq + // Rule 440: conversion_declarator ::= <openscope-ast> ptr_operator_seq // - case 439: { action.builder. + case 440: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 445: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 446: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 445: { action.builder. + case 446: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 446: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 447: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 446: { action.builder. + case 447: { action.builder. consumeQualifiedId(false); break; } // - // Rule 449: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > + // Rule 450: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt > // - case 449: { action.builder. + case 450: { action.builder. consumeTemplateId(); break; } // - // Rule 450: operator_id_name ::= operator overloadable_operator + // Rule 451: operator_id_name ::= operator overloadable_operator // - case 450: { action.builder. + case 451: { action.builder. consumeOperatorName(); break; } // - // Rule 493: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration + // Rule 494: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration // - case 493: { action.builder. + case 494: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 494: export_opt ::= export + // Rule 495: export_opt ::= export // - case 494: { action.builder. + case 495: { action.builder. consumePlaceHolder(); break; } // - // Rule 495: export_opt ::= $Empty + // Rule 496: export_opt ::= $Empty // - case 495: { action.builder. + case 496: { action.builder. consumeEmpty(); break; } // - // Rule 500: type_parameter ::= class identifier_name_opt + // Rule 501: type_parameter ::= class identifier_name_opt // - case 500: { action.builder. + case 501: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 501: type_parameter ::= class identifier_name_opt = type_id + // Rule 502: type_parameter ::= class identifier_name_opt = type_id // - case 501: { action.builder. + case 502: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 502: type_parameter ::= typename identifier_name_opt + // Rule 503: type_parameter ::= typename identifier_name_opt // - case 502: { action.builder. + case 503: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 503: type_parameter ::= typename identifier_name_opt = type_id + // Rule 504: type_parameter ::= typename identifier_name_opt = type_id // - case 503: { action.builder. + case 504: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 504: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt + // Rule 505: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt // - case 504: { action.builder. + case 505: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 505: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression + // Rule 506: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression // - case 505: { action.builder. + case 506: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 506: template_id_name ::= template_identifier < <openscope-ast> template_argument_list_opt > + // Rule 507: template_id_name ::= template_identifier < <openscope-ast> template_argument_list_opt > // - case 506: { action.builder. + case 507: { action.builder. consumeTemplateId(); break; } // - // Rule 515: explicit_instantiation ::= template declaration + // Rule 516: explicit_instantiation ::= template declaration // - case 515: { action.builder. + case 516: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 516: explicit_specialization ::= template < > declaration + // Rule 517: explicit_specialization ::= template < > declaration // - case 516: { action.builder. + case 517: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 517: try_block ::= try compound_statement <openscope-ast> handler_seq + // Rule 518: try_block ::= try compound_statement <openscope-ast> handler_seq // - case 517: { action.builder. + case 518: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 520: handler ::= catch ( exception_declaration ) compound_statement + // Rule 521: handler ::= catch ( exception_declaration ) compound_statement // - case 520: { action.builder. + case 521: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 521: handler ::= catch ( ... ) compound_statement + // Rule 522: handler ::= catch ( ... ) compound_statement // - case 521: { action.builder. + case 522: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 522: exception_declaration ::= type_specifier_seq <openscope-ast> declarator + // Rule 523: exception_declaration ::= type_specifier_seq <openscope-ast> declarator // - case 522: { action.builder. + case 523: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 523: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator + // Rule 524: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator // - case 523: { action.builder. + case 524: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq + // Rule 525: exception_declaration ::= type_specifier_seq // - case 524: { action.builder. + case 525: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 532: no_cast_start ::= ERROR_TOKEN + // Rule 533: no_cast_start ::= ERROR_TOKEN // - case 532: { action.builder. + case 533: { action.builder. consumeExpressionProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java index 9b7edb816ae..79860aa8426 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java @@ -37,503 +37,523 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseCheck { public final static short baseCheck[] = {0, - 0,0,0,0,0,1,1,1,1,1, - 0,1,2,1,1,1,1,1,1,1, - 1,1,1,1,3,1,1,1,1,1, - 1,1,1,2,1,1,0,1,0,4, - 2,2,2,3,2,3,2,2,1,0, - 1,1,1,4,4,4,8,8,3,3, - 4,4,3,3,2,2,7,7,7,7, - 4,4,6,7,4,1,1,1,2,2, - 2,2,2,2,2,2,2,4,7,7, - 3,1,0,1,2,2,1,2,3,4, - 1,0,3,1,0,3,5,1,1,3, - 3,1,3,3,3,1,3,3,1,3, - 3,1,3,3,3,3,1,3,3,1, - 3,1,3,1,3,1,3,1,3,1, - 5,1,2,1,1,3,3,3,3,3, - 3,3,3,3,3,3,1,1,2,1, - 3,1,0,1,0,1,1,0,1,1, - 1,1,1,1,1,1,1,3,3,2, - 2,1,4,2,1,2,5,7,5,1, - 4,5,7,9,8,2,2,3,2,3, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2,1,0,4,2,2, - 2,2,2,1,0,1,1,1,1,1, - 1,2,1,2,2,2,1,1,2,2, + 0,0,1,1,1,1,1,1,1,1, + 1,0,1,2,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3,1,1, + 1,1,1,1,1,1,2,1,1,0, + 1,0,4,2,2,2,3,2,3,2, + 2,1,0,1,1,1,4,4,4,8, + 8,3,3,4,4,3,3,2,2,7, + 7,7,7,4,4,6,7,4,1,1, + 1,2,2,2,2,2,2,2,2,2, + 4,7,7,3,1,0,1,2,2,1, + 2,3,4,1,0,3,1,0,3,5, + 1,1,3,3,1,3,3,3,1,3, + 3,1,3,3,1,3,3,3,3,1, + 3,3,1,3,1,3,1,3,1,3, + 1,3,1,5,1,2,1,1,3,3, + 3,3,3,3,3,3,3,3,3,1, + 1,2,1,3,1,0,1,0,1,1, + 0,1,1,1,1,1,1,1,1,1, + 3,3,2,2,1,4,2,1,2,5, + 7,5,1,4,5,7,9,8,2,2, + 3,2,3,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,2,1,0, + 4,2,2,2,2,2,1,0,1,1, + 1,1,1,1,2,1,2,2,2,1, 1,2,2,1,2,2,1,2,2,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,3,4,4,5,4,5, - 4,1,5,6,1,3,1,0,1,3, - 1,1,1,1,1,1,1,1,6,6, - 5,1,7,6,1,0,6,5,6,4, - 1,3,1,0,1,2,1,3,1,3, - 1,1,1,1,3,9,2,2,3,2, - 3,1,5,1,2,2,1,0,1,1, - 1,3,1,2,1,1,2,3,1,1, - 1,3,1,2,2,9,8,2,1,3, - 1,3,1,0,1,0,2,1,1,3, - 1,3,2,1,5,8,1,2,3,1, - 5,4,3,1,3,1,1,5,4,4, - 5,5,1,0,1,0,1,1,1,2, - 4,2,2,1,5,1,1,1,1,1, - 2,1,0,1,3,1,2,3,2,1, - 2,2,1,0,1,3,3,6,1,0, - 1,1,1,1,0,2,2,1,2,2, - 1,0,1,3,4,3,1,1,5,2, - 1,1,3,3,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 2,2,7,1,0,1,3,1,1,2, - 4,2,4,7,9,5,1,1,3,1, - 0,1,1,1,2,4,4,1,2,5, - 5,3,3,1,4,3,1,0,1,3, - 1,1,-109,0,0,0,-2,0,0,0, + 2,2,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3,4,4, + 5,4,5,4,1,5,6,1,3,1, + 0,1,3,1,1,1,1,1,1,1, + 1,6,6,5,1,7,6,1,0,6, + 5,6,4,1,3,1,0,1,2,1, + 3,1,3,1,1,1,1,3,9,2, + 2,3,2,3,1,5,1,2,2,1, + 0,1,1,1,3,1,2,1,1,2, + 3,1,1,1,3,1,2,2,9,8, + 2,1,3,1,3,1,0,1,0,2, + 1,1,3,1,3,2,1,5,8,1, + 2,3,1,5,4,3,1,3,1,1, + 5,4,4,5,5,1,0,1,1,1, + 2,4,2,2,1,5,1,1,1,1, + 1,2,1,0,1,3,1,2,3,2, + 1,2,2,1,0,1,3,3,6,1, + 0,1,1,1,1,0,2,2,1,2, + 2,1,0,1,3,4,3,1,1,5, + 2,1,1,3,3,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,2,2,7,1,0,1,3,1,1, + 2,4,2,4,7,9,5,1,1,3, + 1,0,1,1,1,2,4,4,1,2, + 5,5,3,3,1,4,3,1,0,1, + 3,1,1,-109,0,0,0,0,-54,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-11,0,0,0,0, - 0,0,0,0,0,0,-50,0,0,0, - 0,-4,0,0,-124,-70,0,0,0,0, - 0,0,0,0,0,0,0,-178,0,-76, + 0,0,0,0,0,0,0,-417,0,0, + 0,0,-11,0,0,0,0,0,0,0, + 0,0,-2,0,0,0,-53,-70,0,0, + 0,0,-341,0,0,0,0,0,0,0, + -76,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-124,0,-310, + 0,0,0,0,-178,0,0,0,0,0, + -20,0,0,0,0,-4,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-229,0,0,-137,0,0,0,0, - 0,0,0,0,0,0,0,0,-22,0, - 0,0,-54,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-71,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-177,0,0,0,0, - -53,0,-71,0,0,0,0,0,0,0, - 0,0,0,0,-5,0,-6,0,0,0, - 0,0,0,-116,0,0,0,0,0,0, + 0,-177,0,0,0,0,-276,0,-5,0, + 0,0,0,0,0,-116,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-7,0,0,0,0,0,-182,0,0, - 0,-138,0,0,0,-8,0,0,-511,0, 0,0,0,0,0,0,0,0,0,0, - 0,-60,0,0,-133,0,0,0,0,0, + -50,0,0,0,-331,0,0,0,-411,0, + -512,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-133,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-129,0, - 0,0,-240,0,0,0,-9,0,-10,-140, + 0,0,0,0,0,0,-6,0,0,-7, + 0,0,-57,0,0,0,-51,0,0,0, + -8,0,-137,0,0,0,0,0,0,0, + 0,0,0,-140,0,0,0,0,0,0, + 0,0,0,0,0,0,-60,0,-225,0, + 0,-58,-223,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-230,0,0,-143,0,0,0,-12, - 0,0,0,0,0,0,0,0,-13,-63, - -223,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-184,-9,0,0,-361,0,-143,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-395,0,-327,0,0,0,0,0, - 0,0,0,0,-186,0,0,0,0,-14, - 0,-509,0,0,0,0,0,0,0,0, + 0,0,0,0,-510,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-341, + 0,0,0,0,0,0,0,0,-292,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-519,0,0,0,-432,0,0, + 0,0,0,0,0,0,0,-21,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-331,0,0,0,0,0,-201,0,0, - 0,0,-106,0,0,-3,0,0,0,-62, + 0,-432,-520,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-225,0,0,0,0,0,-57, - 0,0,0,0,-51,0,0,-136,0,0, - -131,0,-284,0,0,0,-107,0,0,0, + 0,-63,0,0,-207,0,0,-114,0,0, + 0,0,0,0,0,-327,0,0,0,0, + -229,0,0,0,0,0,0,-351,0,0, + 0,0,-306,0,0,0,0,0,0,-3, + 0,0,0,0,-106,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-231,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-264,0, + 0,0,-17,0,0,0,0,0,0,0, + 0,-186,0,0,0,0,-284,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-353,0,0,0, - 0,0,0,0,0,-236,0,0,0,-317, 0,0,0,0,0,0,0,0,0,0, + -10,0,0,0,0,-129,0,0,-238,0, + 0,0,0,0,0,0,0,0,0,-317, 0,0,0,0,0,0,0,0,0,0, - 0,0,-171,0,0,0,0,0,0,0, - 0,0,0,-258,0,0,0,0,0,0, - 0,-16,0,-17,0,0,0,0,0,0, - 0,-318,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-171,0, + 0,-62,0,0,0,0,0,0,0,0, + 0,0,-12,0,-318,0,0,0,0,-131, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-58, - -29,0,0,-361,0,-472,0,0,0,-352, + 0,0,0,0,0,0,0,0,-185,0, + 0,0,0,0,0,0,-107,0,0,-13, + 0,0,0,-14,0,0,0,-473,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-30,0, - 0,0,0,-261,0,0,0,0,0,-132, - 0,0,0,0,-31,0,0,0,0,-40, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-300,0,0,-132, + 0,0,0,0,0,0,-16,0,0,0, + 0,-377,-40,0,0,0,0,-352,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-134,0,0, - -115,0,0,-400,0,0,0,-32,0,0, - 0,-42,0,0,0,-33,0,0,0,0, + 0,0,0,0,0,0,-201,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-261,0,0,0,-333,-42,0,0,0, + 0,-29,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-34,0,0,-340,0,0,0,0, - 0,0,0,0,-93,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-93, + 0,0,0,0,-115,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-35,0,0,0,0,0,0,0, - 0,0,-145,0,0,0,-94,0,0,0, - -207,0,0,0,0,0,0,0,0,0, + 0,0,0,-339,0,0,0,0,-134,0, + 0,-139,0,0,-30,0,0,0,0,0, + 0,0,-94,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-36,0,0,-37,0,0, - -38,0,0,0,-469,-139,0,0,-95,0, - 0,0,-39,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-145,0,0,0,0,0,-349,0,0, + 0,-31,0,0,0,-95,0,0,0,0, + -144,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-144,0,0, - -96,0,0,0,-168,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-41,0,0,0,0,0,0, - 0,0,0,0,-300,0,0,0,-169,0, - 0,0,-97,0,0,0,-55,0,0,0, + -368,0,0,0,-32,0,0,0,-96,0, + 0,0,0,-168,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-259,0,0,0,0, - 0,0,0,0,0,0,-184,0,0,0, - 0,-202,0,0,-98,0,0,0,-216,0, + 0,0,0,0,0,0,0,-360,0,0, + 0,0,0,0,0,0,0,-33,-169,0, + 0,-97,0,0,0,0,-287,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-187,0,0,0,0, + 0,0,0,0,0,0,-189,0,0,0, + 0,0,0,0,-98,0,0,0,0,-288, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-185,0, - 0,0,0,-212,0,0,-99,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-272, + 0,0,0,-210,0,0,0,0,0,-192, + 0,0,0,-34,0,0,0,-99,0,0, + 0,0,-202,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -187,0,0,0,0,-237,0,0,-100,0, - 0,0,-298,0,0,0,0,0,0,0, + 0,-200,0,0,0,0,0,0,0,0, + 0,0,-405,0,0,0,-35,0,0,0, + -100,0,0,0,0,-212,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-308,0,0,0,0,-56,0,0,0, - 0,0,-189,0,0,0,0,-244,0,0, - -101,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-430, + 0,0,0,0,0,0,0,0,0,-36, + 0,0,0,-101,0,0,0,0,-216,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-59,0,0,0,0,0,0, - 0,0,0,0,-192,0,0,0,0,-64, - 0,0,-102,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-214,0,0, + 0,0,0,0,0,-237,0,0,-227,0, + 0,0,-37,0,0,0,-102,0,0,0, + 0,-38,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-360,0,0,0,0, - 0,0,0,-238,0,0,-200,0,0,0, - 0,-65,0,0,-103,0,0,0,-231,0, + 0,0,0,0,0,0,0,0,-39,0, + 0,-228,0,0,0,-41,0,0,0,-103, + 0,0,0,0,-244,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-297,0,0, - 0,0,-66,0,0,-210,0,0,-214,0, - 0,0,0,-251,0,0,-166,0,0,0, - -68,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-430, + 0,0,0,-232,0,0,0,0,0,0, + 0,-251,0,0,-313,0,0,0,-55,0, + 0,0,-166,0,0,0,0,-252,0,0, 0,0,0,0,0,0,0,0,0,0, - -306,0,0,0,-208,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-417,0,0, - 0,0,-114,0,0,0,0,0,-501,0, - 0,0,0,0,0,0,0,-351,0,0, - 0,0,0,0,0,0,0,-69,-366,0, - -504,0,0,0,0,0,0,0,0,0, + 0,-117,0,0,-56,0,0,0,0,0, + 0,-59,0,-208,0,0,0,0,-64,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-257,0,0, + 0,0,0,0,0,0,0,0,-259,0, + 0,0,-344,0,0,0,-448,0,-141,0, + 0,0,0,-366,0,0,-505,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-252, - 0,0,-309,0,0,0,-110,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-111,0,0,0,0, - 0,0,0,0,0,0,-112,0,0,0, - -312,0,0,0,-452,0,0,0,0,0, + 0,0,0,0,0,-458,0,0,0,0, + 0,0,0,0,0,-298,-253,0,0,-309, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-310,0,0,0,0,0,0, - 0,0,0,0,-267,0,0,0,-243,0, - 0,0,-250,0,0,0,-234,0,-141,0, - 0,0,-270,0,0,0,-337,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-165,0, + 0,0,0,0,0,0,0,0,-312,0, + 0,0,0,-277,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-369,0,0,-113,0,0, - -120,0,0,0,-358,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-127,0,0, - 0,0,-264,0,0,-502,0,0,-268,0, - 0,0,-275,0,0,0,-294,0,0,0, - 0,-128,-342,0,0,0,0,0,0,0, - -359,0,0,0,0,0,0,0,0,0, + -65,0,0,0,0,0,0,-236,0,0, + 0,0,0,-66,0,-342,0,0,0,0, + -234,0,0,-337,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-146,0, - 0,0,0,0,0,0,0,0,-403,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-291,0,0,0,0,0,0,0, + 0,0,-358,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-287,0,0,0,0,-147,0,0,-396, - 0,0,-148,0,0,0,-367,0,-333,-354, - 0,-227,-385,0,0,0,-149,0,-253,-235, - 0,0,0,0,-105,0,0,0,0,0, + 0,0,0,0,0,0,-136,0,0,0, + 0,0,0,0,-68,0,0,-69,0,0, + 0,-243,0,0,0,0,-413,-110,0,-386, + 0,0,0,0,0,0,0,-359,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-288,0, - 0,-349,-92,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-111,0,0,0,-403,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -254,0,0,-150,0,0,-90,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -370,0,0,0,0,0,0,0,-112,0, + 0,-113,0,0,0,-250,0,0,0,0, + -354,0,0,-385,0,0,0,-416,0,0, + -120,-105,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-91, - 0,0,0,-293,0,0,0,0,0,0, + 0,0,0,0,0,-283,0,0,0,0, + 0,0,0,-269,0,0,0,0,-272,0, + -92,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-276,0,0, - -52,0,0,0,-151,0,-313,0,-377,-447, - -481,0,0,0,0,0,0,0,0,0, - -370,-228,-471,-152,0,0,0,-87,0,0, + 0,0,0,0,-254,0,0,0,0,-127, + 0,0,-293,0,0,-90,0,0,0,0, + -308,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-91, + 0,0,0,0,-128,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-153,0,-77,0,0, + 0,0,0,-146,0,0,0,0,-118,0, + 0,-52,0,0,0,0,0,0,-249,0, + 0,0,0,-147,0,0,0,0,0,0, + 0,0,-395,0,0,0,-295,-148,-87,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -232,0,0,-154,0,0,0,0,0,-480, - 0,-368,-155,0,0,0,-21,0,0,0, - -156,0,0,0,0,0,0,0,0,0, + 0,0,-396,0,0,0,0,0,0,-321, + 0,0,-401,0,-296,0,-149,0,-388,0, + 0,0,0,-322,-150,0,-270,0,0,0, + 0,0,-44,-45,0,-151,0,0,0,0, + 0,0,0,0,0,0,0,0,-472,0, + 0,0,0,0,-152,-301,0,0,0,0, + 0,0,-153,0,0,0,0,0,-414,0, + 0,0,0,0,0,-319,0,0,0,-154, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-386,0,0,0,-157,0, - 0,0,0,0,0,0,-257,0,-283,0, - 0,-492,0,0,0,0,0,0,0,0, - 0,-88,0,0,0,0,0,0,0,0, + 0,0,-343,0,0,0,-155,0,0,0, + 0,0,0,-88,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-158,0,0,0,0,-89, - 0,0,0,-159,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-160,0,0,0,0,-81,0,0, - 0,-161,0,0,0,0,0,0,0,0, + 0,0,-89,0,0,0,0,-502,0,0, 0,0,0,0,0,0,0,0,0,0, - -162,0,0,0,-82,0,0,0,-233,0, 0,0,0,0,0,0,0,0,0,0, + 0,-81,0,0,0,0,-156,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-83,0,0,0,-321,0,0,0,0, + 0,0,0,0,0,-157,0,0,0,-82, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-163,0,0,0,-84,0, - 0,0,-164,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-357,0,0,0,-246,0,0,0,0, - 0,0,0,0,0,0,0,-85,0,0, + 0,0,0,-400,0,0,0,-83,0,0, + 0,0,-158,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-159,0,0,0,-84,0,0,0,0, + -453,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-357, + 0,0,0,-246,0,0,0,0,0,0, + 0,0,0,0,0,0,-85,0,0,0, + 0,-160,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -339,0,0,-269,-295,-170,-301,-296,0,-465, - 0,0,0,0,-195,0,0,0,-497,0, - -173,-319,0,0,0,0,-325,0,0,0, - 0,-108,-249,0,0,0,-344,0,0,0, - 0,0,-328,-174,0,0,0,0,-290,0, + -161,0,0,-275,0,0,0,0,-325,-328, + -462,-213,-182,0,0,0,0,0,0,-330, + 0,0,0,0,0,-162,0,0,0,-230, + 0,0,-163,0,0,0,-294,0,0,0, + 0,-164,-362,0,-170,-173,-290,0,0,0, + 0,0,0,0,0,0,0,0,0,-476, + 0,-174,0,0,0,0,0,0,0,-233, + 0,0,-86,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-277,0,0,0,0,-86,0, + 0,0,0,0,0,0,0,0,0,-481, + 0,0,-346,-353,0,0,0,0,0,0, + 0,0,-412,-363,-376,-419,0,0,0,0, + -258,0,0,0,0,0,0,-504,0,0, 0,0,0,0,0,0,0,0,0,0, + -175,0,0,0,0,0,0,0,0,0, + 0,0,0,-176,0,-77,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-455,0,0,-322,0,0,-175,0,-330, - 0,0,0,0,-346,0,0,0,0,-363, - -176,0,0,0,0,0,0,0,-343,-362, - -122,0,0,0,-457,0,-179,0,0,0, - 0,0,0,0,0,-180,-376,0,0,0, + 0,0,0,0,0,0,0,0,0,-380, + 0,-179,0,-108,0,0,0,0,0,-180, + -340,0,0,0,0,-181,0,0,-190,-191, + -323,0,-235,0,0,0,0,0,-302,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-181,0,-470,-118,0,0, + 0,0,0,-196,0,0,0,0,0,0, + 0,-197,-498,0,0,0,-424,0,0,0, + 0,0,0,0,0,0,0,0,0,-167, + -138,-203,-420,0,0,-456,0,-267,-383,-442, + 0,0,-211,0,0,-15,0,0,0,0, + 0,-240,0,0,-209,0,0,0,-470,0, + 0,-271,0,0,0,0,0,0,0,0, + -221,0,0,-455,0,0,0,0,0,0, + 0,0,0,-443,0,0,0,0,0,0, + 0,0,0,0,-222,0,0,0,-224,0, + -415,-452,0,0,0,0,0,-1,0,-43, + 0,-471,0,0,0,-493,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-190,0,-239,0,0,0,0,0,0, - 0,0,0,0,-475,-191,0,-196,-350,-1, - 0,-18,0,0,-167,0,-493,-380,0,0, + 0,0,0,0,0,0,0,0,0,-268, + -242,0,0,-334,0,0,0,-245,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-19,0,0,0,-383,0,0,0, - 0,-477,-119,0,0,0,0,0,0,0, - -266,-121,-49,0,0,0,0,0,-405,0, + 0,0,0,0,0,0,0,-421,0,0, + 0,0,0,0,-247,0,-478,-262,-369,0, + 0,0,0,-18,-263,0,0,-49,0,0, + 0,-463,0,0,-273,0,0,0,0,0, + 0,0,0,0,0,-122,0,0,0,0, + -274,0,0,0,0,0,0,0,-278,-422, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-292,0, - 0,0,0,0,0,0,-415,0,-496,0, - 0,0,0,0,0,0,0,0,0,-197, - -412,0,-203,0,0,0,-479,-211,0,0, - 0,0,0,0,0,0,0,0,0,-72, + 0,0,0,-135,0,0,-465,0,0,-281, + 0,-480,-469,-119,0,0,0,0,0,0, + 0,0,-121,0,0,0,-282,0,0,-426, 0,0,0,0,0,0,0,0,0,0, + -285,0,-130,0,0,0,0,0,-483,-446, + 0,-467,-123,0,0,0,0,-484,0,-495, + 0,0,0,0,0,0,0,-19,0,0, + 0,0,-450,-457,0,0,-459,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-221,-419,0,0,0,0,-222,0, - 0,-224,0,0,0,0,0,0,0,0, - 0,-503,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-242, - 0,0,-206,0,0,0,-245,0,-247,0, - 0,0,0,-262,-263,0,0,0,0,-413, - -280,-117,-498,-421,-316,0,0,0,-273,0, - 0,-209,-271,0,0,0,0,-422,0,0, - 0,0,0,-516,0,0,-332,0,0,0, - 0,0,0,0,0,0,0,0,0,-420, - 0,-302,0,0,0,0,0,0,0,0, - 0,0,0,-414,-44,0,0,-348,0,-454, 0,0,0,0,0,0,0,0,0,0, - 0,-248,-426,0,-274,0,0,0,-384,-278, - 0,0,0,0,0,0,-281,-73,0,0, - 0,0,0,0,0,-282,0,0,0,0, - 0,0,-285,0,0,0,0,-286,0,0, - 0,0,0,0,0,0,0,0,0,-401, - 0,-441,-165,0,0,0,0,0,0,0, - 0,0,0,-299,0,0,0,0,-304,-442, - -451,0,0,-204,0,0,0,0,-305,0, - 0,0,0,0,0,0,0,0,0,-123, - 0,0,0,0,0,0,-462,0,0,0, - 0,0,0,0,0,0,-445,0,0,0, - 0,0,0,0,0,0,0,0,0,-390, - 0,0,0,0,0,0,0,0,-315,-326, - 0,-336,0,0,-424,0,0,0,0,0, - 0,0,0,0,0,0,-338,-364,0,-466, - 0,-78,0,0,0,0,0,0,0,0, + -286,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-299, + 0,0,-22,0,0,0,0,-304,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-48,0,0,0,-464,-365, - 0,-449,0,0,0,0,-347,0,0,0, - 0,0,0,0,-371,-456,-458,0,0,0, - 0,-373,-378,-484,-495,0,0,0,0,0, - -375,-381,0,0,-474,-382,0,0,0,0, - -468,0,-391,0,0,0,-79,0,0,0, + 0,0,0,0,0,-305,0,0,0,-78, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-241, - 0,0,0,0,0,-80,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-394, - 0,-402,-404,0,-324,0,0,0,0,0, + 0,0,0,-79,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -406,-388,0,0,0,-255,-379,-407,-408,0, - 0,-488,-482,-393,0,0,0,0,0,0, - 0,0,0,0,0,-499,-410,-483,-494,0, - -411,0,0,0,0,0,0,0,-507,0, - -416,0,0,0,-125,-15,0,0,0,0, - 0,-418,0,0,0,-423,0,0,0,0, - 0,0,0,-510,0,-392,-508,-513,0,0, - 0,0,0,0,0,-515,0,0,-130,0, - 0,0,-425,0,0,0,0,0,0,0, - 0,0,0,-518,0,0,0,0,0,-427, - 0,0,0,-104,-428,0,-429,0,0,0, - -431,0,-433,0,0,0,0,0,0,0, - 0,0,0,0,-409,0,-434,0,0,-439, - -397,0,0,0,0,0,-444,0,0,0, - 0,0,-183,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-453,-460, - -467,-486,0,0,-500,-435,-505,0,0,0, + 0,0,0,0,0,0,0,-80,0,0, + 0,0,-125,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-324,0,0,0,0,-475,0,0,0, + 0,0,0,0,-389,-485,-73,-315,-494,0, + 0,0,-489,-239,-48,0,0,0,0,0, + -496,-497,-326,-499,-384,0,-336,-338,0,0, + -500,-364,-365,-503,0,0,0,-371,-373,0, + -183,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-448,-256,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-135,0,0,0,0,0,0,0, - 0,-450,0,0,0,0,0,0,0,0, - 0,0,0,0,-45,0,-311,0,0,0, + -375,0,-381,0,0,0,0,0,0,0, + 0,0,0,0,0,-382,0,0,0,0, + 0,0,0,0,-23,0,0,0,0,-391, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-46,0,0,0,0,0, + 0,0,0,0,0,0,0,-24,0,0, + 0,0,-517,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -25,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-26,0,0,0,0,-394,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-476,0,0,-291,0,0,0,0, + 0,0,0,0,0,0,0,-402,0,-27, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-23,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-28,0,0,0,0,-404,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-61,0,0,0,0, + -406,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-74,0, + 0,0,0,-407,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-485,0,0,0,0,0,-43,0,0, - 0,0,0,0,0,0,-334,-194,0,0, + 0,-75,0,0,0,0,-509,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-126,0,0,0,0,-408, + 0,-410,-418,-423,-425,-508,-427,0,0,-428, + -429,0,-511,-514,-280,-142,0,0,0,0, + 0,-198,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-487,0,0,0,0,0,0,0, + 0,0,0,0,-72,0,-466,0,0,0, + -379,0,0,-431,-516,0,0,-433,0,0, + 0,0,-434,0,-194,0,0,0,0,-435, + 0,-519,-440,0,0,0,-392,0,0,-445, + -454,0,0,0,-461,0,-468,-487,0,0, + 0,-367,0,0,0,-501,0,0,-506,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-387,-491,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-205, - 0,0,0,0,-47,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-512,0,0,0,0,0, + 0,0,0,0,0,0,-409,0,0,0, + -104,0,-67,0,-46,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-199,0,0,0,0, + 0,0,-482,0,0,0,0,0,0,0, + 0,0,0,-255,0,0,0,-436,0,0, + 0,0,0,0,0,0,-297,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-517,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-215,0,0,0,0,-389,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-520,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-489,0,0, + 0,0,0,0,0,-444,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-449,0,0, + 0,0,0,-265,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-451,-256,-217,0,0,0,0, + 0,0,0,0,0,0,-47,-316,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-24,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-25,0,0, + -477,0,0,0,0,0,0,0,0,0, + 0,0,0,-311,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-26, + 0,0,-248,0,0,0,0,0,-218,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-486, + 0,0,0,0,0,-437,0,0,0,0, + 0,0,0,-347,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-27,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-28,0,0,0,0,0,0, + -488,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-205,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-61,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-74,0,0, + 0,-492,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-75, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-126,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-356,0,0,0,0, - 0,0,0,0,0,0,0,0,-198,0, + 0,0,-513,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -215,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -443,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-506,-217,0,-398,0,0, + 0,0,0,-518,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-314,0,0,0,0,0, - 0,0,0,0,0,0,0,-218,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-521,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-387, + 0,-378,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-20,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-348,0,0,0,0,0, 0,0,-355,0,0,0,0,0,0,0, - 0,0,0,0,-514,-436,0,0,0,0, - 0,0,0,0,0,0,-473,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-390,-474,0,0,0,0, + 0,0,0,0,0,0,0,0,-303,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-490,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-464,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-320,0,0,0,0, - 0,0,0,0,0,0,0,-303,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-463,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-265,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-226, - 0,0,0,0,0,0,0,0,-142,0, + 0,0,0,-332,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-172, + 0,0,0,0,-356,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-195,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-188,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-172,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -393,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-226,0,-199,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -188,0,0,0,0,0,0,0,0,0, + 0,-266,0,0,0,0,0,0,0,0, 0,0,-193,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-398, + 0,0,0,0,0,0,0,0,0,0, 0,0,0,-289,0,0,0,0,0,0, + 0,0,0,0,-350,0,0,-399,0,0, + 0,0,0,0,0,-307,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -307,0,0,0,0,0,0,0,0,-329, 0,0,0,0,0,0,0,0,0,0, + -329,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-335,0,0,0, - 0,0,0,0,0,0,-461,0,0,0, - 0,0,0,0,0,0,0,-372,0,0, - 0,0,0,-374,0,0,0,0,0,0, + 0,-335,0,0,0,0,0,0,0,0, + 0,-219,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-459,0,0,0,0,0, - -478,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-372,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-213,0,0,0,0,0,0, + 0,0,0,0,0,-374,0,0,0,0, + 0,0,0,0,0,-220,0,0,0,-447, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-260,0, - 0,0,0,-323,0,0,0,0,0,-219, - -438,0,0,0,0,-345,0,0,0,0, - 0,-220,0,0,0,0,0,-67,0,0, - -399,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-460,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-479, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-437,0,0,0,0,0,0, + 0,0,0,0,-204,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-446,0, - 0,0,0,0,-440,0,0,0,0,0, - 0,0,0,0,0,0,-279,0,0,0, - 0,0,0,0,0,0,0,0,0,-490, + 0,0,-260,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-206, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-241,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-314,0,0,0,0,0,0,-320, + 0,0,0,0,0,0,0,0,-345,0, + 0,0,0,-397,-439,0,-507,-438,0,0, + -441,0,0,-515,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-279,0,0,-491, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0 + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -543,534 +563,559 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 172,4,193,194,195,136,80,34,65,39, - 196,196,197,197,198,198,15,15,15,15, - 15,15,15,15,16,16,16,14,10,10, - 8,8,8,8,8,1,66,66,5,5, - 11,11,11,11,47,47,137,137,138,62, - 62,45,45,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17, - 17,17,17,139,139,139,18,18,18,18, - 18,18,18,18,18,18,18,18,18,19, - 19,176,173,173,174,174,177,141,141,178, - 178,175,175,142,140,140,20,20,21,22, - 22,22,24,24,24,24,25,25,25,26, - 26,26,27,27,27,27,27,29,29,29, - 30,30,32,32,33,33,35,35,36,36, - 37,37,41,41,40,40,40,40,40,40, - 40,40,40,40,40,40,40,38,38,28, - 143,143,103,103,106,106,98,199,199,71, - 71,71,71,71,71,71,71,71,72,72, - 72,73,73,56,56,179,179,74,74,74, - 117,117,75,75,75,75,76,76,76,76, - 76,77,81,81,81,81,81,81,81,51, - 51,51,51,51,108,108,109,109,50,23, - 23,23,23,23,46,46,93,93,93,93, - 93,150,150,145,145,145,145,145,146,146, + 173,5,137,81,81,35,35,66,66,40, + 40,194,194,195,195,196,196,1,1,16, + 16,16,16,16,16,16,16,17,17,17, + 15,11,11,9,9,9,9,9,2,67, + 67,6,6,12,12,12,12,48,48,138, + 138,139,63,63,46,46,18,18,18,18, + 18,18,18,18,18,18,18,18,18,18, + 18,18,18,18,18,18,140,140,140,19, + 19,19,19,19,19,19,19,19,19,19, + 19,19,20,20,177,174,174,175,175,178, + 142,142,179,179,176,176,143,141,141,21, + 21,22,23,23,23,25,25,25,25,26, + 26,26,27,27,27,28,28,28,28,28, + 30,30,30,31,31,33,33,34,34,36, + 36,37,37,38,38,42,42,41,41,41, + 41,41,41,41,41,41,41,41,41,41, + 39,39,29,144,144,104,104,107,107,99, + 197,197,72,72,72,72,72,72,72,72, + 72,73,73,73,74,74,57,57,180,180, + 75,75,75,118,118,76,76,76,76,77, + 77,77,77,77,78,82,82,82,82,82, + 82,82,52,52,52,52,52,109,109,110, + 110,51,24,24,24,24,24,47,47,94, + 94,94,94,94,151,151,146,146,146,146, 146,147,147,147,148,148,148,149,149,149, - 94,94,94,94,94,95,95,95,87,12, - 13,13,13,13,13,13,13,13,13,13, - 13,82,82,82,121,121,121,121,121,119, - 119,119,88,120,120,152,152,151,151,123, - 123,124,43,43,42,86,86,89,89,91, - 92,90,44,53,48,153,153,54,52,85, - 85,154,154,144,144,125,125,79,79,155, - 155,63,63,63,58,58,57,64,64,69, - 69,55,55,55,96,96,105,104,104,61, - 61,59,59,60,60,49,107,107,107,99, - 99,99,100,101,101,101,102,102,110,110, - 110,112,112,111,111,200,200,97,97,181, - 181,181,181,181,127,67,67,157,180,180, - 128,128,128,128,182,182,31,31,118,129, - 129,129,129,201,201,113,113,122,122,122, - 159,160,160,160,160,160,160,160,160,160, - 185,185,183,183,184,184,161,161,161,161, - 162,186,115,114,114,187,187,163,163,131, - 131,130,130,130,202,202,9,188,188,189, - 164,156,156,165,165,166,167,167,6,6, - 7,169,169,169,169,169,169,169,169,169, - 169,169,169,169,169,169,169,169,169,169, - 169,169,169,169,169,169,169,169,169,169, - 169,169,169,169,169,169,169,169,169,169, - 169,169,169,68,70,70,170,170,132,132, - 133,133,133,133,133,133,2,3,171,171, - 168,168,134,134,134,83,84,78,158,158, - 116,116,190,190,190,135,135,126,126,191, - 191,172,172,1361,1838,1751,880,755,4530,31, - 1102,28,32,27,29,2656,259,26,24,53, - 1151,108,77,78,109,1179,905,1238,1195,1273, - 1246,3275,1355,1313,271,1361,1358,48,1373,1434, - 144,684,923,160,145,1623,2777,819,33,880, - 4563,4509,31,1102,28,32,60,29,1652,2979, - 3302,819,33,880,228,2863,31,1102,28,32, - 27,29,810,259,26,24,53,1151,108,77, - 78,109,1179,2840,2099,274,69,819,33,880, - 273,272,31,1102,40,32,231,226,227,3302, - 1838,1751,880,1478,2863,31,1102,28,32,27, - 29,810,259,26,24,53,1151,108,77,78, - 85,238,241,244,247,2771,1652,507,2973,880, - 34,564,2011,2890,819,33,880,491,4509,31, - 1102,28,32,59,29,1084,675,58,2808,2873, - 2882,3190,3445,4222,2273,819,33,880,2301,2863, - 31,1102,28,32,2786,29,810,259,26,24, - 53,1151,108,77,78,109,1179,345,1238,1195, - 1273,1246,2710,1355,1313,64,1361,1358,1551,1373, - 1434,144,2335,3543,512,145,2898,389,423,499, - 819,33,880,2682,3860,31,1102,28,32,27, - 29,492,1478,505,513,2273,819,33,880,2301, - 2863,31,1102,28,32,2786,29,810,259,26, - 24,53,1151,108,77,78,109,1179,345,1238, - 1195,1273,1246,335,1355,1313,25,1361,1358,905, - 1373,1434,144,2905,3778,512,145,3427,3174,3456, - 413,819,33,880,2682,3860,31,1102,28,32, - 62,29,63,2857,279,513,413,819,33,880, - 144,3860,31,1102,28,32,61,29,508,3487, - 1101,2610,819,33,880,2301,2863,31,1102,28, - 32,2786,29,810,259,26,24,53,1151,108, - 77,78,109,1179,345,1238,1195,1273,1246,3174, - 1355,1313,2777,1361,1358,2805,1373,1434,144,44, - 2933,512,145,2323,3507,69,819,33,880,1973, - 2682,31,1102,2202,32,1652,2322,2152,880,508, - 3488,513,2652,819,33,880,616,2863,31,1102, - 28,32,27,29,810,259,26,24,53,1151, - 108,77,78,109,1179,3500,1238,1195,1273,1246, - 1854,1355,1313,2930,1361,1358,2805,1373,1434,144, - 46,2933,380,145,2724,819,33,880,3128,2863, - 31,1102,28,32,27,29,810,259,26,24, - 53,1151,108,77,78,109,1179,383,1238,1195, - 1273,1246,3529,1355,1313,509,1361,1358,2066,1373, - 1434,144,2824,1478,380,145,3049,819,33,880, - 488,2863,31,1102,28,32,27,29,810,259, - 26,24,53,1151,108,77,78,109,1179,381, - 1238,1195,1273,1246,2831,1355,1313,72,1361,1358, - 48,1373,1434,144,745,1542,160,145,48,3032, - 384,564,966,3049,819,33,880,1478,2863,31, - 1102,28,32,27,29,810,259,26,24,53, - 1151,108,77,78,109,1179,1492,1238,1195,1273, - 1246,1686,1355,1313,519,1361,1358,3607,1373,1434, - 144,71,385,374,145,1094,1652,507,276,880, - 3049,819,33,880,3054,2863,31,1102,28,32, - 27,29,810,259,26,24,53,1151,108,77, - 78,109,1179,905,1238,1195,1273,1246,3942,1355, - 1313,454,1361,1358,2831,1373,1434,144,331,337, - 374,145,3522,377,585,1644,43,880,1047,675, - 42,1102,3049,819,33,880,441,2863,31,1102, - 28,32,27,29,810,259,26,24,53,1151, - 108,77,78,109,1179,95,1238,1195,1273,1246, - 373,1355,1313,3623,1361,1358,92,1373,1434,144, - 2876,3576,374,145,3582,1094,2988,819,33,880, - 3529,2863,31,1102,28,32,27,29,810,259, - 26,24,53,1151,108,77,78,109,1179,1465, - 1238,1195,1273,1246,2794,1355,1313,372,1361,1358, - 564,1373,1434,144,437,1749,380,145,336,337, - 1767,819,33,880,375,2863,31,1102,28,32, - 27,29,810,259,26,24,53,1151,108,77, - 78,109,1179,403,1238,1195,1273,1246,564,1355, - 1313,1478,1361,1358,2921,1373,1434,144,583,370, - 143,145,3049,819,33,880,3446,2863,31,1102, - 28,32,27,29,810,259,26,24,53,1151, - 108,77,78,109,1179,56,1238,1195,1273,1246, - 453,1355,1313,2607,1361,1358,1580,1373,1434,144, - 357,4611,161,145,378,3049,819,33,880,527, - 2863,31,1102,28,32,27,29,810,259,26, - 24,53,1151,108,77,78,109,1179,4249,1238, - 1195,1273,1246,232,1355,1313,2005,1361,1358,450, - 1373,1434,144,564,441,156,145,3049,819,33, - 880,1717,2863,31,1102,28,32,27,29,810, - 259,26,24,53,1151,108,77,78,109,1179, - 518,1238,1195,1273,1246,2225,1355,1313,220,1361, - 1358,404,1373,1434,144,2921,1478,155,145,3049, - 819,33,880,316,2863,31,1102,28,32,27, - 29,810,259,26,24,53,1151,108,77,78, - 109,1179,928,1238,1195,1273,1246,616,1355,1313, - 88,1361,1358,54,1373,1434,144,1781,1478,154, - 145,3049,819,33,880,3450,2863,31,1102,28, - 32,27,29,810,259,26,24,53,1151,108, - 77,78,109,1179,2820,1238,1195,1273,1246,426, - 1355,1313,55,1361,1358,905,1373,1434,144,2016, - 4620,153,145,3049,819,33,880,1420,2863,31, - 1102,28,32,27,29,810,259,26,24,53, - 1151,108,77,78,109,1179,675,1238,1195,1273, - 1246,518,1355,1313,354,1361,1358,48,1373,1434, - 144,994,1478,152,145,3049,819,33,880,2718, - 2863,31,1102,28,32,27,29,810,259,26, - 24,53,1151,108,77,78,109,1179,355,1238, - 1195,1273,1246,2442,1355,1313,91,1361,1358,48, - 1373,1434,144,4500,1478,151,145,3049,819,33, - 880,388,2863,31,1102,28,32,27,29,810, - 259,26,24,53,1151,108,77,78,109,1179, - 675,1238,1195,1273,1246,616,1355,1313,352,1361, - 1358,48,1373,1434,144,613,1478,150,145,3049, - 819,33,880,1101,2863,31,1102,28,32,27, - 29,810,259,26,24,53,1151,108,77,78, - 109,1179,675,1238,1195,1273,1246,1579,1355,1313, - 2298,1361,1358,1290,1373,1434,144,1709,1478,149, - 145,3049,819,33,880,283,2863,31,1102,28, - 32,27,29,810,259,26,24,53,1151,108, - 77,78,109,1179,3524,1238,1195,1273,1246,865, - 1355,1313,2439,1361,1358,48,1373,1434,144,2539, - 925,148,145,3049,819,33,880,284,2863,31, - 1102,28,32,27,29,810,259,26,24,53, - 1151,108,77,78,109,1179,905,1238,1195,1273, - 1246,4674,1355,1313,3521,1361,1358,48,1373,1434, - 144,1694,1402,147,145,3049,819,33,880,2840, - 2863,31,1102,28,32,27,29,810,259,26, - 24,53,1151,108,77,78,109,1179,2831,1238, - 1195,1273,1246,1162,1355,1313,564,1361,1358,48, - 1373,1434,144,3102,1478,146,145,3149,819,33, - 880,1425,2863,31,1102,28,32,27,29,810, - 259,26,24,53,1151,108,77,78,109,1179, - 905,1238,1195,1273,1246,4695,1355,1313,70,1361, - 1358,2700,1373,2938,166,3049,819,33,880,1094, - 2863,31,1102,28,32,27,29,810,259,26, - 24,53,1151,108,77,78,109,1179,3607,1238, - 1195,1273,1246,2270,1355,1313,329,1361,1358,3607, - 1373,1434,144,390,423,141,145,330,69,819, - 33,880,333,337,31,1102,2392,32,1498,2517, - 395,3188,819,33,880,1736,2863,31,1102,28, - 32,27,29,810,259,26,24,53,1151,108, - 77,78,109,1179,3207,1238,1195,1273,1246,2714, - 1355,1313,3110,1361,1358,521,1373,1434,144,656, - 1478,191,145,3302,819,33,880,1034,2863,31, - 1102,28,32,27,29,810,259,26,24,53, - 1151,108,77,78,109,1179,1098,1238,1195,1273, - 1246,910,1355,1313,69,1361,1358,1226,1373,2938, - 166,3302,819,33,880,2959,2863,31,1102,28, - 32,27,29,810,259,26,24,53,1151,108, - 77,78,109,1179,2472,1238,1195,1273,1246,588, - 1355,1313,3312,1361,1358,2840,1373,2938,166,2329, - 507,3126,880,2329,507,276,880,1652,281,1652, - 2062,387,880,1652,507,280,880,3302,819,33, - 880,290,2863,31,1102,28,32,27,29,810, - 259,26,24,53,1151,108,77,78,109,1179, - 34,1238,1195,1273,1246,3607,1355,1313,1433,1361, - 1358,841,1373,2938,166,3302,819,33,880,2687, - 2863,31,1102,28,32,27,29,810,259,26, - 24,53,1151,108,77,78,109,1179,861,1238, - 1195,1273,1246,2695,1355,1313,3607,1361,1358,2840, - 1373,2938,166,1652,507,278,880,1652,507,3230, - 880,377,3526,1652,2062,387,880,286,3039,392, - 423,3302,819,33,880,419,2863,31,1102,28, - 32,27,29,810,259,26,24,53,1151,108, - 77,78,109,1179,427,1238,1195,1273,1246,669, - 1355,1313,520,1361,1358,316,1373,2938,166,3341, - 819,33,880,418,2863,31,1102,28,32,27, - 29,810,259,26,24,53,1151,108,77,78, - 109,1179,3536,1238,1195,1273,1246,2701,1355,1313, - 3384,1361,1358,2608,1373,2938,166,2517,395,3448, - 760,447,48,1562,447,4668,1955,2708,4668,1478, - 2857,277,2867,391,423,3302,819,33,880,421, - 2863,31,1102,28,32,27,29,810,259,26, - 24,53,1151,108,77,78,109,1179,401,1238, - 1195,1273,1246,68,1355,1313,1445,1361,1358,2770, - 2593,327,3585,3302,819,33,880,3527,2863,31, - 1102,28,32,27,29,810,259,26,24,53, - 1151,108,77,78,109,1179,2053,1238,1195,1273, - 1246,1478,1355,1313,2709,1361,2531,3302,819,33, - 880,405,2863,31,1102,28,32,27,29,810, - 259,26,24,53,1151,108,77,78,109,1179, - 3316,1238,1195,1273,1246,67,1355,1313,328,2503, - 3302,819,33,880,1478,2863,31,1102,28,32, - 27,29,810,259,26,24,53,1151,108,77, - 78,109,1179,1445,1238,1195,1273,1246,2697,1355, - 2512,3380,2062,387,880,2713,3479,564,2677,3582, - 3582,2517,395,233,259,440,3295,3302,444,3295, - 3302,1418,3527,48,2822,3109,2049,966,3302,819, - 33,880,271,2863,31,1102,28,32,27,29, - 810,259,26,24,53,1151,108,77,78,109, - 1179,3429,1238,1195,1273,1246,2826,2429,3302,819, - 33,880,228,2863,31,1102,28,32,27,29, - 810,259,26,24,53,1151,108,77,78,109, - 1179,48,2137,274,2828,3043,184,99,273,272, - 945,294,3585,1751,231,226,227,3302,819,33, - 880,1992,2863,31,1102,28,32,27,29,810, - 259,26,24,53,1151,108,77,78,86,238, - 241,244,247,2771,3565,1652,2062,387,880,2332, - 2011,304,292,3426,293,356,326,48,90,48, - 104,1728,3132,3035,527,527,2808,2873,2882,3190, - 3445,4222,3302,819,33,880,446,2863,31,1102, - 28,32,27,29,810,259,26,24,53,1151, - 108,77,78,109,1179,3520,1238,1195,1273,2475, - 3302,819,33,880,3629,2863,31,1102,28,32, - 27,29,810,259,26,24,53,1151,108,77, - 78,109,1179,660,1238,1195,1273,2484,3302,819, - 33,880,1682,2863,31,1102,28,32,27,29, - 810,259,26,24,53,1151,108,77,78,109, - 1179,650,1238,1195,2305,3302,819,33,880,2180, - 2863,31,1102,28,32,27,29,810,259,26, - 24,53,1151,108,77,78,109,1179,519,1238, - 1195,2324,3302,819,33,880,3404,2863,31,1102, - 28,32,27,29,810,259,26,24,53,1151, - 108,77,78,109,1179,1687,1238,1195,2356,3302, - 819,33,880,1582,2863,31,1102,28,32,27, - 29,810,259,26,24,53,1151,108,77,78, - 109,1179,2902,1238,1195,2384,2003,819,33,880, - 3706,4584,31,1102,28,32,341,29,3302,819, - 33,880,616,2863,31,1102,28,32,27,29, - 810,259,26,24,53,1151,108,77,78,109, - 1179,3539,1238,2393,1580,1478,587,2063,1478,4611, - 1857,952,285,3039,966,1989,2062,387,880,945, - 294,1671,48,322,2199,324,3287,48,616,317, - 2132,3088,2720,3390,277,353,3153,564,157,58, - 1560,3105,57,48,1702,3138,271,2839,164,843, - 819,33,880,4754,4584,31,1102,28,32,341, - 29,292,3464,293,2697,346,1449,1415,351,3302, - 819,33,880,3133,2863,31,1102,28,32,27, - 29,810,259,26,24,53,1151,108,77,78, - 109,1179,3476,1238,2401,1478,2301,275,1995,2057, - 48,353,273,272,1160,48,322,2199,324,1154, - 48,2068,317,2132,2309,224,3412,100,353,1478, - 1478,897,2822,1613,880,905,4557,1686,2745,325, - 4701,346,1449,1415,351,1781,1480,48,3414,344, - 212,3220,209,202,210,211,213,367,346,1449, - 1415,351,51,103,2787,1212,1534,3551,2793,203, - 204,2301,3025,292,52,293,1660,425,875,588, - 235,259,1426,214,919,205,206,207,208,3543, - 224,295,296,297,298,675,1216,417,1357,2892, - 2093,3179,2138,2301,966,1502,966,675,48,4724, - 3703,2835,3531,3414,89,212,104,209,202,210, - 211,213,2616,1639,1733,387,880,48,157,228, - 157,1234,3567,832,203,204,2301,3025,531,3031, - 742,1692,1401,1356,1571,2301,4749,966,214,3585, - 205,206,207,208,51,224,295,296,297,298, - 301,236,226,227,224,292,52,293,1660,2705, - 820,162,309,2301,353,3703,2847,48,3414,675, - 212,4271,209,202,210,211,213,4479,181,406, - 2721,1812,2616,2315,228,966,499,3642,2226,203, - 204,2301,3025,228,346,1449,1415,351,1184,407, - 1356,3025,1534,214,966,205,206,207,208,157, - 224,295,296,297,298,96,240,226,227,3170, - 199,496,498,2088,1478,243,226,227,162,2325, - 3703,2919,2328,3414,300,212,1231,209,202,210, - 211,213,2076,819,33,880,3706,4584,31,1102, - 28,32,341,29,203,204,362,3025,445,3248, - 2316,3024,537,875,2062,387,880,943,214,1340, - 205,206,207,208,2960,3407,295,296,297,298, - 3585,2084,919,675,48,2831,3543,3543,2310,2882, - 408,411,1485,2180,271,3703,3033,3543,3620,322, - 2199,324,3606,1408,2714,317,2132,889,819,33, - 880,353,4647,31,1102,28,32,341,29,197, - 2827,522,1571,3232,33,880,3777,4647,31,1102, - 28,32,341,29,3585,48,3031,334,2831,2301, - 1478,346,1449,1415,351,3010,1094,335,299,523, - 273,272,2825,48,525,3417,2301,2742,345,87, - 3530,353,335,533,322,2199,324,67,2183,382, - 320,2132,966,196,3315,2616,2331,334,718,322, - 2199,324,224,3528,2682,317,2132,157,3531,2755, - 337,348,1449,1415,351,1887,157,2889,182,1094, - 1,2651,3585,919,533,2917,1323,212,3543,209, - 201,210,211,213,3534,171,285,3039,3057,2715, - 3585,3585,98,224,945,1733,387,880,157,3440, - 185,169,170,172,173,174,175,176,2889,182, - 1421,200,2760,337,1602,3105,2917,1478,212,361, - 209,201,210,211,213,51,171,48,334,198, - 218,1365,2274,3017,3019,183,292,52,293,48, - 2831,186,169,170,172,173,174,175,176,2707, - 2834,3762,2884,414,3247,935,819,33,880,3777, - 4647,31,1102,28,32,341,29,3549,2970,3042, - 3585,228,3302,819,33,880,2149,2863,31,1102, - 28,32,27,29,810,259,26,24,53,1151, - 108,77,78,109,2143,945,1733,387,880,1478, - 3546,1094,48,246,226,227,2807,2825,3150,3988, - 334,2301,322,2199,324,3604,48,48,317,2132, - 2872,2937,2934,2892,3669,48,51,2301,2992,882, - 2616,2938,3548,3803,1925,3585,3605,292,52,293, - 1660,1478,1813,2692,3034,337,2616,3302,819,33, - 880,3057,2863,31,1102,28,32,27,29,810, - 259,26,24,53,1151,108,77,78,109,2157, - 1989,2062,387,880,308,3844,3302,819,33,880, - 311,2863,31,1102,28,32,27,29,810,259, - 26,24,53,1151,108,77,78,109,2234,3171, - 2946,271,3596,3613,361,1642,819,33,880,3559, - 4647,31,1102,28,32,341,29,2770,3017,3019, - 499,3031,1652,2062,387,880,1356,3650,3032,3039, - 966,2301,3585,1478,241,819,33,880,3235,4584, - 31,1102,28,32,341,29,3585,3040,1478,1478, - 224,2562,75,428,162,497,498,273,272,3585, - 335,3043,322,2199,324,1674,2764,1819,318,2132, - 2301,4285,3627,3414,353,212,3636,209,202,210, - 211,213,2046,379,3585,307,3468,1478,1478,345, - 2301,319,3169,324,203,204,3585,3025,4385,1228, - 1733,387,880,3228,348,1449,1415,351,493,224, - 205,206,207,208,1478,1005,295,296,297,298, - 3639,3476,3926,303,2228,3673,228,3668,966,2655, - 51,3387,3414,3045,212,193,209,202,210,211, - 213,292,52,293,1660,173,2838,3640,3967,533, - 1431,2911,157,203,204,2301,3025,3675,249,226, - 227,2665,2585,945,1733,387,880,515,224,205, - 206,207,208,157,2616,295,296,297,298,3678, - 3517,3131,3676,2889,182,3679,259,3136,5276,2657, - 533,2917,5276,212,51,209,201,210,211,213, - 5276,171,5276,5276,5276,292,52,293,1660,224, - 2982,5276,5276,5276,157,5276,3530,169,170,172, - 173,174,175,176,2889,182,3658,1356,5276,5276, - 2301,966,2917,5276,212,450,209,201,210,211, - 213,5276,171,574,5276,5276,5276,2301,499,224, - 5276,5276,3733,5276,436,162,2301,178,169,170, - 172,173,174,175,176,48,345,1356,5276,2301, - 5276,966,3414,5276,212,224,209,202,210,211, - 213,5276,5276,496,498,48,5276,5276,345,2301, - 5276,5276,958,203,204,162,3025,5276,3414,5276, - 212,5276,209,202,210,211,213,310,345,205, - 206,207,208,5276,2682,295,296,297,298,203, - 204,3511,3025,3559,5276,1906,919,2301,5276,5276, - 2658,3543,5276,516,2682,205,206,207,208,5276, - 5276,295,296,297,298,1917,224,3302,819,33, - 880,5276,2863,31,1102,28,32,27,29,810, - 259,26,24,53,1151,108,77,78,84,3414, - 2769,212,5276,209,202,210,211,213,5276,5276, - 5276,334,345,5276,5276,5276,533,5276,1041,5276, - 203,204,533,3025,5276,5276,5276,919,945,1733, - 387,880,3543,5276,215,224,205,206,207,208, - 157,345,295,296,297,298,157,1697,5276,5276, - 2889,182,3385,431,5276,5276,1017,533,2917,51, - 212,5276,209,201,210,211,213,2682,171,5276, - 292,52,293,1660,5276,2160,224,5276,963,5276, - 5276,157,334,189,169,170,172,173,174,175, - 176,2889,182,1356,517,5276,5276,966,533,2917, - 5276,212,5276,209,201,210,211,213,5276,171, - 945,1733,387,880,5276,48,5276,224,5276,2301, - 5276,162,157,4236,3567,169,170,172,173,174, - 175,176,2889,182,5276,603,5276,5276,345,533, - 2917,51,212,5276,209,201,210,211,213,5276, - 171,5276,292,52,293,1660,48,820,224,5276, - 2301,5276,5276,157,2682,192,169,170,172,173, - 174,175,176,2889,182,2008,689,5276,5276,345, - 533,2917,5276,212,5276,209,201,210,211,213, - 5276,171,945,1733,387,880,2974,2957,5276,224, - 5276,2301,5276,5276,157,2682,188,169,170,172, - 173,174,175,176,2889,182,1576,775,5276,5276, - 345,533,2917,51,212,5276,209,201,210,211, - 213,526,171,5276,292,52,293,1660,1902,2683, - 224,5276,966,5276,5276,157,2682,195,169,170, - 172,173,174,175,176,2889,182,529,5276,5276, - 5276,5276,5276,2917,5276,212,157,209,201,210, - 211,213,5276,171,5276,5276,164,5276,5276,5276, - 5276,5276,5276,5276,5276,5276,5276,5276,194,169, - 170,172,173,174,175,176,3302,819,33,880, - 5276,2863,31,1102,28,32,27,29,810,259, - 26,24,53,1151,108,77,78,83,3302,819, - 33,880,5276,2863,31,1102,28,32,27,29, - 810,259,26,24,53,1151,108,77,78,82, - 3302,819,33,880,3439,2863,31,1102,28,32, - 27,29,810,259,26,24,53,1151,108,77, - 78,81,3302,819,33,880,5276,2863,31,1102, - 28,32,27,29,810,259,26,24,53,1151, - 108,77,78,80,3302,819,33,880,3070,2863, - 31,1102,28,32,27,29,810,259,26,24, - 53,1151,108,77,78,79,3089,819,33,880, - 5276,2863,31,1102,28,32,27,29,810,259, - 26,24,53,1151,108,77,78,106,3302,819, - 33,880,5276,2863,31,1102,28,32,27,29, - 810,259,26,24,53,1151,108,77,78,111, - 3302,819,33,880,5276,2863,31,1102,28,32, - 27,29,810,259,26,24,53,1151,108,77, - 78,110,3444,2062,387,880,5276,3479,5276,5276, - 5276,5276,5276,5276,234,259,889,819,33,880, - 5276,4647,31,1102,28,32,341,29,5276,3302, - 819,33,880,271,2863,31,1102,28,32,27, - 29,810,259,26,24,53,1151,108,77,78, - 107,1458,819,33,880,3777,4584,31,1102,28, - 32,341,29,228,5276,1947,2340,5276,48,966, - 966,335,2301,322,2199,324,5276,5276,5276,318, - 2132,5276,5276,5276,274,1989,2062,387,880,273, - 272,345,5276,157,157,232,226,227,2385,5276, - 5276,5276,966,164,1744,5276,5276,5276,322,2199, - 324,5276,5276,5276,317,2132,271,2682,5276,5276, - 239,242,245,248,2771,5276,157,5276,503,5276, - 1925,2011,3263,819,33,880,1880,2863,31,1102, - 28,32,27,29,810,259,26,24,53,1151, - 87,77,78,2011,3232,33,880,3777,4584,31, - 1102,28,32,341,29,2020,1169,73,5276,966, - 533,3468,273,272,5276,5276,311,327,819,33, - 880,3777,4584,31,1102,28,32,341,29,345, - 5276,5276,5276,157,157,3171,5276,5276,5276,5276, - 5276,5276,5276,164,190,3559,1989,2062,387,880, - 322,2199,324,5276,5276,4462,317,2132,155,819, - 33,880,3777,4584,31,1102,28,32,341,29, - 5276,5276,2651,5276,322,2199,324,271,5276,5276, - 317,2132,155,819,33,880,3777,4584,31,1102, - 28,32,341,29,5276,5276,1925,5276,5276,1438, - 819,33,880,3072,4584,31,1102,28,32,341, - 29,3494,5276,5276,5276,322,2199,324,5276,5276, - 1614,317,2132,3197,2301,4749,5276,5276,342,1654, - 1733,387,880,273,272,5276,5276,2745,402,322, - 2199,324,312,224,5276,317,2132,5276,5276,5276, - 1650,1733,387,880,415,3247,319,3169,324,5276, - 51,3562,5276,5276,5276,5276,4479,5276,406,5276, - 5276,292,52,293,1660,5276,1331,1654,1733,387, - 880,51,5276,1228,1733,387,880,1184,407,5276, - 3025,3013,292,52,293,1660,5276,1499,5276,5276, - 5276,5276,5276,5276,1228,1733,387,880,51,5276, - 5276,5276,2665,5276,51,5276,5276,5276,5276,292, - 52,293,1660,5276,49,292,52,293,1660,5276, - 49,1228,1733,387,880,51,5276,5276,5276,803, - 1654,1733,387,880,5276,1967,292,52,293,1660, - 3024,2566,5276,5276,2657,5276,5276,5276,5276,5276, - 5276,5276,51,5276,5276,5276,4426,1228,1733,387, - 880,51,5276,292,52,293,1660,2953,49,408, - 410,2301,292,52,293,1660,5276,49,1228,1733, - 387,880,5276,2063,1228,1733,387,880,51,5276, - 345,5276,1828,1476,5276,2881,5276,5276,5276,292, - 52,293,1660,5276,2612,3129,1733,387,880,51, - 5276,3134,1733,387,880,51,3304,5276,5276,4426, - 292,52,293,1660,5276,49,292,52,293,1660, - 5276,49,5276,5276,1993,5276,51,5276,2301,3543, - 2425,5276,51,5276,5276,5276,3402,292,52,293, - 1660,5276,49,292,52,293,1660,2616,49,945, - 1733,387,880,5276,1993,5276,5276,2390,2301,3543, - 2430,977,5276,2669,966,533,1989,2062,387,880, - 5276,5276,2475,5276,5276,5276,966,2616,1105,334, - 51,48,533,5276,224,2301,5276,5276,157,157, - 5276,292,52,293,1660,5276,1583,271,2159,164, - 157,345,5276,5276,345,5276,157,2917,5276,334, - 2231,2660,5276,5276,1233,5276,742,5276,533,5276, - 3042,361,5276,5276,5276,5276,5276,2682,5276,5276, - 2682,5276,5276,5276,1618,3017,3019,345,1366,48, - 5276,501,157,2301,5276,1297,5276,3428,74,533, - 3385,361,190,273,272,5276,5276,2520,5276,5276, - 5276,966,345,4462,1618,3017,3019,3250,345,5276, - 2565,5276,5276,157,966,5276,5276,5276,5276,5276, - 5276,5276,5276,190,5276,157,5276,5276,2682,5276, - 5276,5276,5276,5276,4462,2307,5276,5276,157,530, - 5276,5276,5276,5276,5276,5276,5276,5276,3467,5276, - 5276,5276,5276,5276,5276,5276,5276,5276,5276,5276, - 5276,5276,5276,5276,5276,5276,5276,5276,5276,5276, - 5276,3279,5276,5276,5276,5276,5276,5276,5276,5276, - 5276,5276,5276,5276,5276,5276,5276,5276,5276,5276, - 5276,5276,5276,5276,5276,5276,5276,5276,5276,5276, - 5276,5276,3321,5276,0,5311,39,0,158,532, - 0,507,30,0,448,1000,0,5311,38,0, - 2562,127,0,1,438,0,2038,39,0,452, - 1011,0,451,1190,0,507,41,0,1008,93, - 0,35,302,0,386,294,0,33,387,0, - 30,386,0,507,30,386,0,1969,39,0, - 1,556,0,1,5546,0,1,5545,0,1, - 5544,0,1,5543,0,1,5542,0,1,5541, - 0,1,5540,0,1,5539,0,1,5538,0, - 1,5537,0,1,5536,0,1,5311,39,0, - 1,1104,0,1702,39,0,39,2836,0,5506, - 237,0,5505,237,0,5616,237,0,5615,237, - 0,5533,237,0,5532,237,0,5531,237,0, - 5530,237,0,5529,237,0,5528,237,0,5527, - 237,0,5526,237,0,5546,237,0,5545,237, - 0,5544,237,0,5543,237,0,5542,237,0, - 5541,237,0,5540,237,0,5539,237,0,5538, - 237,0,5537,237,0,5536,237,0,2038,39, - 237,0,5314,237,0,35,282,258,0,507, - 386,0,1702,50,0,45,5312,0,45,37, - 0,2562,129,0,2562,128,0,2883,233,0, - 27,514,0,5608,439,0,1487,439,0,1, - 94,0,49,37,0,1,5314,0,1,39, - 0,1,5314,225,0,1,39,225,0,5311, - 37,0,5312,47,0,37,47,0,5311,36, - 0,5311,5,37,0,5285,404,0,1,4438, - 0,1,3446,0,1,1969,0,5608,97,0, - 1487,97,0,2672,321,0,1,5608,0,1, - 1487,0,3406,278,0,1,1839,0,1,2147, - 0,495,3466,0,1,225,0,1,225,3383, - 0,5285,225,0,158,177,0,294,3297,0, - 225,165,0,187,3885,0 + 150,150,150,95,95,95,95,95,96,96, + 96,88,13,14,14,14,14,14,14,14, + 14,14,14,14,83,83,83,122,122,122, + 122,122,120,120,120,89,121,121,153,153, + 152,152,124,124,125,44,44,43,87,87, + 90,90,92,93,91,45,54,49,154,154, + 55,53,86,86,155,155,145,145,126,126, + 80,80,156,156,64,64,64,59,59,58, + 65,65,70,70,56,56,56,97,97,106, + 105,105,62,62,60,60,61,61,50,108, + 108,108,100,100,100,101,102,102,102,103, + 103,111,111,111,113,113,112,112,198,198, + 98,98,182,182,182,182,182,128,68,68, + 158,181,181,129,129,129,129,183,183,32, + 32,119,130,130,130,130,114,114,123,123, + 123,160,161,161,161,161,161,161,161,161, + 161,186,186,184,184,185,185,162,162,162, + 162,163,187,116,115,115,188,188,164,164, + 132,132,131,131,131,199,199,10,189,189, + 190,165,157,157,166,166,167,168,168,7, + 7,8,170,170,170,170,170,170,170,170, + 170,170,170,170,170,170,170,170,170,170, + 170,170,170,170,170,170,170,170,170,170, + 170,170,170,170,170,170,170,170,170,170, + 170,170,170,170,69,71,71,171,171,133, + 133,134,134,134,134,134,134,3,4,172, + 172,169,169,135,135,135,84,85,79,159, + 159,117,117,191,191,191,136,136,127,127, + 192,192,173,173,1477,2300,2118,2115,1204,775, + 4582,34,1247,31,35,30,32,2775,262,29, + 27,56,1302,111,80,81,112,1375,2402,1465, + 1422,1594,1508,424,1680,1637,274,1732,1723,3425, + 1759,1766,147,1146,492,163,148,863,1888,38, + 1200,36,1204,1229,3746,34,1247,31,35,63, + 32,3534,38,1200,36,1204,231,3248,34,1247, + 31,35,30,32,1163,262,29,27,56,1302, + 111,80,81,112,1375,3230,2364,277,1603,2930, + 686,294,276,275,4653,686,38,3045,234,229, + 230,3493,38,1200,36,1204,1211,3248,34,1247, + 31,35,30,32,1163,262,29,27,56,1302, + 90,80,81,241,244,247,250,3156,493,2250, + 38,1200,36,1204,2231,3746,34,1247,31,35, + 62,32,686,38,508,3021,1204,3357,679,76, + 2369,3194,3203,3233,3383,3725,2451,38,1200,36, + 1204,2372,3248,34,1247,31,35,2920,32,1163, + 262,29,27,56,1302,111,80,81,112,1375, + 348,1465,1422,1594,1508,1498,1680,1637,67,1732, + 1723,58,1759,1766,147,3677,686,513,148,686, + 2990,2918,38,1200,36,1204,2914,4199,34,1247, + 31,35,30,32,289,3145,506,514,2451,38, + 1200,36,1204,2372,3248,34,1247,31,35,2920, + 32,1163,262,29,27,56,1302,111,80,81, + 112,1375,348,1465,1422,1594,1508,507,1680,1637, + 1523,1732,1723,58,1759,1766,147,1804,748,513, + 148,1606,1842,1579,38,1200,36,1204,2914,66, + 34,1247,43,35,1686,38,1200,36,1204,514, + 4199,34,1247,31,35,65,32,775,93,2504, + 107,509,3283,2980,38,1200,36,1204,2372,3248, + 34,1247,31,35,2920,32,1163,262,29,27, + 56,1302,111,80,81,112,1375,348,1465,1422, + 1594,1508,28,1680,1637,2912,1732,1723,2926,1759, + 1766,147,58,1813,513,148,3318,819,1686,38, + 1200,36,1204,2914,4199,34,1247,31,35,64, + 32,2851,2834,509,514,2790,38,1200,36,1204, + 442,3248,34,1247,31,35,30,32,1163,262, + 29,27,56,1302,111,80,81,112,1375,236, + 1465,1422,1594,1508,2372,1680,1637,2962,1732,1723, + 2926,1759,1766,147,334,340,383,148,3534,38, + 1200,36,1204,2694,3248,34,1247,31,35,30, + 32,1163,262,29,27,56,1302,111,80,81, + 89,386,3749,2863,38,1200,36,1204,510,3248, + 34,1247,31,35,30,32,1163,262,29,27, + 56,1302,111,80,81,112,1375,438,1465,1422, + 1594,1508,1520,1680,1637,3113,1732,1723,1902,1759, + 1766,147,451,360,383,148,1579,38,1200,36, + 1204,1849,528,34,1247,1418,35,365,1579,38, + 1200,36,1204,1811,387,34,1247,1461,35,384, + 3127,38,1200,36,1204,775,3248,34,1247,31, + 35,30,32,1163,262,29,27,56,1302,111, + 80,81,112,1375,1849,1465,1422,1594,1508,793, + 1680,1637,793,1732,1723,672,1759,1766,147,234, + 75,163,148,1721,38,1852,46,1204,3543,520, + 45,1247,686,38,1762,1719,1204,3127,38,1200, + 36,1204,388,3248,34,1247,31,35,30,32, + 1163,262,29,27,56,1302,111,80,81,112, + 1375,1837,1465,1422,1594,1508,424,1680,1637,3622, + 1732,1723,3795,1759,1766,147,392,424,377,148, + 3127,38,1200,36,1204,625,3248,34,1247,31, + 35,30,32,1163,262,29,27,56,1302,111, + 80,81,112,1375,583,1465,1422,1594,1508,424, + 1680,1637,1031,1732,1723,4281,1759,1766,147,393, + 424,377,148,771,679,3127,38,1200,36,1204, + 863,3248,34,1247,31,35,30,32,1163,262, + 29,27,56,1302,111,80,81,112,1375,58, + 1465,1422,1594,1508,4615,1680,1637,775,1732,1723, + 1920,1759,1766,147,2249,376,377,148,3065,38, + 1200,36,1204,1237,3248,34,1247,31,35,30, + 32,1163,262,29,27,56,1302,111,80,81, + 112,1375,74,1465,1422,1594,1508,424,1680,1637, + 863,1732,1723,4761,1759,1766,147,2856,375,383, + 148,455,3318,2936,38,1200,36,1204,3677,3248, + 34,1247,31,35,30,32,1163,262,29,27, + 56,1302,111,80,81,112,1375,2853,1465,1422, + 1594,1508,3424,1680,1637,1994,1732,1723,3169,1759, + 1766,147,3303,373,146,148,3220,3127,38,1200, + 36,1204,3107,3248,34,1247,31,35,30,32, + 1163,262,29,27,56,1302,111,80,81,112, + 1375,454,1465,1422,1594,1508,3184,1680,1637,95, + 1732,1723,404,1759,1766,147,402,381,164,148, + 3127,38,1200,36,1204,775,3248,34,1247,31, + 35,30,32,1163,262,29,27,56,1302,111, + 80,81,112,1375,3738,1465,1422,1594,1508,863, + 1680,1637,775,1732,1723,3108,1759,1766,147,359, + 59,159,148,3127,38,1200,36,1204,528,3248, + 34,1247,31,35,30,32,1163,262,29,27, + 56,1302,111,80,81,112,1375,91,1465,1422, + 1594,1508,863,1680,1637,3129,1732,1723,3316,1759, + 1766,147,412,442,158,148,3127,38,1200,36, + 1204,775,3248,34,1247,31,35,30,32,1163, + 262,29,27,56,1302,111,80,81,112,1375, + 3752,1465,1422,1594,1508,98,1680,1637,406,1732, + 1723,3316,1759,1766,147,158,58,157,148,3127, + 38,1200,36,1204,3621,3248,34,1247,31,35, + 30,32,1163,262,29,27,56,1302,111,80, + 81,112,1375,57,1465,1422,1594,1508,424,1680, + 1637,307,1732,1723,4836,1759,1766,147,3226,1891, + 156,148,3127,38,1200,36,1204,3726,3248,34, + 1247,31,35,30,32,1163,262,29,27,56, + 1302,111,80,81,112,1375,58,1465,1422,1594, + 1508,1001,1680,1637,357,1732,1723,2837,1759,1766, + 147,418,1044,155,148,3127,38,1200,36,1204, + 2839,3248,34,1247,31,35,30,32,1163,262, + 29,27,56,1302,111,80,81,112,1375,358, + 1465,1422,1594,1508,863,1680,1637,330,1732,1723, + 58,1759,1766,147,159,2800,154,148,3127,38, + 1200,36,1204,775,3248,34,1247,31,35,30, + 32,1163,262,29,27,56,1302,111,80,81, + 112,1375,58,1465,1422,1594,1508,1109,1680,1637, + 331,1732,1723,3316,1759,1766,147,2169,94,153, + 148,3127,38,1200,36,1204,775,3248,34,1247, + 31,35,30,32,1163,262,29,27,56,1302, + 111,80,81,112,1375,332,1465,1422,1594,1508, + 424,1680,1637,184,1732,1723,4869,1759,1766,147, + 1610,355,152,148,3127,38,1200,36,1204,3306, + 3248,34,1247,31,35,30,32,1163,262,29, + 27,56,1302,111,80,81,112,1375,58,1465, + 1422,1594,1508,4113,1680,1637,775,1732,1723,58, + 1759,1766,147,60,2988,151,148,3127,38,1200, + 36,1204,336,3248,34,1247,31,35,30,32, + 1163,262,29,27,56,1302,111,80,81,112, + 1375,677,1465,1422,1594,1508,793,1680,1637,1875, + 1732,1723,3311,1759,1766,147,1590,3090,150,148, + 3127,38,1200,36,1204,775,3248,34,1247,31, + 35,30,32,1163,262,29,27,56,1302,111, + 80,81,112,1375,58,1465,1422,1594,1508,3012, + 1680,1637,775,1732,1723,863,1759,1766,147,2926, + 2256,149,148,3024,38,1200,36,1204,775,3248, + 34,1247,31,35,30,32,1163,262,29,27, + 56,1302,111,80,81,112,1375,73,1465,1422, + 1594,1508,1543,1680,1637,3178,1732,1723,3451,1759, + 2993,169,2858,72,3127,38,1200,36,1204,1144, + 3248,34,1247,31,35,30,32,1163,262,29, + 27,56,1302,111,80,81,112,1375,58,1465, + 1422,1594,1508,3927,1680,1637,102,1732,1723,2173, + 1759,1766,147,863,333,144,148,3318,337,686, + 38,2345,390,1204,2174,38,396,3451,38,1200, + 36,1204,1584,3248,34,1247,31,35,30,32, + 1163,262,29,27,56,1302,111,80,81,112, + 1375,37,1465,1422,1594,1508,424,1680,1637,2743, + 1732,1723,4890,1759,1766,147,1520,775,194,148, + 3534,38,1200,36,1204,391,3248,34,1247,31, + 35,30,32,1163,262,29,27,56,1302,111, + 80,81,112,1375,103,1465,1422,1594,1508,1543, + 1680,1637,71,1732,1723,3451,1759,2993,169,3534, + 38,1200,36,1204,3357,3248,34,1247,31,35, + 30,32,1163,262,29,27,56,1302,111,80, + 81,112,1375,996,1465,1422,1594,1508,3493,1680, + 1637,3191,1732,1723,329,1759,2993,169,686,38, + 508,279,1204,528,1209,337,686,38,2345,390, + 1204,686,38,284,3534,38,1200,36,1204,293, + 3248,34,1247,31,35,30,32,1163,262,29, + 27,56,1302,111,80,81,112,1375,428,1465, + 1422,1594,1508,1543,1680,1637,3005,1732,1723,3451, + 1759,2993,169,3534,38,1200,36,1204,1893,3248, + 34,1247,31,35,30,32,1163,262,29,27, + 56,1302,111,80,81,112,1375,58,1465,1422, + 1594,1508,1020,1680,1637,1542,1732,1723,1660,1759, + 2993,169,1745,38,508,3207,1204,3316,1274,337, + 686,38,2345,390,1204,92,1603,107,3534,38, + 1200,36,1204,420,3248,34,1247,31,35,30, + 32,1163,262,29,27,56,1302,111,80,81, + 112,1375,447,1465,1422,1594,1508,200,1680,1637, + 3402,1732,1723,1339,1759,2993,169,3575,38,1200, + 36,1204,419,3248,34,1247,31,35,30,32, + 1163,262,29,27,56,1302,111,80,81,112, + 1375,3367,1465,1422,1594,1508,3435,1680,1637,1404, + 1732,1723,1789,1759,2993,169,1745,38,508,279, + 1204,70,38,448,598,38,448,4815,686,3810, + 4815,938,3534,38,1200,36,1204,422,3248,34, + 1247,31,35,30,32,1163,262,29,27,56, + 1302,111,80,81,112,1375,58,1465,1422,1594, + 1508,4038,1680,1637,3217,1732,1723,187,2772,2173, + 4726,3534,38,1200,36,1204,3800,3248,34,1247, + 31,35,30,32,1163,262,29,27,56,1302, + 111,80,81,112,1375,775,1465,1422,1594,1508, + 969,1680,1637,775,1732,2756,3534,38,1200,36, + 1204,2173,3248,34,1247,31,35,30,32,1163, + 262,29,27,56,1302,111,80,81,112,1375, + 70,1465,1422,1594,1508,286,1680,1637,2739,2712, + 3534,38,1200,36,1204,3117,3248,34,1247,31, + 35,30,32,1163,262,29,27,56,1302,111, + 80,81,112,1375,246,1465,1422,1594,1508,1544, + 1680,2731,3616,2300,2345,390,1204,287,3223,3627, + 38,280,238,262,334,236,262,441,3448,3449, + 445,3448,3449,2195,3740,3741,1013,775,3119,3534, + 38,1200,36,1204,274,3248,34,1247,31,35, + 30,32,1163,262,29,27,56,1302,111,80, + 81,112,1375,3246,1465,1422,1594,1508,426,2606, + 3691,231,61,1,231,775,3737,3202,534,686, + 38,2345,390,1204,775,3234,2767,686,38,508, + 283,1204,3326,58,58,277,601,227,2372,2372, + 276,275,160,239,229,230,234,229,230,58, + 60,429,1633,185,1020,862,514,348,348,328, + 3051,725,215,1469,212,204,213,214,216,3316, + 174,241,244,247,250,3156,58,793,3240,186, + 1839,4154,2231,2914,2914,189,172,173,175,176, + 177,178,179,775,2128,2173,625,1026,2369,3194, + 3203,3233,3383,3725,3534,38,1200,36,1204,199, + 3248,34,1247,31,35,30,32,1163,262,29, + 27,56,1302,111,80,81,112,1375,106,1465, + 1422,1594,2643,3534,38,1200,36,1204,2402,3248, + 34,1247,31,35,30,32,1163,262,29,27, + 56,1302,111,80,81,112,1375,1237,1465,1422, + 1594,2662,3534,38,1200,36,1204,2248,3248,34, + 1247,31,35,30,32,1163,262,29,27,56, + 1302,111,80,81,112,1375,1627,1465,1422,2456, + 3534,38,1200,36,1204,522,3248,34,1247,31, + 35,30,32,1163,262,29,27,56,1302,111, + 80,81,112,1375,2788,1465,1422,2475,3534,38, + 1200,36,1204,3243,3248,34,1247,31,35,30, + 32,1163,262,29,27,56,1302,111,80,81, + 112,1375,3245,1465,1422,2483,3534,38,1200,36, + 1204,3284,3248,34,1247,31,35,30,32,1163, + 262,29,27,56,1302,111,80,81,112,1375, + 3299,1465,1422,2500,1618,38,1200,36,1204,2073, + 4704,34,1247,31,35,344,32,3534,38,1200, + 36,1204,1471,3248,34,1247,31,35,30,32, + 1163,262,29,27,56,1302,111,80,81,112, + 1375,2835,1465,2517,686,38,508,281,1204,58, + 58,324,2832,2495,4395,4715,2372,2372,3451,3451, + 58,519,325,1560,327,1258,852,793,320,1517, + 3321,38,282,1734,356,348,2694,686,38,508, + 3433,1204,2401,775,3281,2168,2928,2187,38,1200, + 36,1204,2931,4704,34,1247,31,35,344,32, + 2173,3416,3122,952,349,1509,1474,354,337,338, + 1054,294,3221,3534,38,1200,36,1204,2845,3248, + 34,1247,31,35,30,32,1163,262,29,27, + 56,1302,111,80,81,112,1375,2447,1465,2587, + 686,2021,297,58,2402,325,1560,327,866,3005, + 364,320,1517,1983,58,58,775,356,1020,1252, + 4425,2504,319,1775,3098,3125,304,2444,2845,38, + 1200,36,1204,2073,4704,34,1247,31,35,344, + 32,3332,160,295,3441,296,370,349,1509,1474, + 354,446,3034,202,3340,1646,3534,38,1200,36, + 1204,380,3248,34,1247,31,35,30,32,1163, + 262,29,27,56,1302,111,80,81,112,1375, + 58,2384,2498,2851,3181,4994,325,1560,327,1979, + 963,3217,320,1517,288,3145,604,4726,356,1788, + 2355,2832,3238,3321,38,280,2372,3451,523,1736, + 38,3437,36,1204,3094,4782,34,1247,31,35, + 344,32,2269,3161,1628,2694,339,340,349,1509, + 1474,354,3369,686,2021,297,524,1675,38,1200, + 36,1204,3094,4782,34,1247,31,35,344,32, + 1519,3252,3223,3646,356,2742,3753,337,1849,58, + 3316,2372,378,3111,2634,337,3169,325,1560,327, + 2734,2372,3448,320,1517,2178,295,3743,296,2788, + 227,3451,1054,294,349,1509,1474,354,526,1364, + 348,3341,347,337,775,325,1560,327,3402,364, + 203,320,1517,4601,3316,215,4514,212,205,213, + 214,216,1775,3098,3125,3347,787,2671,4905,3216, + 356,58,3316,1013,206,207,3976,3135,2263,3407, + 1152,338,3779,1020,4514,534,3763,2372,217,4905, + 208,209,210,211,201,356,298,299,300,301, + 349,1509,1474,354,348,427,227,160,1646,160, + 1849,3229,221,314,1543,4081,2790,532,67,1197, + 3451,415,3438,395,424,351,1509,1474,354,4601, + 2914,215,3052,212,205,213,214,216,58,47, + 2982,1025,3811,1897,1296,692,519,3852,3368,2402, + 206,207,2372,3135,2310,3661,288,3145,335,1020, + 49,2982,775,1020,217,3123,208,209,210,211, + 337,227,298,299,300,301,1844,2021,2929,1547, + 1204,3619,4631,160,2311,3161,451,165,3066,3724, + 2600,4081,3419,817,4601,3998,215,4140,212,205, + 213,214,216,520,1871,437,380,775,54,2372, + 1941,4535,3899,775,940,206,207,2372,3135,295, + 55,296,1859,953,1072,394,424,3327,348,217, + 58,208,209,210,211,2986,227,298,299,300, + 301,3623,4181,776,2021,2034,390,1204,4222,775, + 58,573,3316,1662,1277,3009,4081,3432,775,4601, + 775,215,1345,212,205,213,214,216,3199,2021, + 2034,390,1204,58,58,54,231,58,3062,3127, + 206,207,3192,3135,2558,231,295,55,296,1859, + 1536,2954,4453,3444,217,382,208,209,210,211, + 54,3624,298,299,300,301,4555,2989,243,229, + 230,295,55,296,1859,231,982,246,229,230, + 3740,4081,3434,3534,38,2118,2115,1204,3440,3248, + 34,1247,31,35,30,32,1163,262,29,27, + 56,1302,111,80,81,88,3653,249,229,230, + 3534,38,1200,36,1204,37,3248,34,1247,31, + 35,30,32,1163,262,29,27,56,1302,111, + 80,81,112,2398,3534,38,1200,36,1204,1622, + 3248,34,1247,31,35,30,32,1163,262,29, + 27,56,1302,111,80,81,112,2437,3534,38, + 1200,36,1204,1900,3248,34,1247,31,35,30, + 32,1163,262,29,27,56,1302,111,80,81, + 112,2445,1961,38,1200,36,1204,3316,4782,34, + 1247,31,35,344,32,3334,3642,2357,2193,2173, + 2372,2858,1020,3316,1543,686,2021,2034,390,1204, + 3451,58,2173,3442,2173,177,885,956,3727,348, + 534,3316,2860,3747,2402,231,160,311,3767,3444, + 527,686,2021,2034,390,1204,1412,54,338,227, + 325,1560,327,4997,160,2914,321,1517,295,55, + 296,1859,356,988,1633,185,530,252,229,230, + 3745,310,3051,54,215,312,212,204,213,214, + 216,3644,174,3768,295,55,296,1859,303,3049, + 302,521,351,1509,1474,354,3769,188,172,173, + 175,176,177,178,179,3534,38,1200,36,1204, + 986,3248,34,1247,31,35,30,32,1163,262, + 29,27,56,1302,111,80,81,87,3534,38, + 1200,36,1204,3650,3248,34,1247,31,35,30, + 32,1163,262,29,27,56,1302,111,80,81, + 86,3534,38,1200,36,1204,99,3248,34,1247, + 31,35,30,32,1163,262,29,27,56,1302, + 111,80,81,85,3534,38,1200,36,1204,3645, + 3248,34,1247,31,35,30,32,1163,262,29, + 27,56,1302,111,80,81,84,2983,3770,385, + 3534,38,1200,36,1204,2433,3248,34,1247,31, + 35,30,32,1163,262,29,27,56,1302,111, + 80,81,83,3534,38,1200,36,1204,3776,3248, + 34,1247,31,35,30,32,1163,262,29,27, + 56,1302,111,80,81,82,3397,38,1200,36, + 1204,3649,3248,34,1247,31,35,30,32,1163, + 262,29,27,56,1302,111,80,81,109,3534, + 38,1200,36,1204,3793,3248,34,1247,31,35, + 30,32,1163,262,29,27,56,1302,111,80, + 81,114,3534,38,1200,36,1204,775,3248,34, + 1247,31,35,30,32,1163,262,29,27,56, + 1302,111,80,81,113,3681,2300,2345,390,1204, + 3804,3223,3808,3317,3773,3205,3316,2647,237,262, + 3777,2694,3785,3316,775,2908,864,2021,2034,390, + 1204,3451,3534,38,1200,36,1204,274,3248,34, + 1247,31,35,30,32,1163,262,29,27,56, + 1302,111,80,81,110,335,5004,2030,54,4304, + 1020,3925,1020,306,3587,3316,2372,231,3812,295, + 55,296,1859,89,985,686,2021,2034,390,1204, + 3795,3745,775,3802,165,227,160,3707,277,4940, + 3803,3816,2372,276,275,1667,167,3863,3813,235, + 229,230,2174,38,396,196,3817,54,4601,1669, + 215,227,212,205,213,214,216,4345,295,55, + 296,1859,5524,2933,242,245,248,251,3156,206, + 207,5524,3135,5524,4601,2231,215,5524,212,205, + 213,214,216,494,5524,208,209,210,211,5524, + 5524,298,299,300,301,206,207,265,3135,1431, + 5524,2404,534,1217,3423,58,1020,101,534,516, + 2372,208,209,210,211,5524,5524,298,299,300, + 301,227,5524,2174,38,396,160,348,5524,348, + 160,5524,160,5524,335,5524,1633,185,353,1020, + 2763,5524,817,534,3051,5524,215,2504,212,204, + 213,214,216,2914,174,2914,3506,5524,5524,5524, + 5524,5524,227,165,1372,5524,2209,160,5524,3803, + 172,173,175,176,177,178,179,1633,185,5524, + 5524,5524,5524,5524,5524,3051,5524,215,5524,212, + 204,213,214,216,5524,174,3185,38,1200,36, + 1204,3094,4704,34,1247,31,35,344,32,2851, + 181,172,173,175,176,177,178,179,3972,5524, + 5524,5524,5524,2372,1571,38,1200,36,1204,2939, + 4704,34,1247,31,35,344,32,3826,2397,5524, + 5524,5524,227,5524,3998,335,2508,5524,5524,2372, + 1020,1020,336,340,325,1560,327,58,2504,5524, + 320,1517,2372,5524,403,4601,5524,215,227,212, + 205,213,214,216,165,160,2671,5524,5524,5524, + 5524,348,322,3308,327,1802,206,207,5524,3135, + 5524,4601,5524,215,5524,212,205,213,214,216, + 313,3826,208,209,210,211,2372,2914,298,299, + 300,301,206,207,335,3135,5524,5524,2212,1020, + 2851,5524,314,5524,5524,227,517,5524,208,209, + 210,211,5524,1534,298,299,300,301,2372,2555, + 5524,3052,5524,165,1020,5524,5524,5524,4601,2435, + 215,3811,212,205,213,214,216,2694,5524,5524, + 441,5524,5524,2833,340,534,1282,5524,160,206, + 207,534,3135,5524,1534,5524,5524,5524,1818,2372, + 2476,5524,5524,218,227,208,209,210,211,160, + 348,298,299,300,301,160,5524,5524,2694,1633, + 185,529,5524,5524,5524,193,534,3051,5524,215, + 5524,212,204,213,214,216,4469,174,2513,686, + 2021,2034,390,1204,5524,227,5524,5524,5524,5524, + 160,364,192,172,173,175,176,177,178,179, + 1633,185,617,5524,2303,3098,3125,534,3051,5524, + 215,54,212,204,213,214,216,5524,174,5524, + 5524,5524,295,55,296,1859,227,982,5524,5524, + 5524,160,364,3829,172,173,175,176,177,178, + 179,1633,185,705,3142,2773,3098,3125,534,3051, + 5524,215,5524,212,204,213,214,216,5524,174, + 5524,686,2021,2034,390,1204,5524,227,5524,5524, + 5524,5524,160,5524,195,172,173,175,176,177, + 178,179,1633,185,793,5524,5524,5524,5524,534, + 3051,5524,215,54,212,204,213,214,216,5524, + 174,5524,5524,5524,295,55,296,1859,227,2379, + 5524,5524,5524,160,5524,191,172,173,175,176, + 177,178,179,1633,185,881,5524,5524,5524,5524, + 534,3051,5524,215,5524,212,204,213,214,216, + 335,174,3762,5524,5524,1020,5524,2372,5524,227, + 5524,5524,5524,5524,160,5524,198,172,173,175, + 176,177,178,179,1633,185,2694,5524,5524,165, + 5524,5524,3051,5524,215,2504,212,204,213,214, + 216,5524,174,1814,38,3437,36,1204,3094,4704, + 34,1247,31,35,344,32,5524,197,172,173, + 175,176,177,178,179,2504,1970,38,1200,36, + 1204,3094,4704,34,1247,31,35,344,32,1852, + 38,1200,36,1204,3094,4704,34,1247,31,35, + 344,32,5524,2077,5524,5524,5524,2851,1020,5524, + 500,325,1560,327,2846,5524,5524,320,1517,1852, + 38,1200,36,1204,3094,4704,34,1247,31,35, + 344,32,160,1364,325,1560,327,2851,5524,5524, + 320,1517,167,5524,5524,498,499,325,1560,327, + 2844,340,5524,320,1517,5524,2671,5524,5524,5524, + 5524,5524,5524,5524,1045,38,1200,36,1204,2444, + 4782,34,1247,31,35,344,32,325,1560,327, + 3118,340,5524,320,1517,1045,38,1200,36,1204, + 5524,4782,34,1247,31,35,344,32,5524,3818, + 5524,5524,315,5524,5524,686,2300,2345,390,1204, + 3736,5524,5524,5524,5524,416,3438,5524,5524,5524, + 338,5524,325,1560,327,5524,5524,5524,323,1517, + 5524,5524,3206,2021,2034,390,1204,274,5524,5524, + 5524,338,5524,325,1560,327,5524,5524,5524,321, + 1517,1935,38,1200,36,1204,2967,4704,34,1247, + 31,35,344,32,54,1778,5524,58,5524,5524, + 2372,4923,2372,5524,5524,295,55,296,1859,5524, + 1689,864,2021,2034,390,1204,5524,5524,278,227, + 5524,348,1861,276,275,4555,5524,2372,4923,5524, + 5524,5524,5524,776,2021,2034,390,1204,5524,322, + 3308,327,4004,54,407,5524,227,2914,5524,5524, + 5524,5524,5524,5524,295,55,296,1859,1716,52, + 5524,5524,5524,1292,408,54,3135,5524,5524,4004, + 58,407,5524,5524,2760,2372,295,55,296,1859, + 5524,52,5524,5524,776,2021,2034,390,1204,5524, + 1292,408,5524,3135,348,3762,2041,5524,58,5524, + 2372,5524,5524,2372,5524,5524,776,2021,2034,390, + 1204,5524,5524,5524,5524,5524,54,5524,5524,2694, + 2914,5524,348,5524,5524,5524,3128,295,55,296, + 1859,504,2430,5524,5524,5524,5524,2476,54,5524, + 5524,864,2021,2034,390,1204,5524,4980,2914,295, + 55,296,1859,3128,52,409,411,5524,5524,502, + 5524,5524,776,2021,2034,390,1204,5524,5524,2036, + 5524,5524,2602,54,5524,5524,5524,1020,5524,1889, + 5524,4642,409,412,295,55,296,1859,5524,52, + 5524,5524,5524,500,54,776,2021,2034,390,1204, + 5524,160,5524,5524,1008,295,55,296,1859,5524, + 2690,1947,5524,5524,5524,5524,776,2021,2034,390, + 1204,5524,5524,5524,5524,4980,2649,54,497,499, + 58,1020,5524,5524,5524,2372,5524,5524,295,55, + 296,1859,5524,52,5524,5524,5524,5524,54,2260, + 2021,2034,390,1204,348,160,5524,5524,2130,295, + 55,296,1859,5524,52,2295,3442,5524,5524,5524, + 2505,2021,2034,390,1204,5524,5524,5524,5524,2439, + 2914,54,5524,5524,5524,686,2021,2034,390,1204, + 5524,531,295,55,296,1859,5524,52,5524,5524, + 5524,5524,54,686,2021,2034,390,1204,5524,5524, + 5524,5524,2830,295,55,296,1859,54,52,5524, + 511,2300,2345,390,1204,5524,5524,5524,295,55, + 296,51,5524,2963,5524,54,686,2300,2345,390, + 1204,5524,5524,5524,5524,5524,295,55,296,1859, + 5524,1946,274,686,2300,2345,390,1204,5524,5524, + 686,2300,2345,390,1204,5524,5524,5524,274,686, + 2300,2345,390,1204,3805,1087,5524,2124,1347,2372, + 534,1412,1020,534,2200,274,534,5524,5524,1020, + 5524,5524,274,5524,5524,5524,5524,5524,2694,227, + 5524,274,348,3091,160,348,160,160,276,275, + 160,5524,5524,160,167,5524,167,193,5524,78, + 193,5524,3051,167,276,275,3777,2696,4469,5524, + 2743,4469,1020,5524,5524,1020,76,5524,5524,5524, + 5524,276,275,345,5524,5524,5524,5524,276,275, + 5524,5524,77,5524,5524,5524,160,276,275,160, + 5524,5524,5524,5524,5524,5524,1805,5524,5524,3707, + 5524,5524,500,5524,5524,5524,5524,5524,5524,5524, + 5524,5524,3232,5524,3744,5524,5524,5524,5524,5524, + 5524,3802,5524,5524,5524,5524,3187,5524,5524,3193, + 5524,5524,5524,5524,5524,5524,5524,497,499,5524, + 5524,5524,5524,5524,5524,5524,5524,5524,5524,5524, + 5524,5524,5524,5524,5524,5524,5524,5524,5524,5524, + 5524,5524,5524,5524,5524,5524,5524,5524,5524,5524, + 5524,5524,5524,5524,5524,3784,5524,0,5542,42, + 0,5541,42,0,161,533,0,508,33,0, + 449,783,0,5542,41,0,5541,41,0,2638, + 130,0,1,439,0,453,1170,0,452,1240, + 0,508,44,0,2107,96,0,38,305,0, + 389,297,0,36,390,0,33,389,0,508, + 33,389,0,1899,42,0,1,563,0,1, + 5797,0,1,5796,0,1,5795,0,1,5794, + 0,1,5793,0,1,5792,0,1,5791,0, + 1,5790,0,1,5789,0,1,5788,0,1, + 5787,0,1,5542,42,0,1,5541,42,0, + 1,1063,0,5757,240,0,5756,240,0,5867, + 240,0,5866,240,0,5784,240,0,5783,240, + 0,5782,240,0,5781,240,0,5780,240,0, + 5779,240,0,5778,240,0,5777,240,0,5797, + 240,0,5796,240,0,5795,240,0,5794,240, + 0,5793,240,0,5792,240,0,5791,240,0, + 5790,240,0,5789,240,0,5788,240,0,5787, + 240,0,5542,42,240,0,5541,42,240,0, + 5565,240,0,38,285,261,0,508,389,0, + 5542,53,0,5541,53,0,48,5563,0,48, + 40,0,2638,132,0,2638,131,0,3138,236, + 0,30,515,0,5859,440,0,862,440,0, + 1,97,0,52,40,0,1,5565,0,1, + 42,0,1,5565,228,0,1,42,228,0, + 228,414,0,5542,40,0,5541,40,0,5563, + 50,0,40,50,0,5542,39,0,5541,39, + 0,5542,2,40,0,5541,2,40,0,5534, + 405,0,5533,405,0,1,4439,0,1,2996, + 0,1,1899,0,228,413,0,5859,100,0, + 862,100,0,2496,324,0,1,5859,0,1, + 862,0,3914,281,0,1,1904,0,1,3822, + 0,5532,1,0,496,3807,0,1,228,0, + 1,228,3638,0,5534,228,0,5533,228,0, + 3793,228,0,161,180,0,297,3257,0,8, + 10,0,228,168,0,228,220,0,228,219, + 0,190,4263,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1084,388 +1129,415 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,0,48,49, - 50,51,52,53,54,55,56,0,58,2, - 60,61,62,63,64,65,0,67,0,1, - 4,71,4,73,6,75,76,77,78,79, - 80,81,82,83,84,85,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,0,48,49,50,51,52,53, - 54,55,56,0,58,2,60,61,62,63, - 64,65,0,67,0,1,2,3,4,73, - 6,75,76,77,78,79,80,81,82,83, - 84,85,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,0, - 48,49,50,51,52,53,54,55,56,0, - 58,0,60,61,62,63,64,65,7,67, - 0,1,2,3,4,73,6,75,76,77, - 78,79,80,81,82,83,84,85,0,1, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,0,58,0, + 60,61,62,63,64,65,0,67,68,0, + 1,2,72,4,74,0,76,77,78,79, + 80,81,0,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,0,48,49,50,51, - 52,53,54,55,56,0,58,98,60,61, - 62,63,64,65,0,67,0,1,2,3, - 4,73,6,75,76,77,78,79,80,81, - 82,83,84,85,0,1,2,3,4,5, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,55,56,70,58,0,60,61, + 62,63,64,65,0,67,68,0,0,100, + 72,95,74,6,76,77,78,79,80,81, + 0,83,84,85,86,87,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,55,56,0,58,0,60,61,62,63, + 64,65,9,67,68,0,88,89,91,92, + 74,6,76,77,78,79,80,81,0,83, + 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, - 46,0,48,49,50,51,52,53,54,55, + 46,47,48,49,50,51,52,53,54,55, 56,0,58,0,60,61,62,63,64,65, - 0,67,0,1,99,3,4,73,6,75, - 76,77,78,79,80,81,82,83,84,85, + 95,67,68,0,0,0,91,92,74,6, + 76,77,78,79,80,81,12,83,84,85, + 86,87,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,55,56,75, + 58,0,60,61,62,63,64,65,95,67, + 68,10,11,0,91,92,74,4,76,77, + 78,79,80,81,99,83,84,85,86,87, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,0,48,49, - 50,51,52,53,54,55,56,0,58,2, - 60,61,62,63,64,65,0,67,0,1, - 97,3,4,73,6,75,76,77,78,79, - 80,81,82,83,84,85,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,0,48,49,50,51,52,53, - 54,55,56,0,58,2,60,61,62,63, - 64,65,0,67,0,1,0,5,2,73, - 6,75,76,77,78,79,80,81,82,83, - 84,85,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,0, - 48,49,50,51,52,53,54,55,56,0, - 58,0,60,61,62,63,64,65,0,67, - 0,89,90,5,0,73,113,75,76,77, - 78,79,80,81,82,83,84,85,0,1, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,56,0,58,0, + 60,61,62,63,64,65,0,67,68,3, + 0,1,2,0,74,5,76,77,78,79, + 80,81,0,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,0,48,49,50,51, - 52,53,54,55,56,71,58,98,60,61, - 62,63,64,65,0,67,97,89,90,0, - 1,73,3,75,76,77,78,79,80,81, - 82,83,84,85,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 46,0,48,49,50,51,52,53,54,55, - 56,0,58,0,60,61,62,63,64,65, - 0,67,0,1,2,3,4,73,6,75, - 76,77,78,79,80,81,82,83,84,85, - 0,1,2,3,4,5,6,7,114,9, - 10,11,12,42,0,1,45,46,4,48, - 49,50,51,52,53,54,55,56,0,1, - 2,3,4,5,6,7,0,1,0,3, - 60,59,42,43,0,45,46,3,48,49, - 50,51,52,53,54,55,56,57,0,59, - 60,3,0,5,0,7,66,3,68,69, - 70,71,72,73,0,1,2,3,4,5, - 6,7,0,47,0,1,86,87,88,89, - 90,91,92,93,94,95,96,97,98,99, - 100,101,102,103,104,105,106,107,108,109, - 110,111,112,113,114,115,0,1,2,3, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,55,56,0,58,74,60,61, + 62,63,64,65,0,67,68,0,1,2, + 0,4,74,0,76,77,78,79,80,81, + 0,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, - 44,45,46,0,48,49,50,51,52,53, - 54,55,56,0,58,93,114,61,62,63, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,39, - 40,41,42,0,44,45,46,0,48,49, - 50,51,52,53,54,55,56,0,58,66, - 0,61,62,63,0,1,2,3,4,5, + 44,45,46,47,48,49,50,51,52,53, + 54,55,56,70,58,0,60,61,62,63, + 64,65,0,67,68,0,1,2,88,89, + 74,0,76,77,78,79,80,81,0,83, + 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,47,44,45, - 46,68,48,49,50,51,52,53,54,55, - 56,0,58,66,3,61,62,63,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,40,41, - 42,0,44,45,46,0,48,49,50,51, - 52,53,54,55,56,0,58,0,1,61, - 62,63,0,1,2,3,4,5,6,7, + 36,37,38,39,40,41,42,43,44,45, + 46,47,48,49,50,51,52,53,54,55, + 56,70,58,0,60,61,62,63,64,65, + 0,67,68,3,0,0,1,2,74,0, + 76,77,78,79,80,81,12,83,84,85, + 86,87,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,42,60,44,45,46,68, - 48,49,50,51,52,53,54,55,56,0, - 58,66,3,61,62,63,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,42,0, - 44,45,46,0,48,49,50,51,52,53, - 54,55,56,0,58,0,0,61,62,63, + 38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,55,56,75, + 58,0,60,61,62,63,64,65,0,67, + 68,0,0,0,1,2,74,0,76,77, + 78,79,80,81,12,83,84,85,86,87, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, - 0,0,42,47,3,45,46,68,48,49, + 40,41,42,43,44,45,46,47,48,49, 50,51,52,53,54,55,56,0,58,0, - 0,61,62,63,0,0,2,72,3,5, - 0,7,0,9,10,11,12,0,1,2, - 3,4,42,6,43,45,46,0,48,49, - 50,51,52,53,54,55,56,0,1,2, - 3,4,42,6,0,45,46,43,48,49, - 50,51,52,53,54,55,56,0,59,0, - 43,57,57,59,0,1,2,3,71,5, - 66,7,68,69,70,71,72,0,66,2, - 43,0,5,2,7,75,9,10,11,12, - 86,87,88,89,90,91,92,93,94,95, - 96,97,98,99,100,101,102,103,104,105, - 106,107,108,109,110,111,112,113,114,115, - 43,0,1,59,3,66,5,68,7,72, - 0,1,88,3,57,5,59,7,94,0, - 59,0,1,66,3,68,69,70,71,72, - 0,1,2,3,4,5,6,7,0,0, - 1,0,3,86,87,88,89,90,91,92, - 93,94,95,96,97,98,99,100,101,102, - 103,104,105,106,107,108,109,110,111,112, - 113,114,115,0,1,2,3,4,5,6, - 7,8,0,1,45,3,13,14,15,16, - 17,18,19,20,21,22,23,59,0,1, - 70,0,1,2,3,4,5,6,7,0, - 1,0,1,0,1,42,43,44,45,46, - 47,48,49,50,51,52,53,54,55,56, - 0,58,2,0,61,62,63,64,40,41, - 99,0,60,70,71,0,0,74,7,40, - 41,0,1,2,3,4,5,6,7,8, - 59,0,0,2,13,14,15,16,17,18, - 19,20,21,22,23,42,0,1,45,46, - 4,48,49,50,51,52,53,54,55,56, - 117,118,119,42,43,44,45,46,47,48, - 49,50,51,52,53,54,55,56,0,58, - 0,66,61,62,63,64,70,9,10,9, - 10,70,71,47,0,74,0,1,2,3, + 60,61,62,63,64,65,0,67,68,88, + 89,100,0,0,74,0,76,77,78,79, + 80,81,0,83,84,85,86,87,0,1, + 2,3,4,5,6,7,8,115,10,11, + 12,13,14,44,0,0,47,48,49,50, + 51,52,53,54,55,56,44,58,61,47, + 48,49,50,51,52,53,54,55,56,0, + 58,26,44,45,59,47,48,49,50,51, + 52,53,54,55,56,0,58,59,73,61, + 0,69,70,3,66,10,11,69,70,71, + 72,73,74,75,0,1,2,3,4,5, + 6,7,8,0,1,2,88,89,90,91, + 92,93,94,95,96,97,98,99,100,101, + 102,103,104,105,106,107,108,109,110,111, + 112,113,114,115,116,117,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,117,118, - 119,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, + 34,35,36,37,38,39,40,41,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,55,56,0,58,0,60,4,62,63, + 64,0,1,2,3,4,5,6,7,8, + 9,10,11,0,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, 29,30,31,32,33,34,35,36,37,38, - 39,40,41,0,43,44,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, + 39,40,41,42,43,44,0,46,47,48, + 49,50,51,52,53,54,55,56,0,58, + 0,60,4,62,63,64,0,1,2,3, + 4,5,6,7,8,9,10,11,0,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,45,43, - 44,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, + 34,35,36,37,38,39,40,41,42,43, + 44,116,46,47,48,49,50,51,52,53, + 54,55,56,0,58,47,60,0,62,63, + 64,0,1,2,3,4,5,6,7,8, + 9,10,11,0,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, 29,30,31,32,33,34,35,36,37,38, - 39,40,41,0,43,44,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, + 39,40,41,42,43,44,116,46,47,48, + 49,50,51,52,53,54,55,56,0,58, + 0,60,69,62,63,64,0,1,2,3, + 4,5,6,7,8,9,10,11,0,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33, - 34,35,36,37,38,39,40,41,0,1, - 44,0,0,1,0,3,2,5,0,7, - 9,10,0,1,2,3,4,5,6,7, - 0,1,2,3,4,0,6,2,72,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,40, - 41,59,0,44,72,0,1,0,3,2, - 5,69,7,0,59,0,1,2,3,4, - 70,6,0,0,1,93,3,0,5,2, - 7,72,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,59,73,44,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,40,41,0, - 1,44,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,0,0,44,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,40,41,0, - 1,44,0,1,2,3,4,5,6,7, + 34,35,36,37,38,39,40,41,42,43, + 44,0,46,47,48,49,50,51,52,53, + 54,55,56,0,58,0,60,69,62,63, + 64,0,1,2,3,4,5,6,7,8, + 9,10,11,0,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,43,44,0,46,47,48, + 49,50,51,52,53,54,55,56,0,58, + 0,60,69,62,63,64,0,1,2,3, + 4,5,6,7,8,9,10,11,0,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,0,0, + 44,3,0,47,48,49,50,51,52,53, + 54,55,56,0,58,0,60,0,62,63, + 64,0,0,0,3,12,4,6,6,8, + 8,10,11,12,13,14,88,89,15,16, + 17,18,19,20,21,22,23,24,25,99, + 0,1,2,3,4,5,57,7,0,1, + 2,59,12,5,66,7,45,44,0,0, + 47,48,49,50,51,52,53,54,55,56, + 59,58,0,1,2,0,4,66,75,0, + 69,70,71,72,73,45,75,0,1,2, + 3,4,5,6,7,8,0,0,95,88, + 89,90,91,92,93,94,95,96,97,98, + 99,100,101,102,103,104,105,106,107,108, + 109,110,111,112,113,114,115,116,117,0, + 71,0,3,61,59,6,0,8,0,10, + 11,12,13,14,0,1,2,3,4,5, + 6,7,8,66,57,0,1,2,71,4, + 5,102,7,104,105,106,107,108,109,110, + 111,112,113,114,45,44,97,98,47,48, + 49,50,51,52,53,54,55,56,59,58, + 0,1,2,97,98,66,60,7,69,70, + 71,72,73,0,75,0,1,2,3,4, + 5,6,7,8,0,1,2,88,89,90, + 91,92,93,94,95,96,97,98,99,100, + 101,102,103,104,105,106,107,108,109,110, + 111,112,113,114,115,116,117,0,1,2, + 3,4,5,6,7,8,9,0,0,12, + 122,4,15,16,17,18,19,20,21,22, + 23,24,25,0,1,2,73,4,73,6, + 0,8,0,0,1,2,3,4,5,0, + 7,44,45,46,47,48,49,50,51,52, + 53,54,55,56,57,58,0,60,0,62, + 63,64,65,0,1,2,59,4,0,72, + 73,0,1,2,3,4,5,69,7,82, + 0,1,2,3,4,5,6,7,8,9, + 0,59,12,3,0,15,16,17,18,19, + 20,21,22,23,24,25,73,0,1,2, + 0,4,5,3,7,59,119,120,121,0, + 57,0,1,2,44,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 60,73,62,63,64,65,88,89,0,119, + 120,121,72,73,0,1,2,3,4,5, + 0,7,82,44,57,5,47,48,49,50, + 51,52,53,54,55,56,66,58,57,0, + 0,1,2,3,4,5,6,7,8,0, + 1,2,3,4,5,101,7,0,59,119, + 120,121,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, - 38,39,40,41,0,0,47,3,3,95, - 96,0,0,1,0,100,2,0,0,1, - 0,0,5,3,0,1,0,112,66,0, + 38,39,40,41,42,43,66,45,46,0, 1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17,18,19,20, 21,22,23,24,25,26,27,28,29,30, 31,32,33,34,35,36,37,38,39,40, - 41,47,60,44,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,95,96,44,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,40, - 41,0,1,44,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,0,1,44,0, + 41,42,43,0,45,46,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 0,45,46,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,42,43,0,0,46, + 3,0,0,0,1,2,8,0,1,2, + 3,4,0,6,12,8,0,1,2,3, + 4,5,0,7,0,1,2,5,75,0, 1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17,18,19,20, 21,22,23,24,25,26,27,28,29,30, 31,32,33,34,35,36,37,38,39,40, - 41,0,1,44,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,0,0,44,0, + 41,42,43,66,72,46,0,0,0,0, + 1,2,66,4,5,61,7,10,11,0, + 1,2,0,1,2,3,4,5,6,7, + 8,9,10,11,75,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,57,59,46,0, 1,2,3,4,5,6,7,8,9,10, - 11,12,13,14,15,16,17,18,19,20, + 11,0,13,14,15,16,17,18,19,20, 21,22,23,24,25,26,27,28,29,30, 31,32,33,34,35,36,37,38,39,40, - 41,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,36,37,38, - 39,0,86,87,0,88,0,0,2,0, - 0,94,8,0,0,5,0,0,0,0, - 4,60,0,0,0,24,2,0,1,0, - 0,2,71,0,1,2,3,4,5,6, - 7,8,9,10,11,12,13,14,15,16, + 41,42,43,0,0,46,0,1,2,3, + 4,5,6,7,8,9,10,11,0,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,43, + 0,0,46,0,1,2,3,4,5,6, + 7,8,9,10,11,61,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, 27,28,29,30,31,32,33,34,35,36, - 37,38,39,0,47,2,57,4,5,0, - 7,2,9,10,11,12,0,1,59,3, - 4,68,6,60,71,66,66,68,25,89, - 90,72,0,0,71,88,88,93,86,87, - 0,94,94,40,41,13,14,15,16,17, - 18,19,20,21,22,23,117,118,119,0, - 57,0,59,47,0,0,0,0,59,66, - 0,68,69,0,42,2,43,45,46,0, - 48,49,50,51,52,53,54,55,56,86, - 87,88,89,90,91,92,0,1,95,96, - 97,98,99,100,101,102,103,104,105,106, - 107,108,109,110,111,0,46,2,48,4, - 5,0,7,0,9,10,11,12,69,0, - 1,0,3,4,68,6,72,0,72,8, - 25,0,1,47,0,1,5,86,87,70, - 0,86,87,86,87,40,41,93,8,100, - 0,102,103,104,105,106,107,108,109,110, - 111,112,57,0,59,2,47,0,47,2, - 57,66,0,68,69,0,0,2,47,58, - 69,47,0,70,57,0,0,47,0,0, - 2,86,87,88,89,90,91,92,58,0, - 95,96,97,98,99,100,101,102,103,104, - 105,106,107,108,109,110,111,0,1,2, - 3,4,5,6,7,8,9,10,11,12, + 37,38,39,40,41,42,43,0,0,46, + 0,1,2,3,4,5,6,7,8,9, + 10,11,61,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,0,1,2,0,4,0, + 6,101,8,0,0,1,2,0,1,2, + 3,4,5,6,7,8,9,10,11,69, 13,14,15,16,17,18,19,20,21,22, 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,69,72,70, - 0,0,2,2,0,66,116,68,0,0, - 2,2,0,1,0,93,2,60,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,39,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,0,0,1, - 0,0,2,0,1,0,0,0,0,0, - 0,0,0,0,0,0,0,59,0,1, + 33,34,35,36,37,38,39,40,41,42, + 43,48,49,46,0,1,2,3,4,5, + 6,7,8,9,10,11,69,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,42,43,0,0, + 46,0,1,2,3,4,5,6,7,8, + 9,10,11,0,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,43,0,0,46,0,1, 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, + 61,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,28,29,30,31, - 32,33,34,35,36,37,38,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,28,29,30,31,32, - 33,34,35,36,37,38,39,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,116,0,0,0,116,0,0, - 0,24,24,0,0,120,0,0,0,0, - 0,113,0,1,2,3,4,5,6,7, + 32,33,34,35,36,37,38,39,40,41, + 42,43,0,0,46,0,1,2,3,4, + 5,6,7,8,9,10,11,61,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,43,0, + 0,46,0,1,2,3,4,5,6,7, + 8,9,10,11,61,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,0,0,46,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 41,0,1,2,0,4,0,6,0,8, + 4,3,8,12,0,1,2,3,4,5, + 61,7,0,1,2,0,4,0,6,0, + 8,72,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, 28,29,30,31,32,33,34,35,36,37, - 38,0,1,2,3,4,5,6,7,8, - 9,10,11,12,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,33,34,35,36,37,38, + 38,39,40,41,66,118,75,0,1,2, + 66,4,0,6,59,8,59,0,1,2, + 0,4,5,61,7,0,95,0,69,70, + 3,0,0,0,72,0,1,2,3,4, + 5,6,7,8,9,10,11,0,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,43,0, + 1,2,3,4,5,6,7,8,9,10, + 11,66,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,43,0,1,2,3,4,5,6, + 7,8,9,10,11,12,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,0,1,2,3,4,5, + 6,7,8,9,10,11,0,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,0,0,0,3, + 0,0,0,1,2,4,0,5,0,13, + 14,0,0,0,3,61,0,1,2,3, + 4,5,6,7,8,9,10,11,115,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,0,57, + 59,3,66,5,6,59,8,0,10,11, + 0,13,14,3,0,1,2,3,4,5, + 0,7,12,71,4,27,12,90,0,1, + 2,0,12,96,0,0,1,2,90,103, + 42,43,102,0,96,0,0,1,2,0, + 4,6,0,117,114,0,4,59,0,45, + 26,12,4,0,66,45,0,69,70,71, + 42,43,0,66,0,0,66,42,43,69, + 70,0,1,2,9,75,88,89,90,91, + 92,93,94,47,45,97,98,99,100,101, + 102,103,104,105,106,107,108,109,110,111, + 112,113,0,0,59,3,3,5,6,70, + 8,90,10,11,69,13,14,96,0,1, + 2,59,0,59,6,0,1,2,57,27, + 0,69,67,69,12,0,0,0,93,94, + 0,1,2,90,42,43,0,12,12,96, + 4,0,0,0,3,93,94,93,94,0, + 0,59,3,3,0,12,0,45,66,3, + 0,69,70,71,71,57,0,0,41,3, + 45,45,57,0,0,0,0,0,0,59, + 88,89,90,91,92,93,94,57,12,97, + 98,99,100,101,102,103,104,105,106,107, + 108,109,110,111,112,113,0,1,2,3, + 4,5,6,7,8,9,10,11,75,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,69,72,0, + 73,0,3,0,3,0,3,0,1,2, 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, + 10,11,66,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, - 30,31,32,33,34,35,36,37,38,0, - 1,0,3,0,3,0,0,8,0,0, - 1,8,13,14,15,16,17,18,19,20, - 21,22,23,0,1,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,42,0,0,45,46,0,48,49,50, - 51,52,53,54,55,56,47,58,57,0, - 61,62,63,0,1,0,3,0,65,0, - 47,8,66,47,68,0,13,14,15,16, - 17,18,19,20,21,22,23,0,1,2, - 3,4,5,6,7,0,1,2,3,4, - 5,6,7,57,68,42,0,0,45,46, - 43,48,49,50,51,52,53,54,55,56, - 0,58,57,0,61,62,63,68,59,42, - 43,66,57,0,47,68,0,42,43,0, - 0,0,47,0,57,0,0,0,0,0, - 0,64,65,0,67,0,91,92,0,64, - 65,74,67,57,57,0,71,0,0,74, - 0,1,2,3,4,5,6,7,0,1, - 2,3,4,5,6,7,0,1,2,3, - 4,5,6,7,58,0,57,2,57,59, - 57,0,57,57,0,66,11,12,59,0, - 57,0,42,43,59,0,69,47,70,69, - 42,43,57,0,0,47,0,69,42,43, - 91,92,0,47,64,65,69,67,70,0, - 39,71,64,65,74,67,0,43,0,71, - 64,65,74,67,59,0,0,71,0,0, - 74,0,1,2,3,4,5,6,7,0, - 1,2,3,4,5,6,7,0,1,2, - 3,4,5,6,7,70,60,0,0,43, - 0,68,0,69,0,0,101,0,0,60, - 0,0,70,42,43,57,0,0,47,0, - 115,42,43,57,66,0,47,0,60,42, - 43,66,0,0,47,64,65,0,67,70, - 0,0,71,64,65,74,67,0,0,91, - 92,64,65,74,67,0,0,60,0,0, - 0,74,0,1,2,3,4,5,6,7, - 72,69,0,69,69,68,0,69,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,42,43,0,0,0,47, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,64,65,0,67, - 0,0,0,0,0,0,74,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0 + 30,31,32,33,34,35,36,37,38,39, + 40,41,0,1,2,3,4,5,6,7, + 8,9,10,11,57,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,0,1,2,3,4,5,6, + 7,8,9,10,11,0,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,0,1,2,3,4,5, + 6,7,8,9,10,11,0,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,0,1,2,0,4, + 0,0,0,0,9,0,0,1,2,0, + 15,16,17,18,19,20,21,22,23,24, + 25,0,0,0,0,0,3,3,0,0, + 0,3,0,12,0,69,70,12,0,44, + 0,12,47,48,49,50,51,52,53,54, + 55,56,0,58,0,60,0,62,63,64, + 0,1,2,57,4,0,66,66,70,9, + 0,1,2,71,71,15,16,17,18,19, + 20,21,22,23,24,25,0,1,2,3, + 4,5,6,7,8,70,75,57,12,70, + 75,72,70,0,44,0,0,47,48,49, + 50,51,52,53,54,55,56,0,58,0, + 60,0,62,63,64,4,0,57,0,73, + 44,45,0,1,2,3,4,5,6,7, + 8,0,0,57,12,59,0,0,0,0, + 9,65,0,67,68,0,0,0,0,1, + 2,3,4,5,6,7,8,0,82,66, + 12,66,0,0,0,3,44,45,59,73, + 59,0,0,0,0,59,3,0,71,57, + 3,0,0,9,3,0,0,65,57,67, + 68,60,44,45,72,0,1,2,3,4, + 5,6,7,8,82,57,70,12,71,71, + 0,69,73,65,0,67,68,71,73,0, + 72,0,1,2,3,4,5,6,7,8, + 82,57,0,12,60,3,118,73,0,44, + 45,0,0,71,0,0,0,76,0,0, + 118,0,57,71,0,70,0,71,0,0, + 65,0,67,68,26,44,45,72,0,1, + 2,3,4,5,6,7,8,82,57,0, + 12,0,0,0,0,0,65,0,67,68, + 0,0,0,72,0,1,2,3,4,5, + 6,7,8,82,59,0,12,0,0,0, + 0,0,44,45,0,0,0,0,0,0, + 0,0,0,0,0,57,0,0,0,0, + 0,0,0,65,0,67,68,0,44,45, + 72,0,1,2,3,4,5,6,7,8, + 82,57,0,12,0,0,0,0,0,65, + 0,67,68,0,0,0,0,0,1,2, + 3,4,5,6,7,8,82,0,0,12, + 0,0,0,0,0,44,45,0,0,0, + 0,0,0,0,0,0,0,0,57,0, + 0,0,0,0,0,0,65,0,67,68, + 0,44,45,0,0,0,0,0,0,0, + 0,0,0,82,57,0,0,0,0,0, + 0,0,65,0,67,68,0,0,0,0, + 0,0,0,0,0,0,0,0,0,82, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -1473,387 +1545,414 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 5276,5257,5254,5254,5254,5254,5254,5254,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5261,3452,1,1,1,1,1, - 1,1,1,1,1,1,1,5276,1,3768, - 2321,1,1,1,2140,3441,5276,3380,5276,5311, - 4305,5284,1969,1808,3446,3427,3084,2109,3030,3382, - 3525,3409,3431,3408,2931,3401,5276,5257,5254,5254, - 5254,5254,5254,5254,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5261, - 3452,1,1,5276,1,1,1,1,1,1, - 1,1,1,5276,1,2883,2321,1,1,1, - 2140,3441,5276,3380,1,5056,4438,5060,1969,1808, - 3446,3427,3084,2109,3030,3382,3525,3409,3431,3408, - 2931,3401,5276,5257,5254,5254,5254,5254,5254,5254, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5261,3452,1,1,136, - 1,1,1,1,1,1,1,1,1,5276, - 1,132,2321,1,1,1,2140,3441,2328,3380, - 1,5056,5218,5060,5224,1808,5221,3427,3084,2109, - 3030,3382,3525,3409,3431,3408,2931,3401,5276,5257, - 5254,5254,5254,5254,5254,5254,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5261,3452,1,1,5276,1,1,1,1, - 1,1,1,1,1,138,1,2237,2321,1, - 1,1,2140,3441,5276,3380,1,5056,4438,5060, - 1969,1808,3446,3427,3084,2109,3030,3382,3525,3409, - 3431,3408,2931,3401,5276,5257,5254,5254,5254,5254, - 5254,5254,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5261,3452,1, - 1,5276,1,1,1,1,1,1,1,1, - 1,5276,1,134,2321,1,1,1,2140,3441, - 5276,3380,5276,4965,2203,1104,1969,1808,3446,3427, - 3084,2109,3030,3382,3525,3409,3431,3408,2931,3401, - 5276,5257,5254,5254,5254,5254,5254,5254,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5261,3452,1,1,5276,1,1, - 1,1,1,1,1,1,1,93,1,4998, - 2321,1,1,1,2140,3441,5276,3380,5276,4965, - 2270,1104,1969,1808,3446,3427,3084,2109,3030,3382, - 3525,3409,3431,3408,2931,3401,5276,5257,5254,5254, - 5254,5254,5254,5254,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5261, - 3452,1,1,5276,1,1,1,1,1,1, - 1,1,1,1,1,3906,2321,1,1,1, - 2140,3441,116,3380,38,4977,233,3356,5167,1808, - 1150,3427,3084,2109,3030,3382,3525,3409,3431,3408, - 2931,3401,5276,5257,5254,5254,5254,5254,5254,5254, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5261,3452,1,1,137, - 1,1,1,1,1,1,1,1,1,135, - 1,5276,2321,1,1,1,2140,3441,118,3380, - 5276,3327,3252,3356,5276,1808,5282,3427,3084,2109, - 3030,3382,3525,3409,3431,3408,2931,3401,5276,5257, - 5254,5254,5254,5254,5254,5254,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5261,3452,1,1,5276,1,1,1,1, - 1,1,1,1,1,5284,1,2237,2321,1, - 1,1,2140,3441,5276,3380,2270,3327,3252,5276, - 4965,1808,5314,3427,3084,2109,3030,3382,3525,3409, - 3431,3408,2931,3401,5276,3383,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5285,3452,1, - 1,5276,1,1,1,1,1,1,1,1, - 1,220,1,5276,2321,1,1,1,2140,3441, - 5276,3380,1,5056,2699,5060,1969,1808,3446,3427, - 3084,2109,3030,3382,3525,3409,3431,3408,2931,3401, - 5276,5145,5145,5145,5145,5145,5145,5145,4964,5145, - 5145,5145,5145,5529,5276,2038,5532,5615,3350,5616, - 5526,5533,5505,5531,5530,5527,5528,5506,5276,4965, - 4438,1104,1969,1487,3446,5608,396,5063,5276,5314, - 1529,1747,5145,5145,39,5145,5145,5314,5145,5145, - 5145,5145,5145,5145,5145,5145,5145,5145,39,5145, - 5145,5314,5276,1487,5276,5608,5145,722,5145,5145, - 5145,5145,5145,5145,314,5056,4438,5060,1969,5239, - 3446,5236,359,39,5276,1702,5145,5145,5145,5145, - 5145,5145,5145,5145,5145,5145,5145,5145,5145,5145, - 5145,5145,5145,5145,5145,5145,5145,5145,5145,5145, - 5145,5145,5145,5145,5145,5145,5276,5254,5254,5254, - 5254,5254,5254,5254,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5270, - 5434,1,1,5276,1,1,1,1,1,1, - 1,1,1,5276,1,5634,4968,1,1,1, - 5276,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, + 5524,5490,5487,5487,5487,5487,5487,5487,5487,1, + 1,1,5500,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5497,3733,1,1,1, + 1,1,1,1,1,1,1,1,1,139, + 1,2201,1,1,1,2423,362,2228,3589,5524, + 5171,5168,5531,5565,558,162,3732,2489,2177,2127, + 3608,3877,5524,3730,729,3684,2843,3661,8,5509, + 5509,5509,5509,5509,5509,5509,5509,5509,5509,5509, + 5509,5509,5509,5509,5509,5509,5509,5509,5509,5509, + 5509,5509,5509,5509,5509,5509,5509,5509,5509,5509, + 5509,5509,5509,5509,5509,5509,5509,5509,5509,5509, + 5509,5509,5509,5509,5509,5509,5509,5509,5509,5509, + 5509,5509,5509,5509,5509,1297,5509,5524,5509,5509, + 5509,5509,5509,5509,5524,5509,5509,119,125,2306, + 5509,5885,5509,3378,5509,5509,5509,5509,5509,5509, + 5524,5509,5509,5509,5509,5509,5524,5490,5487,5487, + 5487,5487,5487,5487,5487,1,1,1,5494,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5497,3733,1,1,1,1,1,1,1, + 1,1,1,309,1,1,1,2201,1,1, + 1,2423,5832,2228,3589,121,2707,2803,3354,3330, + 558,3378,3732,2489,2177,2127,3608,3877,5524,3730, + 729,3684,2843,3661,5524,5490,5487,5487,5487,5487, + 5487,5487,5487,1,1,1,5494,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5497, + 3733,1,1,1,1,1,1,1,1,1, + 1,5524,1,1,1,2201,1,1,1,2423, + 5887,2228,3589,120,1,137,3354,3330,558,3378, + 3732,2489,2177,2127,3608,3877,166,3730,729,3684, + 2843,3661,5524,5490,5487,5487,5487,5487,5487,5487, + 5487,1,1,1,5494,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,159,5434,1,1,5276,1,1, - 1,1,1,1,1,1,1,5276,1,2671, - 37,1,1,1,5276,1,1,1,1,1, + 1,1,1,1,1,1,1,5497,3733,1, + 1,1,1,1,1,1,1,1,1,166, + 1,122,1,2201,1,1,1,2423,3229,2228, + 3589,2886,591,42,3354,3330,558,5565,3732,2489, + 2177,2127,3608,3877,2340,3730,729,3684,2843,3661, + 5524,5490,5487,5487,5487,5487,5487,5487,5487,1, + 1,1,5494,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5497,3733,1,1,1, + 1,1,1,1,1,1,1,5524,1,5524, + 1,2201,1,1,1,2423,5524,2228,3589,3060, + 5524,5541,5542,1,558,4956,3732,2489,2177,2127, + 3608,3877,5524,3730,729,3684,2843,3661,5524,5490, + 5487,5487,5487,5487,5487,5487,5487,1,1,1, + 5494,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5497,3733,1,1,1,1,1, + 1,1,1,1,1,5524,1,2750,1,2201, + 1,1,1,2423,5524,2228,3589,5524,5171,5168, + 129,5565,558,511,3732,2489,2177,2127,3608,3877, + 5524,3730,729,3684,2843,3661,5524,5490,5487,5487, + 5487,5487,5487,5487,5487,1,1,1,5494,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5497,3733,1,1,1,1,1,1,1, + 1,1,1,823,1,5524,1,2201,1,1, + 1,2423,5524,2228,3589,5524,5541,5542,2707,2803, + 558,366,3732,2489,2177,2127,3608,3877,5524,3730, + 729,3684,2843,3661,5524,5490,5487,5487,5487,5487, + 5487,5487,5487,1,1,1,5494,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5497, + 3733,1,1,1,1,1,1,1,1,1, + 1,909,1,5524,1,2201,1,1,1,2423, + 5524,2228,3589,3138,5524,5524,5363,5360,558,5524, + 3732,2489,2177,2127,3608,3877,5530,3730,729,3684, + 2843,3661,5524,5490,5487,5487,5487,5487,5487,5487, + 5487,1,1,1,5494,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5497,3733,1, + 1,1,1,1,1,1,1,1,1,5529, + 1,140,1,2201,1,1,1,2423,5524,2228, + 3589,128,5524,53,5363,5360,558,5524,3732,2489, + 2177,2127,3608,3877,5528,3730,729,3684,2843,3661, + 5524,3638,1,1,1,1,1,1,1,1, + 1,1,5534,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5533,3733,1,1,1, + 1,1,1,1,1,1,1,5524,1,223, + 1,2201,1,1,1,2423,5524,2228,3589,2707, + 2803,2306,224,5524,558,33,3732,2489,2177,2127, + 3608,3877,30,3730,729,3684,2843,3661,5524,5353, + 5353,5353,5353,5353,5353,5353,5353,5527,5353,5353, + 5353,5353,5353,5780,5524,5524,5783,5866,5867,5777, + 5784,5756,5782,5781,5778,5779,5780,5757,1189,5783, + 5866,5867,5777,5784,5756,5782,5781,5778,5779,5524, + 5757,3170,5353,5353,508,5353,5353,5353,5353,5353, + 5353,5353,5353,5353,5353,124,5353,5353,421,5353, + 96,5381,5381,5204,5353,2886,591,5353,5353,5353, + 5353,5353,5353,5353,5524,5171,5168,4439,1063,1899, + 862,2996,5859,291,5541,5542,5353,5353,5353,5353, + 5353,5353,5353,5353,5353,5353,5353,5353,5353,5353, + 5353,5353,5353,5353,5353,5353,5353,5353,5353,5353, + 5353,5353,5353,5353,5353,5353,5524,5487,5487,5487, + 5487,5487,5487,5487,5487,1,1,1,5512,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5512,5685,1,1,1,1,1,1,1, + 1,1,1,5524,1,5524,1,2981,1,1, + 1,5524,1,1,1,1,1,1,1,1, + 1,1,1,5524,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5524,5685,1,1, + 1,1,1,1,1,1,1,1,508,1, + 5524,1,5210,1,1,1,5524,1,1,1, + 1,1,1,1,1,1,1,1,431,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5167,5685,1,1,1,1,1,1,1, + 1,1,1,5524,1,5954,1,5524,1,1, + 1,5524,1,1,1,1,1,1,1,1, + 1,1,1,5524,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5174,5685,1,1, + 1,1,1,1,1,1,1,1,5524,1, + 5524,1,2776,1,1,1,5524,1,1,1, + 1,1,1,1,1,1,1,1,5524,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5524,5685,1,1,1,1,1,1,1, + 1,1,1,5524,1,5524,1,2792,1,1, + 1,5524,1,1,1,1,1,1,1,1, + 1,1,1,5524,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5312,5434,1, - 1,1242,1,1,1,1,1,1,1,1, - 1,507,1,2694,5004,1,1,1,5276,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5524,5685,1,1, + 1,1,1,1,1,1,1,1,127,1, + 138,1,2871,1,1,1,42,5171,5168,3134, + 1063,3303,3561,2996,3584,1149,3538,3515,5524,3633, + 3610,5789,5787,5796,5795,5791,5792,5790,5793,5794, + 5797,5788,5547,928,780,1101,5549,791,631,863, + 5550,5548,777,5543,5545,5546,5544,1253,1,40, + 5780,2980,5524,5783,5866,5867,5777,5784,5756,5782, + 5781,5778,5779,1,5757,5524,5922,5524,618,5923, + 5924,390,42,222,5213,367,5565,5213,862,5213, + 5859,5213,5213,5213,5213,5213,2707,2803,5789,5787, + 5796,5795,5791,5792,5790,5793,5794,5797,5788,2340, + 1,5266,5262,5445,5270,5451,5563,5448,5524,5541, + 5542,2453,5534,1899,1813,2996,5213,5780,5524,143, + 5783,5866,5867,5777,5784,5756,5782,5781,5778,5779, + 5213,5757,5524,5171,5168,5524,5565,5213,367,133, + 5213,5213,5213,5213,5213,5533,5213,371,5266,5262, + 2777,5270,1899,1,2996,1,134,52,367,5213, + 5213,5213,5213,5213,5213,5213,5213,5213,5213,5213, + 5213,5213,5213,5213,5213,5213,5213,5213,5213,5213, + 5213,5213,5213,5213,5213,5213,5213,5213,5213,389, + 1770,225,5216,1590,2454,5216,5524,5216,190,5216, + 5216,5216,5216,5216,317,5266,5262,4439,5270,1899, + 5469,2996,5466,1813,2028,5524,5171,5168,1077,1063, + 1899,2232,2996,1727,1684,1641,1598,1555,1512,1469, + 1426,1383,1340,3881,5216,5780,2553,2524,5783,5866, + 5867,5777,5784,5756,5782,5781,5778,5779,5219,5757, + 41,5186,5183,2553,2524,5216,3903,822,5216,5216, + 5216,5216,5216,5524,5216,5524,5266,5262,4439,5270, + 1899,5469,2996,5466,39,5428,5425,5216,5216,5216, + 5216,5216,5216,5216,5216,5216,5216,5216,5216,5216, + 5216,5216,5216,5216,5216,5216,5216,5216,5216,5216, + 5216,5216,5216,5216,5216,5216,5216,5524,5406,5406, + 228,5402,228,228,228,228,1,396,5524,5410, + 5521,5210,1,1,1,1,1,1,1,1, + 1,1,1,439,1,1,1854,1,2044,5192, + 5524,5192,5524,1,5266,5262,4439,5270,1899,5524, + 2996,1,228,5934,1,1,1,1,1,1, + 1,1,1,1,496,1,5524,1,126,1, + 1,1,1059,397,5171,5168,508,5565,425,414, + 228,1,5266,5262,4439,5270,1899,2884,2996,6019, + 5524,5406,5406,228,5402,228,228,228,228,1, + 1,3885,5454,4617,141,1,1,1,1,1, + 1,1,1,1,1,1,2044,5524,5171,5168, + 352,1063,5223,1708,2996,4037,5956,5957,5958,226, + 42,5524,9933,9933,1,228,5934,1,1,1, + 1,1,1,1,1,1,1,496,1,33, + 1,2264,1,1,1,1059,2707,2803,5524,5956, + 5957,5958,413,228,1,5266,5262,5445,5270,5451, + 5524,5448,6019,5780,804,4973,5783,5866,5867,5777, + 5784,5756,5782,5781,5778,5779,1813,5757,5563,5524, + 350,5171,5168,2777,1063,1899,862,2996,5859,1, + 5266,5262,4439,5270,1899,2271,2996,5524,5177,5956, + 5957,5958,5524,1,1,1,1,1,1,1, + 1,1,1,1,5534,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1813,5533,5685,5524, 1,1,1,1,1,1,1,1,1,1, - 1,510,5434,1,1,5276,1,1,1,1, - 1,1,1,1,1,5276,1,5276,5152,1, - 1,1,5276,1,1,1,1,1,1,1, + 1,168,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5524,168,5685,5524,1,1,1, + 1,1,1,1,1,1,1,1,168,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,2381,5434,1,1,821, 1,1,1,1,1,1,1,1,1,1, - 1,2748,387,1,1,1,5276,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,363, - 5434,1,1,5276,1,1,1,1,1,1, - 1,1,1,5276,1,1,49,1,1,1, - 39,4986,2842,1104,629,4068,3446,4090,1083,4046, - 3727,4134,4112,5538,5536,5545,5544,5540,5541,5539, - 5542,5543,5546,5537,5296,2397,712,789,5298,726, - 4352,787,5299,5297,677,5292,5294,5295,5293,1200, - 221,35,5529,1056,5001,5532,5615,2909,5616,5526, - 5533,5505,5531,5530,5527,5528,5506,1,5673,452, - 222,575,5674,5675,387,395,5007,163,5004,5007, - 5276,5007,5276,5007,5007,5007,5007,1,5056,5218, - 5060,5224,5529,5221,5001,5532,5615,5276,5616,5526, - 5533,5505,5531,5530,5527,5528,5506,1,5056,4438, - 5060,1969,5529,3446,112,5532,5615,5007,5616,5526, - 5533,5505,5531,5530,5527,5528,5506,5276,4989,27, - 5285,5007,507,5007,347,39,2845,5314,5284,1487, - 5007,5608,5007,5007,5007,5007,5007,386,2761,5010, - 314,1,5010,2845,5010,3561,5010,5010,5010,5010, - 5007,5007,5007,5007,5007,5007,5007,5007,5007,5007, - 5007,5007,5007,5007,5007,5007,5007,5007,5007,5007, - 5007,5007,5007,5007,5007,5007,5007,5007,5007,5007, - 5010,438,1,1747,1,5170,4983,5170,4983,5283, - 439,39,4178,5314,5013,5176,5010,5173,4200,5276, - 1747,5276,4965,5010,5314,5010,5010,5010,5010,5010, - 5276,5056,4438,5060,1969,5239,3446,5236,451,430, - 39,139,5314,5010,5010,5010,5010,5010,5010,5010, - 5010,5010,5010,5010,5010,5010,5010,5010,5010,5010, - 5010,5010,5010,5010,5010,5010,5010,5010,5010,5010, - 5010,5010,5010,5276,5195,225,5191,225,225,225, - 225,1,5276,5066,5705,5314,1,1,1,1, - 1,1,1,1,1,1,1,4992,5276,1702, - 1977,347,4965,2699,1104,1969,1487,3446,5608,5276, - 5152,5276,5311,50,5152,1,225,5685,1,1, - 495,1,1,1,1,1,1,1,1,1, - 5276,1,4286,223,1,1,1,2043,4156,970, - 2203,133,1655,225,413,5276,5276,5770,2328,4156, - 970,5276,5195,225,5191,225,225,225,225,1, - 1747,5276,5276,4318,1,1,1,1,1,1, - 1,1,1,1,1,5529,37,5182,5532,5615, - 5182,5616,5526,5533,5505,5531,5530,5527,5528,5506, - 5707,5708,5709,1,225,5685,1,1,495,1, - 1,1,1,1,1,1,1,1,119,1, - 121,5782,1,1,1,2043,1785,2358,590,2358, - 590,225,412,1959,5276,5770,142,4965,2842,1104, - 629,4068,3446,4090,556,4046,3727,4134,4112,5538, - 5536,5545,5544,5540,5541,5539,5542,5543,5546,5537, - 5296,2397,712,789,5298,726,4352,787,5299,5297, - 677,5292,5294,5295,5293,1200,39,39,5707,5708, - 5709,5276,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,430,5285,5434,5276,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5705,165, - 5434,5276,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5276,165,5434,5276,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5276,2038, - 5434,120,1,5188,5276,5185,4760,1487,5276,5608, - 2358,590,368,5056,2699,5060,1969,1,3446,1, - 1,5056,4438,5060,1969,349,3446,1739,165,5276, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1747,1,5434,364,94,1,5276,1,4772, - 5179,1013,5179,5276,1747,1,5056,2699,5060,1969, - 1977,3446,5276,97,39,364,5314,5276,5230,3406, - 5227,165,5276,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1747,2750,572,5276,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,288, - 5567,5434,5276,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,130,140,5434,5276,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5276, - 9445,5434,1,5056,2842,5060,629,4068,3446,4090, - 5020,4046,3727,4134,4112,5047,5053,5026,5029,5041, - 5038,5044,5035,5032,5023,5050,5296,2397,712,789, - 5298,726,4352,787,5299,5297,677,5292,5294,5295, - 5293,1200,39,39,5276,5276,5312,783,3117,2480, - 2452,5276,5276,3505,5276,2165,3607,5276,36,5208, - 5276,131,2437,3229,45,5158,5276,3504,511,5276, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5155,3103,5434,5276,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,2480,2452,5434,5276, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5276,5567,5434,5276,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,396,5311,5434,5276, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5276,3152,5434,5276,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,122,115,5434,1, - 5056,2842,5060,629,4068,3446,4090,5020,4046,3727, - 4134,4112,5047,5053,5026,5029,5041,5038,5044,5035, - 5032,5023,5050,5296,2397,712,789,5298,726,4352, - 787,5299,5297,677,5292,5294,5295,5293,1200,39, - 39,39,4965,2842,1104,629,4068,3446,4090,556, - 4046,3727,4134,4112,5538,5536,5545,5544,5540,5541, - 5539,5542,5543,5546,5537,5296,2397,712,789,5298, - 726,4352,787,5299,5297,677,5292,5294,5295,5293, - 1200,5276,2628,2719,306,4178,105,5276,3647,5276, - 117,4200,5581,5276,1,3356,5276,114,113,5276, - 4766,3305,126,5276,5276,3048,2672,37,5182,1, - 5276,2845,5284,39,4965,2842,1104,629,4068,3446, - 4090,556,4046,3727,4134,4112,5538,5536,5545,5544, - 5540,5541,5539,5542,5543,5546,5537,5296,2397,712, - 789,5298,726,4352,787,5299,5297,677,5292,5294, - 5295,5293,1200,1,1963,633,3085,5739,5733,321, - 5737,5233,5731,5732,5762,5763,5276,4965,1747,1104, - 5017,924,3446,3305,5284,343,5725,343,5740,3327, - 3252,343,219,404,5284,4178,4178,5636,2628,2719, - 5276,4200,4200,1457,1607,5538,5536,5545,5544,5540, - 5541,5539,5542,5543,5546,5537,5707,5708,5709,140, - 5742,125,661,790,1,124,5276,123,1747,5743, - 338,5764,5741,278,5529,5242,5215,5532,5615,424, - 5616,5526,5533,5505,5531,5530,5527,5528,5506,5753, - 5752,5765,5734,5735,5758,5759,5276,5199,5756,5757, - 5736,5738,5760,5761,5766,5746,5747,5748,5744,5745, - 5754,5755,5750,5749,5751,5276,5615,633,5616,5739, - 5733,289,5737,30,5731,5732,5762,5763,1705,5276, - 4965,1,1104,5017,4839,3446,364,5276,5283,5245, - 5740,37,5182,5312,47,5205,2437,2628,2719,2654, - 1,2628,2719,2628,2719,1457,1607,364,5245,2165, - 5276,1663,1621,1579,1537,1495,1453,1411,1369,1327, - 1285,3504,5742,5276,661,3843,806,5276,3280,3947, - 507,5743,5276,5764,5741,5276,5276,3483,5312,5248, - 1883,5202,1,420,3645,5276,1,3280,315,5276, - 2323,5753,5752,5765,5734,5735,5758,5759,5248,5276, - 5756,5757,5736,5738,5760,5761,5766,5746,5747,5748, - 5744,5745,5754,5755,5750,5749,5751,39,4965,2842, - 1104,629,4068,3446,4090,556,4046,3727,4134,4112, - 5538,5536,5545,5544,5540,5541,5539,5542,5543,5546, - 5537,5296,2397,712,789,5298,726,4352,787,5299, - 5297,677,5292,5294,5295,5293,1200,1156,5283,5676, - 5276,5276,4386,4814,5276,3407,3513,3303,5276,5276, - 4761,4845,5276,3537,5276,3413,4657,3305,39,4965, - 2842,1104,629,4068,3446,4090,556,4046,3727,4134, - 4112,5538,5536,5545,5544,5540,5541,5539,5542,5543, - 5546,5537,5296,2397,712,789,5298,726,4352,787, - 5299,5297,677,5292,5294,5295,5293,1200,39,4965, - 2842,1104,629,4068,3446,4090,556,4046,3727,4134, - 4112,5538,5536,5545,5544,5540,5541,5539,5542,5543, - 5546,5537,5296,2397,712,789,5298,726,4352,787, - 5299,5297,677,5292,5294,5295,5293,376,5276,9190, - 5276,517,4870,5276,9190,187,5276,5276,5276,5276, - 5276,5276,5276,5276,5276,5276,5276,1228,39,4965, - 2842,1104,629,4068,3446,4090,556,4046,3727,4134, - 4112,5538,5536,5545,5544,5540,5541,5539,5542,5543, - 5546,5537,5296,2397,712,789,5298,726,4352,787, - 5299,5297,677,5292,5294,5295,5293,39,4965,2842, - 1104,629,4068,3446,4090,556,4046,3727,4134,4112, - 5538,5536,5545,5544,5540,5541,5539,5542,5543,5546, - 5537,5296,2397,712,789,5298,726,4352,787,5299, - 5297,677,5292,5294,5295,5293,1200,5276,1,5276, - 5276,5276,5276,5276,5276,5276,5276,5276,5276,5276, - 5276,5276,5276,3513,5276,5276,5276,3513,5276,5276, - 5276,3090,3323,5276,5276,5273,5276,5276,5276,5276, - 5276,5282,39,4965,4778,1104,629,4068,3446,4090, - 556,4046,3727,4134,4112,5538,5536,5545,5544,5540, - 5541,5539,5542,5543,5546,5537,5296,2397,712,789, - 5298,726,4352,787,5299,5297,677,5292,5294,5295, - 5293,39,4965,2842,1104,629,4068,3446,4090,556, - 4046,3727,4134,4112,5538,5536,5545,5544,5540,5541, - 5539,5542,5543,5546,5537,5296,2397,712,789,5298, - 726,4352,787,5299,5297,677,5292,5294,5295,5293, - 39,4965,2842,1104,629,4068,3446,4090,556,4046, - 3727,4134,4112,5538,5536,5545,5544,5540,5541,5539, - 5542,5543,5546,5537,5296,2397,712,789,5298,726, - 4352,787,5299,5297,677,5292,5294,5295,5293,5276, - 4986,50,5314,306,1702,5276,5276,779,5276,5276, - 5211,5581,5538,5536,5545,5544,5540,5541,5539,5542, - 5543,5546,5537,37,5182,5276,5276,5276,5276,5276, - 5276,5276,5276,5276,5276,5276,287,5276,5276,5276, - 5276,5529,5276,5276,5532,5615,5276,5616,5526,5533, - 5505,5531,5530,5527,5528,5506,5312,5673,1702,422, - 575,5674,5675,237,5138,127,5142,5276,1770,350, - 5312,779,3560,3164,3303,5276,5129,5135,5108,5111, - 5123,5120,5126,5117,5114,5105,5132,1,5254,225, - 5254,225,225,225,225,1,5254,225,5254,225, - 225,225,225,3665,1944,5093,30,5276,5084,5078, - 5285,5075,5102,5081,5072,5087,5090,5099,5096,5069, - 5276,5673,2589,5276,575,5674,5675,1276,1747,9037, - 225,4980,3865,5276,5251,4373,5276,9037,225,129, - 102,448,5251,41,3456,386,1,371,442,101, - 369,2140,863,5276,3380,323,2535,2508,416,2140, - 863,5770,3380,4971,567,5276,217,502,5276,5770, - 1,5254,225,5254,225,225,225,225,1,5254, - 225,5254,225,225,225,225,1,5254,225,5254, - 225,225,225,225,2311,76,2589,2950,4974,4857, - 4995,528,5149,507,5276,5161,5341,5342,1921,5276, - 2693,5276,9037,225,1747,5276,1060,5251,2150,1112, - 9037,225,2848,443,500,5251,5276,2071,9037,225, - 2535,2508,5276,5251,2140,863,4288,3380,2015,1, - 3311,217,2140,863,5770,3380,177,5285,128,216, - 2140,863,5770,3380,3118,5276,5,217,5276,5276, - 5770,1,5254,225,5254,225,225,225,225,1, - 5254,225,5254,225,225,225,225,1,5254,225, - 5254,225,225,225,225,5456,2321,5276,1,5264, - 5276,2153,35,4781,5276,5276,576,313,504,3282, - 5276,5276,3566,9037,225,2589,5276,5276,5251,5276, - 663,9037,225,37,5164,5276,5251,5276,3296,9037, - 225,3632,5276,5276,5251,2140,863,5276,3380,5455, - 5276,5276,217,2140,863,5770,3380,5276,5276,2535, - 2508,2140,863,5770,3380,5276,5276,5267,5276,5276, - 5276,5770,1,5254,225,5254,225,225,225,225, - 524,2775,5276,2775,1841,4397,5276,729,5276,5276, - 5276,5276,5276,5276,5276,5276,5276,5276,5276,5276, - 5276,5276,5276,5276,5276,5276,5276,5276,5276,5276, - 5276,5276,5276,5276,9037,225,5276,5276,5276,5251, - 5276,5276,5276,5276,5276,5276,5276,5276,5276,5276, - 5276,5276,5276,5276,5276,5276,2140,863,5276,3380, - 5276,5276,5276,5276,5276,5276,5770 + 5524,168,5685,5524,1,1,1,1,1,1, + 1,1,1,1,1,168,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,236,135,5685, + 5378,5524,5524,397,5541,5542,2399,350,42,42, + 2980,5565,5524,862,5532,5859,1,5266,5262,2777, + 5270,1899,5524,2996,5524,5541,5542,4989,168,5524, + 1,1,1,1,1,1,1,1,1,1, + 1,168,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1813,5531,5685,5524,123,5524,5524, + 5171,5168,1813,1063,5223,3210,2996,2886,591,5524, + 9799,9169,5524,1,1,1,1,1,1,1, + 1,1,1,1,168,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,868,721,636,5524, + 1,1,1,1,1,1,1,1,1,1, + 1,5524,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5524,5524,5685,5524,1,1,1, + 1,1,1,1,1,1,1,1,5524,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 142,5524,5685,5524,1,1,1,1,1,1, + 1,1,1,1,1,1794,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,5524,5524,5685, + 1,5266,5262,3134,5270,3303,3561,2996,3584,5226, + 3538,3515,2201,3633,3610,5253,5259,5232,5235,5247, + 5244,5250,5241,5238,5229,5256,5547,928,780,1101, + 5549,791,631,863,5550,5548,777,5543,5545,5546, + 5544,1253,42,42,440,42,42,5524,5565,5524, + 5387,2271,5384,341,5524,9799,9169,5524,1,1, + 1,1,1,1,1,1,1,1,1,512, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5866,5867,5685,5524,1,1,1,1,1, + 1,1,1,1,1,1,6031,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5524,1, + 5685,5524,1,1,1,1,1,1,1,1, + 1,1,1,5524,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5524,5524,5685,5524,1, + 1,1,1,1,1,1,1,1,1,1, + 3253,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5524,5524,5685,5524,1,1,1,1, + 1,1,1,1,1,1,1,3254,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5524, + 5524,5685,5524,1,1,1,1,1,1,1, + 1,1,1,1,5506,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5524,5524,5685,42, + 5171,5168,3134,1063,3303,3561,2996,3584,563,3538, + 3515,5532,3633,3610,5789,5787,5796,5795,5791,5792, + 5790,5793,5794,5797,5788,5547,928,780,1101,5549, + 791,631,863,5550,5548,777,5543,5545,5546,5544, + 1253,1,5399,5399,136,5396,1,862,324,5859, + 390,5463,2399,367,1,5266,5262,2777,5270,1899, + 3431,2996,97,1,1,449,1,44,5390,5524, + 5390,5531,42,5171,5168,3134,1063,3303,3561,2996, + 3584,563,3538,3515,5532,3633,3610,5789,5787,5796, + 5795,5791,5792,5790,5793,5794,5797,5788,5547,928, + 780,1101,5549,791,631,863,5550,5548,777,5543, + 5545,5546,5544,1253,1813,3788,367,100,42,42, + 1813,5565,5524,5460,5180,5457,5201,5524,5171,5168, + 5524,1063,1899,3431,2996,453,367,5524,3781,4362, + 4026,5524,5524,5524,5531,145,5171,5168,3134,1063, + 3303,3561,2996,3584,563,3538,3515,5524,3633,3610, + 5789,5787,5796,5795,5791,5792,5790,5793,5794,5797, + 5788,5547,928,780,1101,5549,791,631,863,5550, + 5548,777,5543,5545,5546,5544,1253,42,42,1, + 5266,5262,3134,5270,3303,3561,2996,3584,5226,3538, + 3515,5195,3633,3610,5253,5259,5232,5235,5247,5244, + 5250,5241,5238,5229,5256,5547,928,780,1101,5549, + 791,631,863,5550,5548,777,5543,5545,5546,5544, + 1253,42,42,42,5171,5168,3134,1063,3303,3561, + 2996,3584,563,3538,3515,5528,3633,3610,5789,5787, + 5796,5795,5791,5792,5790,5793,5794,5797,5788,5547, + 928,780,1101,5549,791,631,863,5550,5548,777, + 5543,5545,5546,5544,42,5171,5168,3134,1063,3303, + 3561,2996,3584,563,3538,3515,5524,3633,3610,5789, + 5787,5796,5795,5791,5792,5790,5793,5794,5797,5788, + 5547,928,780,1101,5549,791,631,863,5550,5548, + 777,5543,5545,5546,5544,1253,79,115,5524,3775, + 143,53,40,5393,5393,5542,389,5393,118,5592, + 5593,5524,292,5524,4119,3431,42,5171,5168,3134, + 1063,3303,3561,2996,3584,563,3538,3515,5527,3633, + 3610,5789,5787,5796,5795,5791,5792,5790,5793,5794, + 5797,5788,5547,928,780,1101,5549,791,631,863, + 5550,5548,777,5543,5545,5546,5544,1253,1,2122, + 5542,539,3417,5988,5982,5357,5986,452,5980,5981, + 1,6011,6012,2980,1,5266,5262,4439,5270,1899, + 38,2996,346,1950,5207,5989,317,3679,5524,5541, + 5542,117,5207,3702,5524,5524,5363,5360,3679,578, + 1809,1845,2232,5524,3702,5524,431,42,42,5524, + 5565,1878,5524,659,3881,130,3002,5991,5524,317, + 3024,5534,3190,116,577,5207,5524,5992,6013,5990, + 3656,1152,132,5198,131,309,1813,3656,1152,346, + 346,48,5369,5369,5832,346,6002,6001,6014,5983, + 5984,6007,6008,5954,5533,6005,6006,5985,5987,6009, + 6010,6015,5995,5996,5997,5993,5994,6003,6004,5999, + 5998,6000,5524,318,2666,539,2469,5988,5982,4403, + 5986,3679,5980,5981,5189,6011,6012,3702,40,5393, + 5393,2666,405,2666,1878,40,5393,5393,5366,5989, + 1,5372,1670,5375,5439,5524,180,529,2610,2582, + 5524,5416,5413,3679,1809,1845,5524,5534,5503,3702, + 3418,5524,5524,1,4792,2610,2582,2610,2582,5524, + 5524,5991,4846,3914,5524,5530,5524,5442,577,4025, + 5524,5992,6013,5990,1208,5563,108,5524,3491,4094, + 5533,5503,2216,5524,5524,5524,1,5524,5524,508, + 6002,6001,6014,5983,5984,6007,6008,5563,5481,6005, + 6006,5985,5987,6009,6010,6015,5995,5996,5997,5993, + 5994,6003,6004,5999,5998,6000,42,5171,5168,3134, + 1063,3303,3561,2996,3584,563,3538,3515,5529,3633, + 3610,5789,5787,5796,5795,5791,5792,5790,5793,5794, + 5797,5788,5547,928,780,1101,5549,791,631,863, + 5550,5548,777,5543,5545,5546,5544,5974,5531,5524, + 5925,281,2496,5524,5472,5524,4360,50,5422,5422, + 42,5171,5168,3134,1063,3303,3561,2996,3584,563, + 3538,3515,1369,3633,3610,5789,5787,5796,5795,5791, + 5792,5790,5793,5794,5797,5788,5547,928,780,1101, + 5549,791,631,863,5550,5548,777,5543,5545,5546, + 5544,1253,42,5171,5168,3883,1063,3303,3561,2996, + 3584,563,3538,3515,5419,3633,3610,5789,5787,5796, + 5795,5791,5792,5790,5793,5794,5797,5788,5547,928, + 780,1101,5549,791,631,863,5550,5548,777,5543, + 5545,5546,5544,42,5171,5168,3134,1063,3303,3561, + 2996,3584,563,3538,3515,5524,3633,3610,5789,5787, + 5796,5795,5791,5792,5790,5793,5794,5797,5788,5547, + 928,780,1101,5549,791,631,863,5550,5548,777, + 5543,5545,5546,5544,42,5171,5168,3134,1063,3303, + 3561,2996,3584,563,3538,3515,5524,3633,3610,5789, + 5787,5796,5795,5791,5792,5790,5793,5794,5797,5788, + 5547,928,780,1101,5549,791,631,863,5550,5548, + 777,5543,5545,5546,5544,5524,5171,5168,290,5565, + 353,105,374,372,1106,5524,5524,5435,5431,5524, + 5789,5787,5796,5795,5791,5792,5790,5793,5794,5797, + 5788,1,5524,5524,5524,5524,3415,3735,5524,5524, + 5524,4146,423,525,5524,3815,4362,5530,5524,5780, + 5524,5532,5783,5866,5867,5777,5784,5756,5782,5781, + 5778,5779,5524,5757,5524,5922,443,618,5923,5924, + 240,5346,5342,5563,5350,5524,1813,5047,620,1106, + 40,5393,5393,1120,1165,5333,5339,5312,5315,5327, + 5324,5330,5321,5318,5309,5336,1,5487,5487,228, + 5487,228,228,228,228,4850,525,3300,228,953, + 5529,5531,2921,104,5297,326,5524,5288,5282,5279, + 5306,5285,5276,5291,5294,5303,5300,417,5273,5524, + 5922,53,618,5923,5924,5541,5524,5563,379,2221, + 9926,228,1,5487,5487,228,5487,228,228,228, + 228,1,518,5484,5515,3734,444,503,501,5524, + 5475,2423,5524,2393,3589,5524,38,5524,1,5487, + 5487,228,5487,228,228,228,228,5524,6019,1989, + 5515,1813,5524,5524,5524,4998,9926,228,2740,2083, + 5541,5524,5524,5524,1,2910,4995,5524,2138,5484, + 5001,5524,5524,5475,2741,316,505,2423,3443,2393, + 3589,5478,9926,228,220,1,5487,5487,228,5487, + 228,228,228,228,6019,5484,2224,5518,4690,4718, + 5524,4024,5707,2423,5524,2393,3589,1936,3918,5524, + 220,1,5487,5487,228,5487,228,228,228,228, + 6019,3443,5524,5515,5478,5050,3788,5706,1,9926, + 228,5524,5524,1936,5524,2,5524,3817,5524,5524, + 3788,5524,5484,1907,5524,4426,5524,731,5524,5524, + 2423,5524,2393,3589,3520,9926,228,219,1,5487, + 5487,228,5487,228,228,228,228,6019,5484,5524, + 5515,5524,5524,5524,5524,5524,2423,5524,2393,3589, + 5524,5524,5524,220,1,5487,5487,228,5487,228, + 228,228,228,6019,40,5524,228,5524,5524,5524, + 5524,5524,9926,228,5524,5524,5524,5524,5524,5524, + 5524,5524,5524,5524,5524,5484,5524,5524,5524,5524, + 5524,5524,5524,2423,5524,2393,3589,5524,9926,228, + 220,1,5487,5487,228,5487,228,228,228,228, + 6019,5484,5524,228,5524,5524,5524,5524,5524,2423, + 5524,2393,3589,5524,5524,5524,5524,1,5487,5487, + 228,5487,228,228,228,228,6019,5524,5524,228, + 5524,5524,5524,5524,5524,9926,228,5524,5524,5524, + 5524,5524,5524,5524,5524,5524,5524,5524,5484,5524, + 5524,5524,5524,5524,5524,5524,2423,5524,2393,3589, + 5524,9926,228,5524,5524,5524,5524,5524,5524,5524, + 5524,5524,5524,6019,5484,5524,5524,5524,5524,5524, + 5524,5524,2423,5524,2393,3589,5524,5524,5524,5524, + 5524,5524,5524,5524,5524,5524,5524,5524,5524,6019 }; }; public final static char termAction[] = TermAction.termAction; @@ -1861,58 +1960,59 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 1013,1,387,1,62,623,724,724,724,724, - 59,623,170,724,770,170,1050,1013,1052,388, - 388,388,388,388,388,388,388,388,965,971, - 976,973,980,978,985,983,987,986,988,219, - 989,387,370,31,31,31,31,268,227,3, - 168,31,67,482,170,170,3,800,170,482, - 889,30,667,60,273,279,370,949,949,878, - 878,227,1013,388,388,388,388,388,388,388, - 388,388,388,388,388,388,388,388,388,388, - 388,388,387,387,387,387,387,387,387,387, - 387,387,387,1013,388,482,482,153,371,839, - 839,839,839,115,482,3,158,936,947,768, - 947,527,947,766,947,931,947,947,59,268, - 67,67,3,67,30,387,425,666,482,424, - 268,426,424,482,67,973,973,971,971,971, - 978,978,978,978,976,976,983,980,980,986, - 985,987,1064,988,158,282,490,436,435,450, - 59,1052,623,623,623,623,268,268,839,179, - 838,168,268,164,72,268,530,115,529,274, - 768,270,268,268,268,115,839,388,31,969, - 118,482,60,268,268,426,667,387,153,67, - 1004,482,492,494,268,667,1013,1013,1013,1013, - 623,623,371,161,164,72,530,275,530,115, - 530,270,270,268,115,268,482,969,158,666, - 268,60,425,482,440,429,543,494,115,425, - 482,482,482,482,227,227,164,163,627,268, - 72,1064,116,264,1056,72,530,530,443,268, - 270,627,625,626,268,970,970,969,1013,118, - 427,60,341,387,541,541,329,329,268,488, - 158,549,482,268,482,482,164,667,724,424, - 484,1057,421,623,715,446,268,627,388,268, - 227,388,67,268,427,341,387,387,494,268, - 667,482,492,429,341,461,425,86,425,530, - 530,421,1009,158,268,718,388,1064,337,443, - 58,268,482,67,268,540,494,341,1010,86, - 425,530,768,59,1057,421,666,388,388,59, - 540,482,540,838,724,324,324,1010,768,352, - 715,268,623,268,623,533,540,86,673,86, - 837,837,547,353,59,268,227,268,495,533, - 322,841,616,623,767,708,86,31,31,547, - 352,1064,388,1064,1010,623,623,623,353,623, - 268,581,1010,1010,616,268,768,351,482,544, - 535,629,839,616,322,672,768,884,768,59, - 838,69,623,1064,353,370,370,369,887,370, - 1010,1010,616,217,547,31,535,673,672,673, - 1010,336,1009,482,672,672,59,672,268,525, - 549,482,421,482,581,1010,623,482,547,672, - 387,727,421,1010,627,672,672,268,672,268, - 324,482,482,474,353,217,353,1010,581,1013, - 353,350,627,482,726,627,268,627,1010,837, - 768,768,922,387,351,1012,1010,482,726,1010, - 424,353,482,1012,1010,626,353,482,726,353 + 1078,7,974,7,1,490,797,797,797,797, + 65,490,515,797,567,515,1115,1078,1117,975, + 975,975,975,975,975,975,975,975,879,885, + 890,887,894,892,899,897,901,900,902,153, + 903,974,957,37,37,37,37,1014,161,9, + 512,37,312,443,515,515,9,598,515,443, + 801,36,690,67,321,328,957,862,862,1057, + 1057,161,1078,975,975,975,975,975,975,975, + 975,975,975,975,975,975,975,975,975,975, + 975,975,974,974,974,974,974,974,974,974, + 974,974,974,1078,975,443,443,241,958,637, + 637,637,637,149,443,9,247,849,860,788, + 860,644,860,785,860,844,860,860,65,1014, + 312,312,9,312,36,974,1012,689,443,1011, + 1014,1013,1011,443,312,887,887,885,885,885, + 892,892,892,892,890,890,897,894,894,900, + 899,901,1074,902,247,271,407,361,360,369, + 65,1117,490,490,490,490,1014,1014,637,525, + 636,512,1014,508,105,1014,648,149,647,323, + 788,266,1014,1014,1014,149,637,975,37,883, + 206,443,67,1014,1014,1013,690,974,241,312, + 918,443,409,411,1014,690,1078,1078,1078,1078, + 490,490,958,251,508,105,648,324,648,149, + 648,266,266,1014,149,1014,443,883,247,689, + 1014,67,1012,443,503,353,364,411,149,1012, + 443,443,443,443,161,161,508,507,641,1014, + 105,1074,151,199,1064,105,648,648,341,1014, + 266,641,639,640,1014,884,884,883,1078,206, + 204,67,331,974,362,362,253,253,1014,405, + 247,69,443,1014,443,443,508,690,797,1011, + 349,1066,1008,490,741,345,1014,641,975,1014, + 161,975,312,1014,204,331,974,974,411,1014, + 690,443,409,353,331,380,1012,120,1012,648, + 648,1008,923,247,1014,790,975,1074,261,341, + 64,1014,443,312,1014,499,411,331,924,120, + 1012,648,788,65,1066,1008,689,975,975,65, + 499,443,499,636,797,315,315,924,788,938, + 741,1014,490,1014,490,492,499,120,697,120, + 635,635,565,939,65,1014,161,1014,412,492, + 799,1019,481,490,786,733,120,37,37,565, + 938,1074,975,1074,924,490,490,490,939,490, + 1014,446,924,924,481,1014,788,937,443,365, + 494,651,637,481,799,696,788,927,788,65, + 636,102,490,930,1074,939,957,957,955,1017, + 957,924,924,481,563,565,37,494,697,696, + 697,924,260,923,443,696,696,65,696,1014, + 100,69,443,1008,443,446,924,490,443,565, + 696,974,746,1008,924,641,696,696,1014,696, + 1014,315,443,443,393,939,563,939,924,446, + 1078,939,936,641,443,744,641,1014,641,924, + 635,788,788,834,974,937,1076,924,443,744, + 924,1011,939,443,1076,924,640,939,443,744, + 939 }; }; public final static char asb[] = Asb.asb; @@ -1920,113 +2020,119 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 114,0,26,40,27,28,41,6,29,30, - 31,32,39,33,34,35,36,37,24,11, - 12,7,5,9,10,4,25,66,38,2, - 49,13,14,58,46,15,61,50,42,16, - 51,52,17,18,53,54,19,20,55,62, - 56,8,63,21,22,48,23,45,1,3, - 0,70,72,43,114,68,113,0,67,65, - 116,74,6,117,118,119,64,2,7,5, - 4,70,71,43,44,49,13,14,58,46, - 15,61,50,42,16,51,52,17,18,53, - 54,19,20,55,62,56,8,63,21,45, - 22,48,23,3,1,47,0,94,88,9, - 10,89,90,86,87,57,91,92,95,96, - 97,98,99,100,112,70,93,69,102,103, - 104,105,106,107,108,109,110,111,113,71, - 43,114,66,68,72,2,59,1,7,3, - 5,0,39,46,6,48,4,1,3,73, - 60,70,93,113,72,71,43,114,59,2, - 115,94,101,88,11,12,7,5,9,10, - 89,90,86,87,57,91,92,95,96,97, - 98,99,100,112,102,103,104,105,106,107, - 108,109,110,111,66,68,69,0,66,70, - 93,68,113,71,43,114,72,13,14,26, - 40,15,27,28,16,17,18,41,29,19, - 20,30,31,32,39,33,34,21,22,23, - 35,36,37,24,2,11,12,7,5,9, - 10,25,38,6,4,3,8,1,0,1, - 71,0,43,3,57,60,70,0,57,3, - 0,40,41,113,8,27,31,29,26,34, - 14,23,13,19,17,18,20,21,16,15, - 22,35,38,36,37,33,28,32,4,6, - 3,2,11,12,7,5,9,10,25,30, - 1,24,0,66,69,68,1,0,73,60, - 66,70,93,72,59,2,68,43,69,0, - 46,39,48,66,93,69,68,72,0,116, - 120,71,73,64,65,67,76,78,84,82, - 75,80,81,83,85,60,77,79,43,44, - 61,58,62,63,49,54,55,42,53,52, - 45,50,46,48,51,56,39,40,41,8, - 27,31,29,26,34,14,23,13,19,17, - 18,20,21,16,15,22,35,38,36,37, - 24,33,28,32,11,12,9,10,25,30, - 7,5,2,3,6,1,4,0,7,5, - 6,4,3,1,2,66,69,68,59,72, - 93,0,1,45,3,117,118,119,0,13, - 14,15,16,17,18,19,20,21,22,23, - 49,46,50,42,51,52,53,54,55,56, - 45,48,43,6,1,59,2,7,5,4, - 3,72,0,60,70,73,0,4,6,2, - 59,5,7,93,49,13,14,46,15,61, - 50,42,16,51,52,17,18,53,54,19, - 20,55,62,56,8,63,21,45,22,48, - 23,1,3,72,58,0,47,1,3,60, - 70,0,46,48,73,2,60,70,43,39, - 66,69,93,72,68,0,116,0,49,13, - 14,58,46,15,61,50,42,16,51,52, - 17,18,53,54,19,20,55,62,56,8, - 63,21,45,22,48,23,1,3,93,0, - 13,14,26,40,15,27,28,16,17,18, - 41,29,19,20,30,31,32,39,33,34, - 8,21,22,23,35,36,37,24,11,12, - 9,10,25,38,44,7,5,43,4,6, - 1,3,2,0,69,68,71,0,67,49, - 13,14,58,46,15,61,50,74,42,16, - 51,52,17,18,53,65,54,19,20,55, - 62,56,8,63,21,64,45,22,48,23, - 2,7,3,43,60,5,6,1,4,47, - 0,71,14,58,46,15,61,50,16,51, - 52,17,18,53,54,19,20,55,62,56, - 63,21,45,22,48,23,13,49,2,7, - 5,43,64,67,74,42,47,6,1,4, - 3,8,65,0,60,68,0,70,59,2, - 69,68,43,57,0,71,40,41,39,11, - 12,7,5,9,10,4,25,30,2,6, - 35,38,36,37,24,33,28,32,14,23, - 13,19,17,18,20,21,16,15,22,8, - 27,31,29,26,34,3,1,60,0,49, - 13,14,58,46,15,61,50,42,16,51, - 52,17,18,53,54,19,20,55,62,56, - 8,63,21,45,22,48,23,1,3,41, - 40,9,10,5,89,90,97,7,98,4, - 25,57,105,106,102,103,104,110,109,111, - 87,86,107,108,95,96,91,92,99,100, - 11,12,88,101,2,59,69,68,66,0, - 14,58,46,15,61,50,16,51,52,17, - 18,53,54,19,20,55,62,56,8,63, - 21,45,22,48,23,13,49,2,7,5, - 43,64,65,67,74,42,57,6,3,47, - 4,1,0,60,69,0,75,0,40,41, - 11,12,9,10,25,30,35,38,36,37, - 24,33,28,32,14,23,13,19,17,18, - 20,21,16,15,22,8,27,31,29,26, - 34,7,5,2,59,4,6,1,3,0, - 8,61,58,62,63,14,23,13,19,17, - 18,20,21,16,15,22,73,60,4,3, - 1,48,45,56,55,54,6,53,52,51, - 42,50,46,49,115,101,11,12,59,2, - 94,88,5,89,90,9,10,87,86,57, - 91,92,95,96,7,97,98,99,66,93, - 72,114,69,102,103,104,105,106,107,108, - 109,110,111,70,113,71,100,112,68,43, - 0,72,13,14,26,15,27,28,16,17, - 18,29,19,20,30,31,32,39,33,34, - 8,21,22,23,35,36,37,24,2,11, - 12,7,5,9,10,25,3,38,44,4, - 6,1,41,40,0,43,4,6,2,1, - 3,5,7,70,0 + 12,73,115,75,45,70,116,0,28,42, + 29,30,43,7,31,32,33,34,41,35, + 36,37,38,39,26,13,14,8,6,10, + 11,5,27,69,40,3,50,15,16,60, + 48,17,62,51,44,18,52,53,19,20, + 54,55,21,22,56,63,58,9,64,23, + 24,49,25,47,1,2,4,0,50,15, + 16,48,17,62,51,44,18,52,53,19, + 20,54,55,21,22,56,63,58,9,64, + 23,47,24,49,25,1,2,4,95,60, + 0,68,67,118,82,7,119,120,121,65, + 12,3,8,6,5,73,72,45,46,50, + 15,16,60,48,17,62,51,44,18,52, + 53,19,20,54,55,21,22,56,63,58, + 9,64,23,47,24,49,25,4,1,2, + 57,0,69,73,95,70,115,72,45,116, + 12,75,15,16,28,42,17,29,30,18, + 19,20,43,31,21,22,32,33,34,41, + 35,36,23,24,25,37,38,39,26,3, + 13,14,8,6,10,11,27,40,7,1, + 2,4,9,5,0,96,90,10,11,91, + 92,88,89,59,93,94,97,98,99,100, + 101,102,114,73,95,71,104,105,106,107, + 108,109,110,111,112,113,115,72,45,116, + 12,69,70,75,3,66,1,2,8,4, + 6,0,74,61,69,73,95,75,66,3, + 12,70,45,71,0,1,2,12,72,0, + 42,43,9,29,33,31,28,36,16,25, + 15,21,19,20,22,23,18,17,24,37, + 40,38,39,26,35,30,34,5,7,4, + 3,13,14,8,6,10,11,27,32,1, + 2,115,12,0,69,71,70,1,2,0, + 12,45,4,59,61,73,0,59,4,0, + 48,41,49,12,69,95,71,70,75,0, + 1,2,47,4,119,120,121,0,61,73, + 74,0,8,6,7,5,4,1,2,3, + 66,69,71,95,75,12,70,0,15,16, + 17,18,19,20,21,22,23,24,25,50, + 48,51,44,52,53,54,55,56,58,47, + 49,45,12,75,7,1,2,66,3,8, + 6,5,4,0,5,7,3,66,6,8, + 95,50,15,16,60,48,17,62,51,44, + 18,52,53,19,20,54,55,21,22,56, + 63,58,9,64,23,47,24,49,25,1, + 2,4,75,12,0,15,16,28,42,17, + 29,30,18,19,20,43,31,21,22,32, + 33,34,41,35,36,9,23,24,25,37, + 38,39,26,13,14,10,11,27,40,46, + 12,8,6,45,5,7,1,2,4,3, + 0,48,49,74,3,61,73,45,41,69, + 71,70,12,75,95,0,41,48,7,49, + 5,1,2,4,74,12,61,73,95,115, + 75,72,45,116,66,3,117,96,103,90, + 13,14,8,6,10,11,91,92,88,89, + 59,93,94,97,98,99,100,101,102,114, + 104,105,106,107,108,109,110,111,112,113, + 69,70,71,0,118,0,50,15,16,60, + 48,17,62,51,44,18,52,53,19,20, + 54,55,21,22,56,63,58,9,64,23, + 47,24,49,25,1,2,4,43,42,10, + 11,6,91,92,99,8,100,5,27,59, + 107,108,104,105,106,112,111,113,89,88, + 109,110,97,98,93,94,101,102,13,14, + 90,103,3,66,71,70,69,0,71,70, + 72,12,0,57,1,2,4,61,73,0, + 68,50,15,16,60,48,17,62,51,82, + 44,18,52,53,19,20,54,67,55,21, + 22,56,63,58,9,64,23,65,47,24, + 49,25,12,3,8,4,45,61,6,7, + 1,2,5,57,0,72,60,48,17,62, + 51,18,52,53,19,20,54,55,21,22, + 56,63,58,64,23,47,24,49,25,16, + 15,50,12,3,8,6,45,65,68,82, + 44,57,7,1,2,5,4,9,67,0, + 61,70,0,12,72,42,43,41,13,14, + 8,6,10,11,5,27,32,3,7,37, + 40,38,39,26,35,30,34,16,25,15, + 21,19,20,22,23,18,17,24,9,29, + 33,31,28,36,4,1,2,61,0,73, + 12,66,3,71,70,45,59,0,26,0, + 42,43,13,14,10,11,27,32,37,40, + 38,39,26,35,30,34,16,25,15,21, + 19,20,22,23,18,17,24,9,29,33, + 31,28,36,8,6,3,66,5,7,1, + 2,4,0,9,62,60,63,64,16,25, + 15,21,19,20,22,23,18,17,24,74, + 61,4,5,2,1,49,47,58,56,55, + 7,54,53,52,44,51,48,50,117,103, + 13,14,66,3,96,90,6,91,92,10, + 11,89,88,59,93,94,97,98,8,99, + 100,101,69,95,75,116,71,104,105,106, + 107,108,109,110,111,112,113,73,115,72, + 102,114,70,45,12,0,61,71,0,82, + 119,120,121,57,73,118,122,72,74,65, + 67,68,77,79,86,84,76,81,83,85, + 87,61,78,80,12,45,46,62,60,63, + 64,50,55,56,44,54,53,47,51,48, + 49,52,58,41,42,43,9,29,33,31, + 28,36,16,25,15,21,19,20,22,23, + 18,17,24,37,40,38,39,26,35,30, + 34,13,14,10,11,27,32,8,6,3, + 4,7,5,1,2,0,76,0,60,48, + 17,62,51,18,52,53,19,20,54,55, + 21,22,56,63,58,9,64,23,47,24, + 49,25,16,15,50,12,3,8,6,45, + 65,67,68,82,44,59,7,4,57,5, + 1,2,0,45,12,5,7,3,1,2, + 4,6,8,73,0,12,75,15,16,28, + 17,29,30,18,19,20,31,21,22,32, + 33,34,41,35,36,9,23,24,25,37, + 38,39,26,3,13,14,8,6,10,11, + 27,4,40,46,5,7,1,2,43,42, + 0 }; }; public final static byte asr[] = Asr.asr; @@ -2034,58 +2140,59 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static char nasb[] = {0, - 138,11,30,11,11,11,11,11,11,11, - 158,11,11,11,184,11,21,168,135,30, - 30,19,30,30,30,30,30,30,11,11, - 11,11,11,11,11,11,11,11,11,30, - 11,30,188,206,206,206,206,135,141,112, - 56,4,80,194,11,11,112,186,11,194, - 30,52,126,11,11,11,188,11,11,12, - 12,141,168,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30, - 30,30,30,168,30,194,194,120,1,11, - 11,11,11,84,194,28,157,202,203,11, - 203,133,203,158,203,196,11,11,158,135, - 80,80,28,80,206,59,176,35,194,175, - 10,135,175,194,80,11,11,11,11,11, + 156,11,26,11,11,11,11,11,11,11, + 136,11,11,11,147,11,173,95,168,26, + 26,171,26,26,26,26,26,26,11,11, + 11,11,11,11,11,11,11,11,11,26, + 11,26,159,216,216,216,216,168,163,108, + 33,4,70,187,11,11,108,149,11,187, + 26,57,90,11,11,11,159,11,11,14, + 14,163,95,26,26,26,26,26,26,26, + 26,26,26,26,26,26,26,26,26,26, + 26,26,26,26,26,26,26,26,26,26, + 26,26,26,95,26,187,187,123,1,11, + 11,11,11,48,187,24,135,200,201,11, + 201,166,201,9,201,194,11,11,136,168, + 70,70,24,70,216,74,182,138,187,181, + 183,168,181,187,70,11,11,11,11,11, 11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,157,76,120,72,72,11, - 158,135,11,11,11,11,25,10,11,11, - 11,150,135,112,112,22,112,223,112,11, - 11,112,223,135,10,11,11,30,206,112, - 49,194,11,10,135,10,126,30,148,80, - 11,194,226,112,135,126,168,168,168,168, - 11,11,28,11,54,216,112,112,17,125, - 17,112,104,10,125,25,194,74,150,35, - 10,11,25,194,11,106,11,228,124,25, - 194,194,194,194,141,141,112,54,43,135, - 146,11,11,91,209,216,17,17,116,25, - 104,43,11,11,25,97,97,11,168,150, - 11,11,112,30,11,11,72,72,135,106, - 157,228,194,25,194,194,54,126,11,158, - 112,153,108,11,11,221,223,43,30,104, - 141,30,80,10,11,54,30,30,112,10, - 126,194,226,171,112,11,176,112,223,112, - 47,173,146,157,135,11,30,11,114,68, - 70,10,194,80,10,112,228,54,146,228, - 176,47,62,93,108,173,126,30,30,158, - 64,194,112,11,11,87,87,146,62,99, - 11,223,11,223,11,112,64,228,179,112, - 11,11,112,160,93,10,141,10,192,54, - 11,179,210,11,10,91,228,206,206,66, - 165,11,30,11,146,11,11,11,166,11, - 11,144,146,146,112,11,82,11,194,194, - 112,112,11,153,11,112,11,11,11,158, - 11,45,11,11,166,205,205,231,11,205, - 146,146,108,11,112,206,64,179,112,179, - 146,89,11,194,128,112,158,112,223,11, - 206,194,108,194,233,146,11,194,66,128, - 59,30,108,146,43,179,128,223,128,102, - 87,194,194,112,166,11,166,146,233,168, - 166,45,43,194,112,43,102,43,146,11, - 82,82,106,30,11,233,146,194,39,146, - 175,166,194,233,146,43,166,194,39,166 + 11,11,11,11,135,66,123,64,64,11, + 136,168,11,11,11,11,19,183,11,11, + 11,153,168,108,108,174,108,226,108,11, + 11,108,226,168,10,11,11,26,216,108, + 59,187,11,10,168,10,90,26,151,70, + 11,187,110,108,168,90,95,95,95,95, + 11,11,24,11,36,219,108,108,51,89, + 51,108,115,183,89,19,187,55,153,138, + 10,11,19,187,11,102,11,112,88,19, + 187,187,187,187,163,163,108,36,44,168, + 121,11,11,53,208,219,51,51,84,19, + 115,44,11,11,19,22,22,11,95,153, + 11,11,108,26,11,11,64,64,168,102, + 135,112,187,19,187,187,36,90,11,136, + 108,131,104,11,11,224,226,44,26,115, + 163,26,70,10,11,36,26,26,108,10, + 90,187,110,177,108,11,182,108,226,108, + 31,179,121,135,168,11,26,11,62,127, + 129,183,187,70,10,108,112,36,121,112, + 182,31,117,80,104,179,90,26,26,136, + 38,187,108,11,11,72,72,121,117,77, + 11,226,11,226,11,108,38,112,203,108, + 11,11,108,189,80,183,163,183,185,36, + 11,203,209,11,10,53,112,216,216,98, + 92,11,26,11,121,11,11,11,93,11, + 10,119,121,121,108,10,12,11,187,187, + 108,108,11,131,11,108,11,11,11,136, + 11,46,11,11,11,93,215,215,229,11, + 215,121,121,104,11,108,216,38,203,108, + 203,121,100,11,187,142,108,136,108,226, + 11,216,187,104,187,231,121,11,187,98, + 142,74,26,104,121,44,203,142,226,142, + 10,72,187,187,108,93,11,93,121,231, + 95,93,46,44,187,108,44,10,44,121, + 11,12,12,102,26,11,231,121,187,40, + 121,181,93,187,231,121,44,93,187,40, + 93 }; }; public final static char nasb[] = Nasb.nasb; @@ -2093,30 +2200,30 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 2,12,7,5,150,148,122,147,146,1, - 0,5,1,7,139,0,114,0,5,12, - 7,1,2,0,3,2,0,49,4,5, - 7,1,12,0,66,138,137,0,12,1, - 7,5,65,0,116,0,156,0,4,177, - 0,173,0,61,0,4,189,0,4,28, - 0,157,0,126,0,158,0,5,163,131, - 0,69,0,178,0,12,1,7,5,80, - 0,56,0,136,66,0,113,0,180,0, - 153,0,167,5,166,0,140,0,4,65, - 0,43,0,124,0,101,100,64,5,1, - 7,4,0,186,0,5,131,187,0,100, - 101,4,0,136,1,66,0,108,4,46, - 70,0,2,5,1,47,0,4,172,0, - 4,103,0,4,38,39,0,101,100,5, - 55,0,1,64,7,4,96,5,0,4, - 46,38,179,0,65,46,71,4,38,0, - 101,100,64,55,5,7,1,0,4,46, - 70,81,0,4,49,169,0,4,49,38, - 0,49,4,34,0,1,5,122,118,119, - 120,12,93,0,117,4,49,0,39,5, - 1,7,4,155,0,4,46,70,67,5, - 130,0,1,62,0,5,96,23,4,0, - 46,50,4,106,0 + 3,13,8,151,149,123,148,147,6,1, + 0,57,0,6,2,8,140,0,4,3, + 0,141,0,50,5,6,8,2,13,0, + 157,0,5,190,0,62,0,127,0,13, + 2,8,6,66,0,117,0,137,67,0, + 115,0,154,0,179,0,174,0,5,178, + 0,187,0,70,0,13,2,8,6,81, + 0,114,0,5,29,0,5,66,0,168, + 6,167,0,6,132,188,0,137,2,67, + 0,66,47,72,5,39,0,159,0,181, + 0,102,101,65,6,2,8,5,0,6, + 97,24,5,0,125,0,158,0,5,39, + 40,0,101,102,5,0,6,164,132,0, + 2,65,8,5,97,6,0,67,139,138, + 0,109,5,47,71,0,5,50,170,0, + 102,101,6,56,0,5,173,0,5,50, + 39,0,5,104,0,3,6,1,48,0, + 6,13,8,2,3,0,102,101,65,56, + 6,8,2,0,50,5,35,0,5,47, + 39,180,0,1,6,123,119,120,121,13, + 94,0,5,47,71,82,0,40,6,2, + 8,5,156,0,118,5,50,0,5,47, + 71,68,6,131,0,1,63,0,47,51, + 5,107,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -2124,19 +2231,19 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TerminalIndex { public final static char terminalIndex[] = {0, - 115,2,32,14,11,81,10,102,12,13, - 8,9,50,54,62,70,76,77,88,89, - 104,107,109,114,15,57,63,69,86,90, - 92,96,99,101,111,112,113,46,97,60, - 80,68,122,123,106,56,95,108,49,66, - 72,75,78,85,91,100,20,55,1,3, - 65,93,103,105,79,21,48,45,34,31, - 121,120,98,67,110,51,52,58,59,61, - 71,73,74,87,94,18,19,7,16,17, - 22,23,33,5,24,25,26,27,28,29, - 6,35,36,37,38,39,40,41,42,43, - 44,30,119,124,4,53,82,83,84,64, - 116,117,118 + 115,116,2,32,14,11,81,10,102,12, + 13,117,8,9,50,54,62,70,76,77, + 88,89,104,107,109,114,15,57,63,69, + 86,90,92,96,99,101,111,112,113,46, + 97,60,80,68,122,123,106,56,108,49, + 66,72,75,78,85,91,95,100,20,55, + 3,65,93,103,105,1,79,48,21,45, + 34,121,31,98,120,110,51,52,58,59, + 61,67,71,73,74,87,94,18,19,7, + 16,17,22,23,33,5,24,25,26,27, + 28,29,6,35,36,37,38,39,40,41, + 42,43,44,30,119,124,4,53,82,83, + 84,64,118 }; }; public final static char terminalIndex[] = TerminalIndex.terminalIndex; @@ -2144,27 +2251,26 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 135,137,238,0,0,136,234,134,0,133, - 0,145,0,132,0,0,144,149,0,0, - 150,159,180,160,161,162,163,152,164,165, - 138,166,167,127,168,169,0,131,129,170, - 0,197,143,0,140,0,139,0,153,177, - 0,0,0,0,156,173,0,204,0,147, - 187,0,201,205,128,0,178,0,206,0, - 172,0,0,0,0,0,0,0,176,126, - 130,148,0,0,0,0,0,0,0,0, - 0,0,186,0,0,202,212,158,208,209, - 210,0,0,0,0,0,207,179,0,0, - 0,211,0,0,0,241,175,189,190,191, - 192,193,195,196,199,0,214,217,219,220, - 0,237,0,240,0,0,141,142,146,0, - 155,0,171,0,181,182,183,184,185,188, - 0,194,0,198,203,0,215,216,0,221, - 224,226,228,0,231,232,233,0,235,236, - 239,125,0,151,0,0,154,157,174,200, - 213,218,0,222,223,225,227,229,230,242, - 243,0,0,0,0,0,0,0,0,0, - 0,0 + 131,136,138,239,0,0,137,235,135,0, + 134,0,146,0,133,0,0,145,150,0, + 0,151,160,181,161,162,163,164,153,165, + 166,139,167,168,127,169,170,0,132,129, + 171,0,198,144,0,141,0,140,0,154, + 178,0,0,0,0,157,174,0,205,0, + 148,188,0,202,206,128,0,179,0,207, + 0,173,0,0,0,0,0,0,0,177, + 126,130,149,0,0,0,0,0,0,0, + 0,0,0,187,0,0,203,213,159,209, + 210,211,0,0,0,0,0,208,180,0, + 0,0,212,0,0,0,242,176,190,191, + 192,193,194,196,197,200,0,215,218,220, + 221,0,238,0,241,0,0,142,143,147, + 0,156,0,172,0,182,183,184,185,186, + 189,0,195,0,199,204,0,216,217,0, + 222,225,227,229,0,232,233,234,0,236, + 237,240,125,0,152,0,0,155,158,175, + 201,214,219,0,223,224,226,228,230,231, + 243,244,0,0,0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2210,18 +2316,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 67,17,17,75,17,17,17,17,75,163, - 85,48,92,91,120,68,53,75,74,19, - 67,17,75,2,6,160,118,67,90,120, - 119,121,54,48,133,139,75,17,17,133, - 102,57,135,78,166,160,128,119,119,121, - 50,56,178,18,17,17,17,17,17,11, - 116,160,128,75,74,74,37,139,74,19, - 17,17,17,17,102,75,167,163,180,100, - 107,59,69,58,155,79,121,76,72,142, - 178,176,16,160,121,117,139,129,129,55, - 139,75,139,67,160,73,137,47,137,47, - 166,117,118,67,67,57 + 68,18,18,76,18,18,18,18,76,164, + 86,49,93,92,121,69,54,76,75,20, + 68,18,76,3,7,161,119,68,91,121, + 120,122,55,49,134,140,76,18,18,134, + 103,58,136,79,167,161,129,120,120,122, + 51,57,179,19,18,18,18,18,18,12, + 117,161,129,76,75,75,38,140,75,20, + 18,18,18,18,103,76,168,164,181,101, + 108,60,70,59,156,80,122,77,73,143, + 179,177,17,161,122,118,140,130,130,56, + 140,76,140,68,161,74,138,48,138,48, + 167,118,119,68,68,58 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2229,18 +2335,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLa { public final static byte scopeLa[] = { - 116,72,72,72,72,72,72,72,72,1, - 71,43,71,71,71,66,1,72,120,72, - 60,2,43,66,66,43,71,60,71,71, - 1,1,1,1,66,3,43,1,1,66, - 72,72,72,116,72,43,71,1,1,1, - 43,71,113,72,72,72,72,72,113,1, - 72,1,68,72,72,72,70,3,72,2, - 66,66,66,66,72,43,1,1,72,72, - 2,1,113,72,1,1,1,43,70,72, - 113,72,72,1,47,69,4,1,1,5, - 1,75,47,73,43,43,3,3,3,3, - 2,1,60,1,1,2 + 118,75,75,75,75,75,75,75,75,1, + 72,45,72,72,72,69,1,75,122,75, + 61,3,45,69,69,45,72,61,72,72, + 1,1,1,1,69,4,45,1,1,69, + 75,75,75,118,75,45,72,1,1,1, + 45,72,115,75,75,75,75,75,115,1, + 75,1,70,75,75,75,73,4,75,3, + 69,69,69,69,75,45,1,1,75,75, + 3,1,115,75,1,1,1,45,73,75, + 115,75,75,1,57,71,5,1,1,6, + 1,76,57,74,45,45,4,4,4,4, + 3,1,61,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2267,70 +2373,70 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, - 314,2,39,0,127,0,313,2,116,0, - 127,173,0,127,179,73,0,216,0,291, - 127,57,126,0,21,0,293,127,57,47, - 0,21,55,0,34,132,0,21,55,0, - 0,293,127,57,47,193,0,21,130,0, - 291,127,57,130,0,185,128,0,138,0, - 226,2,290,0,290,0,2,0,127,0, - 185,128,254,253,254,0,131,189,170,128, - 0,129,0,189,170,128,0,134,129,0, - 169,0,307,127,169,0,127,169,0,222, - 129,0,170,245,0,137,0,0,0,135, - 0,0,0,306,127,60,252,0,128,0, - 252,0,3,0,0,128,0,305,127,60, - 0,45,128,0,151,2,0,127,280,279, - 127,73,278,169,0,279,127,73,278,169, - 0,215,0,216,0,278,169,0,98,0, - 0,215,0,216,0,203,98,0,0,215, - 0,216,0,279,127,278,169,0,215,0, - 203,0,0,215,0,233,127,2,0,127, - 0,0,0,0,0,233,127,2,223,0, - 230,2,0,219,127,0,208,0,148,0, - 170,128,0,11,0,0,0,221,59,0, - 126,0,233,127,2,181,0,181,0,2, - 0,0,127,0,0,0,0,0,202,2, - 0,201,0,232,127,60,24,42,0,185, - 128,65,64,0,143,129,0,131,185,128, - 276,64,0,185,128,276,64,0,185,128, - 69,1,65,0,232,127,60,65,0,232, - 127,60,165,65,0,232,127,60,124,65, - 0,274,127,60,1,61,0,274,127,60, - 61,0,185,128,61,0,135,0,189,185, - 128,245,0,137,0,185,128,245,0,189, - 170,128,8,0,170,128,8,0,95,137, - 0,267,127,169,0,161,84,0,229,162, - 229,173,2,81,0,127,172,0,229,173, - 2,81,0,129,0,127,172,0,229,162, - 229,162,229,2,81,0,229,162,229,2, - 81,0,229,2,81,0,129,0,129,0, - 127,172,0,161,2,75,194,80,0,127, - 129,0,194,80,0,110,2,131,127,129, - 0,240,2,75,0,202,172,0,34,170, - 0,172,0,176,34,170,0,240,2,85, - 0,194,157,240,2,83,0,64,172,0, - 240,2,83,0,127,172,64,172,0,302, - 127,60,0,161,0,221,77,0,31,0, - 161,112,159,0,31,170,0,226,2,0, - 221,59,301,0,161,59,0,183,2,296, - 41,128,0,127,0,0,296,41,128,0, - 2,147,127,0,0,183,2,30,0,14, - 148,0,125,47,170,128,0,32,14,148, - 0,95,137,32,14,148,0,205,185,128, - 0,148,32,14,148,0,183,2,34,0, - 161,2,34,0,161,2,66,183,57,26, - 0,183,57,26,0,21,2,131,127,0, - 161,2,66,183,57,29,0,183,57,29, - 0,161,2,66,183,57,31,0,183,57, - 31,0,161,2,66,183,57,27,0,183, - 57,27,0,226,2,125,189,170,128,8, - 0,125,189,170,128,8,0,137,2,0, - 127,0,226,2,124,259,170,128,8,0, - 259,170,128,8,0,135,2,0,127,0, - 226,2,135,0,226,2,140,0,161,59, - 140,0,261,0,32,0,32,141,0,168, - 0,134,0,161,2,0 + 315,3,41,0,127,0,314,3,118,0, + 127,174,0,128,180,74,0,217,0,292, + 128,59,127,0,21,0,294,128,59,57, + 0,21,55,0,34,133,0,21,55,0, + 0,294,128,59,57,194,0,21,130,0, + 292,128,59,131,0,186,129,0,139,0, + 227,3,291,0,291,0,2,0,127,0, + 186,129,255,254,255,0,132,190,171,129, + 0,129,0,190,171,129,0,135,129,0, + 170,0,308,128,170,0,128,170,0,223, + 129,0,171,246,0,138,0,0,0,136, + 0,0,0,307,128,61,253,0,128,0, + 253,0,3,0,0,128,0,306,128,61, + 0,45,128,0,152,3,0,128,281,280, + 128,74,279,170,0,280,128,74,279,170, + 0,216,0,217,0,279,170,0,98,0, + 0,216,0,217,0,204,98,0,0,216, + 0,217,0,280,128,279,170,0,216,0, + 204,0,0,216,0,234,128,3,0,127, + 0,0,0,0,0,234,128,3,224,0, + 231,3,0,220,128,0,209,0,149,0, + 171,129,0,11,0,0,0,222,66,0, + 126,0,234,128,3,182,0,182,0,2, + 0,0,127,0,0,0,0,0,203,3, + 0,202,0,233,128,61,26,44,0,186, + 129,67,65,0,144,129,0,132,186,129, + 277,65,0,186,129,277,65,0,186,129, + 71,124,67,0,233,128,61,67,0,233, + 128,61,166,67,0,233,128,61,125,67, + 0,275,128,61,124,62,0,275,128,61, + 62,0,186,129,62,0,136,0,190,186, + 129,246,0,138,0,186,129,246,0,190, + 171,129,9,0,171,129,9,0,95,138, + 0,268,128,170,0,162,86,0,230,163, + 230,174,3,83,0,127,173,0,230,174, + 3,83,0,129,0,127,173,0,230,163, + 230,163,230,3,83,0,230,163,230,3, + 83,0,230,3,83,0,129,0,129,0, + 127,173,0,162,3,76,195,81,0,127, + 129,0,195,81,0,110,2,132,127,129, + 0,241,3,76,0,203,173,0,34,171, + 0,173,0,177,34,171,0,241,3,87, + 0,195,158,241,3,85,0,64,173,0, + 241,3,85,0,127,173,64,173,0,303, + 128,61,0,162,0,222,78,0,31,0, + 162,114,160,0,31,171,0,227,3,0, + 222,66,302,0,162,66,0,184,3,297, + 43,129,0,127,0,0,297,43,129,0, + 2,148,127,0,0,184,3,32,0,14, + 149,0,126,57,171,129,0,32,14,149, + 0,95,138,32,14,149,0,206,186,129, + 0,149,32,14,149,0,184,3,36,0, + 162,3,36,0,162,3,69,184,59,28, + 0,184,59,28,0,21,2,132,127,0, + 162,3,69,184,59,31,0,184,59,31, + 0,162,3,69,184,59,33,0,184,59, + 33,0,162,3,69,184,59,29,0,184, + 59,29,0,227,3,126,190,171,129,9, + 0,126,190,171,129,9,0,138,2,0, + 127,0,227,3,125,260,171,129,9,0, + 260,171,129,9,0,136,2,0,127,0, + 227,3,136,0,227,3,141,0,162,66, + 141,0,262,0,32,0,32,142,0,169, + 0,135,0,162,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2338,38 +2444,38 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 1925,0,4845,4814,4386,0,2442,1365,928,1234, - 0,3967,3926,3885,3844,3803,3762,4761,3566,3525, - 3150,3109,2937,2872,3703,2807,2742,3632,3606,3466, - 3407,0,2310,2309,1154,0,2153,2150,0,3967, - 3926,3885,2046,1819,3844,3803,3762,3566,1808,3525, - 3150,3109,2005,1047,0,3531,3303,2839,0,2714, - 2298,0,1276,2654,0,3414,4479,0,3414,4236, - 3057,3385,4479,2992,4397,4462,4271,3235,4373,4438, - 3072,2699,2616,0,1694,0,2937,2872,3703,2807, - 2742,3632,3606,3466,3407,2881,4500,0,2881,4500, - 2937,2872,3703,2807,2742,3632,3606,3466,3407,3967, - 3926,3885,3844,3803,3762,3566,3525,3150,3109,0, - 783,722,0,3235,4236,3777,3057,3385,4754,3072, - 3706,3031,2824,4724,3042,718,3153,3032,0,2199, - 2132,1449,1415,3385,3042,2992,2699,2616,2845,2682, - 0,663,576,0,970,0,4222,533,2301,0, - 4701,4695,4674,4668,4647,4620,4611,4584,4749,3942, - 3860,3778,4563,4557,3543,4530,4509,3479,2771,3275, - 2863,0,4701,4695,3402,2425,4674,4668,4766,2063, - 4647,4620,4426,4305,4611,2057,4584,2053,1973,4749, - 1963,1959,3350,1056,3942,3013,3860,3174,2665,3778, - 4563,4557,875,3543,656,4530,4509,1969,3479,4222, - 2771,2301,3275,2863,1828,865,616,1104,729,2992, - 4397,4462,4271,3235,3414,4236,4373,3057,3385,4438, - 3072,2699,4479,2616,806,790,663,576,4249,2165, - 2203,2270,2237,2480,2452,2328,2719,2628,2589,2562, - 2535,2508,3356,3327,3252,2358,590,4200,4178,4156, - 4134,4112,4090,4068,4046,3727,629,2397,4352,1841, - 2109,2071,2015,1977,1112,1060,1921,1883,1013,821, - 1785,1747,745,684,533,1705,1663,1621,1579,1537, - 1495,1453,1411,1369,1327,1285,1242,1200,966,924, - 882,1156,0 + 2671,0,5001,4998,4146,0,3066,3009,952,2634, + 0,4345,4304,4263,4222,4181,4140,4995,3918,3877, + 2433,3435,3192,3127,4081,3062,2986,4024,3998,3807, + 3781,0,1897,1252,866,0,2224,2221,0,4345, + 4304,4263,3444,2558,4222,4181,4140,3918,558,3877, + 2433,3435,3129,2834,0,4994,4362,4715,0,1994, + 677,0,2921,2264,0,4601,4004,0,4601,4535, + 4514,3402,4004,2858,4426,4469,3976,2967,4403,4439, + 2939,2777,2694,0,1109,0,3192,3127,4081,3062, + 2986,4024,3998,3807,3781,4642,4615,0,4642,4615, + 3192,3127,4081,3062,2986,4024,3998,3807,3781,4345, + 4304,4263,4222,4181,4140,3918,3877,2433,3435,0, + 3002,2981,0,2967,4535,3094,4514,3402,2931,2939, + 2073,3745,3424,2742,3005,2743,1979,1842,0,1560, + 1517,1509,1474,3402,3005,2858,2777,2694,2980,2914, + 0,659,578,0,1152,0,3725,534,2372,0, + 4890,4869,4836,4815,4782,4761,4726,4704,4923,4281, + 4199,3795,4653,4631,3451,4582,3746,3223,3156,3425, + 3248,0,4890,4869,2439,2130,4836,4815,4989,2036, + 4782,4761,4980,4973,4726,2767,4704,2734,2447,4923, + 2216,2122,4956,2028,4281,4940,4199,4905,4555,3795, + 4653,4631,1072,3451,672,4582,3746,1899,3223,3725, + 3156,2372,3425,3248,1008,996,793,1063,731,2858, + 4426,4469,3976,2967,4601,4535,4403,4514,3402,4439, + 2939,2777,4004,2694,868,804,659,578,3752,2232, + 2271,2340,2306,2553,2524,2399,2803,2707,2666,2638, + 2610,2582,3378,3354,3330,2886,591,3702,3679,3656, + 3633,3610,3584,3561,3538,3515,3303,928,631,1907, + 2177,2138,2083,2044,1165,1120,1989,1950,1077,823, + 1854,1813,748,686,534,1770,1727,1684,1641,1598, + 1555,1512,1469,1426,1383,1340,1297,1253,1020,953, + 885,1208,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2377,58 +2483,59 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface InSymb { public final static char inSymb[] = {0, - 0,295,127,44,266,34,26,29,31,27, - 8,135,124,126,6,130,3,2,128,30, - 25,4,10,9,5,7,12,11,140,145, - 148,147,150,149,153,152,156,155,158,39, - 159,68,2,57,57,57,57,128,2,57, - 172,127,59,2,40,41,57,6,124,161, - 40,41,170,168,1,124,2,125,124,101, - 115,2,59,88,94,10,9,90,89,5, - 92,91,66,57,86,87,7,96,95,98, - 97,99,111,110,109,108,107,106,105,104, - 103,102,69,112,100,183,161,172,127,183, - 183,183,183,170,226,127,127,268,269,252, - 270,245,271,61,272,273,1,124,8,128, - 59,59,127,59,296,2,189,3,183,47, - 4,128,47,226,161,147,147,145,145,145, - 149,149,149,149,148,148,152,150,150,155, - 153,156,161,158,127,59,2,224,223,135, - 8,128,66,66,66,66,189,259,291,133, - 294,219,128,5,60,170,236,128,125,124, - 1,60,128,128,185,170,291,203,2,297, - 172,151,261,189,128,185,170,70,219,221, - 159,230,127,2,128,170,2,2,2,2, - 125,124,68,170,127,127,125,124,127,185, - 127,60,127,185,170,47,183,127,127,3, - 4,205,47,233,234,146,235,127,170,47, - 161,161,161,161,2,2,5,184,306,128, - 190,253,193,64,169,308,127,127,70,189, - 127,274,247,275,189,157,298,301,59,178, - 3,125,157,69,230,202,187,181,128,2, - 127,68,233,189,226,226,127,170,47,276, - 278,127,2,181,310,254,128,274,69,68, - 2,59,161,4,3,127,69,69,2,185, - 170,202,127,219,157,125,189,57,128,73, - 127,219,307,127,128,124,70,285,202,68, - 253,185,226,221,4,227,127,127,131,127, - 185,127,279,70,68,219,170,70,69,254, - 127,233,227,293,47,8,58,131,279,60, - 289,128,290,128,39,157,127,68,66,57, - 236,236,280,127,68,185,2,185,2,127, - 42,47,169,67,65,64,127,69,69,127, - 302,79,77,1,161,85,83,81,80,75, - 82,84,78,76,169,65,73,44,226,314, - 227,24,57,127,2,60,165,1,124,65, - 293,281,116,221,70,2,2,2,194,2, - 1,161,127,1,179,68,127,127,60,66, - 267,202,277,24,127,60,69,60,128,66, - 2,240,172,240,173,229,75,240,127,127, - 2,69,68,157,232,231,127,128,127,185, - 58,93,313,172,157,202,157,229,162,2, - 157,281,232,151,60,232,185,232,166,236, - 157,157,127,69,194,162,229,161,127,166, - 69,120,229,162,157,305,157,229,68,157 + 0,296,128,46,267,36,28,31,33,29, + 9,136,125,127,7,131,4,3,129,32, + 27,5,11,10,6,8,14,13,141,146, + 149,148,151,150,154,153,157,156,159,41, + 160,70,3,59,59,59,59,129,3,59, + 173,128,66,3,42,43,59,7,125,162, + 42,43,171,169,124,125,3,126,125,103, + 117,3,66,90,96,11,10,92,91,6, + 94,93,69,59,88,89,8,98,97,100, + 99,101,113,112,111,110,109,108,107,106, + 105,104,71,114,102,184,162,173,128,184, + 184,184,184,171,227,128,128,269,270,253, + 271,246,272,62,273,274,124,125,9,129, + 66,66,128,66,297,3,190,4,184,57, + 5,129,57,227,162,148,148,146,146,146, + 150,150,150,150,149,149,153,151,151,156, + 154,157,162,159,128,66,3,225,224,136, + 9,129,69,69,69,69,190,260,292,134, + 295,220,129,6,61,171,237,129,126,125, + 124,61,129,129,186,171,292,204,3,298, + 173,152,262,190,129,186,171,73,220,222, + 160,231,128,3,129,171,3,3,3,3, + 126,125,70,171,128,128,126,125,128,186, + 128,61,128,186,171,57,184,128,128,4, + 5,206,57,234,235,147,236,128,171,57, + 162,162,162,162,3,3,6,185,307,129, + 191,254,194,65,170,309,128,128,73,190, + 128,275,248,276,190,158,299,302,66,179, + 4,126,158,71,231,203,188,182,129,3, + 128,70,234,190,227,227,128,171,57,277, + 279,128,3,182,311,255,129,275,71,70, + 3,66,162,5,4,128,71,71,3,186, + 171,203,128,220,158,126,190,59,129,74, + 128,220,308,128,129,125,73,286,203,70, + 254,186,227,222,5,228,128,128,132,128, + 186,128,280,73,70,220,171,73,71,255, + 128,234,228,294,57,9,60,132,280,61, + 290,129,291,129,41,158,128,70,69,59, + 237,237,281,128,70,186,3,186,3,128, + 44,57,170,68,67,65,128,71,71,128, + 303,80,78,1,162,87,85,83,81,76, + 84,86,79,77,170,67,74,46,227,315, + 228,26,59,128,3,61,166,124,125,67, + 294,282,118,12,222,73,3,3,3,195, + 3,124,162,128,124,180,70,128,128,61, + 69,268,203,278,26,128,61,71,61,129, + 69,3,241,173,241,174,230,76,241,128, + 128,3,71,70,158,233,232,128,129,128, + 186,60,95,314,173,158,203,158,230,163, + 3,158,282,233,152,61,233,186,233,167, + 237,158,158,128,71,195,163,230,162,128, + 167,71,122,230,163,158,306,158,230,70, + 158 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2567,6 +2674,7 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "}", ";", "declaration", + "identifier_token", "expression", "id_expression", "qualified_or_unqualified_name", @@ -2692,7 +2800,7 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 44, + ERROR_SYMBOL = 46, SCOPE_UBOUND = 115, SCOPE_SIZE = 116, MAX_NAME_LENGTH = 37; @@ -2703,20 +2811,20 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 520, + NUM_STATES = 521, NT_OFFSET = 123, - LA_STATE_OFFSET = 5808, + LA_STATE_OFFSET = 6057, MAX_LA = 2147483647, - NUM_RULES = 532, - NUM_NONTERMINALS = 202, - NUM_SYMBOLS = 325, + NUM_RULES = 533, + NUM_NONTERMINALS = 199, + NUM_SYMBOLS = 322, SEGMENT_SIZE = 8192, - START_STATE = 2840, + START_STATE = 3058, IDENTIFIER_SYMBOL = 0, - EOFT_SYMBOL = 114, - EOLT_SYMBOL = 114, - ACCEPT_ACTION = 4964, - ERROR_ACTION = 5276; + EOFT_SYMBOL = 116, + EOLT_SYMBOL = 116, + ACCEPT_ACTION = 5167, + ERROR_ACTION = 5524; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java index 0d9dcd26a23..22f4ebc20bb 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParsersym.java @@ -15,133 +15,134 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPNoCastExpressionParsersym { public final static int - TK_asm = 67, - TK_auto = 49, - TK_bool = 13, - TK_break = 76, - TK_case = 77, - TK_catch = 116, - TK_char = 14, - TK_class = 58, - TK_const = 46, - TK_const_cast = 26, - TK_continue = 78, - TK_default = 79, - TK_delete = 40, - TK_do = 80, - TK_double = 15, - TK_dynamic_cast = 27, - TK_else = 120, - TK_enum = 61, - TK_explicit = 50, - TK_export = 74, - TK_extern = 42, - TK_false = 28, - TK_float = 16, - TK_for = 81, - TK_friend = 51, - TK_goto = 82, - TK_if = 83, - TK_inline = 52, - TK_int = 17, - TK_long = 18, - TK_mutable = 53, - TK_namespace = 65, - TK_new = 41, - TK_operator = 6, - TK_private = 117, - TK_protected = 118, - TK_public = 119, - TK_register = 54, - TK_reinterpret_cast = 29, - TK_return = 84, - TK_short = 19, - TK_signed = 20, - TK_sizeof = 30, - TK_static = 55, - TK_static_cast = 31, - TK_struct = 62, - TK_switch = 85, - TK_template = 47, - TK_this = 32, - TK_throw = 39, - TK_try = 73, - TK_true = 33, - TK_typedef = 56, - TK_typeid = 34, - TK_typename = 8, - TK_union = 63, - TK_unsigned = 21, - TK_using = 64, - TK_virtual = 45, - TK_void = 22, - TK_volatile = 48, - TK_wchar_t = 23, - TK_while = 75, - TK_integer = 35, - TK_floating = 36, - TK_charconst = 37, - TK_stringlit = 24, + TK_asm = 68, + TK_auto = 50, + TK_bool = 15, + TK_break = 77, + TK_case = 78, + TK_catch = 118, + TK_char = 16, + TK_class = 60, + TK_const = 48, + TK_const_cast = 28, + TK_continue = 79, + TK_default = 80, + TK_delete = 42, + TK_do = 81, + TK_double = 17, + TK_dynamic_cast = 29, + TK_else = 122, + TK_enum = 62, + TK_explicit = 51, + TK_export = 82, + TK_extern = 44, + TK_false = 30, + TK_float = 18, + TK_for = 83, + TK_friend = 52, + TK_goto = 84, + TK_if = 85, + TK_inline = 53, + TK_int = 19, + TK_long = 20, + TK_mutable = 54, + TK_namespace = 67, + TK_new = 43, + TK_operator = 7, + TK_private = 119, + TK_protected = 120, + TK_public = 121, + TK_register = 55, + TK_reinterpret_cast = 31, + TK_return = 86, + TK_short = 21, + TK_signed = 22, + TK_sizeof = 32, + TK_static = 56, + TK_static_cast = 33, + TK_struct = 63, + TK_switch = 87, + TK_template = 57, + TK_this = 34, + TK_throw = 41, + TK_try = 74, + TK_true = 35, + TK_typedef = 58, + TK_typeid = 36, + TK_typename = 9, + TK_union = 64, + TK_unsigned = 23, + TK_using = 65, + TK_virtual = 47, + TK_void = 24, + TK_volatile = 49, + TK_wchar_t = 25, + TK_while = 76, + TK_integer = 37, + TK_floating = 38, + TK_charconst = 39, + TK_stringlit = 26, TK_identifier = 1, - TK_Completion = 121, - TK_EndOfCompletion = 122, + TK_Completion = 2, + TK_EndOfCompletion = 12, TK_Invalid = 123, - TK_LeftBracket = 59, - TK_LeftParen = 2, - TK_LeftBrace = 60, - TK_Dot = 115, - TK_DotStar = 94, - TK_Arrow = 101, - TK_ArrowStar = 88, - TK_PlusPlus = 11, - TK_MinusMinus = 12, - TK_And = 7, - TK_Star = 5, - TK_Plus = 9, - TK_Minus = 10, - TK_Tilde = 4, - TK_Bang = 25, - TK_Slash = 89, - TK_Percent = 90, - TK_RightShift = 86, - TK_LeftShift = 87, - TK_LT = 57, - TK_GT = 66, - TK_LE = 91, - TK_GE = 92, - TK_EQ = 95, - TK_NE = 96, - TK_Caret = 97, - TK_Or = 98, - TK_AndAnd = 99, - TK_OrOr = 100, - TK_Question = 112, - TK_Colon = 70, - TK_ColonColon = 3, - TK_DotDotDot = 93, - TK_Assign = 69, - TK_StarAssign = 102, - TK_SlashAssign = 103, - TK_PercentAssign = 104, - TK_PlusAssign = 105, - TK_MinusAssign = 106, - TK_RightShiftAssign = 107, - TK_LeftShiftAssign = 108, - TK_AndAssign = 109, - TK_CaretAssign = 110, - TK_OrAssign = 111, - TK_Comma = 68, - TK_zero = 38, - TK_RightBracket = 113, - TK_RightParen = 72, - TK_RightBrace = 71, - TK_SemiColon = 43, - TK_ERROR_TOKEN = 44, - TK_EOF_TOKEN = 114; + TK_LeftBracket = 66, + TK_LeftParen = 3, + TK_LeftBrace = 61, + TK_Dot = 117, + TK_DotStar = 96, + TK_Arrow = 103, + TK_ArrowStar = 90, + TK_PlusPlus = 13, + TK_MinusMinus = 14, + TK_And = 8, + TK_Star = 6, + TK_Plus = 10, + TK_Minus = 11, + TK_Tilde = 5, + TK_Bang = 27, + TK_Slash = 91, + TK_Percent = 92, + TK_RightShift = 88, + TK_LeftShift = 89, + TK_LT = 59, + TK_GT = 69, + TK_LE = 93, + TK_GE = 94, + TK_EQ = 97, + TK_NE = 98, + TK_Caret = 99, + TK_Or = 100, + TK_AndAnd = 101, + TK_OrOr = 102, + TK_Question = 114, + TK_Colon = 73, + TK_ColonColon = 4, + TK_DotDotDot = 95, + TK_Assign = 71, + TK_StarAssign = 104, + TK_SlashAssign = 105, + TK_PercentAssign = 106, + TK_PlusAssign = 107, + TK_MinusAssign = 108, + TK_RightShiftAssign = 109, + TK_LeftShiftAssign = 110, + TK_AndAssign = 111, + TK_CaretAssign = 112, + TK_OrAssign = 113, + TK_Comma = 70, + TK_zero = 40, + TK_RightBracket = 115, + TK_RightParen = 75, + TK_RightBrace = 72, + TK_SemiColon = 45, + TK_ERROR_TOKEN = 46, + TK_EOF_TOKEN = 116; public final static String orderedTerminalSymbols[] = { "", "identifier", + "Completion", "LeftParen", "ColonColon", "Tilde", @@ -151,6 +152,7 @@ public interface CPPNoCastExpressionParsersym { "typename", "Plus", "Minus", + "EndOfCompletion", "PlusPlus", "MinusMinus", "bool", @@ -187,7 +189,6 @@ public interface CPPNoCastExpressionParsersym { "ERROR_TOKEN", "virtual", "const", - "template", "volatile", "auto", "explicit", @@ -196,31 +197,32 @@ public interface CPPNoCastExpressionParsersym { "mutable", "register", "static", + "template", "typedef", "LT", "class", - "LeftBracket", "LeftBrace", "enum", "struct", "union", "using", + "LeftBracket", "namespace", - "GT", "asm", + "GT", "Comma", "Assign", - "Colon", "RightBrace", - "RightParen", + "Colon", "try", - "export", + "RightParen", "while", "break", "case", "continue", "default", "do", + "export", "for", "goto", "if", @@ -261,8 +263,6 @@ public interface CPPNoCastExpressionParsersym { "protected", "public", "else", - "Completion", - "EndOfCompletion", "Invalid" }; 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 92fa9e02a6c..bf56d609485 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 @@ -185,6 +185,7 @@ private void initActions(IASTTranslationUnit tu) { public void addToken(IToken token) { token.setKind(mapKind(token.getKind())); + //System.out.println("Token: " + token); super.addToken(token); } @@ -272,1780 +273,1773 @@ public CPPParser(String[] mapFrom) { // constructor } // - // Rule 4: <placeholder> ::= $Empty + // Rule 2: <empty> ::= $Empty // - case 4: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 5: <empty> ::= $Empty - // - case 5: { action.builder. + case 2: { action.builder. consumeEmpty(); break; } // - // Rule 10: translation_unit ::= external_declaration_list + // Rule 11: translation_unit ::= external_declaration_list // - case 10: { action.builder. + case 11: { action.builder. consumeTranslationUnit(); break; } // - // Rule 11: translation_unit ::= $Empty + // Rule 12: translation_unit ::= $Empty // - case 11: { action.builder. + case 12: { action.builder. consumeTranslationUnit(); break; } // - // Rule 15: external_declaration ::= ERROR_TOKEN + // Rule 16: external_declaration ::= ERROR_TOKEN // - case 15: { action.builder. + case 16: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 16: literal ::= integer + // Rule 19: literal ::= integer // - case 16: { action.builder. + case 19: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } // - // Rule 17: literal ::= 0 + // Rule 20: literal ::= 0 // - case 17: { action.builder. + case 20: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; } // - // Rule 18: literal ::= floating + // Rule 21: literal ::= floating // - case 18: { action.builder. + case 21: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; } // - // Rule 19: literal ::= charconst + // Rule 22: literal ::= charconst // - case 19: { action.builder. + case 22: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; } // - // Rule 20: literal ::= stringlit + // Rule 23: literal ::= stringlit // - case 20: { action.builder. + case 23: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; } // - // Rule 21: literal ::= true + // Rule 24: literal ::= true // - case 21: { action.builder. + case 24: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; } // - // Rule 22: literal ::= false + // Rule 25: literal ::= false // - case 22: { action.builder. + case 25: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; } // - // Rule 23: literal ::= this + // Rule 26: literal ::= this // - case 23: { action.builder. + case 26: { action.builder. consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; } // - // Rule 25: primary_expression ::= ( expression ) + // Rule 28: primary_expression ::= ( expression ) // - case 25: { action.builder. + case 28: { action.builder. consumeExpressionBracketed(); break; } // - // Rule 27: id_expression ::= qualified_or_unqualified_name + // Rule 30: id_expression ::= qualified_or_unqualified_name // - case 27: { action.builder. + case 30: { action.builder. consumeExpressionName(); break; } // - // Rule 34: unqualified_id_name ::= ~ class_name + // Rule 37: unqualified_id_name ::= ~ class_name // - case 34: { action.builder. + case 37: { action.builder. consumeDestructorName(); break; } // - // Rule 35: identifier_name ::= identifier + // Rule 38: identifier_name ::= identifier_token // - case 35: { action.builder. + case 38: { action.builder. consumeIdentifierName(); break; } // - // Rule 36: template_opt ::= template + // Rule 39: template_opt ::= template // - case 36: { action.builder. + case 39: { action.builder. consumePlaceHolder(); break; } // - // Rule 37: template_opt ::= $Empty + // Rule 40: template_opt ::= $Empty // - case 37: { action.builder. + case 40: { action.builder. consumeEmpty(); break; } // - // Rule 38: dcolon_opt ::= :: + // Rule 41: dcolon_opt ::= :: // - case 38: { action.builder. + case 41: { action.builder. consumePlaceHolder(); break; } // - // Rule 39: dcolon_opt ::= $Empty + // Rule 42: dcolon_opt ::= $Empty // - case 39: { action.builder. + case 42: { action.builder. consumeEmpty(); break; } // - // Rule 40: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // Rule 43: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name // - case 40: { action.builder. + case 43: { action.builder. consumeQualifiedId(true); break; } // - // Rule 41: qualified_id_name ::= :: identifier_name + // Rule 44: qualified_id_name ::= :: identifier_name // - case 41: { action.builder. + case 44: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 42: qualified_id_name ::= :: operator_function_id_name + // Rule 45: qualified_id_name ::= :: operator_function_id_name // - case 42: { action.builder. + case 45: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 43: qualified_id_name ::= :: template_id_name + // Rule 46: qualified_id_name ::= :: template_id_name // - case 43: { action.builder. + case 46: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 44: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 47: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // - case 44: { action.builder. + case 47: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 45: nested_name_specifier ::= class_or_namespace_name :: + // Rule 48: nested_name_specifier ::= class_or_namespace_name :: // - case 45: { action.builder. + case 48: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 46: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 49: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // - case 46: { action.builder. + case 49: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 47: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: + // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // - case 47: { action.builder. + case 50: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 48: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // Rule 51: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name // - case 48: { action.builder. + case 51: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 50: nested_name_specifier_opt ::= $Empty + // Rule 53: nested_name_specifier_opt ::= $Empty // - case 50: { action.builder. + case 53: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 54: postfix_expression ::= postfix_expression [ expression ] + // Rule 57: postfix_expression ::= postfix_expression [ expression ] // - case 54: { action.builder. + case 57: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 55: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 55: { action.builder. + case 58: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 56: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 56: { action.builder. + case 59: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 57: postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt ) + // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt ) // - case 57: { action.builder. + case 60: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 58: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) // - case 58: { action.builder. + case 61: { action.builder. consumeExpressionTypeName(); break; } // - // Rule 59: postfix_expression ::= postfix_expression . qualified_or_unqualified_name + // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // - case 59: { action.builder. + case 62: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 60: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 60: { action.builder. + case 63: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 61: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 61: { action.builder. + case 64: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 62: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 62: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 63: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 63: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 64: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 64: { action.builder. + case 67: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 65: postfix_expression ::= postfix_expression ++ + // Rule 68: postfix_expression ::= postfix_expression ++ // - case 65: { action.builder. + case 68: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 66: postfix_expression ::= postfix_expression -- + // Rule 69: postfix_expression ::= postfix_expression -- // - case 66: { action.builder. + case 69: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 67: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 67: { action.builder. + case 70: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 68: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) // - case 68: { action.builder. + case 71: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 69: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 69: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 70: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) // - case 70: { action.builder. + case 73: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 71: postfix_expression ::= typeid ( expression ) + // Rule 74: postfix_expression ::= typeid ( expression ) // - case 71: { action.builder. + case 74: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 72: postfix_expression ::= typeid ( type_id ) + // Rule 75: postfix_expression ::= typeid ( type_id ) // - case 72: { action.builder. + case 75: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 73: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: ~ type_name + // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: ~ type_name // - case 73: { action.builder. + case 76: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 74: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: ~ type_name + // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: ~ type_name // - case 74: { action.builder. + case 77: { action.builder. consumePsudoDestructorName(true); break; } // - // Rule 75: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt ~ type_name + // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt ~ type_name // - case 75: { action.builder. + case 78: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 79: unary_expression ::= ++ cast_expression + // Rule 82: unary_expression ::= ++ cast_expression // - case 79: { action.builder. + case 82: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 80: unary_expression ::= -- cast_expression + // Rule 83: unary_expression ::= -- cast_expression // - case 80: { action.builder. + case 83: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 81: unary_expression ::= & cast_expression + // Rule 84: unary_expression ::= & cast_expression // - case 81: { action.builder. + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 82: unary_expression ::= * cast_expression + // Rule 85: unary_expression ::= * cast_expression // - case 82: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 83: unary_expression ::= + cast_expression + // Rule 86: unary_expression ::= + cast_expression // - case 83: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 84: unary_expression ::= - cast_expression + // Rule 87: unary_expression ::= - cast_expression // - case 84: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 85: unary_expression ::= ~ cast_expression + // Rule 88: unary_expression ::= ~ cast_expression // - case 85: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 86: unary_expression ::= ! cast_expression + // Rule 89: unary_expression ::= ! cast_expression // - case 86: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 87: unary_expression ::= sizeof unary_expression + // Rule 90: unary_expression ::= sizeof unary_expression // - case 87: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 88: unary_expression ::= sizeof ( type_id ) + // Rule 91: unary_expression ::= sizeof ( type_id ) // - case 88: { action.builder. + case 91: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } // - // Rule 89: new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt + // Rule 92: new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt // - case 89: { action.builder. + case 92: { action.builder. consumeExpressionNew(true); break; } // - // Rule 90: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_initializer_opt + // Rule 93: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_initializer_opt // - case 90: { action.builder. + case 93: { action.builder. consumeExpressionNew(false); break; } // - // Rule 93: new_placement_opt ::= $Empty + // Rule 96: new_placement_opt ::= $Empty // - case 93: { action.builder. + case 96: { action.builder. consumeEmpty(); break; } // - // Rule 94: new_type_id ::= type_specifier_seq + // Rule 97: new_type_id ::= type_specifier_seq // - case 94: { action.builder. + case 97: { action.builder. consumeTypeId(false); break; } // - // Rule 95: new_type_id ::= type_specifier_seq new_declarator + // Rule 98: new_type_id ::= type_specifier_seq new_declarator // - case 95: { action.builder. + case 98: { action.builder. consumeTypeId(true); break; } // - // Rule 96: new_declarator ::= <openscope-ast> new_pointer_operators + // Rule 99: new_declarator ::= <openscope-ast> new_pointer_operators // - case 96: { action.builder. + case 99: { action.builder. consumeNewDeclarator(); break; } // - // Rule 105: new_initializer_opt ::= $Empty + // Rule 108: new_initializer_opt ::= $Empty // - case 105: { action.builder. + case 108: { action.builder. consumeEmpty(); break; } // - // Rule 106: delete_expression ::= dcolon_opt delete cast_expression + // Rule 109: delete_expression ::= dcolon_opt delete cast_expression // - case 106: { action.builder. + case 109: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 107: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 110: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 107: { action.builder. + case 110: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 109: cast_expression ::= ( type_id ) cast_expression + // Rule 112: cast_expression ::= ( type_id ) cast_expression // - case 109: { action.builder. + case 112: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 111: pm_expression ::= pm_expression .* cast_expression + // Rule 114: pm_expression ::= pm_expression .* cast_expression // - case 111: { action.builder. + case 114: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 112: pm_expression ::= pm_expression ->* cast_expression + // Rule 115: pm_expression ::= pm_expression ->* cast_expression // - case 112: { action.builder. + case 115: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 114: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 117: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 114: { action.builder. + case 117: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 115: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 118: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 115: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 116: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 119: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 116: { action.builder. + case 119: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 118: additive_expression ::= additive_expression + multiplicative_expression + // Rule 121: additive_expression ::= additive_expression + multiplicative_expression // - case 118: { action.builder. + case 121: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 119: additive_expression ::= additive_expression - multiplicative_expression + // Rule 122: additive_expression ::= additive_expression - multiplicative_expression // - case 119: { action.builder. + case 122: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 121: shift_expression ::= shift_expression << additive_expression + // Rule 124: shift_expression ::= shift_expression << additive_expression // - case 121: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 122: shift_expression ::= shift_expression >> additive_expression + // Rule 125: shift_expression ::= shift_expression >> additive_expression // - case 122: { action.builder. + case 125: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 124: relational_expression ::= relational_expression < shift_expression + // Rule 127: relational_expression ::= relational_expression < shift_expression // - case 124: { action.builder. + case 127: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 125: relational_expression ::= relational_expression > shift_expression + // Rule 128: relational_expression ::= relational_expression > shift_expression // - case 125: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 126: relational_expression ::= relational_expression <= shift_expression + // Rule 129: relational_expression ::= relational_expression <= shift_expression // - case 126: { action.builder. + case 129: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 127: relational_expression ::= relational_expression >= shift_expression + // Rule 130: relational_expression ::= relational_expression >= shift_expression // - case 127: { action.builder. + case 130: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 129: equality_expression ::= equality_expression == relational_expression + // Rule 132: equality_expression ::= equality_expression == relational_expression // - case 129: { action.builder. + case 132: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 130: equality_expression ::= equality_expression != relational_expression + // Rule 133: equality_expression ::= equality_expression != relational_expression // - case 130: { action.builder. + case 133: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 132: and_expression ::= and_expression & equality_expression + // Rule 135: and_expression ::= and_expression & equality_expression // - case 132: { action.builder. + case 135: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 134: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 137: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 134: { action.builder. + case 137: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 136: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 139: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 136: { action.builder. + case 139: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 138: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 141: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 138: { action.builder. + case 141: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 140: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 143: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 140: { action.builder. + case 143: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 142: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 145: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 142: { action.builder. + case 145: { action.builder. consumeExpressionConditional(); break; } // |