From dd2b180f1e6cdd10cf8590e48f7f8ff821f839f8 Mon Sep 17 00:00:00 2001 From: Mike Kucera Date: Wed, 7 Jan 2009 16:08:35 +0000 Subject: [PATCH] several fixes to parsing of declarations in LR C++ parser --- .../cdt/core/parser/util/ASTPrinter.java | 387 +- .../grammar/cpp/CPPGrammar.g | 36 +- .../dom/lrparser/BaseExtensibleLanguage.java | 11 +- .../lrparser/action/BuildASTParserAction.java | 17 +- .../action/cpp/CPPASTAmbiguousDeclarator.java | 101 - .../action/cpp/CPPBuildASTParserAction.java | 232 +- .../dom/lrparser/cpp/CPPExpressionParser.java | 1331 +++--- .../lrparser/cpp/CPPExpressionParserprs.java | 3833 ++++++++-------- .../lrparser/cpp/CPPExpressionParsersym.java | 116 +- .../cpp/CPPNoCastExpressionParser.java | 1327 +++--- .../cpp/CPPNoCastExpressionParserprs.java | 3934 ++++++++-------- .../cpp/CPPNoCastExpressionParsersym.java | 116 +- .../cpp/CPPNoFunctionDeclaratorParser.java | 1327 +++--- .../cpp/CPPNoFunctionDeclaratorParserprs.java | 3980 ++++++++-------- .../cpp/CPPNoFunctionDeclaratorParsersym.java | 124 +- .../core/dom/lrparser/cpp/CPPParser.java | 1327 +++--- .../core/dom/lrparser/cpp/CPPParserprs.java | 4015 ++++++++--------- .../core/dom/lrparser/cpp/CPPParsersym.java | 110 +- .../cpp/CPPSizeofExpressionParser.java | 1323 +++--- .../cpp/CPPSizeofExpressionParserprs.java | 3939 ++++++++-------- .../cpp/CPPSizeofExpressionParsersym.java | 116 +- .../cpp/CPPTemplateTypeParameterParser.java | 1331 +++--- .../CPPTemplateTypeParameterParserprs.java | 3909 ++++++++-------- .../CPPTemplateTypeParameterParsersym.java | 104 +- 24 files changed, 16339 insertions(+), 16707 deletions(-) delete mode 100644 lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPASTAmbiguousDeclarator.java diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/ASTPrinter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/ASTPrinter.java index 8f013b6c7f5..b765ea999f0 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/ASTPrinter.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/ASTPrinter.java @@ -12,46 +12,26 @@ package org.eclipse.cdt.core.parser.util; import java.io.PrintStream; -import org.eclipse.cdt.core.dom.ast.ASTVisitor; import org.eclipse.cdt.core.dom.ast.DOMException; -import org.eclipse.cdt.core.dom.ast.IASTArrayDeclarator; -import org.eclipse.cdt.core.dom.ast.IASTArrayModifier; import org.eclipse.cdt.core.dom.ast.IASTComment; -import org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier; -import org.eclipse.cdt.core.dom.ast.IASTDeclaration; -import org.eclipse.cdt.core.dom.ast.IASTDeclarator; -import org.eclipse.cdt.core.dom.ast.IASTExpression; -import org.eclipse.cdt.core.dom.ast.IASTInitializer; import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTNode; -import org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration; -import org.eclipse.cdt.core.dom.ast.IASTPointerOperator; import org.eclipse.cdt.core.dom.ast.IASTPreprocessorStatement; import org.eclipse.cdt.core.dom.ast.IASTProblem; -import org.eclipse.cdt.core.dom.ast.IASTProblemDeclaration; -import org.eclipse.cdt.core.dom.ast.IASTProblemExpression; -import org.eclipse.cdt.core.dom.ast.IASTProblemStatement; -import org.eclipse.cdt.core.dom.ast.IASTStatement; import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; -import org.eclipse.cdt.core.dom.ast.IASTTypeId; import org.eclipse.cdt.core.dom.ast.IBinding; import org.eclipse.cdt.core.dom.ast.IProblemBinding; import org.eclipse.cdt.core.dom.ast.IType; import org.eclipse.cdt.core.dom.ast.IVariable; -import org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier.IASTEnumerator; import org.eclipse.cdt.core.dom.ast.c.ICASTArrayModifier; import org.eclipse.cdt.core.dom.ast.c.ICASTPointer; import org.eclipse.cdt.core.dom.ast.c.ICArrayType; import org.eclipse.cdt.core.dom.ast.c.ICPointerType; -import org.eclipse.cdt.core.dom.ast.cpp.CPPASTVisitor; -import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceDefinition; -import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateParameter; -import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier.ICPPASTBaseSpecifier; import org.eclipse.cdt.internal.core.dom.parser.ASTNode; import org.eclipse.cdt.internal.core.dom.parser.ITypeContainer; /** - * A utility that prints an AST to the console, useful for debugging purposes. + * A utility that prints an AST to the console or any print stream, useful for debugging purposes. * * @author Mike Kucera */ @@ -67,30 +47,30 @@ public class ASTPrinter { * @return Always returns false, boolean return type allows this method * to be called from a conditional breakpoint during debugging. */ - public static boolean print(IASTNode root, PrintStream out) { - if (root == null) { + public static boolean print(IASTNode node, PrintStream out) { + if (node == null) { out.println("null"); return false; } - if (root instanceof IASTTranslationUnit) { - IASTPreprocessorStatement[] preStats = ((IASTTranslationUnit)root).getAllPreprocessorStatements(); + if (node instanceof IASTTranslationUnit) { + IASTPreprocessorStatement[] preStats = ((IASTTranslationUnit)node).getAllPreprocessorStatements(); if (preStats != null) { for (IASTPreprocessorStatement stat : preStats) print(out, 0, stat); } } - root.accept(new PrintVisitor(out)); + printAST(out, 0, node); - if (root instanceof IASTTranslationUnit) { - IASTProblem[] problems = ((IASTTranslationUnit)root).getPreprocessorProblems(); + if (node instanceof IASTTranslationUnit) { + IASTProblem[] problems = ((IASTTranslationUnit)node).getPreprocessorProblems(); if (problems != null) { for (IASTProblem problem : problems) print(out, 0, problem); } - IASTComment[] comments = ((IASTTranslationUnit)root).getComments(); + IASTComment[] comments = ((IASTTranslationUnit)node).getComments(); if (comments != null) { for (IASTComment comment : comments) print(out, 0, comment); @@ -109,22 +89,23 @@ public class ASTPrinter { return print(root, System.out); } + /** * Prints problem nodes in the AST to the given printstream. * * @return Always returns false, boolean return type allows this method * to be called from a conditional breakpoint during debugging. */ - public static boolean printProblems(IASTNode root, PrintStream out) { - if (root == null) { + public static boolean printProblems(IASTNode node, PrintStream out) { + if (node == null) { out.println("null"); return false; } - root.accept(new ProblemVisitor(out)); + printASTProblems(out, 0, node); - if (root instanceof IASTTranslationUnit) { - IASTProblem[] problems = ((IASTTranslationUnit)root).getPreprocessorProblems(); + if (node instanceof IASTTranslationUnit) { + IASTProblem[] problems = ((IASTTranslationUnit)node).getPreprocessorProblems(); if (problems != null) { for (IASTProblem problem : problems) { print(out, 0, problem); @@ -145,6 +126,31 @@ public class ASTPrinter { return printProblems(root, System.out); } + + + private static void printAST(PrintStream out, int indent, IASTNode node) { + print(out, indent, node); + indent++; + for(IASTNode child : node.getChildren()) { + printAST(out, indent, child); + } + } + + + private static void printASTProblems(PrintStream out, int indent, IASTNode node) { + if(node instanceof IASTProblem) + print(out, indent, node); + + indent++; + for(IASTNode child : node.getChildren()) { + printASTProblems(out, indent, child); + } + } + + + + + private static void print(PrintStream out, int indentLevel, Object n) { for (int i = 0; i < indentLevel; i++) out.print(" "); @@ -179,7 +185,16 @@ public class ASTPrinter { } if (n instanceof IASTName) { + IASTName name = (IASTName)n; out.print(" " + ((IASTName)n).toString()); + if (RESOLVE_BINDINGS) { + try { + IBinding binding = name.resolveBinding(); + print(out, indentLevel, binding); + } catch(Exception e) { + System.out.println("Exception while resolving binding: " + name); + } + } } else if (n instanceof ICASTPointer) { ICASTPointer pointer = (ICASTPointer) n; if (pointer.isConst()) @@ -243,308 +258,4 @@ public class ASTPrinter { out.println(); } - private static class ProblemVisitor extends ASTVisitor { - private PrintStream out; - - ProblemVisitor(PrintStream out) { - this.out = out; - shouldVisitProblems = - shouldVisitDeclarations = - shouldVisitStatements = - shouldVisitExpressions = true; - } - - @Override - public int visit(IASTProblem problem) { - print(out, 1, problem); - return PROCESS_CONTINUE; - } - - @Override - public int visit(IASTDeclaration declaration) { - if (declaration instanceof IASTProblemDeclaration) - print(out, 0, declaration); - return PROCESS_CONTINUE; - } - - @Override - public int visit(IASTExpression expression) { - if (expression instanceof IASTProblemExpression) - print(out, 0, expression); - return PROCESS_CONTINUE; - } - - @Override - public int visit(IASTStatement statement) { - if (statement instanceof IASTProblemStatement) - print(out, 0, statement); - return PROCESS_CONTINUE; - } - } - - /** - * This visitor extends from CPPASTVisitor but you can still - * apply it to a plain C AST and it will print everything - * except designators. - */ - private static class PrintVisitor extends CPPASTVisitor { - - private PrintStream out; - private int indentLevel = 0; - - PrintVisitor(PrintStream out) { - this.out = out; - shouldVisitNames = - shouldVisitDeclarations = - shouldVisitInitializers = - shouldVisitParameterDeclarations = - shouldVisitDeclarators = - shouldVisitDeclSpecifiers = - shouldVisitExpressions = - shouldVisitStatements = - shouldVisitTypeIds = - shouldVisitEnumerators = - shouldVisitTranslationUnit = - shouldVisitProblems = - shouldVisitDesignators = - shouldVisitBaseSpecifiers = - shouldVisitNamespaces = - shouldVisitTemplateParameters = true; - } - - private void print(IASTNode node) { - ASTPrinter.print(out, indentLevel, node); - } - - private void print(IBinding binding) { - ASTPrinter.print(out, indentLevel, binding); - } - -// @Override -// public int visit(ICASTDesignator designator) { -// print(designator); -// indentLevel++; -// return super.visit(designator); -// } - - @Override - public int visit(IASTDeclaration declaration) { - print(declaration); - indentLevel++; - return super.visit(declaration); - } - - @Override - public int visit(IASTDeclarator declarator) { - print(declarator); - indentLevel++; - IASTPointerOperator[] pointers = declarator.getPointerOperators(); - for (IASTPointerOperator pointer : pointers) { - print(pointer); - } - if (declarator instanceof IASTArrayDeclarator) { - IASTArrayDeclarator decl = (IASTArrayDeclarator)declarator; - org.eclipse.cdt.core.dom.ast.IASTArrayModifier[] modifiers = decl.getArrayModifiers(); - for (IASTArrayModifier modifier : modifiers) { - print(modifier); - } - } - return super.visit(declarator); - } - - @Override - public int visit(IASTDeclSpecifier declSpec) { - print(declSpec); - indentLevel++; - return super.visit(declSpec); - } - - @Override - public int visit(IASTEnumerator enumerator) { - print(enumerator); - indentLevel++; - return super.visit(enumerator); - } - - @Override - public int visit(IASTExpression expression) { - print(expression); - indentLevel++; - return super.visit(expression); - } - - @Override - public int visit(IASTInitializer initializer) { - print(initializer); - indentLevel++; - return super.visit(initializer); - } - - @Override - public int visit(IASTName name) { - print(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); - } - - @Override - public int visit(IASTParameterDeclaration parameterDeclaration) { - print(parameterDeclaration); - indentLevel++; - return super.visit(parameterDeclaration); - } - - @Override - public int visit(IASTProblem problem) { - print(problem); - indentLevel++; - return super.visit(problem); - } - - @Override - public int visit(IASTStatement statement) { - print(statement); - indentLevel++; - return super.visit(statement); - } - - @Override - public int visit(IASTTranslationUnit tu) { - print(tu); - indentLevel++; - return super.visit(tu); - } - - @Override - public int visit(IASTTypeId typeId) { - print(typeId); - indentLevel++; - return super.visit(typeId); - } - - @Override - public int visit(ICPPASTBaseSpecifier baseSpecifier) { - print(baseSpecifier); - indentLevel++; - return super.visit(baseSpecifier); - } - - @Override - public int visit(ICPPASTNamespaceDefinition namespaceDefinition) { - print(namespaceDefinition); - indentLevel++; - return super.visit(namespaceDefinition); - } - - @Override - public int visit(ICPPASTTemplateParameter templateParameter) { - print(templateParameter); - indentLevel++; - return super.visit(templateParameter); - } - -// @Override -// public int leave(ICASTDesignator designator) { -// indentLevel--; -// return super.leave(designator); -// } - - @Override - public int leave(IASTDeclaration declaration) { - indentLevel--; - return super.leave(declaration); - } - - @Override - public int leave(IASTDeclarator declarator) { - indentLevel--; - return super.leave(declarator); - } - - @Override - public int leave(IASTDeclSpecifier declSpec) { - indentLevel--; - return super.leave(declSpec); - } - - @Override - public int leave(IASTEnumerator enumerator) { - indentLevel--; - return super.leave(enumerator); - } - - @Override - public int leave(IASTExpression expression) { - indentLevel--; - return super.leave(expression); - } - - @Override - public int leave(IASTInitializer initializer) { - indentLevel--; - return super.leave(initializer); - } - - @Override - public int leave(IASTName name) { - indentLevel--; - return super.leave(name); - } - - @Override - public int leave(IASTParameterDeclaration parameterDeclaration) { - indentLevel--; - return super.leave(parameterDeclaration); - } - - @Override - public int leave(IASTProblem problem) { - indentLevel--; - return super.leave(problem); - } - - @Override - public int leave(IASTStatement statement) { - indentLevel--; - return super.leave(statement); - } - - @Override - public int leave(IASTTranslationUnit tu) { - indentLevel--; - return super.leave(tu); - } - - @Override - public int leave(IASTTypeId typeId) { - indentLevel--; - return super.leave(typeId); - } - - @Override - public int leave(ICPPASTBaseSpecifier baseSpecifier) { - indentLevel--; - return super.leave(baseSpecifier); - } - - @Override - public int leave(ICPPASTNamespaceDefinition namespaceDefinition) { - indentLevel--; - return super.leave(namespaceDefinition); - } - - @Override - public int leave(ICPPASTTemplateParameter templateParameter) { - indentLevel--; - return super.leave(templateParameter); - } - } } \ No newline at end of file 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 d78bcb23616..27cad1c9588 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g @@ -422,12 +422,15 @@ dcolon_opt qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name /. $Build consumeQualifiedId(true); $EndBuild ./ - | '::' identifier_name - /. $Build consumeGlobalQualifiedId(); $EndBuild ./ - | '::' operator_function_id_name - /. $Build consumeGlobalQualifiedId(); $EndBuild ./ - | '::' template_id_name + | '::' unqualified_id_name /. $Build consumeGlobalQualifiedId(); $EndBuild ./ + + --| '::' identifier_name + -- /. $Build consumeGlobalQualifiedId(); $EndBuild ./ + --| '::' operator_function_id_name + -- /. $Build consumeGlobalQualifiedId(); $EndBuild ./ + --| '::' template_id_name + -- /. $Build consumeGlobalQualifiedId(); $EndBuild ./ @@ -959,9 +962,9 @@ declaration_specifiers declaration_specifiers_opt - ::=? $empty -- this option must come first for constructors to parse correctly + ::= declaration_specifiers + | $empty /. $Build consumeEmpty(); $EndBuild ./ - | declaration_specifiers @@ -1189,6 +1192,7 @@ namespace_alias_definition -- | 'using' '::' unqualified_id_name ';' +-- TODO why not just check if the second token is 'typename'? using_declaration ::= 'using' typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ';' /. $Build consumeUsingDeclaration(); $EndBuild ./ @@ -1317,15 +1321,15 @@ cv_qualifier /. $Build consumeDeclSpecToken(); $EndBuild ./ ---declarator_id_name --- ::= qualified_or_unqualified_name --- | dcolon_opt nested_name_specifier_opt type_name --- /. $Build consumeQualifiedId(false); $EndBuild ./ - declarator_id_name - ::= unqualified_id_name - | nested_name_specifier template_opt unqualified_id_name - /. $Build consumeQualifiedId(true); $EndBuild ./ + ::= qualified_or_unqualified_name + | dcolon_opt nested_name_specifier_opt type_name + /. $Build consumeQualifiedId(false); $EndBuild ./ + +--declarator_id_name +-- ::= unqualified_id_name +-- | nested_name_specifier template_opt unqualified_id_name +-- /. $Build consumeQualifiedId(true); $EndBuild ./ type_id @@ -1749,11 +1753,11 @@ template_argument_list_opt template_argument ::= assignment_expression + /. $Build consumeTemplateArgumentExpression(); $EndBuild ./ | type_id /. $Build consumeTemplateArgumentTypeId(); $EndBuild ./ --| qualified_or_unqualified_name -- accessible through assignment_expression - explicit_instantiation ::= 'template' declaration /. $Build consumeTemplateExplicitInstantiation(); $EndBuild ./ 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 0e95a9d4d09..e5908fef5e1 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 @@ -46,8 +46,8 @@ import org.eclipse.core.runtime.CoreException; public abstract class BaseExtensibleLanguage extends AbstractLanguage { - private static final boolean DEBUG_PRINT_GCC_AST = true; - private static final boolean DEBUG_PRINT_AST = true; + private static final boolean DEBUG_PRINT_GCC_AST = false; + private static final boolean DEBUG_PRINT_AST = false; /** @@ -101,13 +101,14 @@ public abstract class BaseExtensibleLanguage extends AbstractLanguage { IASTTranslationUnit gtu = null; if(DEBUG_PRINT_GCC_AST) { - ILanguage gppLanguage = getParserLanguage() == ParserLanguage.CPP ? GPPLanguage.getDefault() : GCCLanguage.getDefault(); - gtu = gppLanguage.getASTTranslationUnit(reader, scanInfo, fileCreator, index, options, log); - System.out.println(); System.out.println("********************************************************"); System.out.println("Parsing"); System.out.println("Options: " + options); + + ILanguage gppLanguage = getParserLanguage() == ParserLanguage.CPP ? GPPLanguage.getDefault() : GCCLanguage.getDefault(); + gtu = gppLanguage.getASTTranslationUnit(reader, scanInfo, fileCreator, index, options, log); + System.out.println("GPP AST:"); ASTPrinter.print(gtu); System.out.println(); 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 edc2e2537e1..3f2f89b1aec 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 @@ -10,6 +10,7 @@ *******************************************************************************/ package org.eclipse.cdt.core.dom.lrparser.action; +import java.util.Arrays; import java.util.EnumSet; import java.util.List; import java.util.Set; @@ -266,8 +267,16 @@ public abstract class BuildASTParserAction { protected static void setOffsetAndLength(IASTNode node, int offset, int length) { ((ASTNode)node).setOffsetAndLength(offset, length); } + + protected static void setOffsetAndLength(IASTNode node, IASTNode from) { + setOffsetAndLength(node, offset(from), length(from)); + } + protected static boolean isSameName(IASTName name1, IASTName name2) { + return Arrays.equals(name1.getLookupKey(), name2.getLookupKey()); + } + /** * Creates a IASTName node from an identifier token. * If the token is a completion token then it is added to the completion node. @@ -519,8 +528,10 @@ public abstract class BuildASTParserAction { List tokens = parser.getRuleTokens(); IASTNode result; - if(expressionStatement == null) + if(expressionStatement == null) result = declarationStatement; + else if(expressionStatement.getExpression() instanceof IASTFunctionCallExpression) + result = expressionStatement; else if(tokens.size() == 2 && (isCompletionToken(tokens.get(0)) || isIdentifierToken(tokens.get(0)))) // identifier followed by semicolon result = expressionStatement; else if(isImplicitInt(decl)) @@ -535,6 +546,7 @@ public abstract class BuildASTParserAction { if(TRACE_AST_STACK) System.out.println(astStack); } + protected abstract IASTAmbiguousStatement createAmbiguousStatement(IASTStatement ... statements); @@ -657,9 +669,12 @@ public abstract class BuildASTParserAction { } else { IASTExpressionList exprList = nodeFactory.newExpressionList(); + for(Object o : expressions) { exprList.addExpression((IASTExpression)o); } + + setOffsetAndLength(exprList); astStack.push(exprList); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPASTAmbiguousDeclarator.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPASTAmbiguousDeclarator.java deleted file mode 100644 index 19e2eed4876..00000000000 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPASTAmbiguousDeclarator.java +++ /dev/null @@ -1,101 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.cdt.core.dom.lrparser.action.cpp; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.cdt.core.dom.ast.IASTDeclarator; -import org.eclipse.cdt.core.dom.ast.IASTInitializer; -import org.eclipse.cdt.core.dom.ast.IASTName; -import org.eclipse.cdt.core.dom.ast.IASTNode; -import org.eclipse.cdt.core.dom.ast.IASTPointerOperator; -import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguity; - -/** - * TODO delete this class and use the one from the core instead - * - * @author Mike Kucera - * - */ -@SuppressWarnings("restriction") -public class CPPASTAmbiguousDeclarator extends CPPASTAmbiguity implements IASTDeclarator { - - private List declarators = new ArrayList(2); - - private int defaultDeclarator = 0; - - - public CPPASTAmbiguousDeclarator(IASTDeclarator ... ds) { - for(IASTDeclarator declarator : ds) - addDeclarator(declarator); - } - - @Override - protected IASTNode[] getNodes() { - return declarators.toArray(new IASTDeclarator[declarators.size()]); - } - - - public void addDeclarator(IASTDeclarator declarator) { - if(declarator != null) { - declarators.add(declarator); - declarator.setParent(this); - declarator.setPropertyInParent(null); // it really doesn't matter - } - } - - private IASTDeclarator getDefaultDeclarator() { - return declarators.get(defaultDeclarator); - } - - public void addPointerOperator(IASTPointerOperator operator) { - getDefaultDeclarator().addPointerOperator(operator); - } - - public void setInitializer(IASTInitializer initializer) { - getDefaultDeclarator().setInitializer(initializer); - } - - public void setName(IASTName name) { - getDefaultDeclarator().setName(name); - } - - public void setNestedDeclarator(IASTDeclarator nested) { - getDefaultDeclarator().setNestedDeclarator(nested); - } - - public IASTInitializer getInitializer() { - return getDefaultDeclarator().getInitializer(); - } - - public IASTName getName() { - return getDefaultDeclarator().getName(); - } - - public IASTDeclarator getNestedDeclarator() { - return getDefaultDeclarator().getNestedDeclarator(); - } - - public IASTPointerOperator[] getPointerOperators() { - return getDefaultDeclarator().getPointerOperators(); - } - - public int getRoleForName(IASTName n) { - return getDefaultDeclarator().getRoleForName(n); - } - - public IASTDeclarator copy() { - throw new UnsupportedOperationException(); - } - - -} 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 aa6d5387091..d696b34ef80 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 @@ -12,52 +12,9 @@ package org.eclipse.cdt.core.dom.lrparser.action.cpp; import static org.eclipse.cdt.core.parser.util.CollectionUtils.findFirstAndRemove; import static org.eclipse.cdt.core.parser.util.CollectionUtils.reverseIterable; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_ColonColon; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_Completion; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_EndOfCompletion; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_GT; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_LT; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_LeftBracket; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_LeftParen; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_RightBracket; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_RightParen; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_Tilde; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_auto; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_bool; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_char; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_class; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_const; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_delete; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_double; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_enum; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_explicit; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_extern; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_float; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_for; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_friend; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_identifier; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_inline; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_int; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_long; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_mutable; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_new; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_private; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_protected; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_public; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_register; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_short; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_signed; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_static; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_struct; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_typedef; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_typename; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_union; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_unsigned; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_virtual; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_void; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_volatile; -import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.TK_wchar_t; +import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.*; +import java.util.Arrays; import java.util.Collections; import java.util.LinkedList; import java.util.List; @@ -79,6 +36,7 @@ import org.eclipse.cdt.core.dom.ast.IASTIfStatement; import org.eclipse.cdt.core.dom.ast.IASTInitializerExpression; import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression; import org.eclipse.cdt.core.dom.ast.IASTName; +import org.eclipse.cdt.core.dom.ast.IASTNamedTypeSpecifier; import org.eclipse.cdt.core.dom.ast.IASTNode; import org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration; import org.eclipse.cdt.core.dom.ast.IASTPointer; @@ -112,6 +70,7 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceAlias; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNamespaceDefinition; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTNewExpression; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTOperatorName; +import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTParameterDeclaration; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTPointerToMember; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTQualifiedName; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTReferenceOperator; @@ -147,6 +106,7 @@ import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPTemplateTypeParameterPa import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguityParent; import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguousExpression; import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguousStatement; +import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguousDeclarator; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguousExpression; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguousStatement; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguousTemplateArgument; @@ -169,6 +129,10 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { /** Used to create the AST node objects */ protected final ICPPNodeFactory nodeFactory; + /** Stack that provides easy access to the current class name, used to disambiguate declarators. */ + protected final LinkedList classNames = new LinkedList(); + + /** * @param parser * @param orderedTerminalSymbols When an instance of this class is created for a parser @@ -463,6 +427,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { public void consumeTemplateArgumentTypeId() { if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); + // TODO is this necessary? It should be able to tell if it looks like an id expression IParser secondaryParser = getExpressionParser(); IASTNode result = runSecondaryParser(secondaryParser); @@ -472,9 +437,9 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { return; IASTTypeId typeId = (IASTTypeId) astStack.pop(); - IASTIdExpression idExpression = (IASTIdExpression) result; + IASTIdExpression expr = (IASTIdExpression) result; - ICPPASTAmbiguousTemplateArgument ambiguityNode = new CPPASTAmbiguousTemplateArgument(typeId, idExpression); + ICPPASTAmbiguousTemplateArgument ambiguityNode = new CPPASTAmbiguousTemplateArgument(typeId, expr); //setOffsetAndLength(ambiguityNode); astStack.push(ambiguityNode); @@ -483,6 +448,38 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { } + /** + * Disambiguates template arguments. + * Qualified names parse as an expression, so generate the corresponding + * typeId and create an ambiguity node. + */ + public void consumeTemplateArgumentExpression() { + if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); + + IASTExpression expr = (IASTExpression) astStack.peek(); + + if(expr instanceof IASTIdExpression) { + IASTName name = ((IASTIdExpression)expr).getName().copy(); + + IASTNamedTypeSpecifier declSpec = nodeFactory.newTypedefNameSpecifier(name); + setOffsetAndLength(declSpec, name); + + IASTDeclarator declarator = nodeFactory.newDeclarator(nodeFactory.newName()); + setOffsetAndLength(declarator, endOffset(declSpec), 0); + + IASTTypeId typeId = nodeFactory.newTypeId(declSpec, declarator); + setOffsetAndLength(typeId); + + ICPPASTAmbiguousTemplateArgument ambiguityNode = new CPPASTAmbiguousTemplateArgument(typeId, expr); + + astStack.pop(); + astStack.push(ambiguityNode); + } + + if(TRACE_AST_STACK) System.out.println(astStack); + } + + /** * operator_id * ::= 'operator' overloadable_operator @@ -1133,7 +1130,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { if(declarator instanceof CPPASTAmbiguousDeclarator) { IASTAmbiguityParent owner = (IASTAmbiguityParent) declaration; CPPASTAmbiguousDeclarator ambiguity = (CPPASTAmbiguousDeclarator)declarator; - owner.replace(ambiguity, ambiguity.getNodes()[0]); + owner.replace(ambiguity, ambiguity.getDeclarators()[0]); } } } @@ -1216,7 +1213,6 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { case TK_short: n.setShort(true); return; } } - } @@ -1273,8 +1269,17 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { ICPPASTNamedTypeSpecifier declSpec = nodeFactory.newTypedefNameSpecifier(typeName); // now apply the rest of the specifiers - for(Object token : topScope) + for(Object token : topScope) { setSpecifier(declSpec, (IToken)token); + } + + // the only way there could be a typename token + for(IToken token : parser.getRuleTokens()) { + if(token.getKind() == TK_typename) { + declSpec.setIsTypename(true); + break; + } + } setOffsetAndLength(declSpec); astStack.push(declSpec); @@ -1325,7 +1330,8 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); List declarators = hasDeclaratorList ? astStack.closeScope() : Collections.emptyList(); - ICPPASTDeclSpecifier declSpecifier = (ICPPASTDeclSpecifier) astStack.pop(); // may be null + ICPPASTDeclSpecifier declSpec = (ICPPASTDeclSpecifier) astStack.pop(); // may be null + List ruleTokens = parser.getRuleTokens(); IToken nameToken = null; @@ -1339,45 +1345,49 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { // to be interpreted as a named type specifier for content assist to work. else if(matchTokens(ruleTokens, tokenMap, TK_Completion, TK_EndOfCompletion)) { IASTName name = createName(parser.getLeftIToken()); - declSpecifier = nodeFactory.newTypedefNameSpecifier(name); - setOffsetAndLength(declSpecifier, offset(name), length(name)); + declSpec = nodeFactory.newTypedefNameSpecifier(name); + setOffsetAndLength(declSpec, offset(name), length(name)); declarators = Collections.emptyList(); // throw away the bogus declarator } // can happen if implicit int is used - else if(declSpecifier == null) { - declSpecifier = nodeFactory.newSimpleDeclSpecifier(); - setOffsetAndLength(declSpecifier, parser.getLeftIToken().getStartOffset(), 0); + else if(declSpec == null) { + declSpec = nodeFactory.newSimpleDeclSpecifier(); + setOffsetAndLength(declSpec, parser.getLeftIToken().getStartOffset(), 0); + } + + + else if(declarators.size() == 1 && disambiguateToConstructor(declSpec, (IASTDeclarator)declarators.get(0))) { // puts results of disambiguation onto stack + declSpec = (ICPPASTDeclSpecifier) astStack.pop(); + declarators = Arrays.asList(astStack.pop()); } // bug 80171, check for situation similar to: static var; // this will get parsed wrong, the following is a hack to rebuild the AST as it should have been parsed else if(declarators.isEmpty() && - declSpecifier instanceof ICPPASTNamedTypeSpecifier && + declSpec instanceof ICPPASTNamedTypeSpecifier && ruleTokens.size() >= 2 && baseKind(nameToken = ruleTokens.get(ruleTokens.size() - 2)) == TK_identifier) { - declSpecifier = nodeFactory.newSimpleDeclSpecifier(); + declSpec = nodeFactory.newSimpleDeclSpecifier(); for(IToken t : ruleTokens.subList(0, ruleTokens.size()-1)) - setSpecifier(declSpecifier, t); + setSpecifier(declSpec, t); int offset = offset(parser.getLeftIToken()); int length = endOffset(ruleTokens.get(ruleTokens.size()-2)) - offset; - setOffsetAndLength(declSpecifier, offset, length); + setOffsetAndLength(declSpec, offset, length); IASTName name = createName(nameToken); IASTDeclarator declarator = nodeFactory.newDeclarator(name); setOffsetAndLength(declarator, nameToken); declarators.add(declarator); } - - IASTSimpleDeclaration declaration = nodeFactory.newSimpleDeclaration(declSpecifier); + IASTSimpleDeclaration declaration = nodeFactory.newSimpleDeclaration(declSpec); setOffsetAndLength(declaration); for(Object declarator : declarators) declaration.addDeclarator((IASTDeclarator)declarator); - - + // simple ambiguity resolutions // if(declSpecifier.isFriend()) // resolveAmbiguousDeclaratorsToFunction(declaration); @@ -1389,17 +1399,82 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { // // } - - astStack.push(declaration); - if(TRACE_AST_STACK) System.out.println(astStack); } + + /** + * org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTSimpleDeclaration (58,9) + org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTNamedTypeSpecifier (58,1) + org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTName (58,1) A + org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTDeclarator (60,6) + org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTDeclarator (61,4) + org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTName (61,4) + * @return + */ + private boolean disambiguateToConstructor(IASTDeclSpecifier declSpec, IASTDeclarator declarator) { + if(!(declSpec instanceof IASTNamedTypeSpecifier)) + return false; + + IASTNamedTypeSpecifier namedTypeSpecifier = (IASTNamedTypeSpecifier) declSpec; + IASTName name = namedTypeSpecifier.getName(); + IASTDeclarator nested = declarator.getNestedDeclarator(); + + ICPPASTSimpleDeclSpecifier simpleDeclSpec = nodeFactory.newSimpleDeclSpecifier(); // empty + setOffsetAndLength(simpleDeclSpec, parser.getLeftIToken().getStartOffset(), 0); + + if(!classNames.isEmpty() && nested != null && isSameName(name, classNames.getLast())) { + IASTName paramTypeName = nested.getName(); // reuse the parameter name node + IASTNamedTypeSpecifier paramName = nodeFactory.newTypedefNameSpecifier(paramTypeName); + setOffsetAndLength(paramName, paramTypeName); + + IASTDeclarator paramDeclarator = nodeFactory.newDeclarator(nodeFactory.newName()); + setOffsetAndLength(paramDeclarator, offset(paramName) + length(paramName), 0); + + ICPPASTParameterDeclaration parameter = nodeFactory.newParameterDeclaration(paramName, paramDeclarator); + setOffsetAndLength(parameter, paramName); + + ICPPASTFunctionDeclarator constructorDeclarator = nodeFactory.newFunctionDeclarator(name); // reuse the name node + constructorDeclarator.addParameterDeclaration(parameter); + setOffsetAndLength(constructorDeclarator, offset(simpleDeclSpec), endOffset(paramDeclarator) - offset(simpleDeclSpec) + 1); + + astStack.push(constructorDeclarator); + astStack.push(simpleDeclSpec); + return true; + } + + if(declarator instanceof IASTFunctionDeclarator && declarator.getName() instanceof ICPPASTQualifiedName) { + ICPPASTQualifiedName qualifiedName = (ICPPASTQualifiedName) declarator.getName(); + IASTName lastName = qualifiedName.getLastName(); + if(qualifiedName.isFullyQualified() && (lastName.getLookupKey()[0] == '~' || isSameName(name, lastName))) { + + ICPPASTQualifiedName newQualifiedName = nodeFactory.newQualifiedName(); + newQualifiedName.addName(name); + for(IASTName n : qualifiedName.getNames()) + newQualifiedName.addName(n); + + setOffsetAndLength(newQualifiedName, offset(name), endOffset(qualifiedName.getLastName()) - offset(name)); + + + declarator.setName(newQualifiedName); + setOffsetAndLength(declarator, offset(name), length(declarator) + offset(declarator) - offset(name)); + + astStack.push(declarator); + astStack.push(simpleDeclSpec); + return true; + } + } + + return false; + } + + + public void consumeInitDeclaratorComplete() { if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); @@ -1413,14 +1488,14 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { return; IParser secondaryParser = getNoFunctionDeclaratorParser(); - IASTNode alternateDeclarator = runSecondaryParser(secondaryParser); + IASTNode notFunctionDeclarator = runSecondaryParser(secondaryParser); - if(alternateDeclarator == null || alternateDeclarator instanceof IASTProblemDeclaration) + if(notFunctionDeclarator == null || notFunctionDeclarator instanceof IASTProblemDeclaration) return; astStack.pop(); - // TODO create node factory method for this - IASTNode ambiguityNode = new CPPASTAmbiguousDeclarator(declarator, (IASTDeclarator)alternateDeclarator); + + IASTNode ambiguityNode = new CPPASTAmbiguousDeclarator(declarator, (IASTDeclarator)notFunctionDeclarator); setOffsetAndLength(ambiguityNode); astStack.push(ambiguityNode); @@ -1507,14 +1582,14 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { List declarations = astStack.closeScope(); // the class specifier is created by the rule for class_head - IASTCompositeTypeSpecifier classSpecifier = (IASTCompositeTypeSpecifier) astStack.pop(); + IASTCompositeTypeSpecifier classSpecifier = (IASTCompositeTypeSpecifier) astStack.peek(); - for(Object declaration : declarations) { + for(Object declaration : declarations) classSpecifier.addMemberDeclaration((IASTDeclaration)declaration); - } setOffsetAndLength(classSpecifier); - astStack.push(classSpecifier); + + classNames.removeLast(); // pop the stack of class names if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1553,6 +1628,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { // the offset and length are set in consumeClassSpecifier() astStack.push(classSpecifier); + classNames.add(className); // push if(TRACE_AST_STACK) System.out.println(astStack); } @@ -1761,13 +1837,17 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { List handlers = isTryBlockDeclarator ? astStack.closeScope() : Collections.emptyList(); IASTCompoundStatement body = (IASTCompoundStatement) astStack.pop(); List initializers = astStack.closeScope(); - ICPPASTFunctionDeclarator declarator = (ICPPASTFunctionDeclarator) astStack.pop(); + IASTFunctionDeclarator declarator = (IASTFunctionDeclarator) astStack.pop(); IASTDeclSpecifier declSpec = (IASTDeclSpecifier) astStack.pop(); // may be null if(declSpec == null) { // can happen if implicit int is used declSpec = nodeFactory.newSimpleDeclSpecifier(); setOffsetAndLength(declSpec, parser.getLeftIToken().getStartOffset(), 0); } + else if(disambiguateToConstructor(declSpec, declarator)) { + declSpec = (IASTDeclSpecifier) astStack.pop(); + declarator = (IASTFunctionDeclarator) astStack.pop(); + } ICPPASTFunctionDefinition definition; if (isTryBlockDeclarator) { diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java index 7514100c8e1..53e0e2ffb86 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java @@ -416,1871 +416,1864 @@ public CPPExpressionParser(String[] mapFrom) { // constructor } // - // Rule 47: qualified_id_name ::= :: identifier_name + // Rule 47: qualified_id_name ::= :: unqualified_id_name // case 47: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 48: qualified_id_name ::= :: operator_function_id_name + // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // case 48: { action.builder. - consumeGlobalQualifiedId(); break; + consumeNestedNameSpecifier(true); break; } // - // Rule 49: qualified_id_name ::= :: template_id_name + // Rule 49: nested_name_specifier ::= class_or_namespace_name :: // case 49: { action.builder. - consumeGlobalQualifiedId(); break; + consumeNestedNameSpecifier(false); break; } // - // Rule 50: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // case 50: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 51: nested_name_specifier ::= class_or_namespace_name :: + // Rule 51: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // case 51: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 52: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name // case 52: { action.builder. - consumeNestedNameSpecifier(true); break; - } - - // - // Rule 53: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: - // - case 53: { action.builder. - consumeNestedNameSpecifier(false); break; - } - - // - // Rule 54: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name - // - case 54: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 56: nested_name_specifier_opt ::= $Empty + // Rule 54: nested_name_specifier_opt ::= $Empty // - case 56: { action.builder. + case 54: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 59: postfix_expression ::= postfix_expression [ expression ] + // Rule 57: postfix_expression ::= postfix_expression [ expression ] // - case 59: { action.builder. + case 57: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 60: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 60: { action.builder. + case 58: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 61: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 61: { action.builder. + case 59: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 62: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // + case 60: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // + case 61: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // case 62: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 63: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) - // - case 63: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 64: postfix_expression ::= postfix_expression . qualified_or_unqualified_name - // - case 64: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 65: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 65: { action.builder. + case 63: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 66: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 66: { action.builder. + case 64: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 67: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 67: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 68: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 68: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 69: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 69: { action.builder. + case 67: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 70: postfix_expression ::= postfix_expression ++ + // Rule 68: postfix_expression ::= postfix_expression ++ // - case 70: { action.builder. + case 68: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 71: postfix_expression ::= postfix_expression -- + // Rule 69: postfix_expression ::= postfix_expression -- // - case 71: { action.builder. + case 69: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 72: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 72: { action.builder. + case 70: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 73: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) // - case 73: { action.builder. + case 71: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 74: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 74: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 75: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) // - case 75: { action.builder. + case 73: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 76: postfix_expression ::= typeid ( expression ) + // Rule 74: postfix_expression ::= typeid ( expression ) // - case 76: { action.builder. + case 74: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 77: postfix_expression ::= typeid ( type_id ) + // Rule 75: postfix_expression ::= typeid ( type_id ) // - case 77: { action.builder. + case 75: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // + case 76: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // + case 77: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name // case 78: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 79: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name - // - case 79: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 80: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name - // - case 80: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 81: destructor_type_name ::= ~ identifier_token + // Rule 79: destructor_type_name ::= ~ identifier_token // - case 81: { action.builder. + case 79: { action.builder. consumeDestructorName(); break; } // - // Rule 82: destructor_type_name ::= ~ template_id_name + // Rule 80: destructor_type_name ::= ~ template_id_name // - case 82: { action.builder. + case 80: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 86: unary_expression ::= ++ cast_expression + // Rule 84: unary_expression ::= ++ cast_expression // - case 86: { action.builder. + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 87: unary_expression ::= -- cast_expression + // Rule 85: unary_expression ::= -- cast_expression // - case 87: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 88: unary_expression ::= & cast_expression + // Rule 86: unary_expression ::= & cast_expression // - case 88: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 89: unary_expression ::= * cast_expression + // Rule 87: unary_expression ::= * cast_expression // - case 89: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 90: unary_expression ::= + cast_expression + // Rule 88: unary_expression ::= + cast_expression // - case 90: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 91: unary_expression ::= - cast_expression + // Rule 89: unary_expression ::= - cast_expression // - case 91: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 92: unary_expression ::= ~ cast_expression + // Rule 90: unary_expression ::= ~ cast_expression // - case 92: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 93: unary_expression ::= ! cast_expression + // Rule 91: unary_expression ::= ! cast_expression // - case 93: { action.builder. + case 91: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 94: unary_expression ::= sizeof unary_expression + // Rule 92: unary_expression ::= sizeof unary_expression // - case 94: { action.builder. + case 92: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 95: unary_expression ::= sizeof ( type_id ) + // Rule 93: unary_expression ::= sizeof ( type_id ) // - case 95: { action.builder. + case 93: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } // - // Rule 96: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt + // Rule 94: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 96: { action.builder. + case 94: { action.builder. consumeExpressionNew(true); break; } // - // Rule 97: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt + // Rule 95: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt // - case 97: { action.builder. + case 95: { action.builder. consumeExpressionNew(false); break; } // - // Rule 99: new_placement_opt ::= $Empty + // Rule 97: new_placement_opt ::= $Empty // - case 99: { action.builder. + case 97: { action.builder. consumeEmpty(); break; } // - // Rule 100: new_type_id ::= type_specifier_seq + // Rule 98: new_type_id ::= type_specifier_seq // - case 100: { action.builder. + case 98: { action.builder. consumeTypeId(false); break; } // - // Rule 101: new_type_id ::= type_specifier_seq new_declarator + // Rule 99: new_type_id ::= type_specifier_seq new_declarator // - case 101: { action.builder. + case 99: { action.builder. consumeTypeId(true); break; } // - // Rule 102: new_declarator ::= new_pointer_operators + // Rule 100: new_declarator ::= new_pointer_operators // - case 102: { action.builder. + case 100: { action.builder. consumeNewDeclarator(); break; } // - // Rule 111: new_initializer_opt ::= $Empty + // Rule 109: new_initializer_opt ::= $Empty // - case 111: { action.builder. + case 109: { action.builder. consumeEmpty(); break; } // - // Rule 112: delete_expression ::= dcolon_opt delete cast_expression + // Rule 110: delete_expression ::= dcolon_opt delete cast_expression // - case 112: { action.builder. + case 110: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 113: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 111: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 113: { action.builder. + case 111: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 115: cast_expression ::= ( type_id ) cast_expression + // Rule 113: cast_expression ::= ( type_id ) cast_expression // - case 115: { action.builder. + case 113: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 117: pm_expression ::= pm_expression .* cast_expression + // Rule 115: pm_expression ::= pm_expression .* cast_expression // - case 117: { action.builder. + case 115: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 118: pm_expression ::= pm_expression ->* cast_expression + // Rule 116: pm_expression ::= pm_expression ->* cast_expression // - case 118: { action.builder. + case 116: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 120: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 118: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 120: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 121: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 119: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 121: { action.builder. + case 119: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 122: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 120: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 122: { action.builder. + case 120: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 124: additive_expression ::= additive_expression + multiplicative_expression + // Rule 122: additive_expression ::= additive_expression + multiplicative_expression // - case 124: { action.builder. + case 122: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 125: additive_expression ::= additive_expression - multiplicative_expression + // Rule 123: additive_expression ::= additive_expression - multiplicative_expression // - case 125: { action.builder. + case 123: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 127: shift_expression ::= shift_expression << additive_expression + // Rule 125: shift_expression ::= shift_expression << additive_expression // - case 127: { action.builder. + case 125: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 128: shift_expression ::= shift_expression >> additive_expression + // Rule 126: shift_expression ::= shift_expression >> additive_expression // - case 128: { action.builder. + case 126: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 130: relational_expression ::= relational_expression < shift_expression + // Rule 128: relational_expression ::= relational_expression < shift_expression // - case 130: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 131: relational_expression ::= relational_expression > shift_expression + // Rule 129: relational_expression ::= relational_expression > shift_expression // - case 131: { action.builder. + case 129: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 132: relational_expression ::= relational_expression <= shift_expression + // Rule 130: relational_expression ::= relational_expression <= shift_expression // - case 132: { action.builder. + case 130: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 133: relational_expression ::= relational_expression >= shift_expression + // Rule 131: relational_expression ::= relational_expression >= shift_expression // - case 133: { action.builder. + case 131: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 135: equality_expression ::= equality_expression == relational_expression + // Rule 133: equality_expression ::= equality_expression == relational_expression // - case 135: { action.builder. + case 133: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 136: equality_expression ::= equality_expression != relational_expression + // Rule 134: equality_expression ::= equality_expression != relational_expression // - case 136: { action.builder. + case 134: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 138: and_expression ::= and_expression & equality_expression + // Rule 136: and_expression ::= and_expression & equality_expression // - case 138: { action.builder. + case 136: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 140: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 138: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 140: { action.builder. + case 138: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 142: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 140: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 142: { action.builder. + case 140: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 144: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 142: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 144: { action.builder. + case 142: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 146: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 144: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 146: { action.builder. + case 144: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 148: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 146: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 148: { action.builder. + case 146: { action.builder. consumeExpressionConditional(); break; } // - // Rule 149: throw_expression ::= throw + // Rule 147: throw_expression ::= throw // - case 149: { action.builder. + case 147: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 150: throw_expression ::= throw assignment_expression + // Rule 148: throw_expression ::= throw assignment_expression // - case 150: { action.builder. + case 148: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 153: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 151: assignment_expression ::= logical_or_expression = assignment_expression // - case 153: { action.builder. + case 151: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 152: assignment_expression ::= logical_or_expression *= assignment_expression // - case 154: { action.builder. + case 152: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression /= assignment_expression // - case 155: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression %= assignment_expression // - case 156: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression += assignment_expression // - case 157: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 158: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression -= assignment_expression // - case 158: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 159: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 157: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 159: { action.builder. + case 157: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 160: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 158: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 160: { action.builder. + case 158: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 161: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 159: assignment_expression ::= logical_or_expression &= assignment_expression // - case 161: { action.builder. + case 159: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 162: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 160: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 162: { action.builder. + case 160: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 163: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 161: assignment_expression ::= logical_or_expression |= assignment_expression // - case 163: { action.builder. + case 161: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 165: expression_list ::= expression_list_actual + // Rule 163: expression_list ::= expression_list_actual // - case 165: { action.builder. + case 163: { action.builder. consumeExpressionList(); break; } // - // Rule 169: expression_list_opt ::= $Empty + // Rule 167: expression_list_opt ::= $Empty + // + case 167: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 169: expression_opt ::= $Empty // case 169: { action.builder. consumeEmpty(); break; } // - // Rule 171: expression_opt ::= $Empty + // Rule 172: constant_expression_opt ::= $Empty // - case 171: { action.builder. + case 172: { action.builder. consumeEmpty(); break; } // - // Rule 174: constant_expression_opt ::= $Empty + // Rule 181: statement ::= ERROR_TOKEN // - case 174: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 183: statement ::= ERROR_TOKEN - // - case 183: { action.builder. + case 181: { action.builder. consumeStatementProblem(); break; } // - // Rule 184: labeled_statement ::= identifier : statement + // Rule 182: labeled_statement ::= identifier : statement // - case 184: { action.builder. + case 182: { action.builder. consumeStatementLabeled(); break; } // - // Rule 185: labeled_statement ::= case constant_expression : statement + // Rule 183: labeled_statement ::= case constant_expression : statement // - case 185: { action.builder. + case 183: { action.builder. consumeStatementCase(); break; } // - // Rule 186: labeled_statement ::= default : statement + // Rule 184: labeled_statement ::= default : statement // - case 186: { action.builder. + case 184: { action.builder. consumeStatementDefault(); break; } // - // Rule 187: expression_statement ::= expression ; + // Rule 185: expression_statement ::= expression ; // - case 187: { action.builder. + case 185: { action.builder. consumeStatementExpression(); break; } // - // Rule 188: expression_statement ::= ; + // Rule 186: expression_statement ::= ; // - case 188: { action.builder. + case 186: { action.builder. consumeStatementNull(); break; } // - // Rule 189: compound_statement ::= { statement_seq } + // Rule 187: compound_statement ::= { statement_seq } // - case 189: { action.builder. + case 187: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 190: compound_statement ::= { } + // Rule 188: compound_statement ::= { } // - case 190: { action.builder. + case 188: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 193: selection_statement ::= if ( condition ) statement + // Rule 191: selection_statement ::= if ( condition ) statement // - case 193: { action.builder. + case 191: { action.builder. consumeStatementIf(false); break; } // - // Rule 194: selection_statement ::= if ( condition ) statement else statement + // Rule 192: selection_statement ::= if ( condition ) statement else statement // - case 194: { action.builder. + case 192: { action.builder. consumeStatementIf(true); break; } // - // Rule 195: selection_statement ::= switch ( condition ) statement + // Rule 193: selection_statement ::= switch ( condition ) statement // - case 195: { action.builder. + case 193: { action.builder. consumeStatementSwitch(); break; } // - // Rule 197: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 195: condition ::= type_specifier_seq declarator = assignment_expression // - case 197: { action.builder. + case 195: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 199: condition_opt ::= $Empty + // Rule 197: condition_opt ::= $Empty // - case 199: { action.builder. + case 197: { action.builder. consumeEmpty(); break; } // - // Rule 200: iteration_statement ::= while ( condition ) statement + // Rule 198: iteration_statement ::= while ( condition ) statement // - case 200: { action.builder. + case 198: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 201: iteration_statement ::= do statement while ( expression ) ; + // Rule 199: iteration_statement ::= do statement while ( expression ) ; // - case 201: { action.builder. + case 199: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 202: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 200: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 202: { action.builder. + case 200: { action.builder. consumeStatementForLoop(); break; } // - // Rule 204: for_init_statement ::= simple_declaration_with_declspec + // Rule 202: for_init_statement ::= simple_declaration_with_declspec // - case 204: { action.builder. + case 202: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 205: jump_statement ::= break ; + // Rule 203: jump_statement ::= break ; // - case 205: { action.builder. + case 203: { action.builder. consumeStatementBreak(); break; } // - // Rule 206: jump_statement ::= continue ; + // Rule 204: jump_statement ::= continue ; // - case 206: { action.builder. + case 204: { action.builder. consumeStatementContinue(); break; } // - // Rule 207: jump_statement ::= return expression ; + // Rule 205: jump_statement ::= return expression ; // - case 207: { action.builder. + case 205: { action.builder. consumeStatementReturn(true); break; } // - // Rule 208: jump_statement ::= return ; + // Rule 206: jump_statement ::= return ; // - case 208: { action.builder. + case 206: { action.builder. consumeStatementReturn(false); break; } // - // Rule 209: jump_statement ::= goto identifier_token ; + // Rule 207: jump_statement ::= goto identifier_token ; // - case 209: { action.builder. + case 207: { action.builder. consumeStatementGoto(); break; } // - // Rule 210: declaration_statement ::= block_declaration + // Rule 208: declaration_statement ::= block_declaration // - case 210: { action.builder. + case 208: { action.builder. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 211: declaration_statement ::= function_definition + // Rule 209: declaration_statement ::= function_definition // - case 211: { action.builder. + case 209: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 228: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 226: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // + case 226: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 227: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // + case 227: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 228: declaration_specifiers ::= simple_declaration_specifiers // case 228: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 229: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; - // - case 229: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 230: declaration_specifiers ::= simple_declaration_specifiers - // - case 230: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 231: declaration_specifiers ::= class_declaration_specifiers + // Rule 229: declaration_specifiers ::= class_declaration_specifiers + // + case 229: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 230: declaration_specifiers ::= elaborated_declaration_specifiers + // + case 230: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 231: declaration_specifiers ::= enum_declaration_specifiers // case 231: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 232: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 232: declaration_specifiers ::= type_name_declaration_specifiers // case 232: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 233: declaration_specifiers ::= enum_declaration_specifiers - // - case 233: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 234: declaration_specifiers ::= type_name_declaration_specifiers - // - case 234: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 235: declaration_specifiers_opt ::= $Empty + // Rule 234: declaration_specifiers_opt ::= $Empty // - case 235: { action.builder. + case 234: { action.builder. consumeEmpty(); break; } // - // Rule 240: no_type_declaration_specifier ::= friend + // Rule 238: no_type_declaration_specifier ::= friend // - case 240: { action.builder. + case 238: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 241: no_type_declaration_specifier ::= typedef + // Rule 239: no_type_declaration_specifier ::= typedef // - case 241: { action.builder. + case 239: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 261: storage_class_specifier ::= auto + // Rule 259: storage_class_specifier ::= auto + // + case 259: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 260: storage_class_specifier ::= register + // + case 260: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 261: storage_class_specifier ::= static // case 261: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 262: storage_class_specifier ::= register + // Rule 262: storage_class_specifier ::= extern // case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 263: storage_class_specifier ::= static + // Rule 263: storage_class_specifier ::= mutable // case 263: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 264: storage_class_specifier ::= extern + // Rule 264: function_specifier ::= inline // case 264: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 265: storage_class_specifier ::= mutable + // Rule 265: function_specifier ::= virtual // case 265: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 266: function_specifier ::= inline + // Rule 266: function_specifier ::= explicit // case 266: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 267: function_specifier ::= virtual + // Rule 267: simple_type_specifier ::= char // case 267: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 268: function_specifier ::= explicit + // Rule 268: simple_type_specifier ::= wchar_t // case 268: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 269: simple_type_specifier ::= char + // Rule 269: simple_type_specifier ::= bool // case 269: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 270: simple_type_specifier ::= wchar_t + // Rule 270: simple_type_specifier ::= short // case 270: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 271: simple_type_specifier ::= bool + // Rule 271: simple_type_specifier ::= int // case 271: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 272: simple_type_specifier ::= short + // Rule 272: simple_type_specifier ::= long // case 272: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 273: simple_type_specifier ::= int + // Rule 273: simple_type_specifier ::= signed // case 273: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 274: simple_type_specifier ::= long + // Rule 274: simple_type_specifier ::= unsigned // case 274: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 275: simple_type_specifier ::= signed + // Rule 275: simple_type_specifier ::= float // case 275: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 276: simple_type_specifier ::= unsigned + // Rule 276: simple_type_specifier ::= double // case 276: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 277: simple_type_specifier ::= float + // Rule 277: simple_type_specifier ::= void // case 277: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 278: simple_type_specifier ::= double + // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 278: { action.builder. - consumeDeclSpecToken(); break; + case 280: { action.builder. + consumeQualifiedId(false); break; } // - // Rule 279: simple_type_specifier ::= void + // Rule 281: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 279: { action.builder. - consumeDeclSpecToken(); break; + case 281: { action.builder. + consumeQualifiedId(false); break; } // - // Rule 282: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // case 282: { action.builder. consumeQualifiedId(false); break; } // - // Rule 283: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 283: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // case 283: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 284: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name - // - case 284: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 285: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name - // - case 285: { action.builder. consumeQualifiedId(true); break; } // - // Rule 287: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 285: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // + case 285: { action.builder. + consumeTypeSpecifierElaborated(false); break; + } + + // + // Rule 286: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // + case 286: { action.builder. + consumeTypeSpecifierElaborated(true); break; + } + + // + // Rule 287: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // case 287: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 288: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 288: enum_specifier ::= enum { enumerator_list_opt } // case 288: { action.builder. - consumeTypeSpecifierElaborated(true); break; - } - - // - // Rule 289: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name - // - case 289: { action.builder. - consumeTypeSpecifierElaborated(false); break; - } - - // - // Rule 290: enum_specifier ::= enum { enumerator_list_opt } - // - case 290: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 291: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 289: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 291: { action.builder. + case 289: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 296: enumerator_definition ::= identifier_token + // Rule 294: enumerator_definition ::= identifier_token // - case 296: { action.builder. + case 294: { action.builder. consumeEnumerator(false); break; } // - // Rule 297: enumerator_definition ::= identifier_token = constant_expression + // Rule 295: enumerator_definition ::= identifier_token = constant_expression // - case 297: { action.builder. + case 295: { action.builder. consumeEnumerator(true); break; } // - // Rule 301: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } + // Rule 299: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } // - case 301: { action.builder. + case 299: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 302: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 300: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 302: { action.builder. + case 300: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 303: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 301: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 303: { action.builder. + case 301: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 304: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 302: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 304: { action.builder. + case 302: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 305: typename_opt ::= typename + // Rule 303: typename_opt ::= typename // - case 305: { action.builder. + case 303: { action.builder. consumePlaceHolder(); break; } // - // Rule 306: typename_opt ::= $Empty + // Rule 304: typename_opt ::= $Empty // - case 306: { action.builder. + case 304: { action.builder. consumeEmpty(); break; } // - // Rule 307: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 305: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 307: { action.builder. + case 305: { action.builder. consumeUsingDirective(); break; } // - // Rule 308: asm_definition ::= asm ( stringlit ) ; + // Rule 306: asm_definition ::= asm ( stringlit ) ; // - case 308: { action.builder. + case 306: { action.builder. consumeDeclarationASM(); break; } // - // Rule 309: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 307: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 309: { action.builder. + case 307: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 310: linkage_specification ::= extern stringlit declaration + // Rule 308: linkage_specification ::= extern stringlit declaration // - case 310: { action.builder. + case 308: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 315: init_declarator_complete ::= init_declarator + // Rule 313: init_declarator_complete ::= init_declarator // - case 315: { action.builder. + case 313: { action.builder. consumeInitDeclaratorComplete(); break; } // - // Rule 317: init_declarator ::= declarator initializer + // Rule 315: init_declarator ::= declarator initializer // - case 317: { action.builder. + case 315: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 319: declarator ::= ptr_operator_seq direct_declarator + // Rule 317: declarator ::= ptr_operator_seq direct_declarator + // + case 317: { action.builder. + consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 319: function_declarator ::= ptr_operator_seq direct_declarator // case 319: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 321: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 323: basic_direct_declarator ::= declarator_id_name // - case 321: { action.builder. - consumeDeclaratorWithPointer(true); break; - } - - // - // Rule 325: basic_direct_declarator ::= declarator_id_name - // - case 325: { action.builder. + case 323: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 326: basic_direct_declarator ::= ( declarator ) + // Rule 324: basic_direct_declarator ::= ( declarator ) // - case 326: { action.builder. + case 324: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 327: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 325: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 327: { action.builder. + case 325: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 328: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 326: array_direct_declarator ::= array_direct_declarator array_modifier + // + case 326: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 327: array_direct_declarator ::= basic_direct_declarator array_modifier + // + case 327: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 328: array_modifier ::= [ constant_expression ] // case 328: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 329: array_direct_declarator ::= basic_direct_declarator array_modifier - // - case 329: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 330: array_modifier ::= [ constant_expression ] - // - case 330: { action.builder. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 331: array_modifier ::= [ ] + // Rule 329: array_modifier ::= [ ] // - case 331: { action.builder. + case 329: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 332: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 330: ptr_operator ::= * cv_qualifier_seq_opt // - case 332: { action.builder. + case 330: { action.builder. consumePointer(); break; } // - // Rule 333: ptr_operator ::= & + // Rule 331: ptr_operator ::= & // - case 333: { action.builder. + case 331: { action.builder. consumeReferenceOperator(); break; } // - // Rule 334: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // Rule 332: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt // - case 334: { action.builder. + case 332: { action.builder. consumePointerToMember(); break; } // - // Rule 340: cv_qualifier ::= const + // Rule 338: cv_qualifier ::= const // - case 340: { action.builder. + case 338: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 341: cv_qualifier ::= volatile + // Rule 339: cv_qualifier ::= volatile + // + case 339: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 341: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // case 341: { action.builder. - consumeDeclSpecToken(); break; + consumeQualifiedId(false); break; } // - // Rule 343: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name + // Rule 342: type_id ::= type_specifier_seq // - case 343: { action.builder. - consumeQualifiedId(true); break; - } - - // - // Rule 344: type_id ::= type_specifier_seq - // - case 344: { action.builder. + case 342: { action.builder. consumeTypeId(false); break; } // - // Rule 345: type_id ::= type_specifier_seq abstract_declarator + // Rule 343: type_id ::= type_specifier_seq abstract_declarator // - case 345: { action.builder. + case 343: { action.builder. consumeTypeId(true); break; } // - // Rule 348: abstract_declarator ::= ptr_operator_seq + // Rule 346: abstract_declarator ::= ptr_operator_seq // - case 348: { action.builder. + case 346: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 349: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 347: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 349: { action.builder. + case 347: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 353: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 351: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 353: { action.builder. + case 351: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 354: basic_direct_abstract_declarator ::= ( ) + // Rule 352: basic_direct_abstract_declarator ::= ( ) // - case 354: { action.builder. + case 352: { action.builder. consumeAbstractDeclaratorEmpty(); break; } // - // Rule 355: array_direct_abstract_declarator ::= array_modifier + // Rule 353: array_direct_abstract_declarator ::= array_modifier // - case 355: { action.builder. + case 353: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 356: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 354: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // + case 354: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 355: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // + case 355: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 356: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // case 356: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 357: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier - // - case 357: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 358: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt - // - case 358: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 359: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 357: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 359: { action.builder. + case 357: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // + case 358: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt + // + case 359: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 360: parameter_declaration_clause ::= parameter_declaration_list , ... // case 360: { action.builder. consumePlaceHolder(); break; } // - // Rule 361: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 366: abstract_declarator_opt ::= $Empty // - case 361: { action.builder. + case 366: { action.builder. consumeEmpty(); break; } // - // Rule 362: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 362: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 368: abstract_declarator_opt ::= $Empty - // - case 368: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 369: parameter_declaration ::= declaration_specifiers parameter_init_declarator - // - case 369: { action.builder. + case 367: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 370: parameter_declaration ::= declaration_specifiers + // Rule 368: parameter_declaration ::= declaration_specifiers // - case 370: { action.builder. + case 368: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 372: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 370: parameter_init_declarator ::= declarator = parameter_initializer + // + case 370: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 372: parameter_init_declarator ::= abstract_declarator = parameter_initializer // case 372: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 374: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 373: parameter_init_declarator ::= = parameter_initializer // - case 374: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 375: parameter_init_declarator ::= = parameter_initializer - // - case 375: { action.builder. + case 373: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 376: parameter_initializer ::= assignment_expression + // Rule 374: parameter_initializer ::= assignment_expression // - case 376: { action.builder. + case 374: { action.builder. consumeInitializer(); break; } // - // Rule 377: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 377: { action.builder. + case 375: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 378: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 378: { action.builder. + case 376: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 381: initializer ::= ( expression_list ) + // Rule 379: initializer ::= ( expression_list ) // - case 381: { action.builder. + case 379: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 382: initializer_clause ::= assignment_expression + // Rule 380: initializer_clause ::= assignment_expression // - case 382: { action.builder. + case 380: { action.builder. consumeInitializer(); break; } // - // Rule 383: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list + // Rule 381: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list + // + case 381: { action.builder. + consumeInitializerList(); break; + } + + // + // Rule 382: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list + // + case 382: { action.builder. + consumeInitializerList(); break; + } + + // + // Rule 383: initializer_clause ::= { } // case 383: { action.builder. consumeInitializerList(); break; } // - // Rule 384: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list + // Rule 384: start_initializer_list ::= $Empty // case 384: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 385: initializer_clause ::= { } - // - case 385: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 386: start_initializer_list ::= $Empty - // - case 386: { action.builder. initializerListStart(); break; } // - // Rule 387: end_initializer_list ::= $Empty + // Rule 385: end_initializer_list ::= $Empty // - case 387: { action.builder. + case 385: { action.builder. initializerListEnd(); break; } // - // Rule 392: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 390: class_specifier ::= class_head { member_declaration_list_opt } // - case 392: { action.builder. + case 390: { action.builder. consumeClassSpecifier(); break; } // - // Rule 393: class_head ::= class_keyword identifier_name_opt base_clause_opt + // Rule 391: class_head ::= class_keyword identifier_name_opt base_clause_opt + // + case 391: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 392: class_head ::= class_keyword template_id_name base_clause_opt + // + case 392: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 393: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt // case 393: { action.builder. - consumeClassHead(false); break; + consumeClassHead(true); break; } // - // Rule 394: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 394: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // case 394: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 395: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt - // - case 395: { action.builder. consumeClassHead(true); break; } // - // Rule 396: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 396: identifier_name_opt ::= $Empty // case 396: { action.builder. - consumeClassHead(true); break; - } - - // - // Rule 398: identifier_name_opt ::= $Empty - // - case 398: { action.builder. consumeEmpty(); break; } // - // Rule 402: visibility_label ::= access_specifier_keyword : + // Rule 400: visibility_label ::= access_specifier_keyword : // - case 402: { action.builder. + case 400: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 403: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 401: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 403: { action.builder. + case 401: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 404: member_declaration ::= declaration_specifiers_opt ; + // Rule 402: member_declaration ::= declaration_specifiers_opt ; // - case 404: { action.builder. + case 402: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 407: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 407: { action.builder. + case 405: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 413: member_declaration ::= ERROR_TOKEN + // Rule 411: member_declaration ::= ERROR_TOKEN // - case 413: { action.builder. + case 411: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 421: member_declarator ::= declarator constant_initializer + // Rule 419: member_declarator ::= declarator constant_initializer // - case 421: { action.builder. + case 419: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 422: member_declarator ::= bit_field_declarator : constant_expression + // Rule 420: member_declarator ::= bit_field_declarator : constant_expression // - case 422: { action.builder. + case 420: { action.builder. consumeBitField(true); break; } // - // Rule 423: member_declarator ::= : constant_expression + // Rule 421: member_declarator ::= : constant_expression // - case 423: { action.builder. + case 421: { action.builder. consumeBitField(false); break; } // - // Rule 424: bit_field_declarator ::= identifier_name + // Rule 422: bit_field_declarator ::= identifier_name // - case 424: { action.builder. + case 422: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 425: constant_initializer ::= = constant_expression + // Rule 423: constant_initializer ::= = constant_expression // - case 425: { action.builder. + case 423: { action.builder. consumeInitializer(); break; } // - // Rule 431: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 431: { action.builder. + case 429: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 432: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 430: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // + case 430: { action.builder. + consumeBaseSpecifier(true, true); break; + } + + // + // Rule 431: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // + case 431: { action.builder. + consumeBaseSpecifier(true, true); break; + } + + // + // Rule 432: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // case 432: { action.builder. - consumeBaseSpecifier(true, true); break; - } - - // - // Rule 433: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name - // - case 433: { action.builder. - consumeBaseSpecifier(true, true); break; - } - - // - // Rule 434: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name - // - case 434: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 435: access_specifier_keyword ::= private + // Rule 433: access_specifier_keyword ::= private + // + case 433: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 434: access_specifier_keyword ::= protected + // + case 434: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 435: access_specifier_keyword ::= public // case 435: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 436: access_specifier_keyword ::= protected - // - case 436: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 437: access_specifier_keyword ::= public + // Rule 437: access_specifier_keyword_opt ::= $Empty // case 437: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 439: access_specifier_keyword_opt ::= $Empty - // - case 439: { action.builder. consumeEmpty(); break; } // - // Rule 441: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 439: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 441: { action.builder. + case 439: { action.builder. consumeTemplateId(); break; } // - // Rule 442: conversion_function_id ::= operator conversion_type_id + // Rule 440: conversion_function_id ::= operator conversion_type_id // - case 442: { action.builder. + case 440: { action.builder. consumeConversionName(); break; } // - // Rule 443: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 441: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 443: { action.builder. + case 441: { action.builder. consumeTypeId(true); break; } // - // Rule 444: conversion_type_id ::= type_specifier_seq + // Rule 442: conversion_type_id ::= type_specifier_seq // - case 444: { action.builder. + case 442: { action.builder. consumeTypeId(false); break; } // - // Rule 445: conversion_declarator ::= ptr_operator_seq + // Rule 443: conversion_declarator ::= ptr_operator_seq // - case 445: { action.builder. + case 443: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 451: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 449: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 451: { action.builder. + case 449: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 452: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 450: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 452: { action.builder. + case 450: { action.builder. consumeQualifiedId(false); break; } // - // Rule 455: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 453: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 455: { action.builder. + case 453: { action.builder. consumeTemplateId(); break; } // - // Rule 456: operator_id_name ::= operator overloadable_operator + // Rule 454: operator_id_name ::= operator overloadable_operator // - case 456: { action.builder. + case 454: { action.builder. consumeOperatorName(); break; } // - // Rule 499: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 497: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 499: { action.builder. + case 497: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 500: export_opt ::= export + // Rule 498: export_opt ::= export // - case 500: { action.builder. + case 498: { action.builder. consumePlaceHolder(); break; } // - // Rule 501: export_opt ::= $Empty + // Rule 499: export_opt ::= $Empty // - case 501: { action.builder. + case 499: { action.builder. consumeEmpty(); break; } // - // Rule 505: template_parameter ::= parameter_declaration + // Rule 503: template_parameter ::= parameter_declaration // - case 505: { action.builder. + case 503: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 506: type_parameter ::= class identifier_name_opt + // Rule 504: type_parameter ::= class identifier_name_opt + // + case 504: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 505: type_parameter ::= class identifier_name_opt = type_id + // + case 505: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 506: type_parameter ::= typename identifier_name_opt // case 506: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 507: type_parameter ::= class identifier_name_opt = type_id + // Rule 507: type_parameter ::= typename identifier_name_opt = type_id // case 507: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 508: type_parameter ::= typename identifier_name_opt + // Rule 508: type_parameter ::= template < template_parameter_list > class identifier_name_opt // case 508: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 509: type_parameter ::= typename identifier_name_opt = type_id - // - case 509: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 510: type_parameter ::= template < template_parameter_list > class identifier_name_opt - // - case 510: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 511: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 509: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 511: { action.builder. + case 509: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 512: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 510: template_id_name ::= identifier_name < template_argument_list_opt > // - case 512: { action.builder. + case 510: { action.builder. consumeTemplateId(); break; } // - // Rule 518: template_argument ::= type_id + // Rule 515: template_argument ::= assignment_expression // - case 518: { action.builder. + case 515: { action.builder. + consumeTemplateArgumentExpression(); break; + } + + // + // Rule 516: template_argument ::= type_id + // + case 516: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 519: explicit_instantiation ::= template declaration + // Rule 517: explicit_instantiation ::= template declaration // - case 519: { action.builder. + case 517: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 520: explicit_specialization ::= template < > declaration + // Rule 518: explicit_specialization ::= template < > declaration // - case 520: { action.builder. + case 518: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 521: try_block ::= try compound_statement handler_seq + // Rule 519: try_block ::= try compound_statement handler_seq // - case 521: { action.builder. + case 519: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 524: handler ::= catch ( exception_declaration ) compound_statement + // Rule 522: handler ::= catch ( exception_declaration ) compound_statement // - case 524: { action.builder. + case 522: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 525: handler ::= catch ( ... ) compound_statement + // Rule 523: handler ::= catch ( ... ) compound_statement // - case 525: { action.builder. + case 523: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 526: exception_declaration ::= type_specifier_seq declarator + // Rule 524: exception_declaration ::= type_specifier_seq declarator + // + case 524: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 525: exception_declaration ::= type_specifier_seq abstract_declarator + // + case 525: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 526: exception_declaration ::= type_specifier_seq // case 526: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 527: exception_declaration ::= type_specifier_seq abstract_declarator - // - case 527: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 528: exception_declaration ::= type_specifier_seq - // - case 528: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 530: exception_specification ::= throw ( ) + // Rule 528: exception_specification ::= throw ( ) // - case 530: { action.builder. + case 528: { action.builder. consumePlaceHolder(); break; } // - // Rule 536: expression_parser_start ::= ERROR_TOKEN + // Rule 534: expression_parser_start ::= ERROR_TOKEN // - case 536: { 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/CPPExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java index 8b4f25af2d4..88ced855eda 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java @@ -41,477 +41,484 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 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,2, - 1,1,0,1,0,4,2,2,2,3, - 2,3,2,2,1,0,1,1,4,4, - 4,8,8,3,3,4,4,3,3,2, - 2,7,7,7,7,4,4,5,6,3, - 2,2,1,1,1,2,2,2,2,2, - 2,2,2,2,4,7,9,3,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,2,1,3,1,0,1, - 0,1,1,0,1,1,1,1,1,1, - 1,1,1,3,4,3,2,1,4,2, - 1,2,5,7,5,1,4,1,0,5, - 7,8,1,1,2,2,3,2,3,1, + 1,1,0,1,0,4,2,3,2,3, + 2,2,1,0,1,1,4,4,4,8, + 8,3,3,4,4,3,3,2,2,7, + 7,7,7,4,4,5,6,3,2,2, + 1,1,1,2,2,2,2,2,2,2, + 2,2,4,7,9,3,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,2,1,3,1,0,1,0,1, + 1,0,1,1,1,1,1,1,1,1, + 1,3,4,3,2,1,4,2,1,2, + 5,7,5,1,4,1,0,5,7,8, + 1,1,2,2,3,2,3,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2,1,0,4,4,2, - 2,2,2,2,0,1,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,2,1,0,4,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,3,4,4,5,2,4,5,4,5, - 6,1,3,1,0,1,3,1,1,1, - 6,5,7,6,1,0,6,5,6,4, - 1,3,1,0,1,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,4,1,2,1,1,2,3,1, - 1,1,3,2,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,7,6,3,0,0,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,1,1,2,1,0,1,3,1, - 2,3,2,1,2,2,1,0,1,3, - 3,5,5,4,1,1,1,1,0,1, - 5,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,3, + 4,4,5,2,4,5,4,5,6,1, + 3,1,0,1,3,1,1,1,6,5, + 7,6,1,0,6,5,6,4,1,3, + 1,0,1,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,2,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, + 7,6,3,0,0,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, + 1,1,2,1,0,1,3,1,2,3, + 2,1,2,2,1,0,1,3,3,5, + 5,4,1,1,1,1,0,1,5,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,1,1,2,2,7,1, - 0,1,3,1,1,2,4,2,4,7, - 9,5,1,3,1,0,1,1,2,4, - 4,1,2,5,5,3,3,1,4,3, - 1,0,1,3,1,1,-63,0,0,0, - -2,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-58,0, - 0,0,0,0,0,-53,0,0,-137,0, - 0,0,0,0,-351,-125,0,0,0,0, - 0,-312,0,0,0,0,-120,0,0,0, - 0,0,-114,-89,0,0,0,0,0,0, + 1,1,1,1,2,2,7,1,0,1, + 3,1,1,2,4,2,4,7,9,5, + 1,3,1,0,1,1,2,4,4,1, + 2,5,5,3,3,1,4,3,1,0, + 1,3,1,1,-62,0,0,0,-412,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-2,0,0,0, + 0,0,0,-4,0,0,-467,0,0,0, + 0,0,-435,0,0,0,0,-71,0,0, + 0,-54,0,0,0,0,0,0,0,0, + -5,-88,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,-244,-377,0, - 0,0,-10,0,-294,0,0,0,-49,0, 0,0,0,0,0,0,0,0,0,0, - -4,0,0,0,0,0,0,0,-262,0, - -72,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-264,0,-248, - 0,0,0,0,0,0,-116,0,0,0, + 0,0,0,-213,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, + 0,0,0,0,-243,0,0,0,-179,0, + 0,0,-72,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-5,0,-119,0,0,0,-6, - 0,-118,0,0,0,-51,0,0,0,0, - -65,0,-7,-117,0,0,0,0,0,0, + 0,0,0,0,-115,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -355,0,0,0,0,0,0,0,0,-151, - 0,0,0,0,0,0,0,0,0,-73, - 0,0,0,-138,0,0,0,0,0,0, + 0,0,-127,0,0,0,0,0,-113,0, + -58,0,0,0,-128,0,0,0,0,-116, 0,0,0,0,0,0,0,0,0,0, - -8,0,-132,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-412,0,0,0,0,0,0,0,-9, - -128,0,0,0,0,0,0,-16,0,0, - 0,-11,0,0,0,0,-54,0,0,-226, + 0,-6,0,-7,0,0,0,0,0,-64, + 0,0,-49,-10,0,-146,0,0,0,0, + 0,-51,0,0,0,0,-8,-260,0,-523, + 0,0,0,-230,0,0,0,0,0,0, + 0,0,0,0,0,0,-9,-131,0,0, 0,0,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,-118,-50,-521,0,0, + 0,0,0,0,-124,0,-275,0,0,0, + 0,0,-224,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-382,0,0,0, - 0,0,-130,0,0,-404,0,0,0,-179, - 0,0,0,0,0,0,-523,0,0,0, - -12,0,0,0,0,0,0,0,0,-345, - 0,0,-13,0,0,-180,0,0,-498,0, 0,0,0,0,0,0,0,0,0,0, + 0,-11,0,0,0,0,-388,0,0,0, + 0,0,0,0,0,-1,0,0,-12,0, + -142,0,0,-232,-65,0,0,0,-150,0, 0,0,0,0,0,0,0,0,0,0, - -360,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-237,0,0,0,0, - 0,-522,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-13,0,0, + -498,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-232,0,0,0,0,0,0, - 0,0,0,-309,0,0,0,0,0,-15, - -50,0,0,0,0,-3,0,0,0,-28, + 0,0,-246,0,0,0,0,0,0,0, + 0,0,0,0,-183,0,0,0,0,0, + 0,0,0,-522,0,0,0,-15,0,0, 0,0,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,-134,0,0, - 0,0,0,-29,0,0,0,0,-385,-431, - 0,0,0,-467,0,0,0,0,0,0, + 0,0,-313,0,0,-28,0,0,0,0, + 0,0,0,0,0,0,-316,-431,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-30,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-363,0,0,0, - 0,0,0,0,0,-282,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-117,0,0,-29, 0,0,0,0,0,0,0,0,0,0, + -3,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-147,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,-53,0,0,0,0,0, + -400,0,0,0,0,-30,-106,0,0,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,-267,0, + 0,0,0,0,0,0,0,0,-129,0, + -31,0,0,0,-280,0,0,0,-32,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,0,-31,0,0,-32, - 0,0,0,0,-188,0,0,0,0,0, - 0,-323,0,0,0,-33,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-34,0,0,0,0,0,0, - -35,0,0,-121,0,0,0,0,-239,0, - 0,0,0,0,-39,0,0,0,-36,0, + 0,0,0,-247,0,0,0,0,0,0, + 0,0,-396,0,0,0,0,-16,0,0, + 0,-33,-120,0,0,0,0,0,-320,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-37,0,0,0, - 0,0,0,0,0,0,-315,0,0,0, - 0,0,0,-451,0,0,0,-41,0,0, - 0,-38,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-40, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-320,0,0,-60,0,0, - -95,0,0,0,-55,0,0,0,0,0, + 0,0,0,0,0,0,0,-350,0,0, + 0,0,0,0,0,0,-235,0,0,0, + 0,-18,0,0,0,-353,-321,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-56,0,0,0,0,0,0,0, - 0,0,-193,0,0,0,0,-246,0,0, - 0,0,0,-96,0,0,0,-59,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-67,0,0,0,0, - 0,0,0,0,0,-144,0,0,0,0, - -252,0,0,0,0,0,-97,0,0,0, - -68,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-70,0, - 0,0,0,0,0,0,0,0,-155,0, - 0,0,0,-253,0,0,0,0,0,-98, - 0,0,0,-71,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-34,0, + 0,0,0,0,0,0,-527,0,0,0, + -39,0,0,0,-35,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-110,0,0,0,0,0,0,0,0, - 0,-201,0,0,0,0,-275,0,0,0, - 0,0,-99,0,0,0,-111,0,0,0, + 0,0,0,0,0,0,0,0,0,-134, + 0,0,0,0,0,0,0,0,-385,-74, + -36,0,0,0,-318,0,-41,0,0,0, + -37,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-316,0,0,0,0,0, - 0,0,0,0,-112,0,0,0,0,-280, - 0,0,0,0,0,-100,0,0,0,-113, + 0,0,0,0,0,-38,0,0,0,0, + 0,0,0,0,-130,-296,0,0,0,-94, + 0,0,0,-439,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-139,0,0, - 0,0,0,0,0,0,0,-306,0,0, - 0,0,-292,0,0,0,0,0,-101,0, - 0,0,-140,0,0,0,0,0,0,0, + 0,-510,0,0,0,0,0,0,0,0, + 0,0,0,-210,0,0,0,0,-334,-40, + 0,0,-95,0,0,0,-497,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -141,0,0,0,0,0,0,0,0,0, - -353,0,0,0,0,0,0,-510,-61,0, - 0,-102,0,0,0,-156,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-157,0,0,0,0,0,0, - 0,0,0,-354,0,0,0,0,0,-298, - -158,-108,0,0,-103,0,0,0,-159,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-160,0,0,0, - 0,0,0,0,0,0,-161,0,0,0, - 0,0,-335,-162,-109,0,0,-104,0,0, - 0,-163,0,0,0,0,0,0,0,0, + 0,-451,0,0,0,-96,0,0,0,-55, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-164, - 0,0,0,0,-396,0,0,-115,0,0, - -105,0,0,0,-165,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-56,0,-57, + 0,0,0,0,-455,0,0,0,-97,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-392,0,0,0,0,0,-455,0, - -149,0,0,-135,0,0,0,-166,0,0, 0,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, - -219,0,0,0,-167,0,0,0,0,0, + 0,0,-137,0,0,0,-66,-67,-59,0, + 0,-98,0,0,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,-168, - 0,0,-184,0,0,0,0,0,-142,0, - 0,0,0,0,-1,-57,0,-169,0,0, - -277,-516,0,0,0,0,0,0,0,0, + 0,0,0,-70,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-144, + -109,-60,0,0,-99,0,0,0,-110,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -170,0,0,0,0,0,0,0,-285,0, - -171,-154,0,0,-319,0,0,0,-172,0, + 0,0,0,0,0,0,-111,0,-138,0, + 0,0,-154,-112,-107,0,0,-100,0,0, + 0,-132,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-139, + 0,0,0,0,0,0,0,0,0,-140, + 0,0,0,0,0,-141,-155,-108,0,0, + -101,0,0,0,-156,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-173,0,0,0, - 0,-333,0,0,0,-174,0,0,0,0, + 0,0,-157,0,0,0,0,0,-158,-159, + -114,0,0,-102,0,0,0,-160,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-161,0,0,0,0, + 0,0,0,0,0,-162,0,-185,0,0, + 0,0,-163,-149,0,0,-103,0,0,0, + -164,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,-166,0, + -186,0,0,0,0,-167,-153,0,0,-104, + 0,0,0,-168,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -175,0,0,0,0,0,0,0,-150,0, - 0,0,-203,0,0,0,0,0,0,0, - 0,-66,-348,0,0,0,0,0,0,0, + 0,-330,0,0,0,0,0,0,0,0, + 0,-192,0,-188,0,0,0,0,-200,-169, + 0,0,-135,0,0,0,-262,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-344,0,0,0,0,0, + 0,0,0,0,-170,0,-171,0,0,0, + -217,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,-380, + 0,0,0,0,0,0,0,0,0,-172, + 0,0,-333,0,-190,0,0,0,0,-193, + 0,0,0,0,0,-178,0,0,0,-516, 0,0,0,0,0,0,0,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,-153,0,0,0, - -212,0,0,0,0,0,0,0,0,-343, - -381,0,0,0,0,0,0,0,0,0, + 0,-173,0,0,0,0,0,0,0,0, + 0,0,0,-204,0,0,0,0,-206,-202, + 0,0,-317,0,0,0,-342,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-456, - 0,0,-176,0,0,0,0,-442,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-177, - 0,0,0,0,0,0,-178,0,0,0, - 0,0,0,0,-336,0,0,0,-240,-398, - 0,0,0,0,0,0,-181,-182,-107,0, + 0,0,0,0,-304,0,-174,0,0,0, + -332,0,0,0,-283,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-175, + 0,0,-176,0,0,0,0,0,-147,0, + 0,0,-284,-362,0,0,0,0,0,-348, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -186,0,0,0,0,-94,0,0,0,0, + 0,-398,0,0,0,0,0,0,0,0, + 0,0,0,-177,0,0,0,-380,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-286,0,0, - 0,0,0,0,0,0,0,-334,0,-93, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-180, + 0,0,0,0,0,-335,0,0,0,-181, + 0,0,0,0,0,0,-381,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-350,0,0,0,0,0,0,-183,0, - -90,0,0,0,-362,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-411,0, + 0,0,0,0,0,-354,0,0,-433,0, + 0,0,0,0,-442,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-411,0,0,0,0,0,-91,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-392,0,0,0,0,0,0, + 0,0,-373,0,0,0,-182,-191,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,-83,0,0,0, + 0,0,0,0,0,-197,0,0,0,0, + 0,0,-198,0,0,-314,0,-187,0,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,-192,0, - 0,0,0,-84,0,0,0,0,0,0, + 0,0,0,-211,0,0,0,0,0,0, + -238,0,0,-92,0,0,0,-369,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-198,0,0,0,0, - -85,0,0,0,-199,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-202,0,0,0,0,-86,0,0, - 0,-213,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-207, - 0,0,0,0,-423,-289,-228,-136,0,-216, - 0,0,-358,0,0,0,0,-148,0,0, - 0,0,0,-187,-261,-224,0,0,-374,0, - 0,0,-218,0,0,0,0,0,0,0, - -225,-440,0,0,0,0,-405,0,0,0, - 0,0,0,0,0,0,0,0,-433,-227, - 0,-189,0,0,-191,0,0,0,0,0, - 0,-241,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-243,0,0,0, - 0,0,0,0,0,0,0,0,-527,0, + 0,0,0,0,-89,0,0,0,-270,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-292,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,-201,0,0,0,0,0, + -240,0,0,0,0,0,0,0,0,0, + 0,0,0,-212,-196,0,0,0,-355,0, + 0,0,-286,0,0,0,0,0,0,0, + 0,0,0,0,0,-152,0,0,0,-363, + 0,0,0,0,0,0,0,0,0,-231, + 0,0,0,-444,0,-222,0,0,0,0, + 0,0,0,0,-223,-122,0,0,0,0, + 0,-464,0,0,0,0,-323,0,0,0, + 0,0,0,-393,0,0,-237,0,0,0, + -225,0,0,0,0,0,0,0,-239,0, + 0,-376,0,0,0,0,0,0,0,0, + 0,0,-241,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, + -249,0,0,0,0,-83,0,0,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,-84,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-265,0,0, + 0,0,-85,0,0,0,-216,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-266,0,0,0,0,-389, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-264,0,0,-215,0,0,0,-203, + -276,-14,-245,0,0,0,-475,-277,-326,-281, + 0,-423,0,0,-361,0,0,0,0,-282, + 0,0,-209,0,-234,0,0,-293,0,0, + 0,-374,0,0,0,0,0,0,0,0, + 0,0,0,-228,0,0,0,0,-43,0, + 0,0,0,-252,0,-460,0,0,0,0, + 0,0,0,0,0,0,0,-253,0,-297, + 0,0,-244,0,0,0,0,-359,0,0, + 0,0,0,0,0,0,-145,-440,0,0, + 0,0,0,0,-408,0,0,0,0,0, + 0,0,0,0,0,0,-61,0,0,0, + 0,-229,0,0,0,0,0,-382,0,0, + 0,0,0,-271,-242,0,0,0,0,-298, + -305,0,0,0,0,0,0,0,0,0, + 0,-233,0,-306,0,0,0,-236,0,0, + -311,0,0,0,0,0,0,0,0,0, + 0,-515,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,-52,0,0,0, - -194,0,0,0,0,-87,0,0,0,0, + 0,0,0,0,-453,0,0,-302,0,0, + 0,-404,0,0,0,0,-324,-312,0,0, + 0,0,-250,0,0,0,0,-397,0,0, + 0,0,-357,-329,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-254,0,0, + 0,0,0,-347,0,0,0,0,-377,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,-242,0,0,0,0,-265, - 0,0,0,0,0,-367,0,0,0,0, - -122,0,0,0,0,0,-304,0,-247,0, - -20,0,0,0,-267,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-205,0,0,0,0,-211,0,-254, - 0,0,0,0,0,-268,0,0,0,0, - -397,0,0,0,0,0,-435,0,0,0, - 0,0,0,0,0,0,0,-233,0,0, - -249,0,-62,0,0,0,0,0,0,0, - 0,-245,0,0,-318,0,0,0,0,0, - 0,0,0,0,0,0,-88,0,0,0, - -278,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-234,0, - 0,0,-288,0,0,0,0,0,0,0, - 0,0,0,-279,0,0,-389,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-266,0,0,0,-337,-200,-255,0,0, - 0,0,-283,-284,0,0,0,0,0,-303, - -145,-236,0,0,0,-210,0,0,-295,0, - 0,0,0,-230,-388,0,0,0,0,0, + 0,0,-349,0,0,0,0,0,-364,0, + 0,0,0,0,0,-47,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,-299,0,0,0,0,0,0,0,-197, - 0,0,0,0,0,-449,0,0,0,0, - 0,0,0,0,0,0,0,0,-290,0, - 0,0,0,-123,0,0,0,0,0,0, - 0,0,0,-48,0,0,0,0,0,0, - 0,-272,-470,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-400,0,-256,0,0,0,0, + 0,0,0,0,-251,0,0,0,0,0, + -148,-483,-367,0,0,-258,0,0,0,0, + 0,0,0,0,0,0,-86,0,0,0, + -226,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-390,0, + 0,0,-87,0,0,0,-391,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-18,0,0,0,-325,0,0, - 0,0,0,0,0,0,-472,0,0,0, - 0,0,0,-425,0,0,0,0,-408,0, - 0,0,0,0,0,0,0,-373,0,-436, - 0,0,0,0,-300,0,0,-274,0,0, - 0,0,0,-489,0,0,0,0,-307,0, + 0,0,0,0,0,0,0,0,-309,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-308,0,0,-214,0,0,0, - -313,0,0,-314,0,0,0,0,0,0, - 0,0,0,0,-47,0,0,0,-375,0, - 0,0,0,0,0,0,0,-503,-364,0, - -231,0,-417,0,0,-273,0,-330,0,0, - -347,0,0,0,0,0,0,0,0,0, - 0,0,-257,-415,0,-393,0,0,0,0, - -238,0,0,-349,-505,0,0,0,0,0, - -370,-365,0,0,0,0,0,0,0,0, - 0,0,-250,0,0,-513,0,0,0,0, - 0,-124,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-185,0,0,0,-439, - 0,0,0,0,0,0,0,0,-509,-291, - 0,0,0,0,-368,0,0,0,0,0, - 0,-390,0,0,0,0,0,0,0,-357, - 0,0,0,0,0,0,-460,0,0,0, - 0,0,0,0,-391,-524,0,0,0,0, - -394,0,0,0,0,0,0,0,0,0, - 0,0,-235,0,0,-395,0,0,0,0, - 0,-430,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-196,0,0,0, - -401,0,0,0,0,0,0,0,0,-529, - 0,0,0,0,-452,-260,0,0,0,0, + 0,0,-394,-405,0,0,0,-199,-255,0, + 0,-427,0,-279,-272,0,-395,0,-291,0, + -449,-259,0,-401,0,-424,0,0,-303,-403, + 0,-406,0,0,-368,0,0,0,0,0, + 0,-413,0,0,0,0,0,0,0,0, + 0,0,-289,0,0,0,0,-470,0,0, + 0,0,-420,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-308,0,-421,0, + 0,0,0,-379,0,0,0,0,0,0, + 0,0,0,0,-17,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-281,0,-403,-301,0,-406,0,0, - -413,0,-420,0,0,0,0,0,0,0, - -293,-421,0,0,0,0,0,0,0,0, - 0,0,0,-276,0,0,0,0,-444,-497, - -424,0,0,-441,0,0,-443,0,0,0, - 0,0,0,0,-78,0,0,0,-445,0, + 0,-441,0,-472,-430,0,0,0,0,0, + 0,-484,0,0,0,0,0,0,0,0, + 0,-248,-443,0,-322,0,-287,0,0,0, + -105,0,0,0,0,-445,-446,0,0,0, + 0,0,0,0,-143,0,0,0,-511,0, + 0,0,0,0,0,0,0,-489,0,0, + 0,0,-372,-454,-465,-447,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,0,-446,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-447,0,0,-311,0,0,0,0,0, - 0,0,0,0,0,-515,0,0,0,0, - -484,0,0,0,0,0,-80,0,0,0, - -448,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-17,0, - -302,0,0,-305,0,-310,-75,0,0,0, - 0,0,0,0,0,-450,-326,0,0,0, - 0,-466,-324,0,0,0,0,0,0,0, - 0,-468,0,0,0,0,0,0,-469,-329, - 0,0,0,0,0,0,0,-321,0,-499, - 0,0,-126,0,-471,0,0,0,0,0, - 0,0,-81,0,0,0,0,0,0,0, + -448,-450,0,-466,-503,0,0,0,0,-468, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-476,0,-82,0,0,0, - -453,0,0,0,0,0,0,0,0,0, + 0,-469,0,-471,0,0,0,-425,0,0, + 0,-476,0,0,0,0,0,0,0,0, + 0,-505,0,0,0,0,-273,0,0,0, + 0,0,0,0,0,0,0,0,-463,0, + -328,0,0,0,0,0,0,-478,-480,0, + 0,0,0,0,0,0,0,0,-509,0, + 0,0,0,-278,0,0,0,0,0,0, + 0,0,0,0,0,-487,0,-479,0,-288, + 0,0,0,0,-299,0,0,0,0,0, + 0,0,0,0,0,-524,0,0,0,0, + -495,0,-504,-512,0,0,0,0,0,0, + 0,0,-517,0,-528,0,0,0,-456,-513, + 0,-300,0,0,0,0,0,0,0,0, + 0,0,-529,0,0,0,0,-290,0,0, 0,0,0,0,0,0,0,0,0,0, - -464,0,0,0,-480,0,0,-328,0,0, - 0,-487,0,0,0,0,0,0,0,-454, - -495,-217,0,0,0,-483,-504,0,-372,0, - 0,0,0,-338,-465,0,0,0,-429,-74, - -204,-297,0,0,0,0,0,0,-340,-342, - 0,-356,0,0,-346,0,-512,0,0,0, - 0,0,0,-517,0,0,0,0,0,-387, + 0,0,-415,0,0,-514,-325,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-528,0,0,0,0,0,0, - 0,0,-206,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,-337, + -274,0,-339,0,-341,0,0,0,0,0, + 0,0,0,0,0,0,-77,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-360,0, + 0,-78,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-327,0,0,0, + 0,0,0,0,0,0,0,0,0,-507, + 0,0,0,0,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,0, + 0,0,0,0,-452,0,0,-518,0,-486, + 0,0,0,0,0,0,0,-436,0,0, + -356,0,-387,-119,0,0,0,0,0,0, + 0,0,0,0,-44,0,0,0,0,0, + 0,0,0,0,0,0,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,-407,0,-386,-48,0,0, + 0,0,-410,-136,0,-414,0,0,0,0, + 0,0,0,-432,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-457,0,-81,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -336,0,0,0,0,-218,0,0,0,0, + -371,0,0,0,0,0,0,0,0,-419, + -429,-121,0,0,0,-73,-219,0,0,0, + 0,-123,0,0,0,0,0,0,0,0, + 0,-125,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-21,0,0,0,0,0, + 0,0,0,0,0,0,-422,0,0,0, + 0,-459,-462,0,0,0,0,0,0,0, + 0,0,-481,0,0,0,0,0,0,0, + 0,0,0,0,0,-22,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-22,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,0,0,0,0,0,-23,0, - 0,0,-511,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,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,0,0,0, - 0,0,0,0,0,0,0,0,-64,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, - -76,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,-77,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,-133,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,-208,0,0,0, + 0,0,0,0,0,0,0,-63,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-507,0, - 0,0,0,0,0,0,0,0,0,-19, + 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, - -106,-339,-43,-386,0,0,0,-407,-410,-359, - 0,0,0,-258,-44,-366,-42,0,0,0, - 0,-419,0,0,0,0,0,0,0,0, - -259,0,0,0,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,-133,0,0,0,0,0,0, + 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,0,0,0,-19,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-338,-220, + -221,0,0,0,0,-351,0,0,-365,-458, + 0,-461,0,-256,0,-417,-295,0,-370,0, + 0,0,0,-294,0,-506,0,0,0,0, + 0,-499,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,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,-371,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-409,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-422,0,-220,0,0,0,0,0, - 0,0,-414,-457,-459,-458,-461,0,0,-478, - 0,0,0,0,0,0,0,0,-462,-490, - -492,-376,0,0,0,0,0,0,0,0, - 0,0,-418,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,-378,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-432,0,0,0, - 0,0,0,0,0,0,0,-332,0,0, - 0,0,-127,0,0,0,0,0,-514,0, - 0,0,0,0,0,0,0,0,0,0, - -486,0,0,0,0,0,0,0,0,0, - -475,-69,-45,-229,0,0,0,0,0,0, - 0,0,0,-221,0,0,0,0,0,0, - 0,0,0,0,0,0,-428,0,0,0, - 0,-427,0,0,0,0,-496,-222,0,0, - 0,0,0,0,-481,0,0,0,0,0, - 0,0,0,0,-485,-506,0,0,0,0, - 0,0,0,0,0,0,0,-494,0,-502, + 0,0,-301,0,0,0,0,0,0,0, + -490,0,0,0,0,0,0,0,0,0, + -519,0,0,0,0,0,0,0,0,0, + -409,0,0,0,0,0,0,-485,-492,0, + -418,0,0,-494,0,0,-526,0,0,-45, + -46,-208,0,0,0,0,-502,0,0,0, + 0,-319,0,0,0,-496,0,-500,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-426,0,0,0,0,0, - 0,-344,0,0,0,0,0,0,0,0, - 0,0,-379,0,0,0,-519,0,0,0, - 0,0,0,0,0,0,0,-369,0,0, + 0,0,0,0,0,0,0,0,0,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,-310,0,0,0, + 0,0,0,0,0,0,0,0,0,0, -491,0,0,0,0,0,0,0,0,0, - 0,-270,0,0,0,0,0,0,0,0, - 0,0,-327,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-500,0,0,0,0,0,0, - 0,-501,-46,-526,0,0,0,0,0,0, - 0,0,-271,0,0,0,0,0,0,0, - 0,0,-520,-525,0,0,0,0,-209,0, - 0,-488,0,0,0,0,0,-129,0,0, + 0,0,0,-126,0,0,0,0,0,0, + 0,-151,0,0,0,0,0,-257,0,0, + 0,0,0,0,0,-227,-501,-331,-426,0, 0,0,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,-152,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-190,0,0,0,0,0, - 0,0,0,0,0,-195,0,0,0,0, + 0,0,0,-520,0,0,-488,0,0,0, + 0,0,0,0,-268,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-317,0,0,0, + 0,0,-345,-525,-437,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-518,0,-14,0,0,0,0,0,0, - 0,0,-341,0,0,0,0,-352,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-383,0,0,0,0,0,0,0, - 0,0,0,-384,0,0,0,0,0,0, - -402,0,0,0,0,0,0,0,0,0, - 0,0,0,-416,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-428,0, + 0,0,0,0,0,-343,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-378,0,0,0,0,0,0,0, + 0,0,0,0,0,-366,0,0,0,0, + 0,0,0,0,0,0,0,0,-508,0, + 0,0,0,-269,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-189, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-194,0,0,0,-285,0, + 0,0,0,0,0,-315,0,0,0,-340, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-346,0,0,0,0,0,0, + -375,0,0,0,0,0,0,-438,0,0, + 0,0,0,0,0,0,-352,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -383,0,0,0,0,0,0,0,0,0, + 0,-384,0,0,0,-402,0,0,0,0, + 0,0,0,0,0,0,-399,0,0,0, + 0,0,0,0,0,-416,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, -434,0,0,0,0,0,0,0,0,0, - 0,-263,0,0,0,0,0,0,0,0, - 0,0,-493,0,0,0,0,0,0,0, - 0,-287,0,0,0,0,0,0,0,0, - -399,0,0,0,0,0,0,0,0,-473, + -493,0,0,0,0,0,0,0,-42,0, + 0,0,0,-68,0,0,0,0,0,0, + 0,0,0,0,0,-184,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -474,0,0,-477,0,-437,0,0,0,0, - 0,0,0,-438,0,-482,0,0,0,0, + 0,0,0,0,0,0,0,0,-195,0, + 0,0,0,0,-205,0,0,0,0,0, + 0,-473,0,0,0,0,0,0,0,0, + -214,0,0,0,-261,0,0,0,0,0, + 0,-474,0,0,0,0,0,0,0,-482, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-223,0,0,0,0,0, - 0,0,0,0,0,0,-296,0,-508,0, + 0,-477,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -520,7 +527,8 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,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; @@ -530,531 +538,535 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface BaseAction { public final static char baseAction[] = { - 170,4,54,83,83,32,32,66,66,38, + 169,4,133,82,82,32,32,66,66,38, 38,40,40,193,193,194,194,195,195,1, 1,15,15,15,15,15,15,15,15,16, - 16,16,14,11,11,8,8,8,8,8, - 8,2,67,67,5,5,12,12,12,12, - 45,45,134,134,135,62,62,43,17,17, + 16,16,14,11,11,6,6,6,6,6, + 6,2,64,64,5,5,12,12,44,44, + 134,134,135,56,56,43,17,17,17,17, 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,136,136, - 136,113,113,18,18,18,18,18,18,18, - 18,18,18,18,18,18,19,19,171,171, - 172,172,173,139,139,140,140,137,137,141, - 138,138,20,20,21,21,23,23,23,24, - 24,24,24,25,25,25,26,26,26,27, - 27,27,27,27,28,28,28,30,30,31, - 31,33,33,34,34,35,35,36,36,42, - 42,41,41,41,41,41,41,41,41,41, - 41,41,41,41,39,29,142,142,97,97, - 174,174,92,196,196,68,68,68,68,68, - 68,68,68,68,69,69,69,65,65,56, - 56,175,175,70,70,70,103,103,176,176, - 71,71,71,177,177,72,72,72,72,72, - 73,73,84,84,84,84,84,84,84,49, - 49,49,49,49,114,114,115,115,50,178, - 22,22,22,22,22,48,48,87,87,87, - 87,87,149,149,144,144,144,144,144,145, - 145,145,146,146,146,147,147,147,148,148, - 148,88,88,88,88,88,89,89,89,13, - 13,13,13,13,13,13,13,13,13,13, - 100,119,119,119,119,119,119,117,117,117, - 118,118,151,151,150,150,121,121,104,79, - 79,80,81,52,47,152,152,53,51,86, - 86,153,153,143,143,122,123,123,76,76, - 154,154,63,63,63,59,59,58,64,64, - 75,75,57,57,57,90,90,99,98,98, - 61,61,60,60,55,55,44,101,101,101, - 93,93,93,94,94,95,95,95,96,96, - 105,105,105,107,107,106,106,197,197,91, - 91,180,180,180,180,180,125,46,46,156, - 179,179,126,126,126,126,127,158,181,181, - 37,37,116,128,128,128,128,108,108,120, - 120,120,159,160,160,160,160,160,160,160, - 160,160,160,160,184,184,182,182,183,183, - 161,161,161,161,162,185,110,109,109,186, - 186,163,163,163,163,102,102,102,187,187, - 9,9,10,188,188,189,164,155,155,165, - 165,166,167,167,6,6,7,168,168,168, - 168,168,168,168,168,168,168,168,168,168, - 168,168,168,168,168,168,168,168,168,168, - 168,168,168,168,168,168,168,168,168,168, - 168,168,168,168,168,168,168,168,168,77, - 82,82,169,169,130,130,131,131,131,131, - 131,131,3,132,132,129,129,111,111,85, - 78,74,157,157,112,112,190,190,190,133, - 133,124,124,191,191,170,170,1132,41,1671, - 1653,1212,4505,36,1040,33,37,953,32,34, - 1628,31,29,58,1050,114,84,85,116,2199, - 1084,1247,1112,1266,1250,1291,1411,1284,1327,1493, - 1309,1352,1370,151,280,2064,1350,1423,166,152, - 4557,4536,1530,41,941,38,3615,1258,36,1040, - 342,37,953,1339,2447,41,941,38,239,2994, - 36,1040,33,37,953,32,34,872,31,29, - 58,1050,114,84,85,116,2641,1084,1247,1112, - 1266,1250,1905,31,242,237,238,1046,1779,592, - 41,453,2637,66,4621,2940,4672,281,3085,31, - 323,2318,325,687,356,318,1989,956,239,498, - 2675,420,2161,249,252,255,258,2934,3467,2771, - 930,1190,41,941,38,1294,4509,36,1040,33, - 37,953,65,34,251,237,238,1337,2929,651, - 1751,726,587,2691,3162,3503,4233,1655,41,941, - 38,2637,2994,36,1040,33,37,953,32,34, - 872,31,29,58,1050,114,84,85,116,346, - 1084,1247,1112,1266,1250,1291,405,1284,1327,363, - 1309,1352,1370,151,71,392,1384,456,517,152, - 1467,2763,501,3190,2592,2607,1966,3176,430,246, - 732,506,518,1511,1655,41,941,38,2637,2994, - 36,1040,33,37,953,32,34,872,31,29, - 58,1050,114,84,85,116,346,1084,1247,1112, - 1266,1250,1291,96,1284,1327,110,1309,1352,1370, - 151,1238,41,1481,391,517,152,239,2763,335, - 1238,1499,2530,40,446,3271,3305,69,513,518, - 2158,41,941,38,1357,4509,36,1040,33,37, - 953,64,34,247,237,238,2257,635,431,2258, - 2869,1776,1933,1655,41,941,38,2637,2994,36, - 1040,33,37,953,32,34,872,31,29,58, - 1050,114,84,85,116,346,1084,1247,1112,1266, - 1250,1291,1980,1284,1327,513,1309,1352,1370,151, - 1887,592,41,286,517,152,3267,2763,1263,41, - 1438,49,332,2359,48,1040,2258,2658,518,357, - 1857,41,941,38,2637,2994,36,1040,33,37, - 953,32,34,872,31,29,58,1050,114,84, - 85,116,346,1084,1247,1112,1266,1250,1291,497, - 1284,1327,2861,1309,1352,1370,151,1238,41,1481, - 391,517,152,1411,2763,443,1238,41,1481,391, - 1238,41,2530,2546,513,518,68,2141,41,941, - 38,1908,4083,36,1040,33,37,953,32,34, - 1969,511,2475,2016,434,2258,1238,41,2561,1986, - 41,941,38,433,2994,36,1040,33,37,953, - 32,34,872,31,29,58,1050,114,84,85, - 116,2940,1084,1247,1112,1266,1250,1291,403,1284, - 1327,514,1309,1352,1370,151,1238,41,289,4149, - 382,152,1721,41,941,38,460,2994,36,1040, - 33,37,953,32,34,872,31,29,58,1050, - 114,84,85,116,857,1084,1247,1112,1266,1250, - 1291,317,1284,1327,66,1309,1352,1370,151,4583, - 2151,31,4149,382,152,744,2095,41,941,38, - 2747,2994,36,1040,33,37,953,32,34,872, - 31,29,58,1050,114,84,85,116,2619,1084, - 1247,1112,1266,1250,1291,1411,1284,1327,501,1309, - 1352,1370,151,3176,1545,388,2112,166,152,2125, - 1921,41,941,38,1984,2994,36,1040,33,37, - 953,32,34,872,31,29,58,1050,114,84, - 85,116,1104,1084,1247,1112,1266,1250,1291,97, - 1284,1327,110,1309,1352,1370,151,2960,389,2112, - 4149,382,152,393,427,335,2095,41,941,38, - 3763,2994,36,1040,33,37,953,32,34,872, - 31,29,58,1050,114,84,85,116,459,1084, - 1247,1112,1266,1250,1291,407,1284,1327,2847,1309, - 1352,1370,151,1911,41,941,38,376,152,36, - 1040,46,37,953,2447,41,941,38,651,2994, - 36,1040,33,37,953,32,34,872,31,29, - 58,1050,114,84,85,116,523,1084,1247,1112, - 1266,1250,1291,359,1284,1981,380,2112,2095,41, - 941,38,531,2994,36,1040,33,37,953,32, - 34,872,31,29,58,1050,114,84,85,116, - 1751,1084,1247,1112,1266,1250,1291,327,1284,1327, - 2166,1309,1352,1370,151,1238,41,3101,2874,376, - 152,375,2095,41,941,38,1701,2994,36,1040, - 33,37,953,32,34,872,31,29,58,1050, - 114,84,85,116,153,1084,1247,1112,1266,1250, - 1291,60,1284,1327,2219,1309,1352,1370,151,1238, - 41,2530,283,376,152,1793,41,941,38,1236, - 2994,36,1040,33,37,953,32,34,872,31, - 29,58,1050,114,84,85,116,756,1084,1247, - 1112,1266,1250,1291,2544,1284,1327,2460,1309,1352, - 1370,151,4588,374,1238,4140,150,152,2095,41, - 941,38,321,2994,36,1040,33,37,953,32, - 34,872,31,29,58,1050,114,84,85,116, - 1410,1084,1247,1112,1266,1250,1291,981,1284,1327, - 2869,1309,1352,1370,151,1238,2791,372,2658,167, - 152,2095,41,941,38,1260,2994,36,1040,33, - 37,953,32,34,872,31,29,58,1050,114, - 84,85,116,1338,1084,1247,1112,1266,1250,1291, - 3935,1284,1327,2219,1309,1352,1370,151,2700,41, - 2530,283,163,152,2095,41,941,38,2194,2994, - 36,1040,33,37,953,32,34,872,31,29, - 58,1050,114,84,85,116,679,1084,1247,1112, - 1266,1250,1291,3243,1284,1327,1411,1309,1352,1370, - 151,1238,2902,2530,82,162,152,2095,41,941, - 38,2240,2994,36,1040,33,37,953,32,34, - 872,31,29,58,1050,114,84,85,116,1353, - 1084,1247,1112,1266,1250,1291,293,1284,1327,1411, - 1309,1352,1370,151,2700,41,2530,3035,161,152, - 2095,41,941,38,1469,2994,36,1040,33,37, - 953,32,34,872,31,29,58,1050,114,84, - 85,116,1162,1084,1247,1112,1266,1250,1291,3957, - 1284,1327,1411,1309,1352,1370,151,1238,41,2530, - 288,160,152,2095,41,941,38,1777,2994,36, - 1040,33,37,953,32,34,872,31,29,58, - 1050,114,84,85,116,1271,1084,1247,1112,1266, - 1250,1291,59,1284,1327,1934,1309,1352,1370,151, - 1238,41,2530,285,159,152,2095,41,941,38, - 2230,2994,36,1040,33,37,953,32,34,872, - 31,29,58,1050,114,84,85,116,1510,1084, - 1247,1112,1266,1250,1291,330,1284,1327,2219,1309, - 1352,1370,151,1238,41,2530,3108,158,152,2095, - 41,941,38,2690,2994,36,1040,33,37,953, - 32,34,872,31,29,58,1050,114,84,85, - 116,2630,1084,1247,1112,1266,1250,1291,3594,1284, - 1327,66,1309,1352,1370,151,4603,438,2042,2658, - 157,152,2095,41,941,38,675,2994,36,1040, - 33,37,953,32,34,872,31,29,58,1050, - 114,84,85,116,762,1084,1247,1112,1266,1250, - 1291,30,1284,1327,66,1309,1352,1370,151,4614, - 331,2688,2658,156,152,2095,41,941,38,2805, - 2994,36,1040,33,37,953,32,34,872,31, - 29,58,1050,114,84,85,116,2814,1084,1247, - 1112,1266,1250,1291,77,1284,1327,2112,1309,1352, - 1370,151,1724,331,2197,2658,155,152,2095,41, - 941,38,2598,2994,36,1040,33,37,953,32, - 34,872,31,29,58,1050,114,84,85,116, - 523,1084,1247,1112,1266,1250,1291,76,1284,1327, - 2617,1309,1352,1370,151,2890,41,397,2658,154, - 152,2095,41,941,38,1704,2994,36,1040,33, - 37,953,32,34,872,31,29,58,1050,114, - 84,85,116,78,1084,1247,1112,1266,1250,1291, - 61,1284,1327,66,1309,1352,1370,151,4634,1238, - 3565,2658,153,152,2051,41,941,38,2267,2994, - 36,1040,33,37,953,32,34,872,31,29, - 58,1050,114,84,85,116,79,1084,1247,1112, - 1266,1250,1291,95,1284,1327,55,1309,1352,2493, - 172,2095,41,941,38,147,2994,36,1040,33, - 37,953,32,34,872,31,29,58,1050,114, - 84,85,116,3313,1084,1247,1112,1266,1250,1291, - 2547,1284,1327,2271,1309,1352,1370,151,3176,592, - 41,286,148,152,3653,1591,31,331,2803,1046, - 823,2771,2359,41,941,38,1552,2994,36,1040, - 33,37,953,32,34,872,31,29,58,1050, - 114,84,85,116,164,1084,1247,1112,1266,1250, - 1291,1314,1284,1327,535,1309,1352,1370,151,1906, - 336,240,2658,197,152,2447,41,941,38,1508, - 2994,36,1040,33,37,953,32,34,872,31, - 29,58,1050,114,84,85,116,290,1084,1247, - 1112,1266,1250,1291,60,1284,1327,161,1309,1352, - 2493,172,2447,41,941,38,669,2994,36,1040, - 33,37,953,32,34,872,31,29,58,1050, - 114,84,85,116,384,1084,1247,1112,1266,1250, - 1291,2281,1284,1327,328,1309,1352,2493,172,2033, - 41,941,38,2658,4083,36,1040,33,37,953, - 67,34,1651,2447,41,941,38,297,2994,36, - 1040,33,37,953,32,34,872,31,29,58, - 1050,114,84,85,116,353,1084,1247,1112,1266, - 1250,1291,2219,1284,1327,541,1309,1352,2493,172, - 2447,41,941,38,2365,2994,36,1040,33,37, - 953,32,34,872,31,29,58,1050,114,84, - 85,116,1378,1084,1247,1112,1266,1250,1291,1173, - 1284,1327,4315,1309,1352,2493,172,2033,41,941, - 38,2658,4083,36,1040,33,37,953,66,34, - 2221,2447,41,941,38,423,2994,36,1040,33, - 37,953,32,34,872,31,29,58,1050,114, - 84,85,116,98,1084,1247,1112,1266,1250,1291, - 2219,1284,1327,2575,1309,1352,2493,172,2491,41, - 941,38,422,2994,36,1040,33,37,953,32, - 34,872,31,29,58,1050,114,84,85,116, - 2661,1084,1247,1112,1266,1250,1291,2724,1284,1327, - 2974,1309,1352,2493,172,1911,41,941,38,2658, - 2960,36,1040,1127,37,953,4305,2265,1075,2447, - 41,941,38,425,2994,36,1040,33,37,953, - 32,34,872,31,29,58,1050,114,84,85, - 116,3303,1084,1247,1112,1266,1250,1291,304,1284, - 1327,31,1309,2036,1034,2527,2447,41,941,38, - 3505,2994,36,1040,33,37,953,32,34,872, - 31,29,58,1050,114,84,85,116,2164,1084, - 1247,1112,1266,1250,1291,4152,1284,1327,1411,1999, - 2447,41,941,38,447,2994,36,1040,33,37, - 953,32,34,872,31,29,58,1050,114,84, - 85,116,2908,1084,1247,1112,1266,1250,1291,2499, - 1991,2447,41,941,38,1411,2994,36,1040,33, - 37,953,32,34,872,31,29,58,1050,114, - 84,85,116,2960,1084,1247,1112,1266,1930,2447, - 41,941,38,329,2994,36,1040,33,37,953, - 32,34,872,31,29,58,1050,114,84,85, - 116,105,1084,1247,1112,1266,1948,2447,41,941, - 38,228,2994,36,1040,33,37,953,32,34, - 872,31,29,58,1050,114,84,85,116,1110, - 1084,1247,1112,1767,2447,41,941,38,106,2994, - 36,1040,33,37,953,32,34,872,31,29, - 58,1050,114,84,85,116,2357,1084,1247,1112, - 1774,2447,41,941,38,2772,2994,36,1040,33, - 37,953,32,34,872,31,29,58,1050,114, - 84,85,116,1381,1084,1247,1112,1782,2447,41, - 941,38,1636,2994,36,1040,33,37,953,32, - 34,872,31,29,58,1050,114,84,85,116, - 2775,1084,1247,1112,1810,262,501,1375,1973,537, - 2751,3176,3601,1911,41,941,38,421,2561,36, - 1040,343,37,953,31,1375,2849,236,4264,1911, - 41,941,38,1847,164,36,1040,2250,37,953, - 354,2909,1,188,3339,2974,537,1238,41,1481, - 391,211,222,2686,210,219,220,221,223,2960, - 408,177,31,335,236,680,1024,1173,2545,2809, - 176,164,849,191,175,178,179,180,181,182, - 188,3339,2974,355,432,3067,2545,1118,211,222, - 2686,210,219,220,221,223,3568,308,177,55, - 1173,347,804,569,352,332,338,176,189,2073, - 192,175,178,179,180,181,182,2535,41,1481, - 391,31,4478,337,338,2862,2447,41,941,38, - 244,2994,36,1040,33,37,953,32,34,872, - 31,29,58,1050,114,84,85,116,1668,1084, - 1247,1825,50,2502,280,1485,41,941,38,2526, - 2081,36,1040,342,37,953,2541,41,941,38, - 2827,2140,36,1040,342,37,953,1651,239,2658, - 2562,2447,41,941,38,2903,2994,36,1040,33, - 37,953,32,34,872,31,29,58,1050,114, - 84,85,93,31,242,237,238,628,2591,4672, - 2658,3321,2761,323,2318,325,2540,281,318,1989, - 4672,2890,41,397,320,3071,325,1238,41,298, - 355,2854,239,249,252,255,258,2934,2799,41, - 287,501,75,1971,2245,1294,3176,1078,347,804, - 569,352,2834,41,284,2771,2853,383,254,237, - 238,726,587,2691,3162,3503,4233,2447,41,941, - 38,1346,2994,36,1040,33,37,953,32,34, - 872,31,29,58,1050,114,84,85,116,857, - 1084,1247,1868,1706,41,941,38,4413,3602,36, - 1040,342,37,953,1774,1557,956,1766,41,941, - 38,3615,3176,36,1040,342,37,953,355,1643, - 3456,291,2175,41,298,354,2709,1643,2658,3322, - 2637,3595,3176,1650,1801,369,347,804,569,352, - 1375,2263,2644,2791,345,2637,31,4672,236,2855, - 680,323,2318,325,31,2744,318,1989,2952,4109, - 74,4672,3454,346,335,323,2318,325,355,3467, - 318,1989,213,222,2686,212,219,220,221,223, - 102,101,2995,852,336,2728,347,804,569,352, - 1238,41,1481,391,2073,4019,349,4362,394,427, - 537,2545,355,214,216,218,299,300,2736,2044, - 224,215,217,2637,2609,41,2439,2585,236,4525, - 349,804,569,352,2599,164,1638,280,1046,311, - 315,2675,857,436,188,3339,2974,537,334,338, - 4095,3099,211,222,2686,210,219,220,221,223, - 2383,57,177,168,2938,236,2658,1456,2525,1255, - 3311,176,164,292,3535,175,178,179,180,181, - 182,188,3339,2974,1637,41,1481,391,1651,211, - 222,2686,210,219,220,221,223,523,73,177, - 282,537,1951,2824,1238,41,1481,391,176,2125, - 364,186,175,178,179,180,181,182,1335,236, - 2844,57,2637,2866,2637,1734,164,1456,2064,2082, - 190,1818,2582,4557,610,188,3339,2974,537,2964, - 2675,452,2675,211,222,2686,210,219,220,221, - 223,396,427,177,2997,2533,236,1238,41,1481, - 391,3017,176,164,2768,184,175,178,179,180, - 181,182,188,3339,2974,1238,41,1481,391,2221, - 211,222,2686,210,219,220,221,223,697,2771, - 177,2782,537,1335,57,3106,857,2637,3021,176, - 54,1395,185,175,178,179,180,181,182,505, - 236,505,57,2658,66,2675,2771,164,1456,4641, - 593,2799,41,284,2589,784,188,3339,2974,537, - 1337,2906,1837,358,211,222,2686,210,219,220, - 221,223,531,2846,177,72,2219,236,502,504, - 502,504,2521,176,164,302,195,175,178,179, - 180,181,182,188,3339,2974,1238,41,1481,391, - 1417,211,222,2686,210,219,220,221,223,871, - 2658,177,301,537,505,3023,2974,3231,1600,3472, - 176,429,2003,3624,175,178,179,180,181,182, - 1779,236,525,57,2637,395,427,2771,164,1456, - 3067,2580,3490,239,3074,2998,958,188,3339,2974, - 537,1196,2675,503,504,211,222,2686,210,219, - 220,221,223,31,4681,177,3000,3334,236,257, - 237,238,31,447,176,164,1046,200,175,178, - 179,180,181,182,188,3339,2974,1238,41,1481, - 391,2945,211,222,2686,210,219,220,221,223, - 1045,4137,177,309,537,2999,31,52,2502,1046, - 2860,176,522,1034,194,175,178,179,180,181, - 182,363,236,31,57,3028,2658,3498,3034,164, - 1456,2966,3131,3019,164,4014,2592,2607,188,3339, - 2974,31,3032,208,4184,1240,211,222,2686,210, - 219,220,221,223,2644,2791,177,1094,63,2960, - 1417,1027,41,453,2731,176,4621,3038,202,175, - 178,179,180,181,182,2447,41,941,38,88, - 2994,36,1040,33,37,953,32,34,872,31, - 29,58,1050,114,84,85,116,187,1084,1696, - 2447,41,941,38,3039,2994,36,1040,33,37, - 953,32,34,872,31,29,58,1050,114,84, - 85,116,3040,1084,1714,1367,41,3111,38,3615, - 3176,36,1040,342,37,953,2215,41,941,38, - 2526,2771,36,1040,342,37,953,2447,41,941, - 38,3041,2994,36,1040,33,37,953,32,34, - 872,31,29,58,1050,114,84,85,116,31, - 1731,2658,522,537,31,292,2358,31,2846,4672, - 2170,1046,335,323,2318,325,3045,2658,318,1989, - 4672,346,1312,31,323,2318,325,3210,164,318, - 1989,2352,3046,62,2775,2824,164,385,1689,175, - 31,355,526,2763,4020,4362,1509,1688,1375,326, - 2890,41,397,2941,1388,3047,450,3271,3305,347, - 804,569,352,2447,41,941,38,527,2994,36, - 1040,33,37,953,32,34,872,31,29,58, - 1050,114,84,85,116,588,1739,2447,41,941, - 38,2960,2994,36,1040,33,37,953,32,34, - 872,31,29,58,1050,114,84,85,116,2545, - 1757,1238,41,298,239,3050,418,3134,1228,41, - 941,38,2282,3176,36,1040,342,37,953,206, - 2960,3052,940,41,1481,391,2125,3053,950,2815, - 260,237,238,2637,31,2960,3612,338,3589,2857, - 2599,1547,2719,2637,1046,2637,3176,3176,3617,31, - 31,236,31,3028,3089,501,1089,3054,205,280, - 3176,236,4672,2675,814,336,323,2318,325,168, - 31,319,1989,307,3019,213,222,2686,212,219, - 220,221,223,355,3014,213,222,2686,212,219, - 220,221,223,1238,41,1481,391,2658,335,3602, - 5250,349,804,569,352,4251,214,216,218,299, - 300,2736,335,224,215,217,214,216,218,299, - 300,2736,2668,224,215,217,5250,5250,5250,109, - 57,2847,363,5250,5250,80,1456,1992,2772,5250, - 5250,5250,5250,4095,3126,4373,2249,2592,2607,5250, - 327,5250,5250,4095,3217,2447,1499,941,1524,531, - 2994,36,1040,33,37,953,32,34,872,31, - 29,58,1050,114,84,85,92,2447,41,941, - 38,104,2994,36,1040,33,37,953,32,34, - 872,31,29,58,1050,114,84,85,91,2447, - 41,941,38,2899,2994,36,1040,33,37,953, - 32,34,872,31,29,58,1050,114,84,85, - 90,2447,41,941,38,5250,2994,36,1040,33, - 37,953,32,34,872,31,29,58,1050,114, - 84,85,89,2447,41,941,38,5250,2994,36, - 1040,33,37,953,32,34,872,31,29,58, - 1050,114,84,85,88,2447,41,941,38,1896, - 2994,36,1040,33,37,953,32,34,872,31, - 29,58,1050,114,84,85,87,2447,41,941, - 38,5250,2994,36,1040,33,37,953,32,34, - 872,31,29,58,1050,114,84,85,86,2313, - 41,941,38,5250,2994,36,1040,33,37,953, - 32,34,872,31,29,58,1050,114,84,85, - 112,2447,41,941,38,5250,2994,36,1040,33, - 37,953,32,34,872,31,29,58,1050,114, - 84,85,118,2447,41,941,38,5250,2994,36, - 1040,33,37,953,32,34,872,31,29,58, - 1050,114,84,85,117,2447,41,941,38,5250, - 2994,36,1040,33,37,953,32,34,872,31, - 29,58,1050,114,84,85,115,2447,41,941, - 38,5250,2994,36,1040,33,37,953,32,34, - 872,31,29,58,1050,114,84,85,113,1902, - 41,941,38,3615,5250,36,1040,342,37,953, - 2403,41,941,38,5250,2994,36,1040,33,37, - 953,32,34,872,31,29,58,1050,94,84, - 85,31,2876,31,2658,1046,2637,2637,31,31, - 1375,5250,4287,3599,2599,31,2753,31,1046,2637, - 2637,537,31,4672,236,346,3030,323,2318,325, - 164,2599,318,1989,5250,1046,4018,346,236,346, - 2027,5250,5250,168,5250,852,164,2763,213,222, - 2686,212,219,220,221,223,1775,5250,1542,2763, - 168,2763,213,222,2686,212,219,220,221,223, - 1567,2545,1732,1238,41,1481,391,5250,5250,214, - 216,218,299,300,2736,2785,520,215,217,2637, - 5250,311,315,214,216,218,299,300,2736,2918, - 519,215,217,2637,5250,5250,5250,236,3630,338, - 57,3306,4377,31,5250,31,1456,3180,2082,1046, - 5250,236,3311,2658,2658,31,1476,2658,3451,3586, - 2960,213,222,2686,212,219,220,221,223,31, - 2658,2658,2219,3421,164,213,222,2686,212,219, - 220,221,223,2948,2730,2579,451,2637,529,381, - 5250,5250,214,216,218,299,300,2736,209,225, - 215,217,3098,3135,2960,236,214,216,218,299, - 300,2736,2974,310,215,217,1781,41,3111,38, - 3615,5250,36,1040,342,37,953,5250,379,213, - 222,2686,212,219,220,221,223,1530,41,941, - 38,3615,207,36,1040,342,37,953,2599,5250, - 5250,5250,1046,2604,41,1481,391,5250,4478,2219, - 214,216,218,299,300,2736,245,499,215,217, - 4672,2960,5250,5250,323,2318,325,168,5250,318, - 1989,2999,31,31,1201,537,537,2637,2637,4652, - 280,4672,2352,5250,31,323,2318,325,1046,2974, - 318,1989,5250,4328,346,346,236,1375,5250,303, - 164,164,2939,852,239,524,2637,2658,31,188, - 3339,1689,1046,164,5250,31,2763,2763,377,3340, - 678,408,4402,2848,346,31,2960,1861,1595,959, - 243,237,238,5250,530,3657,203,164,31,3189, - 2959,5250,3979,281,3416,5250,2763,2976,5250,312, - 315,409,410,411,299,300,2736,533,2545,250, - 253,256,259,2934,4572,2599,5250,419,3134,1046, - 5250,1294,1500,41,941,38,2680,3176,36,1040, - 342,37,953,1500,41,941,38,2960,3176,36, - 1040,342,37,953,168,4135,338,5250,2175,3225, - 298,1530,41,941,38,3615,5250,36,1040,342, - 37,953,1838,41,941,38,3405,5250,36,1040, - 342,37,953,1547,5250,229,4672,2637,3176,336, - 323,2318,325,412,414,321,1989,4672,3454,5250, - 336,323,2318,325,2658,2675,319,1989,4663,204, - 404,5250,2658,31,2960,4672,659,2637,4453,323, - 2318,325,4134,1276,318,1989,4672,2637,4652,5250, - 320,3071,325,2658,2658,346,3156,3587,5250,31, - 335,5250,3051,2637,4239,236,2637,5250,1241,41, - 1481,391,201,4136,5250,5250,5250,2763,5250,5250, - 5250,346,1638,5250,346,4444,3280,5250,1610,678, - 408,4402,5250,3568,363,2667,41,1481,391,1524, - 41,1481,391,2763,5250,57,4330,5250,2249,2592, - 2607,1456,5250,2466,2699,1583,41,1481,391,5250, - 409,410,411,299,300,2736,1241,41,1481,391, - 2910,5250,57,5250,5250,5250,57,5250,1456,5250, - 2520,5250,1456,5250,2553,2680,3456,2825,41,1481, - 391,5250,57,5250,5250,5250,5250,2910,1456,5250, - 55,3582,3010,57,2144,5250,1046,5250,2637,1456, - 5250,55,5250,1524,41,1481,391,2758,2825,41, - 1481,391,5250,5250,57,5250,346,5250,996,5250, - 1456,164,55,2825,41,1481,391,5250,5250,5250, - 5250,170,412,415,2825,41,1481,391,736,781, - 57,2825,41,1481,391,57,1456,5250,55,5250, - 5250,1456,5250,55,2979,41,1481,391,5250,5250, - 57,2982,41,1481,391,2549,1456,5250,55,5250, - 917,57,1238,41,1481,391,5250,1456,57,55, - 5250,5250,4442,3003,1456,926,55,537,5250,5250, - 5250,57,1238,41,1481,391,2567,1456,57,55, - 5250,2219,5250,3014,1456,346,55,5250,5250,57, - 31,5250,164,5250,537,1456,2747,2697,5250,5250, - 5250,31,196,3561,31,537,31,4391,537,57, - 2637,5250,346,5250,31,1456,31,2998,2637,164, - 2637,2974,5250,346,5250,5250,346,5250,346,196, - 164,5250,5250,164,4391,31,346,379,346,1046, - 196,5250,456,196,5250,4391,4464,31,4391,31, - 2763,1046,5250,1046,5250,5250,5250,5250,2763,5250, - 2763,509,442,5250,164,5250,198,5250,5250,507, - 5250,534,5250,5250,3123,5250,164,5250,164,5250, - 5250,5250,5250,5250,5250,5250,2328,5250,4463,5250, - 5250,5250,5250,4150,5250,5250,5250,5250,5250,5250, - 5250,5250,5250,5250,4151,5250,5250,4297,5250,5250, - 5250,5250,5250,5250,5250,5250,5250,5250,5250,5250, - 5250,5250,5250,5250,5250,5250,5250,5250,5250,5250, - 5250,5250,5250,5250,5250,5250,5250,4123,5250,4316, - 5250,0,45,5270,0,45,5269,0,639,35, - 0,440,1041,0,454,1946,0,44,5270,0, - 44,5269,0,2471,134,0,1,444,0,458, - 923,0,457,1075,0,639,47,0,623,99, - 0,639,390,0,41,39,0,38,40,0, - 45,790,0,1,633,0,1,5529,0,1, - 5528,0,1,5527,0,1,5526,0,1,5525, - 0,1,5524,0,1,5523,0,1,5522,0, - 1,5521,0,1,5520,0,1,5519,0,45, - 1,5270,0,45,1,5269,0,868,1,0, - 5491,248,0,5490,248,0,5591,248,0,5590, - 248,0,5518,248,0,5517,248,0,5516,248, - 0,5515,248,0,5514,248,0,5513,248,0, - 5512,248,0,5511,248,0,5529,248,0,5528, - 248,0,5527,248,0,5526,248,0,5525,248, - 0,5524,248,0,5523,248,0,5522,248,0, - 5521,248,0,5520,248,0,5519,248,0,45, - 248,5270,0,45,248,5269,0,5294,248,0, - 56,5270,0,56,5269,0,5256,1,0,5255, - 1,0,244,2944,0,391,38,0,38,391, - 0,390,35,0,35,390,0,51,5292,0, - 51,43,0,5270,56,0,5269,56,0,2471, - 136,0,2471,135,0,5583,445,0,2291,445, - 0,5294,1,0,45,1,0,55,43,0, - 1,100,0,43,55,0,501,2705,0,5294, - 235,1,0,45,235,1,0,235,417,0, - 43,5270,0,43,5269,0,1,5270,2,0, - 1,5269,2,0,43,5270,2,0,43,5269, - 2,0,5270,42,0,5269,42,0,5292,53, - 0,53,43,0,5260,406,0,5259,406,0, - 1,582,0,1,790,0,1,4574,0,235, - 416,0,3473,322,0,5583,103,0,2291,103, - 0,41,81,0,1,5583,0,1,2291,0, - 45,1,5270,2,0,45,1,5269,2,0, - 45,5270,2,0,45,5269,2,0,285,4024, - 0,501,4026,0,235,1,0,235,227,0, - 235,226,0,1,1815,0,1,2741,0,5262, - 1,0,5258,1,0,235,1,3347,0,5259, - 235,0,3359,235,0,5262,386,0,5261,386, - 0,3489,235,0,10,12,0,8,10,12, - 0,193,3226,0,3644,386,0,8,12,0 + 17,17,17,17,17,17,136,136,136,112, + 112,18,18,18,18,18,18,18,18,18, + 18,18,18,18,19,19,170,170,171,171, + 172,139,139,140,140,137,137,141,138,138, + 20,20,21,21,23,23,23,24,24,24, + 24,25,25,25,26,26,26,27,27,27, + 27,27,28,28,28,30,30,31,31,33, + 33,35,35,36,36,37,37,42,42,41, + 41,41,41,41,41,41,41,41,41,41, + 41,41,39,29,142,142,96,96,173,173, + 91,196,196,67,67,67,67,67,67,67, + 67,67,68,68,68,65,65,55,55,174, + 174,69,69,69,102,102,175,175,70,70, + 70,176,176,71,71,71,71,71,72,72, + 83,83,83,83,83,83,83,49,49,49, + 49,49,113,113,114,114,50,177,22,22, + 22,22,22,48,48,86,86,86,86,86, + 149,149,144,144,144,144,144,145,145,145, + 146,146,146,147,147,147,148,148,148,87, + 87,87,87,87,88,88,88,13,13,13, + 13,13,13,13,13,13,13,13,97,118, + 118,118,118,118,118,116,116,116,117,117, + 151,151,150,150,120,120,103,78,78,79, + 80,52,47,152,152,53,51,85,85,153, + 153,143,143,121,122,122,75,75,154,154, + 62,62,62,59,59,58,63,63,74,74, + 57,57,57,89,89,99,98,98,61,61, + 60,60,54,54,45,100,100,100,92,92, + 92,93,93,94,94,94,95,95,104,104, + 104,106,106,105,105,197,197,90,90,179, + 179,179,179,179,124,46,46,156,178,178, + 125,125,125,125,126,158,180,180,34,34, + 115,127,127,127,127,107,107,119,119,119, + 159,160,160,160,160,160,160,160,160,160, + 160,160,183,183,181,181,182,182,161,161, + 161,161,162,184,109,108,108,185,185,163, + 163,163,163,101,101,101,186,186,8,8, + 9,187,187,188,164,155,155,165,165,166, + 167,167,7,7,10,189,189,189,189,189, + 189,189,189,189,189,189,189,189,189,189, + 189,189,189,189,189,189,189,189,189,189, + 189,189,189,189,189,189,189,189,189,189, + 189,189,189,189,189,189,189,76,81,81, + 168,168,129,129,130,130,130,130,130,130, + 3,131,131,128,128,110,110,84,77,73, + 157,157,111,111,190,190,190,132,132,123, + 123,191,191,169,169,1132,41,1696,1690,1427, + 3215,33,36,37,948,998,32,34,1680,31, + 29,56,1026,112,82,83,114,1090,1070,1161, + 1126,1212,1169,1315,1269,1299,1361,2885,1351,278, + 1386,1440,149,504,41,296,164,150,2508,41, + 919,38,1260,4352,33,36,37,948,998,63, + 34,1332,2396,41,919,38,237,1262,33,36, + 37,948,998,32,34,902,31,29,56,1026, + 112,82,83,114,495,1070,1161,1126,1212,1169, + 1819,240,235,236,504,41,1568,389,2396,41, + 919,38,279,1262,33,36,37,948,998,32, + 34,902,31,29,56,1026,112,82,83,91, + 247,250,253,256,2486,2758,41,282,55,504, + 41,2485,1213,2659,41,919,38,52,4352,33, + 36,37,948,998,62,34,3235,564,521,856, + 3604,3742,3752,3762,4344,1660,41,919,38,2847, + 1262,33,36,37,948,998,32,34,902,31, + 29,56,1026,112,82,83,114,344,1070,1161, + 1126,1212,1169,1315,67,1299,1361,315,1351,3418, + 1386,1440,149,331,41,284,515,150,4759,1343, + 2777,504,1576,1662,40,678,41,1568,389,516, + 1660,41,919,38,2847,1262,33,36,37,948, + 998,32,34,902,31,29,56,1026,112,82, + 83,114,344,1070,1161,1126,1212,1169,1315,55, + 1299,1361,1212,1351,2011,1386,1440,149,1567,2286, + 1508,515,150,44,592,2777,44,685,659,2936, + 1081,2435,1236,1956,516,511,1067,2493,1911,66, + 2161,41,919,38,756,4781,33,36,37,948, + 998,32,34,2160,509,2324,2170,2578,1660,41, + 919,38,2847,1262,33,36,37,948,998,32, + 34,902,31,29,56,1026,112,82,83,114, + 344,1070,1161,1126,1212,1169,1315,592,1299,1361, + 511,1351,4590,1386,1440,149,1387,44,75,515, + 150,740,659,2777,390,1983,1862,1911,2257,244, + 4575,2170,516,1865,41,919,38,2847,1262,33, + 36,37,948,998,32,34,902,31,29,56, + 1026,112,82,83,114,344,1070,1161,1126,1212, + 1169,1315,1396,1299,1361,1950,1351,2212,1386,1440, + 149,4221,391,425,515,150,1596,237,2777,2622, + 1081,331,41,284,756,1613,4765,516,511,1650, + 41,919,38,288,4781,33,36,37,948,998, + 65,34,245,235,236,162,2293,3663,2624,2170, + 2757,1994,41,919,38,533,1262,33,36,37, + 948,998,32,34,902,31,29,56,1026,112, + 82,83,114,1499,1070,1161,1126,1212,1169,1315, + 441,1299,1361,512,1351,1512,1386,1440,149,2079, + 4736,3833,380,150,1729,41,919,38,2686,1262, + 33,36,37,948,998,32,34,902,31,29, + 56,1026,112,82,83,114,382,1070,1161,1126, + 1212,1169,1315,1270,1299,1361,2577,1351,4637,1386, + 1440,149,392,425,3833,380,150,1911,1929,41, + 919,38,334,1262,33,36,37,948,998,32, + 34,902,31,29,56,1026,112,82,83,114, + 1307,1070,1161,1126,1212,1169,1315,2149,1299,1361, + 417,1351,4736,1386,1440,149,386,3319,3833,380, + 150,2102,41,919,38,557,1262,33,36,37, + 948,998,32,34,902,31,29,56,1026,112, + 82,83,114,289,1070,1161,1126,1212,1169,1315, + 2387,1299,1361,2698,1351,2519,1386,1440,149,387, + 3319,2514,164,150,333,2682,582,2396,41,919, + 38,3219,1262,33,36,37,948,998,32,34, + 902,31,29,56,1026,112,82,83,114,1715, + 1070,1161,1126,1212,1169,1315,985,1299,1361,2519, + 1351,2488,1982,378,3319,2102,41,919,38,1814, + 1262,33,36,37,948,998,32,34,902,31, + 29,56,1026,112,82,83,114,188,1070,1161, + 1126,1212,1169,1315,2149,1299,1361,496,1351,4736, + 1386,1440,149,2216,41,395,374,150,1773,41, + 919,38,156,1980,47,36,37,948,998,2102, + 41,919,38,564,1262,33,36,37,948,998, + 32,34,902,31,29,56,1026,112,82,83, + 114,458,1070,1161,1126,1212,1169,1315,2905,1299, + 1361,4137,1351,1821,1386,1440,149,504,41,287, + 374,150,1416,41,1568,389,592,2102,41,919, + 38,4651,1262,33,36,37,948,998,32,34, + 902,31,29,56,1026,112,82,83,114,373, + 1070,1161,1126,1212,1169,1315,55,1299,1361,234, + 1351,847,1386,1440,149,1567,925,75,374,150, + 3123,1801,41,919,38,60,1262,33,36,37, + 948,998,32,34,902,31,29,56,1026,112, + 82,83,114,100,1070,1161,1126,1212,1169,1315, + 2149,1299,1361,372,1351,4736,1386,1440,149,1088, + 44,1259,148,150,1081,504,2671,2102,41,919, + 38,1140,1262,33,36,37,948,998,32,34, + 902,31,29,56,1026,112,82,83,114,162, + 1070,1161,1126,1212,1169,1315,46,1299,1361,1653, + 1351,370,1386,1440,149,2519,2825,333,165,150, + 2102,41,919,38,2152,1262,33,36,37,948, + 998,32,34,902,31,29,56,1026,112,82, + 83,114,2988,1070,1161,1126,1212,1169,1315,3068, + 1299,1361,419,1351,2037,1386,1440,149,1194,2825, + 1415,161,150,2102,41,919,38,2152,1262,33, + 36,37,948,998,32,34,902,31,29,56, + 1026,112,82,83,114,381,1070,1161,1126,1212, + 1169,1315,357,1299,1361,291,1351,457,1386,1440, + 149,529,504,3328,160,150,2102,41,919,38, + 161,1262,33,36,37,948,998,32,34,902, + 31,29,56,1026,112,82,83,114,76,1070, + 1161,1126,1212,1169,1315,520,1299,1361,248,1351, + 44,1386,1440,149,818,504,3329,159,150,2102, + 41,919,38,521,1262,33,36,37,948,998, + 32,34,902,31,29,56,1026,112,82,83, + 114,77,1070,1161,1126,1212,1169,1315,520,1299, + 1361,567,1351,683,1386,1440,149,853,2738,1260, + 158,150,2102,41,919,38,1355,1262,33,36, + 37,948,998,32,34,902,31,29,56,1026, + 112,82,83,114,1474,1070,1161,1126,1212,1169, + 1315,4054,1299,1361,1422,1351,99,1386,1440,149, + 2519,1317,1260,157,150,2102,41,919,38,1413, + 1262,33,36,37,948,998,32,34,902,31, + 29,56,1026,112,82,83,114,354,1070,1161, + 1126,1212,1169,1315,30,1299,1361,1708,1351,681, + 1386,1440,149,2519,1788,1260,156,150,2102,41, + 919,38,2812,1262,33,36,37,948,998,32, + 34,902,31,29,56,1026,112,82,83,114, + 1546,1070,1161,1126,1212,1169,1315,75,1299,1361, + 2626,1351,4076,1386,1440,149,2566,2596,1260,155, + 150,2102,41,919,38,2698,1262,33,36,37, + 948,998,32,34,902,31,29,56,1026,112, + 82,83,114,355,1070,1161,1126,1212,1169,1315, + 74,1299,1361,852,1351,57,1386,1440,149,939, + 1026,1260,154,150,2102,41,919,38,1175,1262, + 33,36,37,948,998,32,34,902,31,29, + 56,1026,112,82,83,114,1710,1070,1161,1126, + 1212,1169,1315,59,1299,1361,2520,1351,44,1386, + 1440,149,3001,2718,1260,153,150,2102,41,919, + 38,843,1262,33,36,37,948,998,32,34, + 902,31,29,56,1026,112,82,83,114,2173, + 1070,1161,1126,1212,1169,1315,93,1299,1361,930, + 1351,44,1386,1440,149,4366,2115,1260,152,150, + 2102,41,919,38,2597,1262,33,36,37,948, + 998,32,34,902,31,29,56,1026,112,82, + 83,114,1499,1070,1161,1126,1212,1169,1315,58, + 1299,1361,1980,1351,44,1386,1440,149,804,2519, + 1809,151,150,2059,41,919,38,1913,1262,33, + 36,37,948,998,32,34,902,31,29,56, + 1026,112,82,83,114,2717,1070,1161,1126,1212, + 1169,1315,2812,1299,1361,321,1351,1398,1386,2415, + 170,2102,41,919,38,403,1262,33,36,37, + 948,998,32,34,902,31,29,56,1026,112, + 82,83,114,401,1070,1161,1126,1212,1169,1315, + 408,1299,1361,2519,1351,941,1386,1440,149,924, + 44,328,146,150,2695,329,504,41,1662,2476, + 2309,41,919,38,1869,1262,33,36,37,948, + 998,32,34,902,31,29,56,1026,112,82, + 83,114,394,1070,1161,1126,1212,1169,1315,2748, + 1299,1361,2698,1351,44,1386,1440,149,2795,2727, + 1260,195,150,2396,41,919,38,2828,1262,33, + 36,37,948,998,32,34,902,31,29,56, + 1026,112,82,83,114,103,1070,1161,1126,1212, + 1169,1315,351,1299,1361,1980,1351,1989,1386,2415, + 170,2396,41,919,38,2146,1262,33,36,37, + 948,998,32,34,902,31,29,56,1026,112, + 82,83,114,2079,1070,1161,1126,1212,1169,1315, + 2167,1299,1361,2176,1351,3470,1386,2415,170,1790, + 41,919,38,768,2847,46,36,37,948,998, + 2396,41,919,38,295,1262,33,36,37,948, + 998,32,34,902,31,29,56,1026,112,82, + 83,114,2847,1070,1161,1126,1212,1169,1315,326, + 1299,1361,405,1351,2206,1386,2415,170,2396,41, + 919,38,2685,1262,33,36,37,948,998,32, + 34,902,31,29,56,1026,112,82,83,114, + 302,1070,1161,1126,1212,1169,1315,327,1299,1361, + 1878,1351,4621,1386,2415,170,1790,41,919,38, + 1972,445,2084,36,37,948,998,2396,41,919, + 38,421,1262,33,36,37,948,998,32,34, + 902,31,29,56,1026,112,82,83,114,2847, + 1070,1161,1126,1212,1169,1315,592,1299,1361,2847, + 1351,4662,1386,2415,170,2439,41,919,38,420, + 1262,33,36,37,948,998,32,34,902,31, + 29,56,1026,112,82,83,114,226,1070,1161, + 1126,1212,1169,1315,592,1299,1361,306,1351,4686, + 1386,2415,170,1790,41,919,38,2180,2757,2112, + 36,37,948,998,2396,41,919,38,423,1262, + 33,36,37,948,998,32,34,902,31,29, + 56,1026,112,82,83,114,1746,1070,1161,1126, + 1212,1169,1315,2456,1299,1361,2203,1907,504,41, + 2782,2714,2396,41,919,38,3284,1262,33,36, + 37,948,998,32,34,902,31,29,56,1026, + 112,82,83,114,1260,1070,1161,1126,1212,1169, + 1315,1260,1299,1870,2396,41,919,38,2844,1262, + 33,36,37,948,998,32,34,902,31,29, + 56,1026,112,82,83,114,96,1070,1161,1126, + 1212,1169,1315,3074,1905,2396,41,919,38,756, + 1262,33,36,37,948,998,32,34,902,31, + 29,56,1026,112,82,83,114,2765,1070,1161, + 1126,1212,1826,2396,41,919,38,436,1262,33, + 36,37,948,998,32,34,902,31,29,56, + 1026,112,82,83,114,1677,1070,1161,1126,1212, + 1834,1306,41,919,38,3197,4579,33,36,37, + 948,998,340,34,2072,504,41,1568,389,504, + 41,1568,389,1227,41,919,38,2679,4579,33, + 36,37,948,998,340,34,1650,41,919,38, + 1911,4781,33,36,37,948,998,64,34,278, + 2753,41,285,429,2847,352,2668,394,425,321, + 2083,323,2206,316,2045,2684,1190,41,2258,1945, + 847,4540,504,41,296,353,2690,504,41,1568, + 389,321,2083,323,1911,316,2045,504,41,1662, + 281,591,185,345,1649,1563,350,353,3437,1104, + 55,2680,331,41,451,94,300,4666,108,1567, + 2298,278,280,2040,3307,345,1649,1563,350,2396, + 41,919,38,2000,1262,33,36,37,948,998, + 32,34,902,31,29,56,1026,112,82,83, + 114,2232,1070,1161,1126,1748,2396,41,919,38, + 299,1262,33,36,37,948,998,32,34,902, + 31,29,56,1026,112,82,83,114,2452,1070, + 1161,1126,1766,1864,341,3590,2396,41,919,38, + 367,1262,33,36,37,948,998,32,34,902, + 31,29,56,1026,112,82,83,114,2918,1070, + 1161,1126,1776,2396,41,919,38,2694,1262,33, + 36,37,948,998,32,34,902,31,29,56, + 1026,112,82,83,114,1818,1070,1161,1126,1783, + 1639,41,919,38,4433,4614,33,36,37,948, + 998,340,34,1718,41,296,69,41,1568,389, + 1703,1604,2145,1260,2847,4736,2847,2848,2789,1703, + 1873,535,262,2847,4736,2519,535,444,3084,3090, + 2794,2079,2421,44,344,1113,2671,973,2487,4234, + 278,2421,2828,3089,233,3079,162,333,321,2083, + 323,162,316,2045,44,186,2474,792,2369,44, + 186,2474,1121,2847,1260,539,1911,333,209,220, + 4506,208,217,218,219,221,333,175,1260,4476, + 2937,344,201,1458,41,1662,281,174,2765,189, + 173,176,177,178,179,180,73,1724,1,3068, + 361,2847,535,2561,2777,1088,2035,104,3537,361, + 72,309,313,1611,2331,2519,2533,1713,78,344, + 233,1340,2896,2331,2519,2533,2794,162,504,41, + 1568,389,307,2199,756,2800,186,2474,1121,2847, + 2409,2485,1434,3102,209,220,4506,208,217,218, + 219,221,44,175,2945,290,3471,2421,2753,41, + 282,2880,432,174,187,190,173,176,177,178, + 179,180,1534,41,919,38,3197,4579,33,36, + 37,948,998,340,34,867,2678,2482,41,1568, + 389,353,735,4711,202,2847,2758,4677,1613,440, + 242,454,504,41,1568,389,445,2850,2895,345, + 1649,1563,350,504,2740,1662,80,343,2216,41, + 395,278,3344,2800,2949,361,95,2847,356,108, + 321,2083,323,204,316,2045,431,529,1260,3113, + 2519,2533,393,425,2736,2421,353,524,237,1349, + 41,2904,38,4433,4579,33,36,37,948,998, + 340,34,2166,2899,345,1649,1563,350,2693,1714, + 71,2079,525,240,235,236,504,41,1568,389, + 2396,1576,919,1594,279,1262,33,36,37,948, + 998,32,34,902,31,29,56,1026,112,82, + 83,90,247,250,253,256,2486,321,2083,323, + 55,316,2045,361,1213,1458,41,1662,2800,1567, + 729,2598,1088,2964,1248,3139,44,3657,2519,2533, + 4193,856,3604,3742,3752,3762,4344,2396,41,919, + 38,1337,1262,33,36,37,948,998,32,34, + 902,31,29,56,1026,112,82,83,114,2511, + 1070,1161,1791,2396,41,919,38,2947,1262,33, + 36,37,948,998,32,34,902,31,29,56, + 1026,112,82,83,114,624,1070,1161,1809,1488, + 41,2904,38,4433,4614,33,36,37,948,998, + 340,34,3082,1579,504,41,1568,389,1914,1260, + 417,2923,2045,4736,44,1316,2847,2973,4252,44, + 4586,349,1337,1852,2921,535,418,41,451,44, + 2975,4666,2976,3721,344,1718,3027,296,430,330, + 336,70,2969,233,528,325,333,321,2083,323, + 162,316,2045,1260,529,48,2434,2777,436,186, + 2474,1121,535,2977,1248,334,531,209,220,4506, + 208,217,218,219,221,3089,175,1302,4476,2980, + 233,2007,353,3082,2720,3321,174,162,3292,173, + 176,177,178,179,180,44,186,2474,1121,535, + 347,1649,1563,350,209,220,4506,208,217,218, + 219,221,2971,175,523,44,1023,344,535,1081, + 335,336,1911,174,162,184,173,176,177,178, + 179,180,2803,2984,1612,44,233,2149,2035,2883, + 2777,44,4736,162,4132,1081,88,2986,2079,1569, + 416,2923,186,2474,1121,2187,41,1568,389,1854, + 209,220,4506,208,217,218,219,221,610,175, + 162,1895,535,2724,2847,2847,2992,2847,427,174, + 1940,182,173,176,177,178,179,180,383,55, + 233,448,3084,3090,333,2421,624,162,1567,1999, + 2868,2994,2998,4130,1785,697,186,2474,1121,535, + 2999,2435,203,305,209,220,4506,208,217,218, + 219,221,175,175,2987,858,3537,233,504,41, + 1568,389,2447,174,162,183,173,176,177,178, + 179,180,784,186,2474,1121,535,504,41,1662, + 286,209,220,4506,208,217,218,219,221,1980, + 175,44,450,503,233,4303,50,2434,2847,2993, + 174,162,193,173,176,177,178,179,180,871, + 186,2474,1121,535,504,41,1662,283,209,220, + 4506,208,217,218,219,221,940,175,2847,4228, + 2404,233,500,502,2847,1260,207,174,162,3393, + 173,176,177,178,179,180,958,186,2474,1121, + 535,3000,2421,3005,3007,209,220,4506,208,217, + 218,219,221,1119,175,2935,205,61,233,1980, + 1980,3063,1260,5284,174,162,198,173,176,177, + 178,179,180,1045,186,2474,1121,535,504,41, + 1662,2884,209,220,4506,208,217,218,219,221, + 5284,175,5284,592,60,233,1980,1260,4701,1121, + 1121,174,162,192,173,176,177,178,179,180, + 362,186,2474,1121,3843,523,5284,5284,5284,209, + 220,4506,208,217,218,219,221,5284,175,324, + 44,1113,2671,44,3731,44,1121,3233,174,2702, + 200,173,176,177,178,179,180,2396,41,919, + 38,522,1262,33,36,37,948,998,32,34, + 902,31,29,56,1026,112,82,83,114,1260, + 1070,1697,2396,41,919,38,5284,1262,33,36, + 37,948,998,32,34,902,31,29,56,1026, + 112,82,83,114,5284,1070,1705,1550,41,919, + 38,107,4614,33,36,37,948,998,340,34, + 1844,41,919,38,4433,4579,33,36,37,948, + 998,340,34,2396,41,919,38,5284,1262,33, + 36,37,948,998,32,34,902,31,29,56, + 1026,112,82,83,114,2848,1733,5284,2940,1081, + 2847,290,1081,5284,334,321,2083,323,2843,317, + 2045,44,2847,44,2147,1349,5284,2765,321,2083, + 323,353,316,2045,162,44,5284,162,5284,2847, + 2421,1037,2678,206,3358,539,5284,168,301,347, + 1649,1563,350,2396,41,919,38,344,1262,33, + 36,37,948,998,32,34,902,31,29,56, + 1026,112,82,83,114,44,1739,1260,1188,4469, + 2777,5284,1081,44,2178,237,1260,3741,2670,1619, + 5284,309,313,5284,1369,41,919,38,4433,4579, + 33,36,37,948,998,340,34,166,503,3655, + 249,235,236,4211,5284,5284,352,1260,2209,2396, + 41,919,38,3102,1262,33,36,37,948,998, + 32,34,902,31,29,56,1026,112,82,83, + 114,2645,1740,5284,5284,2847,44,500,502,449, + 1081,2771,321,2083,323,2847,316,2045,353,5284, + 44,2832,2175,233,3598,2847,1188,44,5284,539, + 1081,1081,2769,233,1741,162,345,1649,1563,350, + 5284,4434,2862,233,2000,2724,3264,211,220,4506, + 210,217,218,219,221,166,162,211,220,4506, + 210,217,218,219,221,5284,2738,211,220,4506, + 210,217,218,219,221,310,313,212,214,216, + 297,298,2645,237,222,213,215,212,214,216, + 297,298,2645,237,222,213,215,212,214,216, + 297,298,2645,237,222,213,215,44,252,235, + 236,1404,44,44,4139,2460,2982,3182,255,235, + 236,5284,1827,44,4139,2504,5284,1447,258,235, + 236,5284,5284,5284,4139,2726,2396,41,919,38, + 5284,1262,33,36,37,948,998,32,34,902, + 31,29,56,1026,112,82,83,89,2396,41, + 919,38,5284,1262,33,36,37,948,998,32, + 34,902,31,29,56,1026,112,82,83,88, + 2396,41,919,38,5284,1262,33,36,37,948, + 998,32,34,902,31,29,56,1026,112,82, + 83,87,2396,41,919,38,5284,1262,33,36, + 37,948,998,32,34,902,31,29,56,1026, + 112,82,83,86,2396,41,919,38,5284,1262, + 33,36,37,948,998,32,34,902,31,29, + 56,1026,112,82,83,85,2396,41,919,38, + 5284,1262,33,36,37,948,998,32,34,902, + 31,29,56,1026,112,82,83,84,2263,41, + 919,38,5284,1262,33,36,37,948,998,32, + 34,902,31,29,56,1026,112,82,83,110, + 2396,41,919,38,5284,1262,33,36,37,948, + 998,32,34,902,31,29,56,1026,112,82, + 83,116,2396,41,919,38,5284,1262,33,36, + 37,948,998,32,34,902,31,29,56,1026, + 112,82,83,115,2396,41,919,38,5284,1262, + 33,36,37,948,998,32,34,902,31,29, + 56,1026,112,82,83,113,2396,41,919,38, + 5284,1262,33,36,37,948,998,32,34,902, + 31,29,56,1026,112,82,83,111,2353,41, + 919,38,5284,1262,33,36,37,948,998,32, + 34,902,31,29,56,1026,92,82,83,2864, + 44,44,5284,2847,1081,1081,1316,5284,5284,2706, + 2876,4586,1260,2847,1188,5284,2724,2048,1081,2739, + 2847,233,4736,2847,44,5284,2847,5284,1081,162, + 162,233,2216,41,395,5284,5284,5284,2421,2898, + 3069,233,527,166,379,211,220,4506,210,217, + 218,219,221,162,5284,211,220,4506,210,217, + 218,219,221,1943,3588,211,220,4506,210,217, + 218,219,221,1337,4137,212,214,216,297,298, + 2645,1260,518,213,215,212,214,216,297,298, + 2645,2847,517,213,215,212,214,216,297,298, + 2645,2925,223,213,215,2847,503,1023,44,1260, + 3365,2953,951,3265,44,2847,5284,2847,3550,5284, + 44,44,44,233,2847,2847,2847,2936,5284,227, + 5284,2832,1337,233,3082,5284,1260,5284,1260,3384, + 5284,3302,344,344,344,501,502,211,220,4506, + 210,217,218,219,221,199,102,211,220,4506, + 210,217,218,219,221,2777,2777,2777,3339,428, + 3400,332,336,5284,1647,1654,2673,212,214,216, + 297,298,2645,1337,308,213,215,212,214,216, + 297,298,2645,3082,497,213,215,1369,41,919, + 38,4433,4579,33,36,37,948,998,340,34, + 5284,1369,41,919,38,4433,4579,33,36,37, + 948,998,340,34,2540,41,1568,389,5284,735, + 3601,336,765,41,1568,389,5284,243,1188,5284, + 5284,5284,1081,5284,3082,5284,1200,1260,1188,1188, + 2847,4785,1081,1081,5284,321,2083,323,278,316, + 2045,5284,5284,5284,5284,5284,55,166,233,321, + 2083,323,3437,316,2045,1567,2627,166,166,3436, + 5284,3603,336,5284,1260,237,3383,2644,2666,5284, + 5284,2847,1877,406,4415,1502,41,919,38,3049, + 4579,33,36,37,948,998,340,34,5284,344, + 241,235,236,2149,1260,44,4237,5284,4736,2847, + 5284,279,407,408,409,297,298,2645,5284,5284, + 5284,5284,4247,402,3402,5284,5284,344,5284,248, + 251,254,257,2486,3509,3697,3413,2588,5284,1337, + 5284,1213,5284,318,2821,323,1388,41,919,38, + 2777,4614,33,36,37,948,998,340,34,507, + 333,5284,5284,1388,41,919,38,5284,4614,33, + 36,37,948,998,340,34,1974,41,919,38, + 2650,4579,33,36,37,948,998,340,34,44, + 5284,5284,4493,1081,1275,410,412,5284,2847,4785, + 3082,5284,5284,334,321,2083,323,5284,319,2045, + 765,41,1568,389,5284,5284,233,798,162,4524, + 334,321,2083,323,5284,317,2045,5284,4404,5284, + 5284,5284,5284,5284,318,2821,323,3832,336,3137, + 1877,406,4415,5284,55,678,41,1568,389,678, + 41,1568,389,1567,53,5284,678,41,1568,389, + 765,41,1568,389,5284,5284,2470,4367,5284,5284, + 407,408,409,297,298,2645,5284,5284,5284,55, + 5284,5284,5284,55,678,41,1568,389,1567,53, + 55,1980,1567,2867,55,2588,5284,5284,44,1567, + 53,1257,2847,1567,53,2497,5284,678,41,1568, + 389,5284,2439,5284,5284,5284,2253,5284,55,5284, + 344,678,41,1568,389,5284,5284,1567,3144,5284, + 3137,1121,678,41,1568,389,678,41,1568,389, + 2497,55,5284,2777,5284,5284,377,1980,5284,5284, + 1567,53,505,410,413,55,2489,41,1568,389, + 5284,5284,5284,2788,1567,53,55,5284,5284,5284, + 55,2516,41,1568,389,1567,53,2862,5284,1567, + 53,2889,5284,5284,5284,535,5284,1121,3064,44, + 55,5284,3288,535,44,5284,5284,5284,535,1567, + 53,5284,377,344,5284,55,504,41,1568,389, + 162,344,573,5284,1567,53,344,5284,162,5284, + 194,5284,5284,162,5284,5284,4331,2492,1698,504, + 41,1568,389,1612,2777,504,41,1568,389,2777, + 55,5284,44,1655,5284,5284,535,375,1784,1567, + 2511,504,41,1568,389,504,41,1568,389,5284, + 5284,5284,44,55,344,5284,535,5284,5284,55, + 44,162,1567,2818,2847,5284,5284,5284,1567,655, + 5284,194,44,196,344,55,535,4331,5284,55, + 5284,162,344,5284,1567,925,5284,5284,1567,2858, + 5284,194,5284,3827,344,5284,5284,4331,5284,5284, + 5284,162,5284,5284,5284,2777,5284,5284,5284,5284, + 5284,194,5284,5284,532,5284,5284,4331,5284,5284, + 5284,5284,5284,5284,5284,5284,5284,5284,5284,5284, + 5284,5284,5284,5284,4201,5284,5284,5284,5284,5284, + 5284,5284,5284,5284,5284,5284,4146,5284,5284,5284, + 5284,5284,5284,5284,4229,5284,5284,5284,5284,5284, + 5284,5284,5284,5284,5284,5284,5284,5284,5284,5284, + 5284,5284,5284,5284,4256,5284,0,45,5304,0, + 45,5303,0,783,35,0,438,857,0,452, + 1520,0,44,731,0,44,5304,0,44,5303, + 0,2596,132,0,1,442,0,456,1159,0, + 455,1395,0,786,97,0,783,388,0,41, + 39,0,38,40,0,45,731,0,1,784, + 0,1,5561,0,1,5560,0,1,5559,0, + 1,5558,0,1,5557,0,1,5556,0,1, + 5555,0,1,5554,0,1,5553,0,1,5552, + 0,1,5551,0,45,1,5304,0,45,1, + 5303,0,1208,1,0,5523,246,0,5522,246, + 0,5623,246,0,5622,246,0,5550,246,0, + 5549,246,0,5548,246,0,5547,246,0,5546, + 246,0,5545,246,0,5544,246,0,5543,246, + 0,5561,246,0,5560,246,0,5559,246,0, + 5558,246,0,5557,246,0,5556,246,0,5555, + 246,0,5554,246,0,5553,246,0,5552,246, + 0,5551,246,0,45,5304,246,0,45,5303, + 246,0,5328,246,0,5304,54,0,5303,54, + 0,5290,1,0,5289,1,0,3658,242,0, + 38,389,0,35,388,0,49,5326,0,49, + 43,0,2596,134,0,2596,133,0,5615,443, + 0,1778,443,0,5328,1,0,45,1,0, + 53,43,0,1,98,0,499,2618,0,5328, + 1,234,0,45,1,234,0,234,415,0, + 5304,43,0,5303,43,0,5304,2,43,0, + 5303,2,43,0,5304,42,0,5303,42,0, + 5326,51,0,43,51,0,5294,404,0,5293, + 404,0,1,4317,0,1,2672,0,1,731, + 0,234,414,0,3195,320,0,5615,101,0, + 1778,101,0,41,79,0,1,5615,0,1, + 1778,0,4134,283,0,499,4129,0,1,234, + 0,234,225,0,234,224,0,1,1203,0, + 1,2878,0,5296,1,0,5292,1,0,1, + 234,3193,0,5293,234,0,3206,234,0,5296, + 384,0,5295,384,0,3282,234,0,10,12, + 0,8,10,12,0,191,3376,0,3395,384, + 0,8,12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1067,322 +1079,317 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP 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, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,0,55,56,57,58,0, - 60,61,62,63,64,0,66,67,68,4, - 0,71,72,3,0,75,76,77,78,79, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,0,44,0,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 60,61,62,63,64,65,66,67,0,1, + 2,71,72,5,0,75,76,77,78,79, 80,81,82,83,84,85,86,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,0,31,32, + 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,0,55,56,57,58,0,60,61,62, - 63,64,0,66,67,68,97,98,71,72, - 0,9,75,76,77,78,79,80,81,82, + 0,44,0,46,47,48,49,50,51,52, + 53,54,55,56,57,58,101,60,61,62, + 63,64,65,66,67,0,97,98,71,72, + 0,0,75,76,77,78,79,80,81,82, 83,84,85,86,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,0,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 46,47,48,49,50,51,52,53,0,55, - 56,57,58,73,60,61,62,63,64,0, - 66,67,68,97,98,71,72,0,9,75, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,42,0,44,59, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,0,60,61,62,63,64,65, + 66,67,9,88,89,71,72,0,0,75, 76,77,78,79,80,81,82,83,84,85, 86,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,0,31,32,33,34,35,36,37,38, - 39,40,41,42,43,44,45,46,47,48, - 49,50,51,52,53,0,55,56,57,58, - 0,60,61,62,63,64,0,66,67,68, - 0,0,6,72,3,5,75,76,77,78, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,0,44,59,46,47,48, + 49,50,51,52,53,54,55,56,57,58, + 0,60,61,62,63,64,65,66,67,9, + 0,1,2,72,4,0,75,76,77,78, 79,80,81,82,83,84,85,86,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,0,31, + 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,0,55,56,57,58,0,60,61, - 62,63,64,6,66,67,68,91,92,0, - 72,101,0,75,76,77,78,79,80,81, + 42,0,44,0,46,47,48,49,50,51, + 52,53,54,55,56,57,58,0,60,61, + 62,63,64,65,66,67,0,0,1,2, + 72,4,0,75,76,77,78,79,80,81, 82,83,84,85,86,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,0,31,32,33,34, - 35,36,37,38,39,40,41,42,43,44, - 45,46,47,48,49,50,51,52,53,70, - 55,56,57,58,0,60,61,62,63,64, - 0,66,67,68,4,0,6,72,3,9, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,0,44, + 73,46,47,48,49,50,51,52,53,54, + 55,56,57,58,101,60,61,62,63,64, + 65,66,67,0,1,2,90,72,92,0, 75,76,77,78,79,80,81,82,83,84, 85,86,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,0,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,0,55,56,57, - 58,0,60,61,62,63,64,0,66,67, - 68,0,1,2,72,4,0,75,76,77, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,0,44,0,46,47, + 48,49,50,51,52,53,54,55,56,57, + 58,0,60,61,62,63,64,65,66,67, + 0,0,11,12,72,4,6,75,76,77, 78,79,80,81,82,83,84,85,86,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,0, + 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,76,55,56,57,58,0,60, - 61,62,63,64,0,66,67,68,0,0, - 6,72,4,4,75,76,77,78,79,80, + 41,42,0,44,0,46,47,48,49,50, + 51,52,53,54,55,56,57,58,0,60, + 61,62,63,64,65,66,67,0,1,2, + 0,72,0,3,75,76,77,78,79,80, 81,82,83,84,85,86,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,0,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 0,55,56,57,58,0,60,61,62,63, - 64,0,66,67,68,91,92,6,72,101, - 0,75,76,77,78,79,80,81,82,83, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,59, + 44,59,46,47,48,49,50,51,52,53, + 54,55,56,57,58,0,60,61,62,63, + 64,65,66,67,0,1,2,0,72,0, + 3,75,76,77,78,79,80,81,82,83, 84,85,86,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,0,31,32,33,34,35,36, - 37,38,39,40,41,42,43,44,45,46, - 47,48,49,50,51,52,53,0,55,56, - 57,58,0,60,61,62,63,64,0,66, - 67,68,91,92,99,72,0,0,75,76, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,42,59,44,73,46, + 47,48,49,50,51,52,53,54,55,56, + 57,58,0,60,61,62,63,64,65,66, + 67,0,0,11,12,72,4,0,75,76, 77,78,79,80,81,82,83,84,85,86, 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, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,0,55,56,57,58,73, - 60,61,62,63,64,122,66,67,68,0, - 1,2,72,95,5,75,76,77,78,79, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,0,44,0,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 60,61,62,63,64,65,66,67,0,0, + 0,90,72,92,4,75,76,77,78,79, 80,81,82,83,84,85,86,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,0,31,32, + 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,0,55,56,57,58,0,60,61,62, - 63,64,0,66,67,68,0,1,2,72, - 4,0,75,76,77,78,79,80,81,82, + 61,44,0,46,47,48,49,50,51,52, + 53,54,55,56,57,58,0,60,61,62, + 63,64,65,66,67,0,97,98,90,72, + 92,0,75,76,77,78,79,80,81,82, 83,84,85,86,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,0,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 46,47,48,49,50,51,52,53,0,55, - 56,57,58,0,60,61,62,63,64,0, - 66,67,68,4,11,12,72,0,0,75, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,42,0,44,0, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,0,60,61,62,63,64,65, + 66,67,0,1,2,90,72,92,0,75, 76,77,78,79,80,81,82,83,84,85, - 86,0,1,2,3,4,5,6,7,30, - 9,10,11,12,70,14,15,16,17,18, + 86,0,1,2,3,4,5,6,7,0, + 9,10,11,12,57,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, - 29,0,31,32,33,34,35,36,37,38, - 39,40,41,42,43,44,45,46,47,48, - 49,50,51,52,53,0,55,70,57,0, - 1,2,61,4,5,0,7,66,67,68, - 0,1,2,3,4,5,6,7,8,9, - 10,0,0,13,14,15,16,17,18,19, - 20,21,22,23,24,25,65,0,1,2, - 3,4,5,6,7,0,9,0,1,2, - 0,1,2,54,44,45,46,47,48,49, - 50,51,52,53,54,55,56,0,58,0, - 65,61,0,1,2,70,66,67,68,7, - 0,71,72,73,17,0,1,2,3,4, - 5,6,7,8,9,10,59,87,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,44,45,46,47,48,49,50,51,52, - 53,0,55,0,114,115,116,0,59,44, - 45,46,47,48,49,50,51,52,53,54, - 55,56,121,58,0,100,61,0,0,1, - 2,66,67,68,10,0,71,72,73,0, - 1,2,0,4,0,3,0,8,6,3, - 8,9,87,11,12,13,0,1,2,3, - 4,5,6,7,0,9,65,0,26,27, - 0,70,30,0,114,115,116,10,54,114, - 115,116,54,0,0,61,59,14,15,16, - 17,18,19,20,21,22,23,24,25,0, - 0,59,99,64,69,59,0,65,8,45, - 46,69,70,71,30,73,74,44,45,46, - 47,48,49,50,51,52,53,0,55,73, - 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,0,73,0,117, - 118,3,120,121,6,0,8,9,69,11, - 12,13,102,8,0,1,2,3,4,5, - 6,7,0,9,26,27,30,117,30,0, - 1,2,3,4,5,6,7,0,9,0, - 0,102,3,104,105,106,107,108,109,110, - 111,112,113,0,1,2,117,59,118,0, - 1,2,3,65,5,119,7,69,70,71, - 30,73,74,59,0,70,0,1,2,74, - 4,59,6,69,8,9,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,0,1,2,117,118,0,120,121, - 0,1,2,3,4,5,6,7,0,9, - 10,11,12,0,14,15,16,100,18,19, - 20,21,22,23,24,25,26,27,28,29, - 74,31,32,33,34,35,36,37,38,39, - 40,41,42,43,90,0,0,1,2,4, - 96,95,0,1,2,3,4,57,6,0, - 0,9,62,63,0,1,2,3,4,5, - 6,7,72,9,10,11,12,0,14,15, - 16,4,18,19,20,21,22,23,24,25, - 26,27,28,29,0,31,32,33,34,35, - 36,37,38,39,40,41,42,43,62,63, - 0,59,0,0,54,0,1,2,3,0, - 5,57,7,8,11,12,62,63,69,65, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,0,14,15,16,4,18,19, - 20,21,22,23,24,25,26,27,28,29, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,43,59,0,1,2,3,4, - 5,6,7,0,9,0,0,57,0,74, - 0,1,2,3,64,5,8,7,88,89, - 0,71,0,1,2,3,4,5,6,7, - 0,9,10,11,12,30,14,15,16,59, - 18,19,20,21,22,23,24,25,26,27, - 28,29,0,31,32,33,34,35,36,37, - 38,39,40,41,42,43,0,0,1,2, - 3,65,5,70,7,8,0,1,2,57, - 13,5,74,73,62,63,0,1,2,3, - 4,5,6,7,28,9,10,11,12,69, - 14,15,16,95,18,19,20,21,22,23, - 24,25,26,27,28,29,0,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 54,0,1,2,3,0,5,0,7,8, - 0,1,2,57,13,5,30,7,62,63, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,0,14,15,16,30,18,19, - 20,21,22,23,24,25,26,27,28,29, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,43,59,0,1,2,0,4, - 0,6,0,3,9,3,8,57,8,0, - 8,13,3,0,64,0,1,2,3,4, - 5,6,7,8,9,10,11,12,65,14, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,0,44,0,46,47,48, + 49,50,51,52,53,54,55,0,57,0, + 1,2,61,4,91,8,65,66,67,0, + 1,2,3,4,5,6,7,8,9,10, + 121,0,13,14,15,16,17,18,19,20, + 21,22,23,24,25,0,0,1,2,3, + 4,5,43,7,8,0,1,2,99,4, + 122,6,43,44,9,46,47,48,49,50, + 51,52,53,54,55,56,45,58,0,0, + 61,74,88,89,65,66,67,8,0,0, + 71,72,73,4,0,1,2,3,4,5, + 6,7,8,9,10,59,87,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 74,0,103,104,105,0,1,2,3,4, + 5,6,7,44,9,0,0,43,44,4, + 46,47,48,49,50,51,52,53,54,55, + 56,0,58,74,3,61,0,0,70,65, + 66,67,0,1,2,71,72,73,0,1, + 2,3,4,5,0,7,0,3,100,44, + 6,87,8,9,59,11,12,13,0,1, + 2,3,4,5,69,7,75,103,104,105, + 26,27,46,47,68,43,0,0,1,2, + 3,4,5,6,7,0,9,0,3,45, + 14,15,16,17,18,19,20,21,22,23, + 24,25,0,59,0,0,1,2,103,104, + 105,73,68,69,70,71,0,73,74,3, + 44,0,46,47,48,49,50,51,52,53, + 54,55,88,89,90,91,92,93,94,95, + 96,97,98,99,100,101,102,0,1,2, + 106,107,108,109,110,111,112,113,114,115, + 116,117,118,0,120,121,3,62,63,6, + 68,8,9,69,11,12,13,0,1,2, + 3,4,5,6,7,69,9,100,0,26, + 27,0,1,2,3,4,5,0,7,8, + 3,0,1,2,13,4,102,6,45,0, + 9,107,108,109,110,111,112,113,114,115, + 116,117,59,0,1,2,3,4,5,0, + 7,68,69,70,71,0,73,74,3,0, + 1,2,3,4,5,6,7,59,9,0, + 73,88,89,90,91,92,93,94,95,96, + 97,98,99,100,101,102,0,0,0,106, + 107,108,109,110,111,112,113,114,115,116, + 117,118,59,120,121,0,1,2,3,4, + 5,6,7,0,9,10,11,12,59,14, 15,16,0,18,19,20,21,22,23,24, - 25,26,27,28,29,0,31,32,33,34, - 35,36,37,38,39,40,41,42,43,59, - 28,59,0,1,2,65,4,5,70,7, - 70,0,57,0,74,30,74,0,69,64, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,0,14,15,16,4,18,19, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,0,1, + 2,3,4,5,6,7,68,9,70,0, + 1,2,57,4,5,43,7,62,63,0, + 1,2,3,4,5,6,7,72,9,10, + 11,12,69,14,15,16,0,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,1,2,0,4,0,6,0, + 8,9,0,0,0,3,57,0,1,2, + 8,62,63,0,10,8,3,68,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,28,14,15,16,0,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,59,0,1,2,68,74,5,102,7, + 68,64,70,107,0,57,74,0,43,0, + 1,2,64,91,5,0,7,88,89,71, + 0,1,2,3,4,5,6,7,0,9, + 10,11,12,0,14,15,16,0,18,19, 20,21,22,23,24,25,26,27,28,29, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,43,0,1,2,3,4,5, - 6,7,119,9,10,11,12,44,14,15, - 16,0,18,19,20,21,22,23,24,25, - 26,27,28,29,0,31,32,33,34,35, - 36,37,38,39,40,41,42,43,95,0, - 0,1,2,0,4,5,3,7,5,6, - 0,57,9,73,11,12,17,0,1,2, - 119,4,5,0,7,0,3,0,118,26, - 27,4,29,30,0,1,2,114,115,116, - 30,57,8,44,45,46,47,48,49,50, - 51,52,53,0,55,30,0,30,0,88, - 89,3,59,5,6,62,63,9,65,11, - 12,54,69,70,0,1,2,3,0,5, - 0,7,59,30,26,27,8,29,30,0, - 65,88,89,90,91,92,93,94,64,0, - 97,98,99,100,101,102,103,104,105,106, - 107,108,109,110,111,112,113,59,93,94, - 62,63,0,65,0,3,0,69,70,30, - 0,1,2,59,4,0,6,11,12,9, - 0,0,64,3,88,89,88,89,90,91, - 92,93,94,73,65,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, - 0,9,10,11,12,0,14,15,16,65, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,0,1,2,3,4,5,0, + 7,8,68,0,70,68,13,57,45,0, + 43,8,62,63,0,1,2,3,4,5, + 6,7,0,9,10,11,12,0,14,15, + 16,68,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,99,95,96, + 0,0,0,0,1,2,3,4,8,6, + 8,57,9,70,71,13,62,63,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,69,14,15,16,68,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,59,0,1,2,3,4,5,0, + 7,71,0,1,2,57,4,8,0,0, + 8,3,64,0,1,2,3,4,5,6, + 7,8,9,10,11,12,0,14,15,16, + 0,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,1,2,0, + 4,70,6,64,0,9,64,0,1,2, + 57,4,8,6,0,45,9,64,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,0,14,15,16,4,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,1,2,3,4,5,6,7,70, + 9,10,11,12,0,14,15,16,74,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,0,0,3,0,5, + 6,0,4,9,6,11,12,9,57,45, + 0,1,2,17,4,5,0,7,0,3, + 26,27,0,29,0,0,118,0,3,0, + 3,0,68,11,12,8,0,1,2,45, + 44,17,46,47,48,49,50,51,52,53, + 54,55,0,59,59,0,62,63,3,95, + 96,0,68,69,70,0,1,2,44,8, + 46,47,48,49,50,51,52,53,54,55, + 0,0,88,89,90,4,59,93,94,95, + 96,97,98,99,100,101,102,68,62,63, + 106,74,108,109,110,111,112,113,114,115, + 116,117,0,1,2,3,4,5,6,7, + 119,9,10,11,12,64,14,15,16,0, 18,19,20,21,22,23,24,25,26,27, - 28,29,61,31,32,33,34,35,36,37, - 38,39,40,41,42,43,0,0,0,1, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,103,104,105,0,1, 2,3,4,5,6,7,0,9,10,11, 12,59,14,15,16,0,18,19,20,21, - 22,23,24,25,26,27,28,29,0,31, + 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, - 54,9,10,11,12,57,14,15,16,0, + 42,0,0,1,2,3,4,5,6,7, + 0,9,10,11,12,57,14,15,16,0, 18,19,20,21,22,23,24,25,26,27, - 28,29,75,31,32,33,34,35,36,37, - 38,39,40,41,42,43,0,1,2,3, - 4,5,6,7,0,9,10,11,12,0, - 14,15,16,4,18,19,20,21,22,23, - 24,25,26,27,28,29,0,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 0,1,2,3,4,5,6,7,0,9, - 10,11,12,44,14,15,16,0,18,19, - 20,21,22,23,24,25,26,27,28,29, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,43,0,1,2,17,4,0, - 0,1,2,3,10,5,0,7,14,15, - 16,17,18,19,20,21,22,23,24,25, - 0,1,2,65,44,45,46,47,48,49, - 50,51,52,53,0,55,30,3,44,45, - 46,47,48,49,50,51,52,53,0,55, - 0,1,2,54,4,61,6,0,0,9, - 66,67,68,0,1,2,8,4,0,1, - 2,65,4,10,54,0,0,14,15,16, - 17,18,19,20,21,22,23,24,25,0, - 1,2,3,4,5,6,7,8,9,93, - 94,0,13,0,1,2,17,44,45,46, - 47,48,49,50,51,52,53,0,55,30, - 0,73,54,3,61,8,0,1,2,66, - 67,68,74,44,45,46,47,48,49,50, - 51,52,53,0,55,88,89,0,59,0, - 1,2,3,4,5,6,7,8,9,0, - 1,2,13,74,88,89,17,0,0,1, - 2,3,4,5,6,7,8,9,0,1, - 2,13,4,0,6,17,3,9,62,63, - 0,74,0,44,45,46,47,48,49,50, - 51,52,53,0,55,0,0,0,59,3, - 0,8,0,1,2,3,4,5,6,7, - 8,9,54,74,56,13,58,0,60,17, - 0,0,26,27,0,1,2,90,8,71, - 30,0,30,96,0,1,2,3,4,5, - 6,7,8,9,0,87,0,13,0,1, - 2,17,0,73,0,59,54,64,56,0, - 58,30,60,0,0,1,2,3,4,5, - 6,7,8,9,0,1,2,13,54,0, - 0,17,30,0,1,2,65,70,54,87, - 56,71,58,0,60,0,1,2,0,103, - 0,3,54,10,0,71,0,1,2,3, - 4,5,6,7,8,9,120,65,54,13, - 56,87,58,17,60,0,1,2,3,4, - 5,6,7,8,9,71,0,54,13,0, - 1,2,17,0,90,93,94,54,0,54, - 96,87,0,90,61,0,8,0,0,96, - 54,3,56,59,58,10,60,0,1,2, - 3,4,5,6,7,8,9,71,0,54, - 13,56,30,58,17,60,8,0,0,0, - 0,13,3,87,0,8,8,0,1,2, - 3,4,5,6,7,8,9,17,0,0, - 13,56,87,0,17,0,8,8,70,71, - 0,54,13,56,4,58,69,60,0,1, - 2,0,1,2,44,45,46,47,48,49, - 50,51,52,53,0,55,0,0,0,0, - 30,54,0,56,87,58,8,60,71,0, - 8,13,74,0,70,13,0,8,0,3, - 0,8,0,3,30,3,30,0,65,30, - 3,0,74,0,87,70,3,0,0,0, - 0,3,3,3,0,0,0,3,3,0, - 0,0,0,0,3,0,0,0,0,0, - 0,0,0,0,0,0,69,0,0,0, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,0,1,2,3,4, + 5,6,7,0,9,10,11,12,0,14, + 15,16,4,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,1, + 2,3,4,5,6,7,0,9,10,11, + 12,0,14,15,16,0,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,1,2,0,4,0,0,0,1, + 2,10,0,6,91,14,15,16,17,18, + 19,20,21,22,23,24,25,0,1,2, + 0,4,5,0,7,0,1,2,0,0, + 0,8,76,68,73,44,8,46,47,48, + 49,50,51,52,53,54,55,45,28,0, + 1,2,61,4,0,59,65,66,67,10, + 43,0,68,14,15,16,17,18,19,20, + 21,22,23,24,25,0,1,2,3,4, + 5,6,7,8,9,0,0,0,13,3, + 93,94,17,44,71,46,47,48,49,50, + 51,52,53,54,55,0,0,0,1,2, + 61,6,26,27,65,66,67,88,89,44, + 45,46,47,48,49,50,51,52,53,54, + 55,0,45,0,59,0,1,2,3,4, + 5,6,7,8,9,59,118,0,13,74, + 43,45,17,0,0,1,2,3,4,5, + 6,7,8,9,0,0,0,13,0,1, + 2,17,4,5,68,7,45,0,45,44, + 3,46,47,48,49,50,51,52,53,54, + 55,0,106,0,59,0,3,43,93,94, + 0,95,96,0,1,2,120,0,5,74, + 56,43,58,6,60,0,1,2,3,4, + 5,6,7,8,9,71,0,0,13,0, + 1,2,17,0,8,6,0,1,2,13, + 45,87,0,10,91,0,43,0,0,1, + 2,3,4,5,6,7,8,9,43,0, + 45,13,0,1,2,17,0,0,1,2, + 4,56,43,58,0,60,43,3,0,43, + 0,1,2,3,4,5,6,7,8,9, + 45,43,45,13,61,17,70,17,0,0, + 93,94,87,0,56,43,58,0,60,0, + 43,45,0,1,2,88,89,8,73,71, + 0,0,44,43,46,47,48,49,50,51, + 52,53,54,55,0,87,56,0,58,5, + 60,0,1,2,3,4,5,6,7,8, + 9,71,0,0,13,43,0,0,17,0, + 1,2,10,10,8,8,45,87,70,13, + 13,0,69,0,1,2,3,4,5,6, + 7,8,9,74,43,0,13,0,17,0, + 17,4,3,8,0,43,0,56,0,58, + 91,60,43,0,0,0,8,4,0,56, + 73,13,71,61,0,44,43,46,47,48, + 49,50,51,52,53,54,55,0,87,56, + 0,58,45,60,0,1,2,3,4,5, + 6,7,8,9,0,0,0,13,45,0, + 45,17,8,8,0,70,0,8,0,74, + 87,3,0,1,2,3,4,5,6,7, + 8,9,45,0,70,13,3,43,0,17, + 0,73,0,69,0,0,0,3,3,0, + 56,45,58,0,60,0,0,0,3,45, + 70,0,0,0,3,43,3,0,0,0, + 3,3,3,119,0,71,0,0,56,74, + 58,87,60,74,0,69,0,45,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,74,71,30,28,69,0,0, - 0,0,0,0,0,0,0,0,0,0, - 69,0,0,0,0,0,0,0,0,0, - 73,0,0,0,0,0,0,0,69,73, - 0,69,69,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,95,0,0,0,0, + 0,0,0,0,0,0,0,0,70,87, + 0,0,28,73,0,69,0,0,69,0, + 0,0,45,0,0,0,73,0,0,73, + 0,69,0,0,0,0,0,0,0,0, + 0,0,0,69,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,0,0,0,0,119,0,0,0, 0,0,0,0,0,0,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; @@ -1390,321 +1397,317 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface TermAction { public final static char termAction[] = {0, - 5250,5215,5194,5194,5194,5194,5194,5194,5231,5194, - 1,1,1,5219,1,1,1,1,1,1, + 5284,5249,5228,5228,5228,5228,5228,5228,5265,5228, + 1,1,1,5253,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,387,1,1859,1,3141,137, - 3195,1,1,1,5261,45,1,1,1,5294, - 5250,5257,5433,4027,5250,2200,3466,3580,2208,3541, - 3344,2916,3431,1344,3402,3285,3384,10,5234,5234, - 5234,5234,5234,5234,5234,5234,5234,5234,5234,5234, - 5234,5234,5234,5234,5234,5234,5234,5234,5234,5234, - 5234,5234,5234,5234,5234,5234,5234,5250,5234,5234, - 5234,5234,5234,5234,5234,5234,5234,5234,5234,5234, - 5234,5234,5234,5234,5234,5234,5234,5234,5234,5234, - 5234,5250,5234,5234,5234,5234,138,5234,5234,5234, - 5234,5234,139,5234,5234,5234,2389,2361,5234,5234, - 5250,594,5234,5234,5234,5234,5234,5234,5234,5234, - 5234,5234,5234,5234,8,5237,5237,5237,5237,5237, - 5237,5237,5237,5237,5237,5237,5237,5237,5237,5237, - 5237,5237,5237,5237,5237,5237,5237,5237,5237,5237, - 5237,5237,5237,5237,5250,5237,5237,5237,5237,5237, - 5237,5237,5237,5237,5237,5237,5237,5237,5237,5237, - 5237,5237,5237,5237,5237,5237,5237,5237,5250,5237, - 5237,5237,5237,1901,5237,5237,5237,5237,5237,140, - 5237,5237,5237,2389,2361,5237,5237,5250,594,5237, - 5237,5237,5237,5237,5237,5237,5237,5237,5237,5237, - 5237,5250,5215,5194,5194,5194,5194,5194,5194,5222, - 5194,1,1,1,5219,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5250,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5250,1,1859,1,3141, - 145,3195,1,1,1,5261,123,1,1,1, - 5250,5250,3537,5433,2944,1471,2200,3466,3580,2208, - 3541,3344,2916,3431,1344,3402,3285,3384,5250,5215, - 5194,5194,5194,5194,5194,5194,5222,5194,1,1, - 1,5219,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5250,1, + 1,1,1,1,1,143,1,1,1,1, + 1,1,1,1,1,1,1525,1,2338,135, + 2983,1,1,1,5295,1,1,1,5284,5303, + 5304,5291,5465,2873,385,3399,3262,3234,2215,2855, + 3172,3081,3261,1482,3236,3585,3207,10,5268,5268, + 5268,5268,5268,5268,5268,5268,5268,5268,5268,5268, + 5268,5268,5268,5268,5268,5268,5268,5268,5268,5268, + 5268,5268,5268,5268,5268,5268,5268,5268,5268,5268, + 5268,5268,5268,5268,5268,5268,5268,5268,5268,5268, + 5284,5268,5284,5268,5268,5268,5268,5268,5268,5268, + 5268,5268,5268,5268,5268,5268,2264,5268,5268,5268, + 5268,5268,5268,5268,5268,127,2393,2365,5268,5268, + 456,5284,5268,5268,5268,5268,5268,5268,5268,5268, + 5268,5268,5268,5268,8,5271,5271,5271,5271,5271, + 5271,5271,5271,5271,5271,5271,5271,5271,5271,5271, + 5271,5271,5271,5271,5271,5271,5271,5271,5271,5271, + 5271,5271,5271,5271,5271,5271,5271,5271,5271,5271, + 5271,5271,5271,5271,5271,5271,5271,5284,5271,4947, + 5271,5271,5271,5271,5271,5271,5271,5271,5271,5271, + 5271,5271,5271,137,5271,5271,5271,5271,5271,5271, + 5271,5271,592,2997,3023,5271,5271,455,5284,5271, + 5271,5271,5271,5271,5271,5271,5271,5271,5271,5271, + 5271,5284,5249,5228,5228,5228,5228,5228,5228,5256, + 5228,1,1,1,5253,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5250,1,1859,1,3141,5250,3195,1, - 1,1,5261,3286,1,1,1,3513,3427,165, - 5433,2296,5250,2200,3466,3580,2208,3541,3344,2916, - 3431,1344,3402,3285,3384,5250,5215,5194,5194,5194, - 5194,5194,5194,5222,5194,1,1,1,5219,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5250,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1348, - 1,1859,1,3141,5250,3195,1,1,1,5261, - 45,1,1,1,5294,99,2291,5433,4878,5583, - 2200,3466,3580,2208,3541,3344,2916,3431,1344,3402, - 3285,3384,5250,5215,5194,5194,5194,5194,5194,5194, - 5222,5194,1,1,1,5219,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,5250,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5250,1,1859,1, - 3141,5250,3195,1,1,1,5261,5250,1,1, - 1,5250,4845,4842,5433,5294,5250,2200,3466,3580, - 2208,3541,3344,2916,3431,1344,3402,3285,3384,5250, - 5215,5194,5194,5194,5194,5194,5194,5222,5194,1, - 1,1,5219,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5250, + 1,1,1,1,5284,1,4950,1,1,1, + 1,1,1,1,1,1,1,1525,1,2338, + 138,2983,1,1,1,5295,1,1,1,592, + 5284,4920,4917,5465,5328,5284,3399,3262,3234,2215, + 2855,3172,3081,3261,1482,3236,3585,3207,5284,5249, + 5228,5228,5228,5228,5228,5228,5256,5228,1,1, + 1,5253,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3581,1,1859,1,3141,146,3195, - 1,1,1,5261,125,1,1,1,5250,1, - 3537,5433,2538,391,2200,3466,3580,2208,3541,3344, - 2916,3431,1344,3402,3285,3384,5250,5215,5194,5194, - 5194,5194,5194,5194,5222,5194,1,1,1,5219, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5250,1,1,1, + 1,5284,1,144,1,1,1,1,1,1, + 1,1,1,1,1525,1,2338,5284,2983,1, + 1,1,5295,1,1,1,117,5284,4920,4917, + 5465,5328,5284,3399,3262,3234,2215,2855,3172,3081, + 3261,1482,3236,3585,3207,5284,5249,5228,5228,5228, + 5228,5228,5228,5256,5228,1,1,1,5253,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5250,1,1859,1,3141,141,3195,1,1,1, - 5261,124,1,1,1,3513,3427,3537,5433,2296, - 5250,2200,3466,3580,2208,3541,3344,2916,3431,1344, - 3402,3285,3384,5250,5215,5194,5194,5194,5194,5194, - 5194,5222,5194,1,1,1,5219,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,193,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5250,1,1859, - 1,3141,5250,3195,1,1,1,5261,361,1, - 1,1,3513,3427,2330,5433,428,5250,2200,3466, - 3580,2208,3541,3344,2916,3431,1344,3402,3285,3384, - 5250,5215,5194,5194,5194,5194,5194,5194,5222,5194, - 1,1,1,5219,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 5250,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5250,1,1859,1,3141,3038, - 3195,1,1,1,5261,5241,1,1,1,5250, - 5269,5270,5433,5610,1471,2200,3466,3580,2208,3541, - 3344,2916,3431,1344,3402,3285,3384,5250,5215,5194, - 5194,5194,5194,5194,5194,5222,5194,1,1,1, - 5219,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5250,1,1, + 1,1,1,1,1,1,1,1,5284,1, + 1911,1,1,1,1,1,1,1,1,1, + 1,1525,1,2338,2264,2983,1,1,1,5295, + 1,1,1,5284,5303,5304,4010,5465,4032,5284, + 3399,3262,3234,2215,2855,3172,3081,3261,1482,3236, + 3585,3207,5284,5249,5228,5228,5228,5228,5228,5228, + 5256,5228,1,1,1,5253,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5250,1,1859,1,3141,5250,3195,1,1, - 1,5261,5250,1,1,1,5250,4845,4842,5433, - 5294,5250,2200,3466,3580,2208,3541,3344,2916,3431, - 1344,3402,3285,3384,5250,3347,1,1,1,1, - 1,1,3359,1,1,1,1,5259,1,1, + 1,1,1,1,1,5284,1,5284,1,1, + 1,1,1,1,1,1,1,1,1525,1, + 2338,124,2983,1,1,1,5295,1,1,1, + 5284,45,3512,3487,5465,5328,2986,3399,3262,3234, + 2215,2855,3172,3081,3261,1482,3236,3585,3207,5284, + 5249,5228,5228,5228,5228,5228,5228,5256,5228,1, + 1,1,5253,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,515,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5250,1, - 1859,1,3141,126,3195,1,1,1,5261,397, - 1,1,1,390,3380,3355,5433,365,5250,2200, - 3466,3580,2208,3541,3344,2916,3431,1344,3402,3285, - 3384,45,4845,4842,3449,868,3715,3781,4574,639, - 3803,1939,3759,3737,880,5521,5519,5528,5514,5527, - 5523,5524,5522,5525,5526,5529,5520,3847,3825,5275, - 2701,5250,730,860,5277,743,3990,821,5278,5276, - 724,5271,5273,5274,5272,5517,5590,5591,5511,5518, - 5490,5516,5515,5512,5513,5250,5491,2929,1305,5250, - 4845,4842,5649,868,4890,5250,4574,576,5650,5651, - 5250,5093,5093,235,5089,235,235,235,5097,235, - 1,5250,5250,235,1,1,1,1,1,1, - 1,1,1,1,1,1,2061,348,5184,5180, - 2813,5294,790,2291,4574,143,5583,5250,5269,5270, - 5250,5023,5020,2069,1,1,1,1,1,1, - 1,1,1,1,5086,1,2842,231,2142,458, - 4163,1,44,4860,4857,3103,1,1,1,559, - 439,417,5663,235,5514,5250,5093,5093,235,5089, - 235,235,235,5149,235,1,1864,5750,235,1, + 1,1,5284,1,5284,1,1,1,1,1, + 1,1,1,1,1,1525,1,2338,5284,2983, + 1,1,1,5295,1,1,1,5284,5098,5095, + 348,5465,349,1994,3399,3262,3234,2215,2855,3172, + 3081,3261,1482,3236,3585,3207,5284,5249,5228,5228, + 5228,5228,5228,5228,5256,5228,1,1,1,5253, 1,1,1,1,1,1,1,1,1,1, - 1,5517,5590,5591,5511,5518,5490,5516,5515,5512, - 5513,5250,5491,142,5685,5686,5687,5250,4869,1, - 1,1,1,1,1,1,1,1,1,5086, - 1,2842,4841,2142,1,1184,1,457,5250,8842, - 8842,1,1,1,5203,296,416,5663,235,5250, - 4845,4842,39,5294,5250,4884,350,5262,4884,2723, - 4884,4884,5750,4884,4884,4884,5250,5175,5170,582, - 5071,790,5167,4574,339,5164,3572,306,4884,4884, - 147,3103,4884,230,5685,5686,5687,5555,3246,5685, - 5686,5687,5292,5250,35,5206,4872,5521,5519,5528, - 5514,5527,5523,5524,5522,5525,5526,5529,5520,147, - 5250,4884,2330,5261,1995,1864,5250,4884,5254,5590, - 5591,4884,4884,4884,639,4884,4884,5517,5590,5591, - 5511,5518,5490,5516,5515,5512,5513,5250,5491,2083, - 4884,4884,4884,4884,4884,4884,4884,4884,4884,4884, - 4884,4884,4884,4884,4884,4884,4884,4884,4884,4884, - 4884,4884,4884,4884,4884,4884,5250,424,5250,4884, - 4884,4887,4884,4884,4887,5250,4887,4887,1821,4887, - 4887,4887,2259,5256,370,5110,5106,2813,1,790, - 1,4574,351,1,4887,4887,4013,4011,4887,5250, - 5184,5180,582,5294,790,2291,4574,144,5583,244, - 5250,2259,5032,1778,1735,1692,1649,1606,1563,1520, - 1477,1434,1391,56,5056,5053,4011,4887,5253,1, - 5110,5106,582,4887,790,3482,4574,4887,4887,4887, - 4025,4887,4887,1864,119,4716,1,5074,5074,5255, - 5071,1864,2291,1136,366,5583,4887,4887,4887,4887, - 4887,4887,4887,4887,4887,4887,4887,4887,4887,4887, - 4887,4887,4887,4887,4887,4887,4887,4887,4887,4887, - 4887,4887,56,5023,5020,4887,4887,5250,4887,4887, - 5250,1,1,1,1,1,1,1,5250,1, - 1,1,1,5250,1,1,1,1184,1,1, 1,1,1,1,1,1,1,1,1,1, - 366,1,1,1,1,1,1,1,1,1, - 1,1,1,1,3891,5250,5250,5269,5270,3153, - 3913,366,348,45,45,2528,5294,1,2291,373, - 43,5583,1,1,1,4933,4929,3449,4937,3715, - 3781,4574,5786,3803,4893,3759,3737,5250,4920,4926, - 4899,1730,4902,4914,4911,4917,4908,4905,4896,4923, - 3847,3825,5275,2701,5250,730,860,5277,743,3990, - 821,5278,5276,724,5271,5273,5274,5272,3869,741, - 129,1864,5250,128,5292,1,5110,5106,2813,5250, - 790,1305,4574,5026,3380,3355,45,45,1218,516, - 45,4845,4842,3449,868,3715,3781,4574,5244,3803, - 633,3759,3737,5250,5521,5519,5528,1773,5527,5523, - 5524,5522,5525,5526,5529,5520,3847,3825,5275,2701, - 108,730,860,5277,743,3990,821,5278,5276,724, - 5271,5273,5274,5272,1864,314,5175,5170,582,5071, - 790,5167,4574,294,5164,5250,5250,1305,1,5029, - 1,5110,5106,582,5228,790,366,4574,2646,2787, - 5250,5257,149,4845,4842,3449,868,3715,3781,4574, - 371,3803,633,3759,3737,4263,5521,5519,5528,4747, - 5527,5523,5524,5522,5525,5526,5529,5520,3847,3825, - 5275,2701,5250,730,860,5277,743,3990,821,5278, - 5276,724,5271,5273,5274,5272,5250,1,5110,5106, - 5140,2203,5143,1385,5146,5260,43,5083,5083,1305, - 5259,5083,366,2083,45,45,1,4933,4929,3449, - 4937,3715,3781,4574,2875,3803,4893,3759,3737,1262, - 4920,4926,4899,366,4902,4914,4911,4917,4908,4905, - 4896,4923,3847,3825,5275,2701,5250,730,860,5277, - 743,3990,821,5278,5276,724,5271,5273,5274,5272, - 1514,1,5110,5106,582,324,790,35,4574,314, - 5250,5269,5270,1305,314,790,4443,4574,45,45, - 45,4845,4842,3449,868,3715,3781,4574,5225,3803, - 633,3759,3737,5250,5521,5519,5528,4848,5527,5523, - 5524,5522,5525,5526,5529,5520,3847,3825,5275,2701, - 5250,730,860,5277,743,3990,821,5278,5276,724, - 5271,5273,5274,5272,1864,444,1,1,5250,1, - 1,4866,1,2528,4866,2528,5260,1305,344,316, - 5026,5259,3252,378,5228,45,4845,4842,3449,868, - 3715,3781,4574,5225,3803,633,3759,3737,2230,5521, - 5519,5528,5250,5527,5523,5524,5522,5525,5526,5529, - 5520,3847,3825,5275,2701,440,730,860,5277,743, - 3990,821,5278,5276,724,5271,5273,5274,5272,1864, - 4133,1864,5250,4845,4842,344,868,790,4196,4574, - 344,521,1305,1,344,4851,5029,5250,1090,5228, - 45,4845,4842,3449,868,3715,3781,4574,5254,3803, - 633,3759,3737,45,5521,5519,5528,5294,5527,5523, - 5524,5522,5525,5526,5529,5520,3847,3825,5275,2701, - 5250,730,860,5277,743,3990,821,5278,5276,724, - 5271,5273,5274,5272,45,4845,4842,3449,868,3715, - 3781,4574,3482,3803,633,3759,3737,1585,5521,5519, - 5528,133,5527,5523,5524,5522,5525,5526,5529,5520, - 3847,3825,5275,2701,532,730,860,5277,743,3990, - 821,5278,5276,724,5271,5273,5274,5272,5612,232, - 5250,4845,4842,1,868,790,877,4574,5719,5713, - 454,1305,5717,5652,5711,5712,5514,5250,4845,4842, - 3482,868,4890,322,4574,134,5152,56,5253,5742, - 5743,5270,5720,5722,5250,5269,5270,5685,5686,5687, - 4854,3308,5262,5517,5590,5591,5511,5518,5490,5516, - 5515,5512,5513,47,5491,2498,132,5270,5250,2646, - 2787,877,566,5719,5713,1395,1413,5717,5723,5711, - 5712,2157,5721,5744,1,5110,5106,2813,5250,790, - 448,4574,1864,4875,5742,5743,5262,5720,5722,5250, - 4863,5733,5732,5745,5714,5715,5738,5739,5261,390, - 5736,5737,5716,5718,5740,5741,5746,5726,5727,5728, - 5724,5725,5734,5735,5730,5729,5731,566,2444,2417, - 1395,1413,1,5723,5250,4469,127,5721,5744,4881, - 445,45,45,1864,5294,5250,5068,3380,3355,5065, - 5250,5250,5261,4125,2646,2787,5733,5732,5745,5714, - 5715,5738,5739,629,2237,5736,5737,5716,5718,5740, - 5741,5746,5726,5727,5728,5724,5725,5734,5735,5730, - 5729,5731,45,4845,4842,3449,868,3715,3781,4574, - 5250,3803,633,3759,3737,5250,5521,5519,5528,5762, - 5527,5523,5524,5522,5525,5526,5529,5520,3847,3825, - 5275,2701,3500,730,860,5277,743,3990,821,5278, - 5276,724,5271,5273,5274,5272,55,1,45,4845, - 4842,3449,868,3715,3781,4574,5250,3803,633,3759, - 3737,1466,5521,5519,5528,5250,5527,5523,5524,5522, - 5525,5526,5529,5520,3847,3825,5275,2701,5250,730, - 860,5277,743,3990,821,5278,5276,724,5271,5273, - 5274,5272,45,4845,4842,4262,868,3715,3781,4574, - 1299,3803,633,3759,3737,1305,5521,5519,5528,5250, - 5527,5523,5524,5522,5525,5526,5529,5520,3847,3825, - 5275,2701,3610,730,860,5277,743,3990,821,5278, - 5276,724,5271,5273,5274,5272,45,4845,4842,3449, - 868,3715,3781,4574,5250,3803,633,3759,3737,45, - 5521,5519,5528,5294,5527,5523,5524,5522,5525,5526, - 5529,5520,3847,3825,5275,2701,5250,730,860,5277, - 743,3990,821,5278,5276,724,5271,5273,5274,5272, - 45,4845,4842,3449,868,3715,3781,4574,5250,3803, - 633,3759,3737,1681,5521,5519,5528,5250,5527,5523, - 5524,5522,5525,5526,5529,5520,3847,3825,5275,2701, - 233,730,860,5277,743,3990,821,5278,5276,724, - 5271,5273,5274,5272,5250,4845,4842,5514,5294,5250, - 1,5110,5106,5140,861,5143,136,5146,5521,5519, - 5528,5514,5527,5523,5524,5522,5525,5526,5529,5520, - 51,5050,5050,5691,5517,5590,5591,5511,5518,5490, - 5516,5515,5512,5513,5250,5491,2498,4274,5517,5590, - 5591,5511,5518,5490,5516,5515,5512,5513,5250,5491, - 100,1,1,3064,1,5649,5080,131,1,5080, - 576,5650,5651,248,5013,5009,169,5017,398,4845, - 4842,5059,5294,861,5047,5250,130,5000,5006,4979, - 4964,4982,4994,4991,4997,4988,4985,4976,5003,35, - 390,390,5041,390,390,5041,390,5044,5041,2444, - 2417,5250,5041,295,5269,5270,390,4955,4949,4946, - 4973,4952,4943,4958,4961,4970,4967,5250,4940,4848, - 5250,2120,45,4298,5649,5256,5250,5023,5020,576, - 5650,5651,169,390,390,390,390,390,390,390, - 390,390,390,5250,390,2646,2787,122,5044,38, - 391,391,5035,391,391,5035,391,5038,5035,42, - 5125,5122,5035,5044,2646,2787,391,5250,1,5194, - 5194,235,5194,235,235,235,5197,235,103,45, - 45,235,5294,5250,5158,8845,4735,5155,3869,741, - 5250,5255,5250,391,391,391,391,391,391,391, - 391,391,391,1,391,5250,83,5250,5038,3600, - 5250,5209,1,5194,5194,235,5194,235,235,235, - 235,235,5191,5038,4388,235,3141,426,3195,8845, - 5250,5250,5320,5321,43,5077,5077,3891,5258,227, - 639,1,3049,3913,1,5194,5194,235,5194,235, - 235,235,5200,235,5250,5750,5250,235,5250,5103, - 5100,8845,135,2953,121,3457,5191,5261,4388,5250, - 3141,639,3195,120,1,5194,5194,235,5194,235, - 235,235,5197,235,5250,5056,5053,235,1428,5250, - 5250,8845,2498,5250,5118,5114,5705,575,5191,5750, - 4388,5257,3141,1,3195,53,5131,5131,5250,661, - 5250,4024,5292,5203,107,226,1,5194,5194,235, - 5194,235,235,235,5197,235,800,5062,5191,235, - 4388,5750,3141,8845,3195,1,5194,5194,235,5194, - 235,235,235,235,235,227,5250,5292,235,398, - 5269,5270,8845,5250,3891,2444,2417,3246,5250,5128, - 3913,5750,5250,3891,5206,306,5258,420,5250,3913, - 5191,4041,4388,2032,3141,5555,3195,1,5194,5194, - 235,5194,235,235,235,235,235,227,406,5191, - 235,4388,3049,3141,8845,3195,5134,1,1,111, - 234,5137,4228,5750,449,5212,5256,1,5194,5194, - 235,5194,235,235,235,235,235,5514,1,5250, - 235,1853,5750,5250,8845,313,528,5260,1002,5257, - 56,5191,5259,4388,5269,3141,2171,3195,5250,8757, - 7954,5250,8757,7954,5517,5590,5591,5511,5518,5490, - 5516,5515,5512,5513,81,5491,5250,41,1,5250, - 5269,5191,1,4388,5750,3141,5260,3195,5257,1, - 199,5259,5255,8,3341,199,5250,171,508,3473, - 285,5247,5250,5188,5161,3202,3609,5250,4012,4032, - 4355,506,528,5250,5750,4217,4292,5250,5250,5250, - 5250,4690,4701,4261,5250,5250,5250,4704,4472,5250, - 1,5250,5250,510,4749,2,5250,5250,1,5250, - 5250,5250,5250,5250,5250,5250,3124,5250,5250,5250, - 5250,5250,5250,5250,5250,5250,5250,5250,5250,5250, - 5250,5250,5250,171,5247,43,3142,4706,5250,5250, - 5250,5250,5250,5250,5250,5250,5250,5250,5250,5250, - 4714,5250,5250,5250,5250,5250,5250,5250,5250,5250, - 3007,5250,5250,5250,5250,5250,5250,5250,3124,3044, - 5250,1952,937,5250,5250,5250,5250,5250,5250,5250, - 5250,5250,5250,5250,5250,5250,5250,5250,5250,5250, - 5250,5250,5250,5250,5250,4434 + 1,1,1,1,1,1,1,1,1,1873, + 1,1873,1,1,1,1,1,1,1,1, + 1,1,1525,1,2338,426,2983,1,1,1, + 5295,1,1,1,54,5098,5095,320,5465,5284, + 5204,3399,3262,3234,2215,2855,3172,3081,3261,1482, + 3236,3585,3207,5284,5249,5228,5228,5228,5228,5228, + 5228,5256,5228,1,1,1,5253,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1873,1,3075,1, + 1,1,1,1,1,1,1,1,1,1525, + 1,2338,126,2983,1,1,1,5295,1,1, + 1,120,5284,3512,3487,5465,2981,5284,3399,3262, + 3234,2215,2855,3172,3081,3261,1482,3236,3585,3207, + 5284,5249,5228,5228,5228,5228,5228,5228,5256,5228, + 1,1,1,5253,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5284,1,5284,1,1,1,1, + 1,1,1,1,1,1,1525,1,2338,136, + 2983,1,1,1,5295,1,1,1,119,5284, + 1,4010,5465,4032,389,3399,3262,3234,2215,2855, + 3172,3081,3261,1482,3236,3585,3207,5284,5249,5228, + 5228,5228,5228,5228,5228,5256,5228,1,1,1, + 5253,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 4152,1,5284,1,1,1,1,1,1,1, + 1,1,1,1525,1,2338,5284,2983,1,1, + 1,5295,1,1,1,118,2393,2365,4010,5465, + 4032,5284,3399,3262,3234,2215,2855,3172,3081,3261, + 1482,3236,3585,3207,5284,3193,1,1,1,1, + 1,1,3206,1,1,1,1,5293,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,530,1,5284, + 1,1,1,1,1,1,1,1,1,1, + 1525,1,2338,359,2983,1,1,1,5295,1, + 1,1,293,5303,5304,4010,5465,4032,191,3399, + 3262,3234,2215,2855,3172,3081,3261,1482,3236,3585, + 3207,45,4920,4917,3155,1208,2940,3900,2672,139, + 3922,921,3878,3856,3092,5553,5551,5560,5546,5559, + 5555,5556,5554,5557,5558,5561,5552,3966,3944,5309, + 628,772,817,5311,774,4098,797,5312,5310,591, + 5305,5307,5308,5306,131,5549,5284,5622,5623,5543, + 5550,5522,5548,5547,5544,5545,5523,1,1311,396, + 4920,4917,5681,5328,5642,167,865,5682,5683,5284, + 5153,5153,234,5149,234,234,234,5157,234,1, + 4916,5284,234,1,1,1,1,1,1,1, + 1,1,1,1,1,5284,1,5008,5004,2443, + 5012,731,45,2672,5101,442,1,1,2334,1, + 5275,4944,5146,1,4944,1,1,1,1,1, + 1,1,1,1,1,2663,2719,1149,141,5284, + 1,167,2997,3023,1,1,1,5290,163,45, + 415,5695,234,5328,5284,5153,5153,234,5149,234, + 234,234,5201,234,1,1873,5782,234,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5104,1,5717,5718,5719,368,5008,5004,2443,5012, + 731,1,2672,1266,1,45,5284,5146,1,5328, + 1,1,1,1,1,1,1,1,1,1, + 2663,5284,1149,5289,4719,1,337,5284,1357,1, + 1,1,5284,8826,8826,414,5695,234,1,5008, + 5004,4317,5012,731,39,2672,5284,4959,2302,2296, + 4959,5782,4959,4959,1873,4959,4959,4959,1,5008, + 5004,4317,5012,731,1165,2672,3475,5717,5718,5719, + 4959,4959,5622,5623,2037,5326,228,5284,4920,4917, + 4317,1208,731,1778,2672,5284,5615,142,3658,4959, + 5553,5551,5560,5546,5559,5555,5556,5554,5557,5558, + 5561,5552,5284,4959,145,5284,5303,5304,5717,5718, + 5719,2090,4959,4959,4959,4959,314,4959,4959,3175, + 5549,5284,5622,5623,5543,5550,5522,5548,5547,5544, + 5545,5523,4959,4959,4959,4959,4959,4959,4959,4959, + 4959,4959,4959,4959,4959,4959,4959,42,5177,5174, + 4959,4959,4959,4959,4959,4959,4959,4959,4959,4959, + 4959,4959,4959,5284,4959,4959,4962,3988,780,4962, + 2070,4962,4962,1830,4962,4962,4962,5284,5008,5004, + 4317,5012,731,5219,2672,1038,5216,2302,106,4962, + 4962,1,5008,5004,5192,5012,5198,97,5195,5294, + 4953,443,45,45,5293,5328,1127,5131,4962,5284, + 5128,3201,1787,1744,1701,1658,1615,1572,1529,1486, + 1443,1400,4962,1,5008,5004,2443,5012,731,5284, + 2672,4962,4962,4962,4962,242,4962,4962,5107,346, + 4920,4917,2443,1208,731,1778,2672,4144,5615,5284, + 2090,4962,4962,4962,4962,4962,4962,4962,4962,4962, + 4962,4962,4962,4962,4962,4962,5284,5284,5284,4962, + 4962,4962,4962,4962,4962,4962,4962,4962,4962,4962, + 4962,4962,1873,4962,4962,5284,1,1,1,1, + 1,1,1,294,1,1,1,1,1873,1, + 1,1,43,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,312,5008, + 5004,4317,5012,731,5219,2672,4231,5216,4136,5284, + 4920,4917,1,1208,731,5326,2672,1,1,1, + 5008,5004,3155,5012,2940,3900,2672,5818,3922,4968, + 3878,3856,2003,4995,5001,4974,145,4977,4989,4986, + 4992,4983,4980,4971,4998,3966,3944,5309,628,772, + 817,5311,774,4098,797,5312,5310,591,5305,5307, + 5308,5306,1,5137,5137,5284,5134,5284,1778,130, + 364,5615,1,5284,304,3664,1311,5284,5303,5304, + 342,45,45,1,5587,5296,4242,514,45,4920, + 4917,3155,1208,2940,3900,2672,5278,3922,784,3878, + 3856,907,5553,5551,5560,53,5559,5555,5556,5554, + 5557,5558,5561,5552,3966,3944,5309,628,772,817, + 5311,774,4098,797,5312,5310,591,5305,5307,5308, + 5306,1873,44,4938,4935,2073,364,4932,1127,2672, + 342,5295,342,3201,5284,1311,342,5284,2507,5284, + 5303,5304,5262,364,731,5284,2672,2997,3023,5291, + 147,4920,4917,3155,1208,2940,3900,2672,140,3922, + 784,3878,3856,132,5553,5551,5560,5284,5559,5555, + 5556,5554,5557,5558,5561,5552,3966,3944,5309,628, + 772,817,5311,774,4098,797,5312,5310,591,5305, + 5307,5308,5306,1,5008,5004,4317,5012,731,5284, + 2672,312,3356,5284,4136,2124,312,1311,2623,5284, + 2814,5292,45,45,1,5008,5004,3155,5012,2940, + 3900,2672,371,3922,4968,3878,3856,5284,4995,5001, + 4974,4941,4977,4989,4986,4992,4983,4980,4971,4998, + 3966,3944,5309,628,772,817,5311,774,4098,797, + 5312,5310,591,5305,5307,5308,5306,2334,2566,2539, + 5284,5284,404,346,45,45,3664,5328,5292,1778, + 5186,1311,5615,994,5291,5189,45,45,45,4920, + 4917,3155,1208,2940,3900,2672,5259,3922,784,3878, + 3856,1219,5553,5551,5560,5794,5559,5555,5556,5554, + 5557,5558,5561,5552,3966,3944,5309,628,772,817, + 5311,774,4098,797,5312,5310,591,5305,5307,5308, + 5306,513,1873,1,5008,5004,5192,5012,5198,5284, + 5195,5291,5284,4920,4917,1311,5328,5296,5284,5284, + 5296,3726,5262,45,4920,4917,3155,1208,2940,3900, + 2672,5259,3922,784,3878,3856,5284,5553,5551,5560, + 5284,5559,5555,5556,5554,5557,5558,5561,5552,3966, + 3944,5309,628,772,817,5311,774,4098,797,5312, + 5310,591,5305,5307,5308,5306,98,1,1,363, + 1,873,5143,5295,1,5143,5295,101,45,45, + 1311,5328,5290,5210,5284,3615,5207,5262,45,4920, + 4917,3155,1208,2940,3900,2672,5288,3922,784,3878, + 3856,5284,5553,5551,5560,3192,5559,5555,5556,5554, + 5557,5558,5561,5552,3966,3944,5309,628,772,817, + 5311,774,4098,797,5312,5310,591,5305,5307,5308, + 5306,45,4920,4917,3155,1208,2940,3900,2672,3360, + 3922,784,3878,3856,134,5553,5551,5560,5289,5559, + 5555,5556,5554,5557,5558,5561,5552,3966,3944,5309, + 628,772,817,5311,774,4098,797,5312,5310,591, + 5305,5307,5308,5306,1,322,229,582,45,5751, + 5745,5284,5328,5749,1778,5743,5744,5615,1311,2623, + 5284,4920,4917,5546,1208,731,5284,2672,5284,3747, + 5774,5775,125,5752,230,5284,5287,1,4120,5284, + 3664,5284,5122,3512,3487,5101,5284,5098,5095,5754, + 5549,5546,5622,5623,5543,5550,5522,5548,5547,5544, + 5545,5523,437,1115,1873,5284,1490,1518,4121,2566, + 2539,1,5755,5753,5776,396,5303,5304,5549,5243, + 5622,5623,5543,5550,5522,5548,5547,5544,5545,5523, + 5284,5284,5765,5764,5777,1396,1873,5746,5747,5770, + 5771,5768,5769,5748,5750,5772,5773,5723,3988,780, + 5778,5104,5758,5759,5760,5756,5757,5766,5767,5762, + 5761,5763,45,4920,4917,3155,1208,2940,3900,2672, + 3270,3922,784,3878,3856,5295,5553,5551,5560,5284, + 5559,5555,5556,5554,5557,5558,5561,5552,3966,3944, + 5309,628,772,817,5311,774,4098,797,5312,5310, + 591,5305,5307,5308,5306,5717,5718,5719,45,4920, + 4917,3155,1208,2940,3900,2672,5284,3922,784,3878, + 3856,1610,5553,5551,5560,5284,5559,5555,5556,5554, + 5557,5558,5561,5552,3966,3944,5309,628,772,817, + 5311,774,4098,797,5312,5310,591,5305,5307,5308, + 5306,5284,45,4920,4917,4724,1208,2940,3900,2672, + 5284,3922,784,3878,3856,1311,5553,5551,5560,5284, + 5559,5555,5556,5554,5557,5558,5561,5552,3966,3944, + 5309,628,772,817,5311,774,4098,797,5312,5310, + 591,5305,5307,5308,5306,45,4920,4917,3155,1208, + 2940,3900,2672,1,3922,784,3878,3856,5284,5553, + 5551,5560,1439,5559,5555,5556,5554,5557,5558,5561, + 5552,3966,3944,5309,628,772,817,5311,774,4098, + 797,5312,5310,591,5305,5307,5308,5306,45,4920, + 4917,3155,1208,2940,3900,2672,5284,3922,784,3878, + 3856,5284,5553,5551,5560,5284,5559,5555,5556,5554, + 5557,5558,5561,5552,3966,3944,5309,628,772,817, + 5311,774,4098,797,5312,5310,591,5305,5307,5308, + 5306,5284,4920,4917,5284,5328,105,121,5284,8712, + 8696,723,5284,3699,5644,5553,5551,5560,5546,5559, + 5555,5556,5554,5557,5558,5561,5552,5284,4920,4917, + 5284,1208,4965,1,2672,5284,8712,8696,5284,129, + 5284,5246,3381,5737,5684,5549,5288,5622,5623,5543, + 5550,5522,5548,5547,5544,5545,5523,4240,3666,246, + 5088,5084,5681,5092,5284,2041,865,5682,5683,723, + 929,5284,4119,5075,5081,5054,5039,5057,5069,5066, + 5072,5063,5060,5051,5078,35,388,388,5113,388, + 388,5113,388,5113,5113,5284,81,5284,5113,3746, + 3633,3563,388,5030,5291,5024,5021,5048,5027,5018, + 5033,5036,5045,5042,5015,123,133,49,5119,5119, + 5681,3699,5352,5353,865,5682,5683,2997,3023,388, + 4923,388,388,388,388,388,388,388,388,388, + 388,35,4241,438,5113,38,389,389,5110,389, + 389,5110,389,5110,5110,1350,5287,5284,5110,5113, + 5116,2623,389,1,1,5228,5228,234,5228,234, + 234,234,5231,234,5284,5284,5284,234,5284,4920, + 4917,8833,1208,4965,5125,2672,4923,5284,4926,389, + 4134,389,389,389,389,389,389,389,389,389, + 389,5284,578,5284,5110,452,4358,5225,3633,3563, + 5284,2566,2539,43,5140,5140,663,122,5140,5110, + 3095,2456,2338,3699,2983,1,5228,5228,234,5228, + 234,234,234,234,234,225,5284,128,234,43, + 5140,5140,8833,1,5294,2986,43,5140,5140,5293, + 4929,5782,5284,5237,4258,35,2975,388,1,5228, + 5228,234,5228,234,234,234,5234,234,5225,5284, + 2801,234,5284,5163,5160,8833,395,5284,5170,5166, + 388,3095,5326,2338,109,2983,3077,4368,231,2743, + 1,5228,5228,234,5228,234,234,234,5231,234, + 783,5225,4956,234,5240,5546,2909,8833,292,5284, + 3633,3563,5782,369,3095,5326,2338,5284,2983,1, + 5326,783,51,5183,5183,2997,3023,364,422,224, + 5284,5284,5549,5225,5622,5623,5543,5550,5522,5548, + 5547,5544,5545,5523,5284,5782,3095,446,2338,2873, + 2983,1,5228,5228,234,5228,234,234,234,5231, + 234,225,1,304,234,5180,5284,1,8833,43, + 5140,5140,5237,5587,5294,5294,783,5782,1355,5293, + 5293,232,1267,1,5228,5228,234,5228,234,234, + 234,234,234,364,5225,5284,234,54,5546,5284, + 8833,5304,3195,5290,376,3077,5284,3095,1,2338, + 364,2983,5326,54,424,1,197,5303,5284,2244, + 2522,197,225,5240,418,5549,5225,5622,5623,5543, + 5550,5522,5548,5547,5544,5545,5523,5284,5782,3095, + 447,2338,5304,2983,1,5228,5228,234,5228,234, + 234,234,234,234,8,1,79,234,5303,1, + 783,8833,5281,526,5284,4800,41,169,283,5289, + 5782,5222,1,5228,5228,234,5228,234,234,234, + 234,234,2801,5284,4126,234,3019,5225,311,8833, + 5284,2128,5284,2177,5284,5284,506,4369,3072,504, + 3095,5213,2338,5284,2983,5284,5284,519,4772,3473, + 3086,5284,5284,5284,4792,5225,2677,5284,5284,5284, + 4812,4407,4519,3270,5284,5281,508,2,3095,526, + 2338,5782,2983,169,1,3433,5284,3740,5284,5284, + 5284,5284,5284,5284,5284,5284,5284,5284,5284,5284, + 5284,5284,5284,5284,5284,5284,5284,5284,3674,5782, + 5284,5284,2929,3118,5284,4435,5284,5284,4628,5284, + 5284,5284,43,5284,5284,5284,3174,5284,5284,3228, + 5284,3433,5284,5284,5284,5284,5284,5284,5284,5284, + 5284,5284,5284,1960,5284,800,5284,5284,5284,5284, + 5284,5284,5284,5284,5284,5284,5284,5284,5284,5284, + 5284,5284,5284,5284,5284,5284,5284,5284,5284,5284, + 5284,5284,5284,5284,5284,5284,3270 }; }; public final static char termAction[] = TermAction.termAction; @@ -1712,59 +1715,59 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface Asb { public final static char asb[] = {0, - 341,67,159,61,289,780,780,780,780,1032, - 289,461,461,1048,461,754,143,756,160,160, - 160,160,160,160,160,160,160,463,469,474, - 471,478,476,483,481,485,484,486,202,487, - 159,143,29,29,29,29,199,716,1,1, - 458,29,338,581,461,461,1,1079,463,581, - 581,572,143,848,28,945,1034,969,143,461, - 463,834,834,716,159,160,160,160,160,160, - 160,160,160,160,160,160,160,160,160,160, - 160,160,160,160,159,159,159,159,159,159, - 159,159,159,159,159,159,160,581,581,1118, - 1118,1118,1118,449,581,1,1,1030,958,969, - 713,969,708,969,710,969,953,1032,199,338, - 338,1,160,1030,297,591,529,528,255,976, - 976,1032,756,338,28,159,197,944,581,196, - 199,198,196,581,338,471,471,469,469,469, - 476,476,476,476,474,474,481,478,478,484, - 483,485,1046,486,289,289,289,289,199,199, - 1118,1117,1118,458,199,454,404,199,400,449, - 511,398,713,516,199,199,199,449,1118,572, - 338,502,581,593,595,199,945,160,29,467, - 537,581,1034,199,199,780,198,945,159,159, - 159,159,159,289,289,143,889,454,404,400, - 399,400,449,400,516,516,199,449,199,581, - 533,521,532,595,449,197,581,467,1030,944, - 1034,199,197,581,581,581,581,716,716,454, - 453,586,199,404,1046,711,780,451,108,1036, - 404,400,400,761,199,516,586,584,585,199, - 786,159,530,530,385,385,199,589,1030,675, - 581,199,467,468,467,159,537,253,463,1034, - 581,581,454,945,796,713,1118,780,196,841, - 1038,193,289,769,56,762,199,586,160,199, - 786,159,159,595,945,581,593,521,786,1011, - 467,716,160,338,253,197,796,796,631,420, - 197,400,400,193,507,1030,773,160,1046,393, - 761,199,1032,1032,199,898,595,197,786,468, - 581,338,508,586,383,906,244,289,711,667, - 796,796,420,197,400,713,1032,1038,193,160, - 160,199,199,199,898,581,898,630,244,383, - 782,1032,586,1117,780,291,291,508,713,123, - 769,199,289,199,199,289,891,898,631,796, - 508,392,507,581,1032,199,420,631,420,1116, - 1116,951,124,1032,199,716,596,891,796,159, - 70,193,508,199,199,420,29,29,951,123, - 1046,160,1046,508,122,289,289,289,124,289, - 199,210,508,508,199,713,581,580,893,586, - 581,586,713,199,508,1117,115,289,115,124, - 1046,124,143,143,141,846,143,508,508,904, - 951,29,893,586,70,508,628,675,124,581, - 193,581,141,244,289,581,951,70,291,581, - 581,1024,124,904,124,508,244,159,124,121, - 585,1116,713,713,1026,159,122,716,508,581, - 506,69,196,124,581,508,506,506,124 + 201,7,53,1,243,708,708,708,708,1104, + 243,740,740,625,740,284,37,286,54,54, + 54,54,54,54,54,54,54,742,748,753, + 750,757,755,762,760,764,763,765,297,766, + 53,37,665,665,665,665,93,890,96,96, + 737,665,523,394,740,740,96,93,394,394, + 385,37,937,664,1019,1106,1041,37,740,742, + 828,828,890,53,54,54,54,54,54,54, + 54,54,54,54,54,54,54,54,54,54, + 54,54,54,53,53,53,53,53,53,53, + 53,53,53,53,53,54,394,394,888,888, + 888,888,478,394,96,96,1102,1030,1041,617, + 1041,612,1041,614,1041,1025,1104,93,523,523, + 96,708,54,1102,482,573,563,562,397,1048, + 1048,1104,286,523,664,53,91,1018,394,90, + 92,90,394,523,750,750,748,748,748,755, + 755,755,755,753,753,760,757,757,763,762, + 764,1118,765,243,243,243,243,93,93,888, + 887,888,737,93,733,433,93,551,478,526, + 549,617,531,93,93,93,478,888,385,523, + 781,394,575,577,93,1019,54,665,746,350, + 394,1106,93,93,92,1019,53,53,53,53, + 53,243,243,37,348,733,433,551,550,551, + 478,551,531,531,93,478,93,394,567,555, + 566,577,478,91,394,746,1102,1018,1106,93, + 91,394,394,394,394,890,890,733,732,622, + 93,433,1118,615,708,480,149,1108,433,551, + 551,724,93,531,622,620,621,93,714,53, + 564,564,536,536,93,571,1102,842,394,93, + 746,747,746,53,350,154,742,1106,394,394, + 733,1019,790,617,888,708,90,835,1110,87, + 243,697,692,725,93,622,54,93,714,53, + 53,577,93,1019,394,575,555,714,1083,746, + 890,54,523,154,91,790,790,157,449,91, + 551,551,87,786,1102,93,701,54,1118,544, + 724,93,1104,1104,93,882,577,714,747,394, + 523,787,622,933,980,339,243,615,193,790, + 790,449,91,551,617,1104,1110,87,1018,54, + 54,93,93,93,882,394,882,156,339,933, + 710,1104,622,887,708,291,291,787,617,17, + 697,93,243,93,93,243,875,882,157,790, + 787,543,786,394,1104,93,449,157,449,886, + 886,935,18,1104,93,890,578,875,790,53, + 246,87,787,93,93,449,665,665,935,17, + 1118,54,1118,787,16,243,243,243,18,243, + 93,305,787,787,93,617,394,393,877,622, + 394,622,617,93,787,887,9,243,9,18, + 1118,18,37,37,35,840,37,787,787,547, + 935,665,877,622,246,787,610,842,18,394, + 87,394,35,339,243,394,935,246,291,394, + 394,1096,18,547,18,787,339,53,18,15, + 621,886,617,617,1098,53,16,890,787,394, + 785,245,90,18,394,787,785,785,18 }; }; public final static char asb[] = Asb.asb; @@ -1772,118 +1775,118 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface Asr { public final static byte asr[] = {0, - 31,62,32,33,63,7,34,35,36,37, - 57,38,39,40,41,42,28,26,27,9, - 6,11,12,5,29,65,43,3,47,14, - 15,61,45,16,66,48,17,18,49,50, - 19,20,51,52,21,22,53,67,55,10, - 68,23,24,46,25,1,2,4,44,0, - 8,73,118,74,13,70,121,0,71,62, - 63,57,26,27,9,6,11,12,29,35, - 3,40,43,41,42,28,38,33,37,15, - 25,14,21,19,20,22,23,18,16,24, - 32,36,34,31,39,64,8,7,1,2, - 5,4,10,0,87,114,115,116,54,73, - 119,122,71,72,75,58,56,60,77,79, - 85,83,76,81,82,84,86,64,78,80, - 13,8,47,61,45,66,48,17,49,50, - 51,52,53,67,55,68,44,46,57,62, - 63,10,32,36,34,31,39,15,25,14, - 21,19,20,22,23,18,16,24,40,43, - 41,42,28,38,33,37,26,27,11,12, - 29,35,9,6,3,4,7,5,1,2, - 0,65,73,95,70,118,74,71,121,14, - 15,31,62,16,32,33,18,19,20,63, - 34,21,22,35,36,37,57,38,39,10, - 23,24,25,40,41,42,28,26,27,11, - 12,29,43,8,9,6,4,13,1,2, - 7,3,5,0,47,14,15,45,16,48, - 17,18,49,50,19,20,51,7,52,21, - 22,53,55,23,44,24,46,25,1,2, - 8,59,9,6,5,4,74,13,3,0, - 65,69,70,1,2,0,62,63,3,10, - 32,36,34,31,39,15,25,14,21,19, - 20,22,23,18,16,24,40,43,41,42, - 28,38,33,37,5,7,4,26,27,9, - 6,11,12,29,35,1,2,118,8,0, - 14,15,31,62,16,32,33,18,19,20, - 63,7,34,21,22,35,36,37,57,38, - 39,10,23,24,25,40,41,42,1,2, - 3,26,27,9,6,11,12,5,29,4, - 43,72,28,0,75,65,73,95,74,64, - 59,3,8,70,13,69,0,4,30,8, - 73,64,0,87,56,7,114,115,116,58, - 8,3,9,6,5,73,71,13,72,47, - 14,15,61,45,16,66,48,17,18,49, - 50,19,20,51,52,21,22,53,67,55, - 10,68,23,44,24,46,25,4,1,2, - 54,0,57,45,7,46,5,1,2,4, - 75,64,120,103,26,27,59,3,96,90, - 6,91,92,11,12,89,88,30,93,94, - 97,98,9,99,100,101,65,95,74,121, - 69,104,105,106,107,108,109,110,111,112, - 113,73,118,102,117,71,70,13,8,0, - 4,8,73,64,0,1,2,8,71,0, - 9,6,4,5,7,1,2,3,59,65, - 69,70,8,74,95,0,96,90,11,12, - 91,92,88,89,30,93,94,97,98,99, - 100,101,102,117,73,95,69,104,105,106, - 107,108,109,110,111,112,113,118,71,13, - 121,65,1,2,9,6,4,3,59,70, - 74,8,0,69,70,71,8,0,7,5, - 3,59,6,9,95,47,14,15,45,16, - 66,48,17,18,49,50,19,20,51,52, - 21,22,53,67,55,10,68,23,44,24, - 46,25,1,2,4,74,8,61,0,64, - 61,45,16,66,48,18,49,50,19,20, - 51,52,21,22,53,67,55,68,23,44, - 24,46,25,15,14,47,8,3,9,6, - 13,58,60,87,17,54,7,1,2,5, - 4,10,56,0,47,14,15,61,45,16, - 66,48,17,18,49,50,19,20,51,52, - 21,22,53,67,55,10,68,23,44,24, - 46,25,1,2,4,95,0,54,73,4, - 1,2,64,8,0,8,74,14,15,31, - 16,32,33,18,19,20,34,21,22,35, - 36,37,57,38,39,10,23,24,25,40, - 41,42,28,3,26,27,9,6,11,12, - 29,4,43,5,7,1,2,63,62,0, - 44,1,2,4,114,115,116,0,8,64, - 70,0,73,8,59,3,69,70,13,30, - 0,8,64,69,0,45,57,46,8,65, - 95,69,70,74,0,60,47,14,15,61, - 45,16,66,48,87,17,18,49,50,19, - 20,51,56,52,21,22,53,67,55,10, - 68,23,58,44,24,46,25,8,3,9, - 6,71,13,7,4,54,5,1,2,0, - 8,73,64,75,0,76,0,62,63,26, - 27,9,11,12,5,29,35,3,4,7, - 40,43,41,42,28,38,33,37,15,25, + 8,73,118,74,13,70,121,0,87,103, + 104,105,43,73,119,122,71,72,75,58, + 56,60,77,79,85,83,76,81,82,84, + 86,64,78,80,13,8,48,61,46,65, + 49,17,50,51,52,53,54,66,55,67, + 44,47,57,62,63,10,31,35,33,30, + 38,15,25,14,21,19,20,22,23,18, + 16,24,39,42,40,41,28,37,32,36, + 26,27,11,12,29,34,9,6,3,4, + 7,5,1,2,0,48,14,15,61,46, + 30,62,16,31,65,49,17,32,18,50, + 51,19,20,52,63,53,33,21,22,34, + 54,35,66,36,57,37,55,38,67,23, + 44,24,47,25,39,40,41,28,3,26, + 27,9,6,11,12,29,68,42,7,1, + 2,4,10,5,0,64,61,46,16,65, + 49,18,50,51,19,20,52,53,21,22, + 54,66,55,67,23,44,24,47,25,15, + 14,48,8,3,9,6,13,58,60,87, + 17,43,7,1,2,5,4,10,56,0, + 14,15,30,62,16,31,32,18,19,20, + 63,7,33,21,22,34,35,36,57,37, + 38,10,23,24,25,39,40,41,28,1, + 2,26,27,9,6,11,12,5,29,4, + 42,72,3,0,71,57,26,27,9,6, + 11,12,29,34,3,4,39,42,40,41, + 28,37,32,36,15,25,14,21,19,20, + 22,23,18,16,24,10,31,35,33,30, + 38,64,8,7,5,1,2,63,62,0, + 68,69,70,1,2,0,68,73,91,70, + 118,74,71,121,14,15,30,62,16,31, + 32,18,19,20,63,33,21,22,34,35, + 36,57,37,38,10,23,24,25,39,40, + 41,28,26,27,11,12,29,42,8,9, + 13,5,7,1,2,4,3,6,0,92, + 90,11,12,93,94,88,89,45,95,96, + 97,98,99,100,101,102,107,73,91,69, + 108,109,110,111,112,113,114,115,116,117, + 118,71,13,121,68,1,2,9,6,4, + 3,59,70,74,8,0,48,14,15,46, + 16,49,17,18,50,51,19,20,52,7, + 53,21,22,54,55,23,44,24,47,25, + 1,2,8,59,9,6,5,4,74,13, + 3,0,87,56,7,103,104,105,58,8, + 3,9,6,5,73,71,13,72,48,14, + 15,61,46,16,65,49,17,18,50,51, + 19,20,52,53,21,22,54,66,55,10, + 67,23,44,24,47,25,4,1,2,43, + 0,62,63,3,10,31,35,33,30,38, + 15,25,14,21,19,20,22,23,18,16, + 24,39,42,40,41,28,37,32,36,5, + 7,4,26,27,9,6,11,12,29,34, + 1,2,118,8,0,4,8,73,64,0, + 1,2,8,71,0,75,68,73,91,74, + 64,59,3,8,70,13,69,0,4,45, + 8,73,64,0,9,6,7,5,4,1, + 2,3,59,68,69,70,8,74,91,0, + 5,7,3,59,6,9,91,48,14,15, + 46,16,65,49,17,18,50,51,19,20, + 52,53,21,22,54,66,55,10,67,23, + 44,24,47,25,1,2,4,74,8,61, + 0,43,73,4,1,2,64,8,0,69, + 70,71,8,0,63,62,11,12,6,93, + 94,99,9,100,5,29,69,45,68,111, + 112,108,109,110,116,115,117,89,88,113, + 114,97,98,95,96,101,102,26,27,70, + 90,106,59,3,48,14,15,61,46,16, + 65,49,17,18,50,51,19,20,52,53, + 21,22,54,66,55,10,67,23,24,47, + 25,1,2,4,44,0,8,64,70,0, + 73,8,59,3,69,70,13,45,0,8, + 64,69,0,46,57,47,8,68,91,69, + 70,74,0,44,1,2,4,103,104,105, + 0,57,46,7,47,5,1,2,4,75, + 64,120,106,26,27,59,3,92,90,6, + 93,94,11,12,89,88,45,95,96,97, + 98,9,99,100,101,68,91,74,121,69, + 108,109,110,111,112,113,114,115,116,117, + 73,118,102,107,71,70,13,8,0,60, + 48,14,15,61,46,16,65,49,87,17, + 18,50,51,19,20,52,56,53,21,22, + 54,66,55,10,67,23,58,44,24,47, + 25,8,3,9,6,71,13,7,4,43, + 5,1,2,0,8,73,64,75,0,76, + 0,48,14,15,61,46,16,65,49,17, + 18,50,51,19,20,52,53,21,22,54, + 66,55,10,67,23,44,24,47,25,1, + 2,4,91,0,46,47,75,3,73,13, + 64,57,8,91,74,69,70,68,0,8, + 74,14,15,30,62,16,31,32,18,19, + 20,63,7,33,21,22,34,35,36,57, + 37,38,10,23,24,25,39,40,41,1, + 2,3,26,27,9,6,11,12,5,29, + 4,42,28,0,119,0,62,63,26,27, + 9,6,11,12,5,29,34,3,4,7, + 39,42,40,41,28,37,32,36,15,25, 14,21,19,20,22,23,18,16,24,10, - 32,36,34,31,39,59,1,2,6,0, - 45,46,75,3,73,13,64,57,8,65, - 95,70,74,69,0,61,45,16,66,48, - 18,49,50,19,20,51,52,21,22,53, - 67,55,10,68,23,44,24,46,25,15, - 14,47,8,3,9,13,58,56,60,87, - 17,30,4,6,7,1,2,5,54,0, - 119,0,10,66,61,67,68,15,25,14, - 21,19,20,22,23,18,16,24,75,73, - 95,118,71,64,121,120,96,103,90,26, - 27,11,12,91,92,88,89,30,65,93, - 94,97,98,99,100,101,102,117,69,104, - 105,106,107,108,109,110,111,112,113,70, - 47,45,48,17,49,50,51,52,53,55, - 44,46,13,8,74,3,59,7,5,6, - 9,1,2,4,0,13,8,7,5,3, - 1,2,6,9,4,73,0,47,14,15, - 61,45,16,66,48,17,18,49,50,19, - 20,51,52,21,22,53,67,55,10,68, - 23,44,24,46,25,1,2,4,63,62, - 11,12,6,91,92,99,9,100,5,29, - 30,107,108,104,105,106,112,111,113,89, - 88,109,110,97,98,93,94,101,102,26, - 27,90,103,3,59,69,70,65,0 + 31,35,33,30,38,59,1,2,0,61, + 46,16,65,49,18,50,51,19,20,52, + 53,21,22,54,66,55,10,67,23,44, + 24,47,25,15,14,48,8,3,9,13, + 58,56,60,87,17,45,4,6,7,1, + 2,5,43,0,10,65,61,66,67,15, + 25,14,21,19,20,22,23,18,16,24, + 75,73,91,118,71,64,121,120,92,106, + 90,26,27,11,12,93,94,88,89,45, + 68,95,96,97,98,99,100,101,102,107, + 69,108,109,110,111,112,113,114,115,116, + 117,70,48,46,49,17,50,51,52,53, + 54,55,44,47,13,8,74,3,59,5, + 7,6,9,1,2,4,0,13,8,5, + 7,3,1,2,4,6,9,73,0 }; }; public final static byte asr[] = Asr.asr; @@ -1891,59 +1894,59 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface Nasb { public final static char nasb[] = {0, - 90,12,65,12,12,12,12,12,12,69, - 12,12,12,265,12,58,189,167,65,65, - 211,65,65,65,65,65,65,12,12,12, - 12,12,12,12,12,12,12,12,65,12, - 65,189,48,48,48,48,167,161,141,141, - 51,5,86,249,12,12,141,267,12,249, - 249,111,1,65,54,131,12,12,189,12, - 12,35,35,161,105,65,65,65,65,65, - 65,65,65,65,65,65,65,65,65,65, - 65,65,65,65,65,65,65,65,65,65, - 65,65,65,65,65,105,65,249,249,12, - 12,12,12,23,249,43,43,186,232,233, - 124,233,156,233,19,233,226,10,167,86, - 86,43,65,186,81,110,13,13,12,12, - 12,10,167,86,48,26,199,115,249,198, - 215,167,198,249,86,12,12,12,12,12, + 54,12,62,12,12,12,12,12,12,66, + 12,12,12,132,12,108,188,77,62,62, + 154,62,62,62,62,62,62,12,12,12, + 12,12,12,12,12,12,12,12,62,12, + 62,188,32,32,32,32,77,211,255,255, + 43,5,94,182,12,12,255,158,182,182, + 215,1,62,38,25,12,12,188,12,12, + 17,17,211,144,62,62,62,62,62,62, + 62,62,62,62,62,62,62,62,62,62, + 62,62,62,62,62,62,62,62,62,62, + 62,62,62,62,144,62,182,182,12,12, + 12,12,35,182,27,27,172,239,240,152, + 240,112,240,50,240,233,10,77,94,94, + 27,12,62,172,89,214,87,87,12,12, + 12,10,77,94,32,40,108,161,182,107, + 77,107,182,94,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,158,11, - 12,12,12,153,167,141,141,158,141,259, - 141,12,124,141,259,167,11,12,12,151, - 86,12,249,206,141,167,131,65,48,141, - 126,249,12,11,167,12,203,131,65,105, - 105,105,105,12,12,43,12,108,240,141, - 141,71,130,71,141,216,11,130,158,249, - 12,134,12,237,129,158,249,41,153,115, - 12,215,158,249,249,249,249,161,161,141, - 108,165,167,178,12,143,12,12,93,251, - 240,71,71,170,158,216,165,12,12,158, - 141,65,12,12,13,13,167,133,186,237, - 249,158,141,33,12,105,153,204,12,12, - 249,249,108,131,141,124,12,12,69,141, - 180,136,12,12,69,77,259,165,65,216, - 108,65,65,141,131,249,206,193,141,12, - 41,161,65,86,204,199,146,141,218,141, - 259,141,95,195,178,186,12,65,12,100, - 15,259,69,69,11,141,237,199,108,33, - 249,86,178,165,12,218,252,12,20,93, - 218,146,237,199,95,223,29,136,195,65, - 65,11,259,259,73,249,141,123,180,12, - 12,69,165,12,12,79,79,178,223,164, - 12,259,12,11,11,12,141,73,218,141, - 178,56,12,249,69,259,237,218,141,12, - 12,141,102,29,11,161,247,108,146,26, - 63,136,178,259,144,237,48,48,174,119, - 12,65,12,178,12,12,12,12,120,12, - 216,176,178,178,216,97,249,249,141,165, - 249,141,124,144,178,12,75,12,12,120, - 12,120,273,273,235,12,273,178,178,12, - 141,48,73,165,141,178,12,48,120,249, - 136,249,269,141,12,249,174,63,79,249, - 249,141,120,12,120,178,136,105,120,75, - 165,12,97,97,134,65,12,262,178,249, - 88,62,198,120,249,178,88,12,120 + 12,12,12,12,12,12,12,114,11,12, + 12,12,201,77,255,255,114,255,257,255, + 12,152,255,257,77,11,12,12,175,94, + 12,182,127,255,77,25,62,32,255,84, + 182,12,11,77,124,25,62,144,144,144, + 144,12,12,27,12,165,242,255,255,46, + 24,46,255,159,11,24,114,182,12,103, + 12,138,23,114,182,57,201,161,12,158, + 114,182,182,182,182,211,211,255,165,69, + 77,206,12,121,12,12,71,249,242,46, + 46,184,114,159,69,12,12,114,255,62, + 12,12,87,87,77,102,172,138,182,114, + 255,100,12,144,201,125,12,12,182,182, + 165,25,255,152,12,12,66,255,167,105, + 12,12,66,98,257,69,62,159,165,62, + 62,255,11,25,182,127,195,255,12,57, + 211,62,94,125,108,219,255,224,255,257, + 255,96,197,206,172,77,12,62,12,75, + 229,257,66,66,11,255,138,165,100,182, + 94,206,69,12,224,250,12,51,71,224, + 219,138,108,96,260,117,105,197,25,62, + 62,11,257,257,80,182,255,151,167,12, + 12,66,69,12,12,73,73,206,260,68, + 12,257,12,11,11,12,255,80,224,255, + 206,13,12,182,66,257,138,224,255,12, + 12,255,141,117,11,211,180,165,219,40, + 60,105,206,257,122,138,32,32,82,147, + 12,62,12,206,12,12,12,12,148,12, + 159,204,206,206,159,192,182,182,255,69, + 182,255,152,122,206,12,15,12,12,148, + 12,148,267,267,136,12,267,206,206,12, + 255,32,80,69,255,206,12,32,148,182, + 105,182,263,255,12,182,82,60,73,182, + 182,255,148,12,148,206,105,144,148,15, + 69,12,192,192,103,62,12,208,206,182, + 48,59,107,148,182,206,48,12,148 }; }; public final static char nasb[] = Nasb.nasb; @@ -1951,34 +1954,33 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface Nasr { public final static char nasr[] = {0, - 3,13,7,10,149,147,120,146,145,5, - 2,0,75,0,5,102,163,0,5,1, - 40,0,54,67,0,4,29,0,167,5, - 166,0,138,0,5,2,10,7,136,0, - 140,0,5,7,10,2,13,4,44,0, - 4,189,0,171,0,179,0,2,7,3, - 0,66,127,40,7,10,2,13,5,0, - 109,0,124,0,112,0,187,0,108,0, - 13,2,10,7,5,83,0,158,0,4, - 170,0,152,0,155,0,40,56,0,185, - 0,48,40,175,4,39,0,61,0,32, - 94,95,4,0,67,135,134,0,66,39, - 48,68,4,40,0,4,173,0,54,2, - 67,0,32,95,94,64,54,7,10,2, - 4,0,40,104,0,114,4,48,82,0, - 95,94,5,57,0,5,45,2,3,0, - 4,97,0,4,66,0,2,45,0,5, - 102,186,0,157,0,4,39,38,0,2, - 64,54,7,10,4,5,90,0,4,44, - 39,0,95,94,54,64,57,5,7,10, - 2,0,2,113,0,22,4,5,90,0, - 5,7,10,13,3,1,0,4,48,82, - 84,0,40,156,0,2,5,120,116,117, - 118,13,87,0,39,177,22,4,0,4, - 48,82,102,46,5,0,44,4,32,0, - 38,54,7,10,2,4,154,0,2,62, - 0,4,174,0,4,44,168,0,44,4, - 176,0,4,44,103,0 + 3,13,10,9,149,147,119,146,145,5, + 2,0,178,0,111,0,5,2,9,10, + 136,0,133,2,64,0,5,10,9,2, + 13,4,45,0,133,64,0,170,0,4, + 29,0,4,188,0,108,0,158,0,5, + 1,40,0,4,169,0,140,0,66,126, + 40,10,9,2,13,5,0,4,66,0, + 152,0,107,0,184,0,2,44,0,123, + 0,157,0,4,172,0,74,0,13,2, + 9,10,5,82,0,155,0,186,0,138, + 0,32,94,93,63,4,5,10,9,2, + 0,5,44,2,3,0,167,5,166,0, + 40,103,0,2,112,0,22,4,5,89, + 0,4,45,189,0,39,176,22,4,0, + 48,40,174,4,39,0,66,39,48,67, + 4,40,0,5,10,9,13,3,1,0, + 64,135,134,0,61,0,2,63,9,10, + 4,5,89,0,94,93,5,57,0,45, + 4,32,0,5,101,185,0,4,45,39, + 0,40,55,0,94,93,10,9,2,63, + 5,57,0,4,39,38,0,4,173,0, + 4,96,0,32,93,94,4,0,113,4, + 48,81,0,4,48,81,83,0,5,101, + 163,0,2,5,119,115,116,117,13,86, + 0,4,48,81,101,46,5,0,38,5, + 2,9,10,154,4,0,2,56,0,40, + 156,0,45,4,175,0,4,45,102,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1988,16 +1990,16 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public final static char terminalIndex[] = {0, 113,114,2,31,13,10,79,115,9,100, 11,12,120,48,52,60,66,68,74,75, - 86,87,102,105,107,7,8,112,14,19, - 55,61,67,84,88,90,94,97,99,109, - 110,111,123,104,54,106,47,64,70,73, - 76,83,89,93,98,77,95,103,1,46, - 53,58,78,121,20,63,91,101,33,44, + 86,87,102,105,107,7,8,112,14,55, + 61,67,84,88,90,94,97,99,109,110, + 111,123,93,104,19,54,106,47,64,70, + 73,76,83,89,98,77,95,103,1,46, + 53,58,78,121,63,91,101,20,33,44, 119,122,30,118,96,108,49,50,56,57, 59,69,71,72,85,92,65,17,18,6, - 15,16,21,22,32,4,23,24,25,26, - 27,28,5,34,35,36,37,38,39,40, - 41,42,43,80,81,82,29,117,51,3, + 32,4,15,16,21,22,23,24,25,26, + 27,28,80,81,82,5,29,34,35,36, + 37,38,39,40,41,42,43,117,51,3, 124,62,116 }; }; @@ -2006,26 +2008,26 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 132,137,139,0,0,138,236,136,0,230, - 135,0,146,134,0,0,145,151,0,0, - 152,182,161,162,163,164,165,166,154,167, - 168,127,169,170,171,0,144,129,133,130, - 172,0,141,155,140,180,0,0,0,0, - 0,0,0,0,148,175,158,0,205,0, - 189,0,202,206,0,128,0,174,0,0, - 0,0,0,0,207,178,0,0,0,0, - 0,0,126,131,0,0,188,0,0,203, - 213,160,209,210,211,0,0,0,0,149, - 208,221,177,198,0,0,212,0,0,0, - 241,242,150,181,0,191,192,193,194,195, - 197,200,0,0,215,218,0,220,0,239, - 0,240,0,142,143,147,0,0,157,159, - 0,173,0,183,184,185,186,187,190,0, - 196,0,199,204,0,216,217,0,0,222, - 225,227,229,0,233,234,235,237,238,125, - 0,153,156,0,176,0,179,0,201,214, - 219,0,223,224,226,228,0,231,232,243, - 244,0,0,0,0,0,0 + 132,137,138,0,0,136,0,0,229,235, + 135,0,145,134,0,0,144,150,0,0, + 151,181,160,161,162,163,164,165,153,166, + 167,127,168,143,169,170,0,129,133,130, + 171,0,140,139,154,179,0,0,0,0, + 0,0,0,147,174,0,157,0,204,0, + 188,201,205,0,0,128,173,0,0,0, + 0,0,0,206,177,0,0,0,0,0, + 0,126,131,0,0,187,0,0,202,212, + 159,208,209,210,0,0,148,0,0,207, + 220,176,197,0,0,211,0,0,0,240, + 241,149,180,0,190,191,192,193,194,196, + 199,0,0,214,217,0,219,0,238,0, + 239,0,0,141,142,146,0,0,156,158, + 0,172,0,182,183,184,185,186,189,0, + 195,0,198,203,0,215,216,0,0,221, + 224,226,228,0,232,233,234,237,125,0, + 152,155,0,175,0,178,0,200,213,218, + 0,222,223,225,227,0,230,231,236,242, + 243,0,0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2033,18 +2035,18 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopePrefix { public final static char scopePrefix[] = { - 156,578,597,529,545,556,567,361,266,280, - 302,308,42,291,381,419,164,586,472,20, - 51,71,80,85,90,127,192,297,314,325, - 336,141,272,286,500,27,141,371,336,605, - 27,214,245,1,14,61,76,106,227,319, - 332,341,350,354,437,465,494,521,525,615, - 619,623,97,7,97,399,415,428,449,513, - 428,536,552,563,574,204,483,56,56,153, - 219,222,240,261,222,222,56,358,462,469, - 153,56,636,110,233,403,443,456,116,116, - 233,56,233,390,174,104,441,627,634,627, - 634,65,409,134,104,104,250 + 156,572,591,523,539,550,561,355,262,276, + 298,304,42,287,375,413,164,580,466,20, + 51,71,80,85,90,127,192,293,310,321, + 332,141,268,282,494,27,141,365,332,599, + 27,214,241,1,14,61,76,106,315,328, + 337,344,348,431,459,488,515,519,609,613, + 617,97,7,97,393,409,422,443,507,422, + 530,546,557,568,204,477,56,56,153,219, + 222,56,236,257,222,222,56,352,456,463, + 153,56,632,110,229,397,437,450,116,116, + 229,56,229,384,174,104,435,621,628,621, + 628,65,403,134,104,104,246 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2052,18 +2054,18 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,5,5,5,5,368,132,95, - 132,132,48,277,387,425,170,67,478,25, - 25,25,59,59,95,132,197,132,132,330, - 330,146,277,101,505,38,149,376,592,610, - 32,208,208,5,18,5,59,95,231,323, - 323,323,95,95,132,243,5,5,5,5, - 5,243,231,11,101,368,368,368,453,505, - 432,540,540,540,540,208,487,59,59,5, - 5,225,243,5,264,264,348,95,5,243, - 5,498,5,113,345,406,446,459,119,123, - 236,517,508,393,177,95,95,629,629,631, - 631,67,411,136,199,184,252 + 18,5,5,5,5,5,5,362,132,95, + 132,132,48,273,381,419,170,67,472,25, + 25,25,59,59,95,132,197,132,132,326, + 326,146,273,101,499,38,149,370,586,604, + 32,208,208,5,18,5,59,95,319,319, + 319,95,95,132,239,5,5,5,5,5, + 239,630,11,101,362,362,362,447,499,426, + 534,534,534,534,208,481,59,59,5,5, + 225,227,239,5,260,260,227,95,5,239, + 5,492,5,113,341,400,440,453,119,123, + 232,511,502,387,177,95,95,623,623,625, + 625,67,405,136,199,184,248 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2071,18 +2073,18 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeLhs { public final static char scopeLhs[] = { - 46,17,17,17,17,17,17,71,86,47, - 80,118,77,52,71,70,46,17,19,3, - 6,9,163,163,160,116,46,81,118,117, - 119,126,53,47,136,131,126,71,17,17, - 131,96,58,133,74,166,163,160,60,117, - 117,119,178,50,56,140,18,17,17,17, - 17,17,12,112,160,71,70,70,36,136, - 70,17,17,17,17,96,19,167,163,179, - 94,101,75,59,154,76,119,72,141,140, - 171,136,16,160,119,103,69,21,128,128, - 57,136,136,71,46,160,65,134,45,134, - 45,166,103,116,46,46,58 + 46,17,17,17,17,17,17,70,85,47, + 79,117,76,52,70,69,46,17,19,3, + 7,8,163,163,160,115,46,80,117,116, + 118,125,53,47,136,130,125,70,17,17, + 130,95,58,132,73,166,163,160,116,116, + 118,177,50,55,140,18,17,17,17,17, + 17,12,111,160,70,69,69,37,136,69, + 17,17,17,17,95,19,167,163,178,93, + 100,60,74,59,154,75,118,71,141,140, + 170,136,16,160,118,102,68,21,127,127, + 57,136,136,70,46,160,65,134,44,134, + 44,166,102,115,46,46,58 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2091,16 +2093,16 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeLa { public final static byte scopeLa[] = { 119,74,74,74,74,74,74,74,71,13, - 71,71,65,1,74,122,64,3,74,65, - 65,65,1,1,13,71,64,71,71,1, - 1,71,1,1,4,65,70,13,1,1, - 65,74,74,74,119,74,1,13,1,1, - 1,1,13,13,71,118,74,74,74,74, - 74,118,1,74,1,74,74,74,73,4, - 74,65,65,65,65,74,3,1,1,74, - 74,3,118,74,1,1,1,13,74,118, - 74,5,74,1,54,69,73,74,1,1, - 6,1,54,76,75,13,13,4,4,4, + 71,71,68,1,74,122,64,3,74,68, + 68,68,1,1,13,71,64,71,71,1, + 1,71,1,1,4,68,70,13,1,1, + 68,74,74,74,119,74,1,13,1,1, + 1,13,13,71,118,74,74,74,74,74, + 118,1,74,1,74,74,74,73,4,74, + 68,68,68,68,74,3,1,1,74,74, + 3,1,118,74,1,1,1,13,74,118, + 74,5,74,1,43,69,73,74,1,1, + 6,1,43,76,75,13,13,4,4,4, 4,3,1,64,1,1,3 }; }; @@ -2109,16 +2111,16 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeStateSet { public final static char scopeStateSet[] = { - 96,248,248,248,248,248,248,106,87,96, - 85,154,85,98,106,106,96,248,248,181, - 223,224,57,57,82,154,96,85,154,154, - 154,311,98,96,137,50,311,106,248,248, - 50,146,66,26,106,30,57,82,66,154, - 154,154,22,98,33,63,248,248,248,248, - 248,248,243,6,82,106,106,106,280,137, - 106,248,248,248,248,146,248,30,57,24, - 146,148,142,66,60,71,154,106,54,63, - 140,137,248,82,154,1,106,249,154,154, + 96,250,250,250,250,250,250,106,87,96, + 85,154,85,98,106,106,96,250,250,182, + 226,226,57,57,82,154,96,85,154,154, + 154,313,98,96,137,50,313,106,250,250, + 50,146,66,26,106,30,57,82,154,154, + 154,22,98,33,63,250,250,250,250,250, + 250,230,6,82,106,106,106,282,137,106, + 250,250,250,250,146,250,30,57,24,146, + 148,66,142,66,60,71,154,106,54,63, + 140,137,250,82,154,1,106,251,154,154, 121,137,137,106,96,82,11,118,158,118, 158,30,1,154,96,96,66 }; @@ -2129,69 +2131,69 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeRhs { public final static char scopeRhs[] = {0, 314,3,57,0,127,0,313,3,119,0, - 127,175,0,127,179,75,0,217,0,252, - 127,30,125,0,20,0,292,127,30,54, + 127,174,0,127,178,75,0,216,0,251, + 127,45,125,0,20,0,291,127,45,43, 0,20,53,0,33,134,0,20,53,0, - 0,292,127,30,54,205,0,20,131,0, - 252,127,30,130,0,185,128,0,144,0, - 220,3,290,0,290,0,2,0,127,0, - 252,127,30,133,0,185,128,225,0,185, - 128,44,225,0,185,128,310,44,0,131, - 190,168,128,0,129,0,190,168,128,0, - 136,129,0,171,0,306,127,171,0,127, - 171,0,223,129,0,168,243,0,139,0, - 0,0,137,0,0,0,305,127,163,251, - 0,128,0,251,0,130,0,0,128,0, - 304,127,163,250,0,128,0,0,44,128, + 0,291,127,45,43,204,0,20,131,0, + 251,127,45,133,0,179,128,0,143,0, + 219,3,290,0,290,0,2,0,127,0, + 251,127,45,132,0,179,128,224,0,179, + 128,44,224,0,179,128,309,44,0,129, + 187,167,128,0,129,0,187,167,128,0, + 136,129,0,171,0,305,127,171,0,127, + 171,0,222,129,0,167,242,0,138,0, + 0,0,137,0,0,0,304,127,163,250, + 0,128,0,250,0,130,0,0,128,0, + 303,127,163,249,0,128,0,0,44,128, 0,0,152,3,0,127,279,278,127,75, - 277,171,0,278,127,75,277,171,0,216, - 0,217,0,277,171,0,96,0,0,216, - 0,217,0,204,96,0,0,216,0,217, - 0,278,127,277,171,0,216,0,204,0, - 0,216,0,228,127,3,0,127,0,0, - 0,0,0,228,127,3,217,0,224,3, - 0,213,127,0,209,0,190,168,177,0, - 136,0,168,128,0,10,0,0,0,215, - 59,0,126,0,228,127,3,182,0,182, - 0,2,0,0,127,0,0,0,0,0, - 199,3,0,202,0,238,127,163,28,17, - 0,185,128,56,58,0,198,129,0,131, - 185,128,275,58,0,185,128,275,58,0, - 185,128,69,124,56,0,238,127,163,56, - 0,238,127,163,227,56,0,273,127,163, - 124,66,0,273,127,163,66,0,185,128, - 66,0,137,0,190,185,128,243,0,139, - 0,185,128,243,0,190,168,128,10,0, - 168,128,10,0,93,139,0,149,0,266, - 127,145,0,266,127,171,0,162,85,0, - 297,161,299,300,3,82,0,127,174,0, - 299,300,3,82,0,129,0,127,174,0, - 162,3,76,191,81,0,127,129,0,191, - 81,0,108,2,133,127,129,0,226,3, - 76,0,199,167,0,33,172,0,167,0, - 178,33,172,0,226,3,86,0,191,155, - 226,3,84,0,62,174,0,226,3,84, - 0,127,174,62,174,0,298,127,163,0, - 162,0,215,78,0,30,174,0,162,117, - 158,0,30,172,0,178,3,0,127,152, - 0,220,3,0,215,59,263,0,162,59, - 0,178,3,294,63,128,0,127,0,0, - 0,0,294,63,128,0,2,148,127,0, - 0,0,0,178,3,35,0,150,0,126, - 54,168,128,0,31,150,0,93,139,31, - 150,0,223,185,128,0,149,31,150,0, - 178,3,39,0,162,3,39,0,162,3, - 65,178,30,31,0,178,30,31,0,20, - 2,133,127,0,162,3,65,178,30,34, - 0,178,30,34,0,162,3,65,178,30, - 36,0,178,30,36,0,162,3,65,178, - 30,32,0,178,30,32,0,220,3,126, - 190,168,128,10,0,126,190,168,128,10, - 0,139,2,0,127,0,220,3,125,177, - 168,128,10,0,177,168,128,10,0,137, - 2,0,127,0,220,3,136,0,220,3, - 140,0,162,59,140,0,258,0,31,0, - 31,142,0,166,0,162,3,0 + 277,171,0,278,127,75,277,171,0,215, + 0,216,0,277,171,0,96,0,0,215, + 0,216,0,203,96,0,0,215,0,216, + 0,278,127,277,171,0,215,0,203,0, + 0,215,0,227,127,3,0,127,0,0, + 0,0,0,227,127,3,216,0,223,3, + 0,212,127,0,208,0,148,0,167,128, + 0,10,0,0,0,214,59,0,126,0, + 227,127,3,182,0,182,0,2,0,0, + 127,0,0,0,0,0,198,3,0,201, + 0,237,127,163,28,17,0,179,128,56, + 58,0,197,129,0,129,179,128,275,58, + 0,179,128,275,58,0,179,128,69,124, + 56,0,237,127,163,56,0,237,127,163, + 226,56,0,273,127,163,124,65,0,273, + 127,163,65,0,179,128,65,0,137,0, + 187,179,128,242,0,138,0,179,128,242, + 0,187,167,128,10,0,167,128,10,0, + 93,138,0,266,127,145,0,266,127,171, + 0,162,85,0,296,161,298,299,3,82, + 0,127,173,0,298,299,3,82,0,129, + 0,127,173,0,162,3,76,190,81,0, + 127,129,0,190,81,0,108,2,133,127, + 129,0,225,3,76,0,198,168,0,33, + 171,0,168,0,177,33,171,0,225,3, + 86,0,190,155,225,3,84,0,62,173, + 0,225,3,84,0,127,173,62,173,0, + 297,127,163,0,162,0,214,78,0,30, + 173,0,162,107,159,0,30,171,0,177, + 3,0,127,151,0,219,3,0,214,59, + 263,0,162,59,0,177,3,293,63,128, + 0,127,0,0,0,0,293,63,128,0, + 2,147,127,0,0,0,0,177,3,34, + 0,149,0,126,43,167,128,0,31,149, + 0,93,138,31,149,0,220,179,128,0, + 148,31,149,0,177,3,38,0,162,3, + 38,0,162,3,68,177,45,30,0,177, + 45,30,0,20,2,133,127,0,162,3, + 68,177,45,33,0,177,45,33,0,162, + 3,68,177,45,35,0,177,45,35,0, + 162,3,68,177,45,31,0,177,45,31, + 0,219,3,126,187,167,128,10,0,126, + 187,167,128,10,0,138,2,0,127,0, + 219,3,125,256,167,128,10,0,256,167, + 128,10,0,137,2,0,127,0,219,3, + 136,0,219,3,140,0,162,59,140,0, + 258,0,31,0,31,141,0,166,0,136, + 0,162,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2199,38 +2201,38 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface ScopeState { public final static char scopeState[] = {0, - 4663,4704,4701,4690,0,1688,3340,1094,3180,0, - 3280,3226,3189,3135,3098,3044,3007,2953,2916,2562, - 2525,4261,0,852,0,3586,3019,1089,0,3341, - 629,0,3280,3226,4239,3156,3189,3135,3098,3044, - 3007,2953,2200,2916,2562,2525,4681,4152,0,3030, - 3103,3028,0,981,635,0,575,3038,0,2686, - 4402,0,1240,680,0,4373,2686,4362,3568,4402, - 3416,3979,4391,4217,2827,4196,582,3405,2813,2675, - 0,4453,4264,0,4453,4264,3599,4163,4109,3589, - 4095,4026,4012,2846,0,4453,4264,3599,4163,4109, - 3589,4095,4026,4012,2846,3280,3226,3189,3135,3098, - 3044,3007,2953,2916,2562,2525,0,3153,2538,0, - 2827,4373,3615,4362,3568,4413,3405,3602,2526,2761, - 3601,2847,1933,1078,732,0,800,661,0,741, - 0,2318,1989,804,569,3568,2847,3416,2813,2675, - 2528,2763,0,4233,537,2637,0,4641,4634,4621, - 4614,4603,4588,4583,4557,4672,4652,4083,3653,3267, - 4536,4525,3176,4509,4505,4478,2934,3085,2994,0, - 4641,3014,4634,2567,926,4621,4614,4603,917,781, - 4588,4583,4557,1643,4672,1600,1557,4652,1514,1471, - 1428,1299,3582,4083,3067,3653,2910,3267,4536,4525, - 1255,3176,930,4509,790,4505,4478,4233,2934,2637, - 3085,2994,868,3416,3979,4391,4217,2827,4373,4196, - 2549,2686,2533,4362,2245,3568,582,3405,2813,4402, - 2675,1173,937,2157,2069,800,661,3990,3957,3935, - 2259,2296,2330,1184,2389,2361,594,2787,2646,2498, - 2471,2444,2417,3537,3513,3427,3380,3355,3913,3891, - 3869,3847,3825,3803,3781,3759,3737,3715,2701,1952, - 2208,2171,2120,2083,2032,1262,1218,1995,1136,880, - 1901,1864,823,744,687,1821,1778,1735,1692,1649, - 1606,1563,1520,1477,1434,1391,537,1348,1305,1046, - 1002,959,1090,0 + 4711,4812,4792,4772,0,1422,1447,567,1404,0, + 3413,3376,3339,3302,3265,3228,3174,3118,3081,2758, + 2682,2677,0,539,0,2982,2765,1349,0,3086, + 2522,0,3413,3376,3436,3400,3339,3302,3265,3228, + 3174,3118,3399,3081,2758,2682,4677,4621,0,3598, + 4136,3233,0,2748,2387,0,4126,3075,0,4506, + 4415,0,1852,973,0,4493,4506,4476,3537,4415, + 2832,3550,4331,3674,2650,2909,4317,3049,2443,2421, + 0,4524,4366,0,4524,4366,3741,4231,4221,3731, + 4139,4129,4119,3721,0,4524,4366,3741,4231,4221, + 3731,4139,4129,4119,3721,3413,3376,3339,3302,3265, + 3228,3174,3118,3081,2758,2682,0,3192,2981,0, + 2650,4493,4433,4476,3537,2679,3049,4137,3197,1194, + 2670,3068,985,1340,1067,0,663,578,0,780, + 0,2083,2045,1649,1563,3537,3068,2832,2443,2421, + 3664,2777,0,4344,535,2847,0,4701,4686,4666, + 4662,4651,4637,4614,4590,4586,4579,4785,4781,4765, + 4759,4575,4540,4736,4352,3215,735,2486,2936,1262, + 0,4701,3288,4686,3064,2862,4666,4662,4651,2788, + 2439,4637,4614,4590,2497,4586,3418,4579,3344,3307, + 4785,2975,2873,2743,2507,2666,4781,624,4765,2435, + 4759,4575,4540,2298,4736,1956,4352,3215,735,4344, + 2486,731,2847,2936,1262,2253,2166,2079,1208,800, + 2832,3550,4331,3674,2650,4493,2909,4506,4476,3537, + 4317,3049,2443,4415,2421,2456,929,663,578,4098, + 4076,4054,1127,2264,2334,2302,2393,2365,592,3023, + 2997,2623,2596,2566,2539,3699,3633,3563,3512,3487, + 4032,4010,3988,3966,3944,3922,3900,3878,3856,2940, + 628,1960,2215,2177,2128,2090,2041,1267,1219,2003, + 1165,873,1911,1873,818,740,685,1830,1787,1744, + 1701,1658,1615,1572,1529,1486,1443,1400,535,1357, + 1311,1081,994,951,1038,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2238,59 +2240,59 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public interface InSymb { public final static char inSymb[] = {0, - 0,293,127,265,39,31,34,36,32,10, - 136,125,133,7,130,4,3,128,35,29, + 0,292,127,265,38,30,33,35,31,10, + 136,125,132,7,133,4,3,128,34,29, 5,12,11,6,9,27,26,140,146,148, - 147,150,149,153,151,156,154,157,57,158, - 70,3,30,30,30,30,128,3,30,30, - 167,127,59,3,62,63,30,7,125,178, - 162,167,127,62,63,168,166,125,3,124, - 126,103,120,3,59,90,96,12,11,92, - 91,6,94,93,65,30,88,89,9,98, - 97,100,99,101,113,112,111,110,109,108, - 107,106,105,104,69,117,102,178,162,178, - 178,178,178,168,220,127,127,127,267,268, - 251,269,243,270,66,271,272,10,128,59, - 59,127,155,127,59,3,218,217,136,126, - 125,10,128,59,294,3,190,4,178,54, - 5,128,54,220,162,147,147,146,146,146, - 149,149,149,149,148,148,151,150,150,154, - 153,156,162,157,65,65,65,65,190,177, - 252,255,252,213,128,6,163,168,231,128, - 126,125,124,163,128,128,185,168,252,213, - 215,158,224,127,3,128,168,206,3,295, - 167,152,258,190,128,125,185,168,73,3, - 3,3,3,126,125,70,168,127,127,126, - 125,127,185,127,163,127,185,168,54,228, - 229,145,230,127,168,54,178,127,127,4, - 223,5,54,162,162,162,162,3,3,6, - 184,305,128,169,225,56,54,205,58,171, - 307,127,127,73,190,127,273,124,274,190, - 155,69,224,199,187,182,177,3,127,70, - 228,190,155,260,263,59,180,4,124,126, - 220,220,127,168,163,227,30,54,275,277, - 127,3,182,309,225,44,128,273,69,70, - 127,69,69,3,168,199,127,213,155,126, - 127,3,59,162,4,190,127,163,65,30, - 128,75,127,213,306,127,125,73,285,199, - 70,128,44,310,185,221,127,190,127,260, - 220,215,131,238,17,54,171,60,56,58, - 237,127,127,185,127,278,73,70,213,73, - 69,185,128,128,127,228,221,28,127,3, - 124,56,238,292,54,10,61,131,278,163, - 289,128,290,185,185,57,155,127,127,163, - 266,199,276,28,69,128,70,65,30,231, - 231,279,127,70,185,3,3,127,127,3, - 69,70,155,128,185,127,69,69,127,298, + 147,150,149,153,151,156,154,158,57,159, + 70,3,45,45,45,45,128,3,45,45, + 168,127,59,3,62,63,45,5,177,162, + 168,127,62,63,167,166,125,3,124,126, + 106,120,3,59,90,92,12,11,94,93, + 6,96,95,68,45,88,89,9,98,97, + 100,99,101,117,116,115,114,113,112,111, + 110,109,108,69,107,102,177,162,177,177, + 177,177,167,219,127,127,127,267,268,250, + 269,242,270,65,271,272,10,128,59,59, + 127,125,155,127,59,3,217,216,136,126, + 125,10,128,59,293,3,187,4,177,43, + 128,43,219,162,147,147,146,146,146,149, + 149,149,149,148,148,151,150,150,154,153, + 156,162,158,68,68,68,68,187,256,251, + 254,251,212,128,6,163,167,230,128,126, + 125,124,163,128,128,179,167,251,212,214, + 159,223,127,3,128,167,205,3,294,168, + 152,258,187,128,179,167,73,3,3,3, + 3,126,125,70,167,127,127,126,125,127, + 179,127,163,127,179,167,43,227,228,145, + 229,127,167,43,177,127,127,4,220,5, + 43,162,162,162,162,3,3,6,184,304, + 128,169,224,56,43,204,58,171,306,127, + 127,73,187,127,273,124,274,187,155,69, + 223,198,186,182,128,3,127,70,227,187, + 155,260,263,59,180,4,124,126,219,219, + 127,167,163,226,45,43,275,277,127,3, + 182,308,224,44,128,273,69,70,127,69, + 69,3,179,167,198,127,212,155,126,127, + 3,59,162,4,187,127,163,68,45,128, + 75,127,212,305,127,128,125,73,285,198, + 70,128,44,309,179,221,127,127,260,219, + 214,129,237,17,43,171,60,56,58,236, + 127,127,179,127,278,73,70,212,167,73, + 69,179,128,128,127,227,221,28,127,3, + 124,56,237,291,43,10,61,129,278,163, + 289,128,290,179,179,57,155,127,127,163, + 266,198,276,28,69,128,70,68,45,230, + 230,279,127,70,179,3,3,127,127,3, + 69,70,155,128,179,127,69,69,127,297, 80,78,1,162,8,86,84,82,81,76, - 83,85,79,77,56,75,220,314,221,238, - 152,163,250,185,227,292,280,119,8,73, - 215,73,3,3,3,191,3,124,162,124, - 179,70,127,127,163,227,65,3,73,226, - 167,226,300,145,76,226,127,127,61,95, - 313,167,155,199,155,299,127,3,155,280, - 304,231,155,155,127,69,191,161,266,162, - 189,70,69,122,297,155,189,8,155 + 83,85,79,77,56,75,219,314,221,237, + 152,163,249,179,226,291,280,119,8,73, + 214,73,3,3,3,190,3,124,162,124, + 178,70,127,127,163,226,68,3,73,225, + 168,225,299,145,76,225,127,127,61,91, + 313,168,155,198,155,298,127,3,155,280, + 303,230,155,155,127,69,190,161,266,162, + 189,70,69,122,296,155,189,8,155 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2436,7 +2438,6 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP "qualified_or_unqualified_name", "unqualified_id_name", "identifier_name", - "operator_function_id_name", "template_id_name", "nested_name_specifier", "class_or_namespace_name", @@ -2568,18 +2569,18 @@ public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CP public final static int NUM_STATES = 529, NT_OFFSET = 123, - LA_STATE_OFFSET = 5786, + LA_STATE_OFFSET = 5818, MAX_LA = 2147483647, - NUM_RULES = 536, + NUM_RULES = 534, NUM_NONTERMINALS = 197, NUM_SYMBOLS = 320, SEGMENT_SIZE = 8192, - START_STATE = 1945, + START_STATE = 916, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4841, - ERROR_ACTION = 5250; + ACCEPT_ACTION = 4916, + ERROR_ACTION = 5284; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java index b0e381e05b0..422da88b428 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java @@ -16,71 +16,71 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPExpressionParsersym { public final static int TK_asm = 60, - TK_auto = 47, + TK_auto = 48, TK_bool = 14, TK_break = 77, TK_case = 78, TK_catch = 119, TK_char = 15, TK_class = 61, - TK_const = 45, - TK_const_cast = 31, + TK_const = 46, + TK_const_cast = 30, TK_continue = 79, TK_default = 80, TK_delete = 62, TK_do = 81, TK_double = 16, - TK_dynamic_cast = 32, + TK_dynamic_cast = 31, TK_else = 122, - TK_enum = 66, - TK_explicit = 48, + TK_enum = 65, + TK_explicit = 49, TK_export = 87, TK_extern = 17, - TK_false = 33, + TK_false = 32, TK_float = 18, TK_for = 82, - TK_friend = 49, + TK_friend = 50, TK_goto = 83, TK_if = 84, - TK_inline = 50, + TK_inline = 51, TK_int = 19, TK_long = 20, - TK_mutable = 51, + TK_mutable = 52, TK_namespace = 56, TK_new = 63, TK_operator = 7, - TK_private = 114, - TK_protected = 115, - TK_public = 116, - TK_register = 52, - TK_reinterpret_cast = 34, + TK_private = 103, + TK_protected = 104, + TK_public = 105, + TK_register = 53, + TK_reinterpret_cast = 33, TK_return = 85, TK_short = 21, TK_signed = 22, - TK_sizeof = 35, - TK_static = 53, - TK_static_cast = 36, - TK_struct = 67, + TK_sizeof = 34, + TK_static = 54, + TK_static_cast = 35, + TK_struct = 66, TK_switch = 86, - TK_template = 54, - TK_this = 37, + TK_template = 43, + TK_this = 36, TK_throw = 57, TK_try = 75, - TK_true = 38, + TK_true = 37, TK_typedef = 55, - TK_typeid = 39, + TK_typeid = 38, TK_typename = 10, - TK_union = 68, + TK_union = 67, TK_unsigned = 23, TK_using = 58, TK_virtual = 44, TK_void = 24, - TK_volatile = 46, + TK_volatile = 47, TK_wchar_t = 25, TK_while = 76, - TK_integer = 40, - TK_floating = 41, - TK_charconst = 42, + TK_integer = 39, + TK_floating = 40, + TK_charconst = 41, TK_stringlit = 28, TK_identifier = 1, TK_Completion = 2, @@ -89,8 +89,8 @@ public interface CPPExpressionParsersym { TK_LeftBracket = 59, TK_LeftParen = 3, TK_Dot = 120, - TK_DotStar = 96, - TK_Arrow = 103, + TK_DotStar = 92, + TK_Arrow = 106, TK_ArrowStar = 90, TK_PlusPlus = 26, TK_MinusMinus = 27, @@ -100,35 +100,35 @@ public interface CPPExpressionParsersym { TK_Minus = 12, TK_Tilde = 5, TK_Bang = 29, - TK_Slash = 91, - TK_Percent = 92, + TK_Slash = 93, + TK_Percent = 94, TK_RightShift = 88, TK_LeftShift = 89, - TK_LT = 30, - TK_GT = 65, - TK_LE = 93, - TK_GE = 94, + TK_LT = 45, + TK_GT = 68, + TK_LE = 95, + TK_GE = 96, TK_EQ = 97, TK_NE = 98, TK_Caret = 99, TK_Or = 100, TK_AndAnd = 101, TK_OrOr = 102, - TK_Question = 117, + TK_Question = 107, TK_Colon = 73, TK_ColonColon = 4, - TK_DotDotDot = 95, + TK_DotDotDot = 91, TK_Assign = 69, - 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_StarAssign = 108, + TK_SlashAssign = 109, + TK_PercentAssign = 110, + TK_PlusAssign = 111, + TK_MinusAssign = 112, + TK_RightShiftAssign = 113, + TK_LeftShiftAssign = 114, + TK_AndAssign = 115, + TK_CaretAssign = 116, + TK_OrAssign = 117, TK_Comma = 70, TK_RightBracket = 118, TK_RightParen = 74, @@ -136,7 +136,7 @@ public interface CPPExpressionParsersym { TK_SemiColon = 13, TK_LeftBrace = 64, TK_ERROR_TOKEN = 72, - TK_0 = 43, + TK_0 = 42, TK_EOF_TOKEN = 121; public final static String orderedTerminalSymbols[] = { @@ -170,7 +170,6 @@ public interface CPPExpressionParsersym { "MinusMinus", "stringlit", "Bang", - "LT", "const_cast", "dynamic_cast", "false", @@ -184,7 +183,9 @@ public interface CPPExpressionParsersym { "floating", "charconst", "0", + "template", "virtual", + "LT", "const", "volatile", "auto", @@ -194,7 +195,6 @@ public interface CPPExpressionParsersym { "mutable", "register", "static", - "template", "typedef", "namespace", "throw", @@ -205,10 +205,10 @@ public interface CPPExpressionParsersym { "delete", "new", "LeftBrace", - "GT", "enum", "struct", "union", + "GT", "Assign", "Comma", "RightBrace", @@ -231,19 +231,23 @@ public interface CPPExpressionParsersym { "RightShift", "LeftShift", "ArrowStar", + "DotDotDot", + "DotStar", "Slash", "Percent", "LE", "GE", - "DotDotDot", - "DotStar", "EQ", "NE", "Caret", "Or", "AndAnd", "OrOr", + "private", + "protected", + "public", "Arrow", + "Question", "StarAssign", "SlashAssign", "PercentAssign", @@ -254,10 +258,6 @@ public interface CPPExpressionParsersym { "AndAssign", "CaretAssign", "OrAssign", - "private", - "protected", - "public", - "Question", "RightBracket", "catch", "Dot", 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 c860ba331b4..db249aee5dd 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 @@ -416,1864 +416,1857 @@ public CPPNoCastExpressionParser(String[] mapFrom) { // constructor } // - // Rule 47: qualified_id_name ::= :: identifier_name + // Rule 47: qualified_id_name ::= :: unqualified_id_name // case 47: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 48: qualified_id_name ::= :: operator_function_id_name + // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // case 48: { action.builder. - consumeGlobalQualifiedId(); break; + consumeNestedNameSpecifier(true); break; } // - // Rule 49: qualified_id_name ::= :: template_id_name + // Rule 49: nested_name_specifier ::= class_or_namespace_name :: // case 49: { action.builder. - consumeGlobalQualifiedId(); break; + consumeNestedNameSpecifier(false); break; } // - // Rule 50: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // case 50: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 51: nested_name_specifier ::= class_or_namespace_name :: + // Rule 51: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // case 51: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 52: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name // case 52: { action.builder. - consumeNestedNameSpecifier(true); break; - } - - // - // Rule 53: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: - // - case 53: { action.builder. - consumeNestedNameSpecifier(false); break; - } - - // - // Rule 54: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name - // - case 54: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 56: nested_name_specifier_opt ::= $Empty + // Rule 54: nested_name_specifier_opt ::= $Empty // - case 56: { action.builder. + case 54: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 59: postfix_expression ::= postfix_expression [ expression ] + // Rule 57: postfix_expression ::= postfix_expression [ expression ] // - case 59: { action.builder. + case 57: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 60: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 60: { action.builder. + case 58: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 61: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 61: { action.builder. + case 59: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 62: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // + case 60: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // + case 61: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // case 62: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 63: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) - // - case 63: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 64: postfix_expression ::= postfix_expression . qualified_or_unqualified_name - // - case 64: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 65: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 65: { action.builder. + case 63: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 66: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 66: { action.builder. + case 64: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 67: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 67: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 68: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 68: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 69: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 69: { action.builder. + case 67: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 70: postfix_expression ::= postfix_expression ++ + // Rule 68: postfix_expression ::= postfix_expression ++ // - case 70: { action.builder. + case 68: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 71: postfix_expression ::= postfix_expression -- + // Rule 69: postfix_expression ::= postfix_expression -- // - case 71: { action.builder. + case 69: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 72: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 72: { action.builder. + case 70: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 73: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) // - case 73: { action.builder. + case 71: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 74: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 74: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 75: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) // - case 75: { action.builder. + case 73: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 76: postfix_expression ::= typeid ( expression ) + // Rule 74: postfix_expression ::= typeid ( expression ) // - case 76: { action.builder. + case 74: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 77: postfix_expression ::= typeid ( type_id ) + // Rule 75: postfix_expression ::= typeid ( type_id ) // - case 77: { action.builder. + case 75: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // + case 76: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // + case 77: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name // case 78: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 79: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name - // - case 79: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 80: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name - // - case 80: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 81: destructor_type_name ::= ~ identifier_token + // Rule 79: destructor_type_name ::= ~ identifier_token // - case 81: { action.builder. + case 79: { action.builder. consumeDestructorName(); break; } // - // Rule 82: destructor_type_name ::= ~ template_id_name + // Rule 80: destructor_type_name ::= ~ template_id_name // - case 82: { action.builder. + case 80: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 86: unary_expression ::= ++ cast_expression + // Rule 84: unary_expression ::= ++ cast_expression // - case 86: { action.builder. + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 87: unary_expression ::= -- cast_expression + // Rule 85: unary_expression ::= -- cast_expression // - case 87: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 88: unary_expression ::= & cast_expression + // Rule 86: unary_expression ::= & cast_expression // - case 88: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 89: unary_expression ::= * cast_expression + // Rule 87: unary_expression ::= * cast_expression // - case 89: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 90: unary_expression ::= + cast_expression + // Rule 88: unary_expression ::= + cast_expression // - case 90: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 91: unary_expression ::= - cast_expression + // Rule 89: unary_expression ::= - cast_expression // - case 91: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 92: unary_expression ::= ~ cast_expression + // Rule 90: unary_expression ::= ~ cast_expression // - case 92: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 93: unary_expression ::= ! cast_expression + // Rule 91: unary_expression ::= ! cast_expression // - case 93: { action.builder. + case 91: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 94: unary_expression ::= sizeof unary_expression + // Rule 92: unary_expression ::= sizeof unary_expression // - case 94: { action.builder. + case 92: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 95: unary_expression ::= sizeof ( type_id ) + // Rule 93: unary_expression ::= sizeof ( type_id ) // - case 95: { action.builder. + case 93: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } // - // Rule 96: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt + // Rule 94: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 96: { action.builder. + case 94: { action.builder. consumeExpressionNew(true); break; } // - // Rule 97: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt + // Rule 95: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt // - case 97: { action.builder. + case 95: { action.builder. consumeExpressionNew(false); break; } // - // Rule 99: new_placement_opt ::= $Empty + // Rule 97: new_placement_opt ::= $Empty // - case 99: { action.builder. + case 97: { action.builder. consumeEmpty(); break; } // - // Rule 100: new_type_id ::= type_specifier_seq + // Rule 98: new_type_id ::= type_specifier_seq // - case 100: { action.builder. + case 98: { action.builder. consumeTypeId(false); break; } // - // Rule 101: new_type_id ::= type_specifier_seq new_declarator + // Rule 99: new_type_id ::= type_specifier_seq new_declarator // - case 101: { action.builder. + case 99: { action.builder. consumeTypeId(true); break; } // - // Rule 102: new_declarator ::= new_pointer_operators + // Rule 100: new_declarator ::= new_pointer_operators // - case 102: { action.builder. + case 100: { action.builder. consumeNewDeclarator(); break; } // - // Rule 111: new_initializer_opt ::= $Empty + // Rule 109: new_initializer_opt ::= $Empty // - case 111: { action.builder. + case 109: { action.builder. consumeEmpty(); break; } // - // Rule 112: delete_expression ::= dcolon_opt delete cast_expression + // Rule 110: delete_expression ::= dcolon_opt delete cast_expression // - case 112: { action.builder. + case 110: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 113: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 111: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 113: { action.builder. + case 111: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 116: pm_expression ::= pm_expression .* cast_expression + // Rule 114: pm_expression ::= pm_expression .* cast_expression // - case 116: { action.builder. + case 114: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 117: pm_expression ::= pm_expression ->* cast_expression + // Rule 115: pm_expression ::= pm_expression ->* cast_expression // - case 117: { action.builder. + case 115: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 119: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 117: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 119: { action.builder. + case 117: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 120: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 118: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 120: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 121: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 119: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 121: { action.builder. + case 119: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 123: additive_expression ::= additive_expression + multiplicative_expression + // Rule 121: additive_expression ::= additive_expression + multiplicative_expression // - case 123: { action.builder. + case 121: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 124: additive_expression ::= additive_expression - multiplicative_expression + // Rule 122: additive_expression ::= additive_expression - multiplicative_expression // - case 124: { action.builder. + case 122: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 126: shift_expression ::= shift_expression << additive_expression + // Rule 124: shift_expression ::= shift_expression << additive_expression // - case 126: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 127: shift_expression ::= shift_expression >> additive_expression + // Rule 125: shift_expression ::= shift_expression >> additive_expression // - case 127: { action.builder. + case 125: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 129: relational_expression ::= relational_expression < shift_expression + // Rule 127: relational_expression ::= relational_expression < shift_expression // - case 129: { action.builder. + case 127: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 130: relational_expression ::= relational_expression > shift_expression + // Rule 128: relational_expression ::= relational_expression > shift_expression // - case 130: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 131: relational_expression ::= relational_expression <= shift_expression + // Rule 129: relational_expression ::= relational_expression <= shift_expression // - case 131: { action.builder. + case 129: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 132: relational_expression ::= relational_expression >= shift_expression + // Rule 130: relational_expression ::= relational_expression >= shift_expression // - case 132: { action.builder. + case 130: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 134: equality_expression ::= equality_expression == relational_expression + // Rule 132: equality_expression ::= equality_expression == relational_expression // - case 134: { action.builder. + case 132: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 135: equality_expression ::= equality_expression != relational_expression + // Rule 133: equality_expression ::= equality_expression != relational_expression // - case 135: { action.builder. + case 133: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 137: and_expression ::= and_expression & equality_expression + // Rule 135: and_expression ::= and_expression & equality_expression // - case 137: { action.builder. + case 135: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 139: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 137: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 139: { action.builder. + case 137: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 141: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 139: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 141: { action.builder. + case 139: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 143: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 141: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 143: { action.builder. + case 141: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 145: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 143: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 145: { action.builder. + case 143: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 147: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 145: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 147: { action.builder. + case 145: { action.builder. consumeExpressionConditional(); break; } // - // Rule 148: throw_expression ::= throw + // Rule 146: throw_expression ::= throw // - case 148: { action.builder. + case 146: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 149: throw_expression ::= throw assignment_expression + // Rule 147: throw_expression ::= throw assignment_expression // - case 149: { action.builder. + case 147: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 152: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 150: assignment_expression ::= logical_or_expression = assignment_expression // - case 152: { action.builder. + case 150: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 153: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 151: assignment_expression ::= logical_or_expression *= assignment_expression // - case 153: { action.builder. + case 151: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 152: assignment_expression ::= logical_or_expression /= assignment_expression // - case 154: { action.builder. + case 152: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression %= assignment_expression // - case 155: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression += assignment_expression // - case 156: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression -= assignment_expression // - case 157: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 158: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 158: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 159: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 157: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 159: { action.builder. + case 157: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 160: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 158: assignment_expression ::= logical_or_expression &= assignment_expression // - case 160: { action.builder. + case 158: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 161: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 159: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 161: { action.builder. + case 159: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 162: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 160: assignment_expression ::= logical_or_expression |= assignment_expression // - case 162: { action.builder. + case 160: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 164: expression_list ::= expression_list_actual + // Rule 162: expression_list ::= expression_list_actual // - case 164: { action.builder. + case 162: { action.builder. consumeExpressionList(); break; } // - // Rule 168: expression_list_opt ::= $Empty + // Rule 166: expression_list_opt ::= $Empty + // + case 166: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 168: expression_opt ::= $Empty // case 168: { action.builder. consumeEmpty(); break; } // - // Rule 170: expression_opt ::= $Empty + // Rule 171: constant_expression_opt ::= $Empty // - case 170: { action.builder. + case 171: { action.builder. consumeEmpty(); break; } // - // Rule 173: constant_expression_opt ::= $Empty + // Rule 180: statement ::= ERROR_TOKEN // - case 173: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 182: statement ::= ERROR_TOKEN - // - case 182: { action.builder. + case 180: { action.builder. consumeStatementProblem(); break; } // - // Rule 183: labeled_statement ::= identifier : statement + // Rule 181: labeled_statement ::= identifier : statement // - case 183: { action.builder. + case 181: { action.builder. consumeStatementLabeled(); break; } // - // Rule 184: labeled_statement ::= case constant_expression : statement + // Rule 182: labeled_statement ::= case constant_expression : statement // - case 184: { action.builder. + case 182: { action.builder. consumeStatementCase(); break; } // - // Rule 185: labeled_statement ::= default : statement + // Rule 183: labeled_statement ::= default : statement // - case 185: { action.builder. + case 183: { action.builder. consumeStatementDefault(); break; } // - // Rule 186: expression_statement ::= expression ; + // Rule 184: expression_statement ::= expression ; // - case 186: { action.builder. + case 184: { action.builder. consumeStatementExpression(); break; } // - // Rule 187: expression_statement ::= ; + // Rule 185: expression_statement ::= ; // - case 187: { action.builder. + case 185: { action.builder. consumeStatementNull(); break; } // - // Rule 188: compound_statement ::= { statement_seq } + // Rule 186: compound_statement ::= { statement_seq } // - case 188: { action.builder. + case 186: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 189: compound_statement ::= { } + // Rule 187: compound_statement ::= { } // - case 189: { action.builder. + case 187: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 192: selection_statement ::= if ( condition ) statement + // Rule 190: selection_statement ::= if ( condition ) statement // - case 192: { action.builder. + case 190: { action.builder. consumeStatementIf(false); break; } // - // Rule 193: selection_statement ::= if ( condition ) statement else statement + // Rule 191: selection_statement ::= if ( condition ) statement else statement // - case 193: { action.builder. + case 191: { action.builder. consumeStatementIf(true); break; } // - // Rule 194: selection_statement ::= switch ( condition ) statement + // Rule 192: selection_statement ::= switch ( condition ) statement // - case 194: { action.builder. + case 192: { action.builder. consumeStatementSwitch(); break; } // - // Rule 196: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 194: condition ::= type_specifier_seq declarator = assignment_expression // - case 196: { action.builder. + case 194: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 198: condition_opt ::= $Empty + // Rule 196: condition_opt ::= $Empty // - case 198: { action.builder. + case 196: { action.builder. consumeEmpty(); break; } // - // Rule 199: iteration_statement ::= while ( condition ) statement + // Rule 197: iteration_statement ::= while ( condition ) statement // - case 199: { action.builder. + case 197: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 200: iteration_statement ::= do statement while ( expression ) ; + // Rule 198: iteration_statement ::= do statement while ( expression ) ; // - case 200: { action.builder. + case 198: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 201: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 199: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 201: { action.builder. + case 199: { action.builder. consumeStatementForLoop(); break; } // - // Rule 203: for_init_statement ::= simple_declaration_with_declspec + // Rule 201: for_init_statement ::= simple_declaration_with_declspec // - case 203: { action.builder. + case 201: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 204: jump_statement ::= break ; + // Rule 202: jump_statement ::= break ; // - case 204: { action.builder. + case 202: { action.builder. consumeStatementBreak(); break; } // - // Rule 205: jump_statement ::= continue ; + // Rule 203: jump_statement ::= continue ; // - case 205: { action.builder. + case 203: { action.builder. consumeStatementContinue(); break; } // - // Rule 206: jump_statement ::= return expression ; + // Rule 204: jump_statement ::= return expression ; // - case 206: { action.builder. + case 204: { action.builder. consumeStatementReturn(true); break; } // - // Rule 207: jump_statement ::= return ; + // Rule 205: jump_statement ::= return ; // - case 207: { action.builder. + case 205: { action.builder. consumeStatementReturn(false); break; } // - // Rule 208: jump_statement ::= goto identifier_token ; + // Rule 206: jump_statement ::= goto identifier_token ; // - case 208: { action.builder. + case 206: { action.builder. consumeStatementGoto(); break; } // - // Rule 209: declaration_statement ::= block_declaration + // Rule 207: declaration_statement ::= block_declaration // - case 209: { action.builder. + case 207: { action.builder. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 210: declaration_statement ::= function_definition + // Rule 208: declaration_statement ::= function_definition // - case 210: { action.builder. + case 208: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 227: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 225: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // + case 225: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 226: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // + case 226: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 227: declaration_specifiers ::= simple_declaration_specifiers // case 227: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 228: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; - // - case 228: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 229: declaration_specifiers ::= simple_declaration_specifiers - // - case 229: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 230: declaration_specifiers ::= class_declaration_specifiers + // Rule 228: declaration_specifiers ::= class_declaration_specifiers + // + case 228: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 229: declaration_specifiers ::= elaborated_declaration_specifiers + // + case 229: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 230: declaration_specifiers ::= enum_declaration_specifiers // case 230: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 231: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 231: declaration_specifiers ::= type_name_declaration_specifiers // case 231: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 232: declaration_specifiers ::= enum_declaration_specifiers - // - case 232: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 233: declaration_specifiers ::= type_name_declaration_specifiers - // - case 233: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 234: declaration_specifiers_opt ::= $Empty + // Rule 233: declaration_specifiers_opt ::= $Empty // - case 234: { action.builder. + case 233: { action.builder. consumeEmpty(); break; } // - // Rule 239: no_type_declaration_specifier ::= friend + // Rule 237: no_type_declaration_specifier ::= friend // - case 239: { action.builder. + case 237: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 240: no_type_declaration_specifier ::= typedef + // Rule 238: no_type_declaration_specifier ::= typedef // - case 240: { action.builder. + case 238: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 260: storage_class_specifier ::= auto + // Rule 258: storage_class_specifier ::= auto + // + case 258: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 259: storage_class_specifier ::= register + // + case 259: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 260: storage_class_specifier ::= static // case 260: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 261: storage_class_specifier ::= register + // Rule 261: storage_class_specifier ::= extern // case 261: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 262: storage_class_specifier ::= static + // Rule 262: storage_class_specifier ::= mutable // case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 263: storage_class_specifier ::= extern + // Rule 263: function_specifier ::= inline // case 263: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 264: storage_class_specifier ::= mutable + // Rule 264: function_specifier ::= virtual // case 264: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 265: function_specifier ::= inline + // Rule 265: function_specifier ::= explicit // case 265: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 266: function_specifier ::= virtual + // Rule 266: simple_type_specifier ::= char // case 266: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 267: function_specifier ::= explicit + // Rule 267: simple_type_specifier ::= wchar_t // case 267: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 268: simple_type_specifier ::= char + // Rule 268: simple_type_specifier ::= bool // case 268: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 269: simple_type_specifier ::= wchar_t + // Rule 269: simple_type_specifier ::= short // case 269: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 270: simple_type_specifier ::= bool + // Rule 270: simple_type_specifier ::= int // case 270: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 271: simple_type_specifier ::= short + // Rule 271: simple_type_specifier ::= long // case 271: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 272: simple_type_specifier ::= int + // Rule 272: simple_type_specifier ::= signed // case 272: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 273: simple_type_specifier ::= long + // Rule 273: simple_type_specifier ::= unsigned // case 273: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 274: simple_type_specifier ::= signed + // Rule 274: simple_type_specifier ::= float // case 274: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 275: simple_type_specifier ::= unsigned + // Rule 275: simple_type_specifier ::= double // case 275: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 276: simple_type_specifier ::= float + // Rule 276: simple_type_specifier ::= void // case 276: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 277: simple_type_specifier ::= double + // Rule 279: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 277: { action.builder. - consumeDeclSpecToken(); break; + case 279: { action.builder. + consumeQualifiedId(false); break; } // - // Rule 278: simple_type_specifier ::= void + // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 278: { action.builder. - consumeDeclSpecToken(); break; + case 280: { action.builder. + consumeQualifiedId(false); break; } // - // Rule 281: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 281: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // case 281: { action.builder. consumeQualifiedId(false); break; } // - // Rule 282: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // case 282: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 283: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name - // - case 283: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 284: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name - // - case 284: { action.builder. consumeQualifiedId(true); break; } // - // Rule 286: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 284: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // + case 284: { action.builder. + consumeTypeSpecifierElaborated(false); break; + } + + // + // Rule 285: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // + case 285: { action.builder. + consumeTypeSpecifierElaborated(true); break; + } + + // + // Rule 286: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // case 286: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 287: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 287: enum_specifier ::= enum { enumerator_list_opt } // case 287: { action.builder. - consumeTypeSpecifierElaborated(true); break; - } - - // - // Rule 288: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name - // - case 288: { action.builder. - consumeTypeSpecifierElaborated(false); break; - } - - // - // Rule 289: enum_specifier ::= enum { enumerator_list_opt } - // - case 289: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 290: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 288: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 290: { action.builder. + case 288: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 295: enumerator_definition ::= identifier_token + // Rule 293: enumerator_definition ::= identifier_token // - case 295: { action.builder. + case 293: { action.builder. consumeEnumerator(false); break; } // - // Rule 296: enumerator_definition ::= identifier_token = constant_expression + // Rule 294: enumerator_definition ::= identifier_token = constant_expression // - case 296: { action.builder. + case 294: { action.builder. consumeEnumerator(true); break; } // - // Rule 300: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } + // Rule 298: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } // - case 300: { action.builder. + case 298: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 301: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 299: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 301: { action.builder. + case 299: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 302: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 300: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 302: { action.builder. + case 300: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 303: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 301: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 303: { action.builder. + case 301: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 304: typename_opt ::= typename + // Rule 302: typename_opt ::= typename // - case 304: { action.builder. + case 302: { action.builder. consumePlaceHolder(); break; } // - // Rule 305: typename_opt ::= $Empty + // Rule 303: typename_opt ::= $Empty // - case 305: { action.builder. + case 303: { action.builder. consumeEmpty(); break; } // - // Rule 306: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 304: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 306: { action.builder. + case 304: { action.builder. consumeUsingDirective(); break; } // - // Rule 307: asm_definition ::= asm ( stringlit ) ; + // Rule 305: asm_definition ::= asm ( stringlit ) ; // - case 307: { action.builder. + case 305: { action.builder. consumeDeclarationASM(); break; } // - // Rule 308: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 306: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 308: { action.builder. + case 306: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 309: linkage_specification ::= extern stringlit declaration + // Rule 307: linkage_specification ::= extern stringlit declaration // - case 309: { action.builder. + case 307: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 314: init_declarator_complete ::= init_declarator + // Rule 312: init_declarator_complete ::= init_declarator // - case 314: { action.builder. + case 312: { action.builder. consumeInitDeclaratorComplete(); break; } // - // Rule 316: init_declarator ::= declarator initializer + // Rule 314: init_declarator ::= declarator initializer // - case 316: { action.builder. + case 314: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 318: declarator ::= ptr_operator_seq direct_declarator + // Rule 316: declarator ::= ptr_operator_seq direct_declarator + // + case 316: { action.builder. + consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 318: function_declarator ::= ptr_operator_seq direct_declarator // case 318: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 320: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 322: basic_direct_declarator ::= declarator_id_name // - case 320: { action.builder. - consumeDeclaratorWithPointer(true); break; - } - - // - // Rule 324: basic_direct_declarator ::= declarator_id_name - // - case 324: { action.builder. + case 322: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 325: basic_direct_declarator ::= ( declarator ) + // Rule 323: basic_direct_declarator ::= ( declarator ) // - case 325: { action.builder. + case 323: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 326: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 324: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 326: { action.builder. + case 324: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 327: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 325: array_direct_declarator ::= array_direct_declarator array_modifier + // + case 325: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 326: array_direct_declarator ::= basic_direct_declarator array_modifier + // + case 326: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 327: array_modifier ::= [ constant_expression ] // case 327: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 328: array_direct_declarator ::= basic_direct_declarator array_modifier - // - case 328: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 329: array_modifier ::= [ constant_expression ] - // - case 329: { action.builder. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 330: array_modifier ::= [ ] + // Rule 328: array_modifier ::= [ ] // - case 330: { action.builder. + case 328: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 331: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 329: ptr_operator ::= * cv_qualifier_seq_opt // - case 331: { action.builder. + case 329: { action.builder. consumePointer(); break; } // - // Rule 332: ptr_operator ::= & + // Rule 330: ptr_operator ::= & // - case 332: { action.builder. + case 330: { action.builder. consumeReferenceOperator(); break; } // - // Rule 333: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // Rule 331: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt // - case 333: { action.builder. + case 331: { action.builder. consumePointerToMember(); break; } // - // Rule 339: cv_qualifier ::= const + // Rule 337: cv_qualifier ::= const // - case 339: { action.builder. + case 337: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 340: cv_qualifier ::= volatile + // Rule 338: cv_qualifier ::= volatile + // + case 338: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 340: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // case 340: { action.builder. - consumeDeclSpecToken(); break; + consumeQualifiedId(false); break; } // - // Rule 342: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name + // Rule 341: type_id ::= type_specifier_seq // - case 342: { action.builder. - consumeQualifiedId(true); break; - } - - // - // Rule 343: type_id ::= type_specifier_seq - // - case 343: { action.builder. + case 341: { action.builder. consumeTypeId(false); break; } // - // Rule 344: type_id ::= type_specifier_seq abstract_declarator + // Rule 342: type_id ::= type_specifier_seq abstract_declarator // - case 344: { action.builder. + case 342: { action.builder. consumeTypeId(true); break; } // - // Rule 347: abstract_declarator ::= ptr_operator_seq + // Rule 345: abstract_declarator ::= ptr_operator_seq // - case 347: { action.builder. + case 345: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 348: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 346: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 348: { action.builder. + case 346: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 352: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 350: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 352: { action.builder. + case 350: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 353: basic_direct_abstract_declarator ::= ( ) + // Rule 351: basic_direct_abstract_declarator ::= ( ) // - case 353: { action.builder. + case 351: { action.builder. consumeAbstractDeclaratorEmpty(); break; } // - // Rule 354: array_direct_abstract_declarator ::= array_modifier + // Rule 352: array_direct_abstract_declarator ::= array_modifier // - case 354: { action.builder. + case 352: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 355: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 353: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // + case 353: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 354: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // + case 354: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 355: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // case 355: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 356: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier - // - case 356: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 357: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt - // - case 357: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 358: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 356: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 358: { action.builder. + case 356: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 357: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // + case 357: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt + // + case 358: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 359: parameter_declaration_clause ::= parameter_declaration_list , ... // case 359: { action.builder. consumePlaceHolder(); break; } // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 365: abstract_declarator_opt ::= $Empty // - case 360: { action.builder. + case 365: { action.builder. consumeEmpty(); break; } // - // Rule 361: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 366: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 361: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 367: abstract_declarator_opt ::= $Empty - // - case 367: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 368: parameter_declaration ::= declaration_specifiers parameter_init_declarator - // - case 368: { action.builder. + case 366: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 369: parameter_declaration ::= declaration_specifiers + // Rule 367: parameter_declaration ::= declaration_specifiers // - case 369: { action.builder. + case 367: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 371: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 369: parameter_init_declarator ::= declarator = parameter_initializer + // + case 369: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 371: parameter_init_declarator ::= abstract_declarator = parameter_initializer // case 371: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 373: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 372: parameter_init_declarator ::= = parameter_initializer // - case 373: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 374: parameter_init_declarator ::= = parameter_initializer - // - case 374: { action.builder. + case 372: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 375: parameter_initializer ::= assignment_expression + // Rule 373: parameter_initializer ::= assignment_expression // - case 375: { action.builder. + case 373: { action.builder. consumeInitializer(); break; } // - // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 374: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 376: { action.builder. + case 374: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 377: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 377: { action.builder. + case 375: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 380: initializer ::= ( expression_list ) + // Rule 378: initializer ::= ( expression_list ) // - case 380: { action.builder. + case 378: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 381: initializer_clause ::= assignment_expression + // Rule 379: initializer_clause ::= assignment_expression // - case 381: { action.builder. + case 379: { action.builder. consumeInitializer(); break; } // - // Rule 382: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list + // Rule 380: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list + // + case 380: { action.builder. + consumeInitializerList(); break; + } + + // + // Rule 381: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list + // + case 381: { action.builder. + consumeInitializerList(); break; + } + + // + // Rule 382: initializer_clause ::= { } // case 382: { action.builder. consumeInitializerList(); break; } // - // Rule 383: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list + // Rule 383: start_initializer_list ::= $Empty // case 383: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 384: initializer_clause ::= { } - // - case 384: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 385: start_initializer_list ::= $Empty - // - case 385: { action.builder. initializerListStart(); break; } // - // Rule 386: end_initializer_list ::= $Empty + // Rule 384: end_initializer_list ::= $Empty // - case 386: { action.builder. + case 384: { action.builder. initializerListEnd(); break; } // - // Rule 391: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 389: class_specifier ::= class_head { member_declaration_list_opt } // - case 391: { action.builder. + case 389: { action.builder. consumeClassSpecifier(); break; } // - // Rule 392: class_head ::= class_keyword identifier_name_opt base_clause_opt + // Rule 390: class_head ::= class_keyword identifier_name_opt base_clause_opt + // + case 390: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 391: class_head ::= class_keyword template_id_name base_clause_opt + // + case 391: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 392: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt // case 392: { action.builder. - consumeClassHead(false); break; + consumeClassHead(true); break; } // - // Rule 393: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 393: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // case 393: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 394: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt - // - case 394: { action.builder. consumeClassHead(true); break; } // - // Rule 395: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 395: identifier_name_opt ::= $Empty // case 395: { action.builder. - consumeClassHead(true); break; - } - - // - // Rule 397: identifier_name_opt ::= $Empty - // - case 397: { action.builder. consumeEmpty(); break; } // - // Rule 401: visibility_label ::= access_specifier_keyword : + // Rule 399: visibility_label ::= access_specifier_keyword : // - case 401: { action.builder. + case 399: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 402: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 400: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 402: { action.builder. + case 400: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 403: member_declaration ::= declaration_specifiers_opt ; + // Rule 401: member_declaration ::= declaration_specifiers_opt ; // - case 403: { action.builder. + case 401: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 406: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 404: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 406: { action.builder. + case 404: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 412: member_declaration ::= ERROR_TOKEN + // Rule 410: member_declaration ::= ERROR_TOKEN // - case 412: { action.builder. + case 410: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 420: member_declarator ::= declarator constant_initializer + // Rule 418: member_declarator ::= declarator constant_initializer // - case 420: { action.builder. + case 418: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 421: member_declarator ::= bit_field_declarator : constant_expression + // Rule 419: member_declarator ::= bit_field_declarator : constant_expression // - case 421: { action.builder. + case 419: { action.builder. consumeBitField(true); break; } // - // Rule 422: member_declarator ::= : constant_expression + // Rule 420: member_declarator ::= : constant_expression // - case 422: { action.builder. + case 420: { action.builder. consumeBitField(false); break; } // - // Rule 423: bit_field_declarator ::= identifier_name + // Rule 421: bit_field_declarator ::= identifier_name // - case 423: { action.builder. + case 421: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 424: constant_initializer ::= = constant_expression + // Rule 422: constant_initializer ::= = constant_expression // - case 424: { action.builder. + case 422: { action.builder. consumeInitializer(); break; } // - // Rule 430: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 428: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 430: { action.builder. + case 428: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 431: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 429: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // + case 429: { action.builder. + consumeBaseSpecifier(true, true); break; + } + + // + // Rule 430: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // + case 430: { action.builder. + consumeBaseSpecifier(true, true); break; + } + + // + // Rule 431: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // case 431: { action.builder. - consumeBaseSpecifier(true, true); break; - } - - // - // Rule 432: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name - // - case 432: { action.builder. - consumeBaseSpecifier(true, true); break; - } - - // - // Rule 433: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name - // - case 433: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 434: access_specifier_keyword ::= private + // Rule 432: access_specifier_keyword ::= private + // + case 432: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 433: access_specifier_keyword ::= protected + // + case 433: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 434: access_specifier_keyword ::= public // case 434: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 435: access_specifier_keyword ::= protected - // - case 435: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 436: access_specifier_keyword ::= public + // Rule 436: access_specifier_keyword_opt ::= $Empty // case 436: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 438: access_specifier_keyword_opt ::= $Empty - // - case 438: { action.builder. consumeEmpty(); break; } // - // Rule 440: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 438: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 440: { action.builder. + case 438: { action.builder. consumeTemplateId(); break; } // - // Rule 441: conversion_function_id ::= operator conversion_type_id + // Rule 439: conversion_function_id ::= operator conversion_type_id // - case 441: { action.builder. + case 439: { action.builder. consumeConversionName(); break; } // - // Rule 442: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 440: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 442: { action.builder. + case 440: { action.builder. consumeTypeId(true); break; } // - // Rule 443: conversion_type_id ::= type_specifier_seq + // Rule 441: conversion_type_id ::= type_specifier_seq // - case 443: { action.builder. + case 441: { action.builder. consumeTypeId(false); break; } // - // Rule 444: conversion_declarator ::= ptr_operator_seq + // Rule 442: conversion_declarator ::= ptr_operator_seq // - case 444: { action.builder. + case 442: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 450: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 448: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 450: { action.builder. + case 448: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 451: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 449: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 451: { action.builder. + case 449: { action.builder. consumeQualifiedId(false); break; } // - // Rule 454: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 452: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 454: { action.builder. + case 452: { action.builder. consumeTemplateId(); break; } // - // Rule 455: operator_id_name ::= operator overloadable_operator + // Rule 453: operator_id_name ::= operator overloadable_operator // - case 455: { action.builder. + case 453: { action.builder. consumeOperatorName(); break; } // - // Rule 498: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 496: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 498: { action.builder. + case 496: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 499: export_opt ::= export + // Rule 497: export_opt ::= export // - case 499: { action.builder. + case 497: { action.builder. consumePlaceHolder(); break; } // - // Rule 500: export_opt ::= $Empty + // Rule 498: export_opt ::= $Empty // - case 500: { action.builder. + case 498: { action.builder. consumeEmpty(); break; } // - // Rule 504: template_parameter ::= parameter_declaration + // Rule 502: template_parameter ::= parameter_declaration // - case 504: { action.builder. + case 502: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 505: type_parameter ::= class identifier_name_opt + // Rule 503: type_parameter ::= class identifier_name_opt + // + case 503: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 504: type_parameter ::= class identifier_name_opt = type_id + // + case 504: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 505: type_parameter ::= typename identifier_name_opt // case 505: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 506: type_parameter ::= class identifier_name_opt = type_id + // Rule 506: type_parameter ::= typename identifier_name_opt = type_id // case 506: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 507: type_parameter ::= typename identifier_name_opt + // Rule 507: type_parameter ::= template < template_parameter_list > class identifier_name_opt // case 507: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 508: type_parameter ::= typename identifier_name_opt = type_id - // - case 508: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 509: type_parameter ::= template < template_parameter_list > class identifier_name_opt - // - case 509: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 510: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 508: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 510: { action.builder. + case 508: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 511: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 509: template_id_name ::= identifier_name < template_argument_list_opt > // - case 511: { action.builder. + case 509: { action.builder. consumeTemplateId(); break; } // - // Rule 517: template_argument ::= type_id + // Rule 514: template_argument ::= assignment_expression // - case 517: { action.builder. + case 514: { action.builder. + consumeTemplateArgumentExpression(); break; + } + + // + // Rule 515: template_argument ::= type_id + // + case 515: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 518: explicit_instantiation ::= template declaration + // Rule 516: explicit_instantiation ::= template declaration // - case 518: { action.builder. + case 516: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 519: explicit_specialization ::= template < > declaration + // Rule 517: explicit_specialization ::= template < > declaration // - case 519: { action.builder. + case 517: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 520: try_block ::= try compound_statement handler_seq + // Rule 518: try_block ::= try compound_statement handler_seq // - case 520: { action.builder. + case 518: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 523: handler ::= catch ( exception_declaration ) compound_statement + // Rule 521: handler ::= catch ( exception_declaration ) compound_statement // - case 523: { action.builder. + case 521: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 524: handler ::= catch ( ... ) compound_statement + // Rule 522: handler ::= catch ( ... ) compound_statement // - case 524: { action.builder. + case 522: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq declarator + // Rule 523: exception_declaration ::= type_specifier_seq declarator + // + case 523: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 524: exception_declaration ::= type_specifier_seq abstract_declarator + // + case 524: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 525: exception_declaration ::= type_specifier_seq // case 525: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 526: exception_declaration ::= type_specifier_seq abstract_declarator - // - case 526: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 527: exception_declaration ::= type_specifier_seq - // - case 527: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 529: exception_specification ::= throw ( ) + // Rule 527: exception_specification ::= throw ( ) // - case 529: { action.builder. + case 527: { action.builder. consumePlaceHolder(); break; } // - // Rule 535: no_cast_start ::= ERROR_TOKEN + // Rule 533: no_cast_start ::= ERROR_TOKEN // - case 535: { 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 2800f263c13..6b1ccdbff80 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 @@ -41,485 +41,489 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 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,2, - 1,1,0,1,0,4,2,2,2,3, - 2,3,2,2,1,0,1,1,4,4, - 4,8,8,3,3,4,4,3,3,2, - 2,7,7,7,7,4,4,5,6,3, - 2,2,1,1,1,2,2,2,2,2, - 2,2,2,2,4,7,9,3,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,2,1,3,1,0,1,0, - 1,1,0,1,1,1,1,1,1,1, - 1,1,3,4,3,2,1,4,2,1, - 2,5,7,5,1,4,1,0,5,7, - 8,1,1,2,2,3,2,3,1,1, + 1,1,0,1,0,4,2,3,2,3, + 2,2,1,0,1,1,4,4,4,8, + 8,3,3,4,4,3,3,2,2,7, + 7,7,7,4,4,5,6,3,2,2, + 1,1,1,2,2,2,2,2,2,2, + 2,2,4,7,9,3,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,2,1,3,1,0,1,0,1,1, + 0,1,1,1,1,1,1,1,1,1, + 3,4,3,2,1,4,2,1,2,5, + 7,5,1,4,1,0,5,7,8,1, + 1,2,2,3,2,3,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,2,1,0,4,4,2,2, - 2,2,2,0,1,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,2,1,0,4,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, - 3,4,4,5,2,4,5,4,5,6, - 1,3,1,0,1,3,1,1,1,6, - 5,7,6,1,0,6,5,6,4,1, - 3,1,0,1,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,4,1,2,1,1,2,3,1,1, - 1,3,2,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,7,6,3,0,0,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,1,1,2,1,0,1,3,1,2, - 3,2,1,2,2,1,0,1,3,3, - 5,5,4,1,1,1,1,0,1,5, - 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,3,4, + 4,5,2,4,5,4,5,6,1,3, + 1,0,1,3,1,1,1,6,5,7, + 6,1,0,6,5,6,4,1,3,1, + 0,1,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, + 2,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,7, + 6,3,0,0,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,1, + 1,2,1,0,1,3,1,2,3,2, + 1,2,2,1,0,1,3,3,5,5, + 4,1,1,1,1,0,1,5,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,1,1,2,2,7,1,0, - 1,3,1,1,2,4,2,4,7,9, - 5,1,3,1,0,1,1,2,4,4, - 1,2,5,5,3,3,1,4,3,1, - 0,1,3,1,1,-108,0,0,0,-120, + 1,1,1,2,2,7,1,0,1,3, + 1,1,2,4,2,4,7,9,5,1, + 3,1,0,1,1,2,4,4,1,2, + 5,5,3,3,1,4,3,1,0,1, + 3,1,1,-107,0,0,0,-2,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-53,0, - 0,0,0,0,-49,0,0,0,0,0, - 0,0,0,-127,0,0,0,0,0,0, - -310,0,0,0,0,-2,0,0,0,0, - 0,-280,-86,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-4,0,0,0,0, - 0,-454,0,0,0,-207,0,0,0,-191, - -16,0,0,0,0,0,0,0,0,0, - 0,0,-54,0,0,-139,0,0,0,-239, - -354,0,0,0,0,0,0,-177,0,0, - 0,0,0,0,-365,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-62,0, - 0,0,0,0,0,-115,0,0,0,0, + 0,0,0,0,0,0,-54,0,0,0, + 0,0,-200,0,0,0,0,0,0,0, + 0,-177,0,0,0,0,-68,0,0,0, + -59,0,0,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,0,0,0,0,0,0,0, - 0,0,0,0,-226,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-240,0, - 0,-5,0,0,-353,0,0,0,0,-449, - 0,0,-116,0,0,0,0,0,0,0, + 0,0,-58,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,0, - 0,0,0,0,0,0,0,0,0,-380, - 0,0,0,0,0,0,0,0,0,0, - -136,0,-171,0,0,-6,0,0,0,-69, - 0,0,0,-7,0,0,0,0,0,0, - 0,0,0,0,0,-50,0,0,0,0, - -131,0,0,0,0,0,0,0,0,0, + 0,0,0,-248,0,0,-69,0,0,0, + 0,0,0,0,0,0,0,0,0,-126, + 0,0,-51,-4,0,0,0,0,0,0, + 0,0,0,-114,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-178,0, - 0,0,0,-283,-117,0,-398,0,0,0, - 0,0,-8,-63,0,-9,0,-224,0,0, + 0,0,0,0,0,0,-238,0,0,0, + 0,0,-5,-112,0,0,-116,-281,0,-398, + -136,0,0,0,0,-127,0,0,0,0, + -115,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-133,0,0,0, - 0,0,0,0,-186,0,0,0,0,0, - 0,0,0,-11,0,0,-231,0,0,0, - -249,0,0,0,0,0,-521,0,0,0, + 0,0,0,0,-6,0,0,0,0,0, + -104,0,0,0,0,0,0,0,-53,-7, + 0,-8,0,0,0,0,0,-10,-521,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-496,0,0,0,-60, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-208,0, - 0,0,0,0,-348,0,0,0,0,0, - 0,0,0,0,-129,0,0,0,-520,0, + 0,0,0,0,0,0,-130,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-314,0,0, - 0,-12,0,0,0,0,0,0,0,0, - 0,-104,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-312,0,0,0,-9, + 0,0,0,0,-162,0,0,0,0,0, + 0,0,-123,0,0,0,0,0,0,-260, + 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,0,0,0,0,0, - -13,0,0,0,-182,0,-15,0,0,0, - -17,0,0,-28,0,-10,-429,0,0,0, + 0,0,0,0,0,0,-258,0,0,0, + 0,0,-49,-50,0,0,0,0,0,-353, + 0,0,0,-170,0,0,0,-224,0,0, + -138,0,0,0,-11,0,0,0,0,0, + 0,0,0,0,0,-12,0,0,-128,-496, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-130,0,0,0,0, - 0,0,0,-262,0,0,0,0,0,0, - -29,0,-3,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-61,0, + 0,0,-181,0,0,0,0,0,0,0, + 0,0,-520,0,0,0,-129,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-30,0,0,0,0, - 0,0,0,0,0,-163,0,0,0,0, - 0,-453,0,0,0,-288,0,0,0,-31, + 0,0,0,0,0,-13,0,0,0,0, + 0,-15,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-3,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-57,0,0,0,0,0, - 0,0,0,0,0,-260,0,0,-325,0, + 0,0,0,0,-57,0,0,0,0,-105, + 0,0,0,-119,0,0,0,0,0,-429, + 0,0,0,-28,0,0,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,-383,0,0,0,0,0,0,0, + 0,0,-394,0,0,-286,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-132,0,0,0,0,0,-134,0,0, - 0,0,0,0,0,0,-235,0,0,0, - 0,-138,0,0,0,-32,0,0,0,0, - 0,0,0,0,0,-33,0,-326,0,0, + 0,0,0,0,-305,0,0,0,-132,0, + 0,0,0,-233,0,0,0,0,-316,0, + -262,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,-30,0,0,0, + 0,0,-406,0,0,0,-323,0,0,0, 0,0,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,0,0,0, - 0,0,0,0,-237,0,0,0,0,0, - -39,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-34, - 0,0,0,-105,0,0,0,-243,0,0, - 0,0,0,-41,0,0,0,-35,0,0, + 0,0,0,0,0,0,0,0,0,-454, + 0,0,0,0,0,-342,-481,0,0,0, + -324,0,0,0,-142,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-36,0,0,0,-58,0,0,0, - -318,0,0,-410,0,0,-92,0,0,0, - -37,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-217, - 0,0,0,0,0,-38,0,0,0,-106, - 0,0,0,-244,0,0,0,0,0,-93, - 0,0,0,-40,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-319,0, - 0,0,-114,0,0,0,-251,0,0,0, - 0,0,-94,0,0,0,0,0,0,0, + 0,0,0,0,-31,0,0,0,0,-165, + -1,0,0,0,0,-410,-39,0,0,0, + -340,0,0,0,0,0,0,0,0,0, 0,0,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,-273, - 0,0,0,0,0,-95,0,0,0,-55, + 0,0,0,0,0,-183,0,0,0,0, + -41,0,0,0,-32,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-142,0, - 0,0,-278,0,0,0,0,0,-96,0, + 0,0,0,-113,0,0,0,0,0,-137, + -282,0,0,-91,0,0,0,-33,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-56,0,0, - 0,-295,0,0,0,0,0,-284,0,0, - 0,-97,0,0,0,-59,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-64,0,0,0,0,0, - -185,0,0,0,0,0,0,0,-298,0, - 0,0,0,0,-98,0,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,-67,0,0,0,-344,0,0, - 0,0,0,-68,-166,0,0,-99,0,0, - 0,-202,0,0,0,0,0,0,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,-109,-323,-143,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,-302,0,0,0,0,0,0, - 0,0,0,-213,0,0,0,0,-110,-111, - -167,0,0,-101,0,0,0,-112,0,0, + 0,0,0,0,0,0,-141,-184,0,0, + 0,0,-34,-321,0,0,-92,0,0,0, + -35,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-189,0,0,0,0,0,0,0, - 0,-394,0,0,0,0,-102,0,0,0, + -311,0,0,0,0,0,-36,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,0,-186,0, + 0,0,0,-188,0,0,0,0,-449,0, + 0,0,-94,0,0,0,-37,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-191,0,0,0,0,-199,0,0,0, + 0,-201,-38,0,0,-95,0,0,0,-40, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-55,0, + 0,0,0,0,0,0,0,0,-209,-213, + 0,0,0,0,-211,-56,0,0,-96,0, + 0,0,-63,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-64,0,0,0,0,0,0,0,0, + 0,-236,-226,0,0,0,0,-453,0,0, + 0,-97,0,0,0,-66,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-243,-227,0,0,0,0, + -67,-108,0,0,-98,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,-231,0,0,0,0,-256,0, + 0,0,0,-250,-110,0,0,-99,0,0, + 0,-519,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, + -251,-277,0,0,0,0,-252,-131,0,0, + -100,0,0,0,-143,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-253,-285,0,0,0,0,-295, + -144,0,0,-101,0,0,0,-372,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-297,-301,0,0, + 0,0,-298,-62,0,0,-163,0,0,0, + -166,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -145,0,0,0,-207,0,0,0,-146,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-306,0,0,0,0,-325,0, + 0,0,0,-320,0,0,0,-17,0,-360, + -147,0,-190,-514,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-206,0,0,-315,0,0,0, + -148,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,0,0,-396, + -328,0,0,0,-319,0,0,0,-289,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-409,0, + 0,0,-16,0,0,0,-290,-302,0,0, + 0,0,0,-346,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-149,0,0,0, + 0,-378,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-150,0,0,0,0,0, + 0,0,0,0,-237,-431,0,0,0,-135, + 0,0,0,-151,-461,0,0,0,0,0, + -379,0,0,0,0,0,0,0,0,0, + 0,0,0,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,-440,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-367,0,0,0,0,0,-331,0,0, + 0,0,-356,0,0,0,-333,0,0,0, + -152,-153,0,0,0,0,0,-103,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -442,0,0,0,0,0,-335,0,0,0, + 0,0,0,-215,0,-90,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-88,0, + 0,0,-154,0,0,0,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,-228,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-87,0, + 0,0,-155,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-465,0,0,0,0,-245,0,0,0, + 0,0,0,0,0,0,0,0,0,-156, + -194,0,0,0,-203,0,0,0,-292,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-140,0,0,0,-273,0,0,0,0, + 0,0,0,0,0,-229,0,0,0,-451, + -157,0,0,0,0,0,0,0,0,0, + -351,-121,0,0,0,0,0,-433,0,0, + 0,0,-326,0,0,0,0,0,0,-314, + 0,0,-176,0,0,0,-158,0,0,0, + 0,0,0,0,-159,0,0,-185,0,0, + 0,0,0,-352,0,0,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,0,0,0,0,0,0,-160,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,-452,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,-161,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,-167,0,0,0,-387,0,0,0,0, + 0,0,0,0,0,0,0,0,-168,-169, + -380,0,0,0,-486,-212,-172,-48,0,0, + 0,0,-473,-173,-257,-329,0,-421,-386,0, + 0,0,0,-371,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-300,0,-117, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-317,-174,0,0,0,0,-327, + 0,-175,0,0,0,0,0,0,0,0, + 0,0,0,-278,0,0,-337,0,-178,-42, + 0,-355,0,0,0,0,0,0,0,0, + 0,-361,-43,-438,0,0,0,0,-232,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-377,0,0, + 0,0,0,0,0,0,0,0,0,-208, + -230,0,0,0,0,0,-179,0,0,0, + 0,0,0,0,0,0,0,0,0,-374, + 0,0,-272,0,0,-180,-373,0,0,0, + 0,0,0,0,0,0,0,-513,0,0, + 0,0,0,0,0,0,0,0,0,0, + -189,0,-52,0,0,0,0,0,0,0, + 0,0,-390,0,0,0,0,0,-339,-234, + 0,0,0,0,-357,-334,-508,-293,0,0, + 0,0,0,-164,0,-70,0,0,0,0, + -195,0,0,0,0,0,0,0,0,0, + 0,-18,0,0,0,-422,0,0,0,0, + 0,0,0,0,0,-384,0,-412,0,0, + -196,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-413,0,0,0, + 0,0,0,-385,0,0,-354,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-402,0,0,0,-268,0,0,0,0, + 0,0,0,0,-202,0,0,0,0,0, + -210,0,0,0,0,0,0,0,0,0, + -220,-205,0,0,0,0,0,0,0,0, + 0,0,-83,0,0,0,-118,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-84,0, + 0,0,-221,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-511,0,0,-307,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-223,-463, + 0,0,0,0,0,-240,-139,0,0,0, + -244,-366,0,0,0,-425,-447,0,0,0, + 0,0,0,0,0,-455,-270,-235,0,0, + 0,0,-405,0,-239,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-246,-468,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-261,0,-247,-408,0,-476,0,0, + -263,0,0,0,0,0,0,0,0,0, + -470,0,0,0,0,-120,-269,0,0,0, + 0,0,0,0,0,0,0,0,-241,0, + 0,0,-370,0,0,0,0,-264,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-47,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-487,-134,-434, + -294,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-417,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-501,0,0,0,0,0, + -274,-275,-279,0,0,0,0,0,0,0, + 0,0,0,-283,0,0,0,0,-395,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-503,0,0,0,0,-242,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-284,0,-249,0,0,0,0, + 0,0,0,0,0,0,0,0,-507,0, + 0,0,0,-271,0,0,0,0,0,0, + 0,0,0,0,0,0,-299,-287,0,0, + 0,0,-403,0,0,0,0,0,0,0, + 0,0,0,0,0,-522,0,0,0,0, + -276,0,0,0,0,0,0,0,0,0, + 0,0,0,-477,-484,0,0,0,0,-296, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-527,0,0,0,0,0,-288,-504, + -303,0,0,0,0,0,0,0,0,0, + -14,0,0,-133,0,0,-397,0,-304,-456, + 0,0,0,0,0,0,0,0,0,-391, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-420,-458,-457, + -460,0,0,0,0,0,0,0,0,0, + 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,-525, + 0,-75,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-330,0,0,0, + -309,0,0,0,0,0,0,0,0,-505, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-76,0,0,0,-322,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-459,-423,0,0,0, + -482,-509,0,0,0,0,0,-254,0,0, + -310,0,-479,-332,0,-345,0,0,0,0, + 0,0,0,-347,-362,-365,-388,0,0,0, + 0,-497,0,0,0,-389,0,0,0,0, + 0,0,-77,0,0,0,-122,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-106,0,0,-483,0, + -392,-349,0,-488,0,0,0,0,-393,-399, + 0,0,-124,-462,0,0,-437,-401,-375,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-492,0,0,-490,0,0,0,-78,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-369,0,0,0,0,-517,0,0,0, + -494,-427,-404,0,-411,0,0,0,0,-500, + 0,0,-336,0,0,-418,0,0,0,0, + 0,-419,-498,0,0,0,-439,-71,0,0, + 0,0,0,0,0,0,-441,0,0,0, + 0,0,0,0,0,-443,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-499,0,0,0,0,0,0, + 0,0,0,-428,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-444,-445, + -446,-448,-464,0,0,0,0,-466,-467,0, + 0,-469,0,-474,0,0,-21,0,0,0, + -478,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-22,0, + 0,0,-485,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -23,0,0,0,-493,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-24,0,0,0,-502,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-25,0,0,0,-510,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-26,0,0,0, + -515,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-27,0, + 0,0,-526,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -60,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-72,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-73,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-197,0,0,0, + 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,0,0, + 0,-19,0,0,0,-518,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-363,-450,0,-102,0,0,-216,0, + 0,0,0,0,0,-368,0,-217,0,0, + 0,0,0,0,-523,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,0,0,0, + -359,0,0,0,0,0,0,0,0,-171, + 0,0,0,-524,-187,0,0,0,0,0, + 0,0,0,0,-407,0,0,0,0,0, + 0,0,0,0,0,0,0,-416,0,0, + 0,0,-512,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-255,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-426,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-495, + 0,0,0,-308,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, + -125,0,0,0,0,0,0,0,0,-341, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-218,-219,-516,0,0,0, 0,0,0,0,0,0,0,0,0,-192, - 0,0,0,0,-144,-145,-211,0,0,-164, - 0,0,0,-146,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-465,0,0,0,0,0,-51,0, - 0,0,0,0,0,0,-209,0,0,0, - -304,0,0,0,0,0,0,0,0,0, + 0,0,-225,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-200,0,0,0,0, - 0,0,0,-204,0,0,0,0,0,0, - 0,-147,0,-18,0,0,0,-514,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-280,0,0,0,0, + 0,-318,-424,0,0,0,0,0,0,0, + 0,-266,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-275,-148,0,0,0,0, - -317,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-376,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-267,0,0,0,0,0,-215, - 0,0,0,0,0,0,0,-321,0,0, - 0,-149,0,0,0,0,0,0,0,0, + -506,0,0,0,0,0,0,0,0,0, + 0,0,-364,0,0,0,0,0,0,0, + 0,0,0,0,0,-291,0,0,0,0, + -267,0,-415,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-343,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-228,0,0,0, - 0,0,0,0,-141,0,0,0,-238,0, - 0,0,0,0,0,0,0,0,-346,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-229,0,0, - 0,0,0,0,0,-378,0,0,0,0, + 0,0,0,0,0,0,-313,0,0,0, + -338,0,0,0,-344,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-368,0, - 0,0,0,0,-233,0,0,0,0,0, - 0,0,-70,0,0,0,-245,0,0,0, - 0,0,0,0,0,0,-379,0,0,0, + 0,0,-350,0,0,0,-381,0,0,0, 0,0,0,0,0,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,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,-150,0,0,0, - 0,0,-201,0,0,0,0,0,0,0, - -135,0,0,0,-252,-151,0,0,0,0, - 0,-343,-291,-383,-91,0,0,0,0,0, + 0,-382,0,0,0,0,0,0,0,0, + 0,0,0,0,-491,0,0,0,0,0, + 0,0,0,-400,0,0,0,-414,0,0, + 0,-432,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -65,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,-253,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,-361,0,0,0,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,-152,0,0,0, - 0,0,0,0,-87,0,0,0,0,0, + -182,0,0,0,0,0,-193,0,0,0, + 0,-204,0,0,0,0,0,-214,0,0, + 0,0,-259,0,0,0,0,0,0,-471, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-88,0,0,0,0,0,0,0, + 0,0,0,-472,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-475,0,0, + 0,0,0,0,0,0,0,-44,0,-45, + -46,0,0,0,0,-198,0,-435,0,0, + 0,0,0,-436,0,0,0,0,0,0, + 0,0,0,0,0,-480,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -80,0,0,0,-230,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-153,0,0,0,-81,0,0, - 0,-341,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -519,0,0,0,-82,0,0,0,-232,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-154,0,0, - 0,-83,0,0,0,-155,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-421,0,0,0,0,-334, - 0,0,0,0,0,0,0,0,0,0, - -396,-307,-359,0,0,0,0,0,0,0, - 0,0,0,0,-402,0,0,0,-236,0, - 0,-438,0,0,0,0,-403,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -122,0,0,0,0,0,-156,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-316,0,-322,-241,0,0,0,0, - 0,0,0,0,0,0,0,0,-395,0, - 0,-270,-157,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-52,0,0,0, - -279,0,-158,-259,0,-84,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-159,0,0,-247,0,0,0,0,-362, - 0,0,0,0,0,-118,-160,0,0,-373, - -195,0,0,0,-250,0,0,0,0,0, - -77,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-271, - 0,0,0,0,0,-161,0,0,0,0, - 0,0,0,-234,0,0,0,-287,0,0, - 0,0,0,0,0,0,0,-328,-375,0, - 0,0,-107,0,0,-162,0,0,0,0, - 0,-272,0,0,0,0,0,-274,0,-406, - 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,-168, - 0,0,-294,0,0,0,0,-169,0,0, - 0,0,0,-170,0,-113,-387,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -372,0,0,0,0,0,0,0,0,0, - 0,-173,-174,0,0,0,0,0,0,-497, - 0,0,-313,0,0,-303,0,0,-175,0, - 0,0,0,0,-301,0,0,-425,-386,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-447,0,0,0,0,-210,-176,0,-349, - 0,0,0,0,0,0,0,0,0,-179, - 0,-308,0,0,0,0,0,-119,0,-254, - 0,-121,0,0,0,0,-374,0,0,0, - 0,0,-14,0,0,0,0,0,0,0, - 0,0,0,0,0,-391,0,-468,0,0, - -165,0,0,0,0,0,0,0,-356,0, - 0,0,0,0,0,0,0,0,-481,0, - 0,0,0,0,-458,-351,0,0,0,0, - 0,0,0,0,-470,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-180,0,0,0,0,0,0, - 0,0,0,0,-255,0,0,0,0,0, - 0,0,0,0,0,0,-47,0,0,0, - 0,0,0,0,0,0,0,0,-487,0, - 0,0,0,0,0,0,0,0,-297,0, - -181,0,0,0,0,0,0,0,0,-190, - -415,0,0,0,0,-196,-352,0,0,0, - 0,0,-299,-324,-123,-501,0,0,0,0, - -197,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-128,0,0,0,0,-437, - 0,0,-511,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-183,0,0,0, - 0,0,0,0,0,0,0,0,0,-503, - 0,0,-371,0,0,0,0,0,0,-203, - 0,-300,0,0,0,0,0,0,0,0, - -296,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-206,-125,-507,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-212,0,-140,0,0,0,0, - 0,0,-327,-512,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-194,0,0, - 0,0,0,0,0,0,0,0,0,0, - -522,0,0,0,0,-390,0,-413,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-43,0,0,-222,0,0,0,0, - 0,0,0,0,0,-223,0,-527,0,0, - 0,0,0,0,-409,0,0,0,0,0, - 0,0,0,0,-461,0,-205,0,0,0, - 0,-423,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-225, - -242,0,0,0,0,0,0,0,0,0, - 0,-332,0,0,0,0,-246,-336,0,0, - 0,0,0,-431,-248,0,0,0,0,0, - 0,0,-75,0,0,0,-263,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-265,0,-76,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -266,0,-309,0,0,0,0,0,0,0, - 0,0,0,-513,0,0,0,0,-276,0, - 0,0,0,0,-78,0,0,0,-277,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-216,0,0, - 0,-434,-329,-338,-340,0,0,0,0,0, - 0,0,0,-508,-358,0,0,0,0,-525, - -281,0,0,0,0,-48,0,0,0,0, - -482,-422,0,0,0,0,0,0,0,0, - 0,0,0,-331,0,0,0,-442,0,0, - 0,0,0,0,0,-285,0,0,0,0, - -79,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-355,-286,0,-172,0,0,0, - -451,-289,0,-384,-335,-450,0,0,0,0, - 0,0,0,0,-370,0,0,0,0,-290, - -305,-357,-306,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,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,0,-261,0, - 0,0,-428,-385,-427,-72,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-312,-333,0,0,0,0,0,-405, - -345,0,0,0,0,-347,-363,-366,0,0, - 0,0,0,0,0,0,0,0,0,0, - -19,0,0,0,-388,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-389,0,0, - 0,-20,0,0,0,-392,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-408,-393,-399,-401,0,0,0, - -21,0,0,0,-509,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-22,0,0,0,-404,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-23,0,0,0,-411,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,0,-418,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -26,0,0,0,-419,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-27,0,0,0,-439,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-61,0,0,0,-441,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-73,0,0,0, - -443,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-74,0, - 0,0,-444,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -198,0,0,0,-412,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-505,0,0,0,0,-452,0,0, - 0,0,0,-455,-473,-445,-446,0,0,-42, - -103,-337,-448,0,0,0,-433,0,0,-417, - -456,-420,-44,0,-364,0,0,0,0,-464, - -466,-467,0,0,0,0,0,-71,0,0, - -469,0,0,0,-397,0,0,0,0,0, - 0,0,0,0,0,0,0,0,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,-457,0,-459,-463,0,0,0, - 0,0,0,0,-460,0,0,0,0,0, - -474,0,0,0,0,0,0,-369,0,0, - 0,0,-478,-476,0,0,0,-407,0,-485, - 0,0,0,0,0,-479,-493,-416,-502,0, - 0,0,-1,-516,0,0,0,0,-495,-510, - 0,0,-483,-124,0,0,0,-515,0,-360, - 0,0,-477,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-376,0,0,0,0,-426, - 0,0,0,0,0,-430,0,0,0,0, - -526,0,0,0,0,0,-488,-490,-126,0, - 0,0,-218,0,0,-492,0,0,0,0, - 0,0,-342,0,0,0,0,0,0,0, - 0,0,0,-264,0,0,-484,-494,0,0, - 0,0,0,0,0,0,-504,0,0,0, - 0,0,-227,0,0,0,0,0,0,0, - 0,-367,0,0,-219,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-498,0,0,0,0,0,-499, - -500,0,0,0,0,0,0,0,0,0, - 0,0,-518,0,-377,0,0,0,0,0, - 0,0,0,0,0,-517,0,0,0,-524, - 0,0,0,-523,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-462,0, - 0,0,0,0,0,0,0,0,0,-293, - 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,-268,0,0,0,0,0,0,0,0, - 0,0,0,0,-214,0,0,0,0,0, - 0,-269,0,-330,0,0,0,0,0,0, - 0,0,0,-193,0,0,0,0,0,0, - 0,-45,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-315,0,0,0,0,0,0,0, - 0,-339,0,0,0,0,0,0,0,-350, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-381,0,0,0,-382, - 0,0,0,0,0,0,0,-400,0,0, - 0,0,0,0,0,0,-414,0,0,0, - 0,-432,0,0,0,-256,-257,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-491,0,0,-66,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-471,-472,0,0,0,0,0,0, - 0,0,0,0,0,-46,-475,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,0,0,0,-435,0,0,0, - 0,0,-436,-480,-486,0,0,0,0,0, - 0,0,0,0,-220,0,-320,0,0,0, - 0,0,0,0,0,0,0,0,-221,0, - 0,0,0,-282,0,-424,-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, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,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; @@ -529,530 +533,529 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 170,4,54,83,83,33,33,66,66,38, + 169,4,133,82,82,33,33,66,66,38, 38,40,40,193,193,194,194,195,195,1, 1,15,15,15,15,15,15,15,15,16, - 16,16,14,11,11,8,8,8,8,8, - 8,2,67,67,5,5,12,12,12,12, - 44,44,134,134,135,62,62,43,17,17, + 16,16,14,11,11,6,6,6,6,6, + 6,2,64,64,5,5,12,12,44,44, + 134,134,135,55,55,43,17,17,17,17, 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,136,136, - 136,113,113,18,18,18,18,18,18,18, - 18,18,18,18,18,18,19,19,171,171, - 172,172,173,139,139,140,140,137,137,141, - 138,138,20,20,21,22,22,22,24,24, - 24,24,25,25,25,26,26,26,27,27, - 27,27,27,28,28,28,30,30,31,31, - 32,32,34,34,35,35,36,36,42,42, + 17,17,17,17,17,17,136,136,136,112, + 112,18,18,18,18,18,18,18,18,18, + 18,18,18,18,19,19,170,170,171,171, + 172,139,139,140,140,137,137,141,138,138, + 20,20,21,22,22,22,24,24,24,24, + 25,25,25,26,26,26,27,27,27,27, + 27,28,28,28,30,30,31,31,32,32, + 35,35,36,36,37,37,42,42,41,41, 41,41,41,41,41,41,41,41,41,41, - 41,41,41,39,29,142,142,97,97,174, - 174,92,196,196,68,68,68,68,68,68, - 68,68,68,69,69,69,65,65,55,55, - 175,175,70,70,70,103,103,176,176,71, - 71,71,177,177,72,72,72,72,72,73, - 73,84,84,84,84,84,84,84,49,49, - 49,49,49,114,114,115,115,50,178,23, - 23,23,23,23,48,48,87,87,87,87, - 87,149,149,144,144,144,144,144,145,145, - 145,146,146,146,147,147,147,148,148,148, - 88,88,88,88,88,89,89,89,13,13, - 13,13,13,13,13,13,13,13,13,100, - 119,119,119,119,119,119,117,117,117,118, - 118,151,151,150,150,121,121,104,79,79, - 80,81,52,47,152,152,53,51,86,86, - 153,153,143,143,122,123,123,76,76,154, - 154,63,63,63,59,59,58,64,64,75, - 75,57,57,57,90,90,99,98,98,61, - 61,60,60,56,56,45,101,101,101,93, - 93,93,94,94,95,95,95,96,96,105, - 105,105,107,107,106,106,197,197,91,91, - 180,180,180,180,180,125,46,46,156,179, - 179,126,126,126,126,127,158,181,181,37, - 37,116,128,128,128,128,108,108,120,120, - 120,159,160,160,160,160,160,160,160,160, - 160,160,160,184,184,182,182,183,183,161, - 161,161,161,162,185,110,109,109,186,186, - 163,163,163,163,102,102,102,187,187,9, - 9,10,188,188,189,164,155,155,165,165, - 166,167,167,6,6,7,168,168,168,168, - 168,168,168,168,168,168,168,168,168,168, - 168,168,168,168,168,168,168,168,168,168, - 168,168,168,168,168,168,168,168,168,168, - 168,168,168,168,168,168,168,168,77,82, - 82,169,169,130,130,131,131,131,131,131, - 131,3,132,132,129,129,111,111,85,78, - 74,157,157,112,112,190,190,190,133,133, - 124,124,191,191,170,170,1132,41,2834,2828, - 2219,3527,36,1077,33,37,1071,32,34,2820, - 31,29,58,1084,114,84,85,115,1131,1411, - 1180,1156,1276,1266,1368,31,1350,1411,1393,686, - 1436,1454,150,279,592,41,285,165,151,3218, - 1651,1530,41,1032,38,1698,1212,36,1077,341, - 37,1071,2909,2447,41,1032,38,238,1964,36, - 1077,33,37,1071,32,34,924,31,29,58, - 1084,114,84,85,115,1131,420,1180,1156,1276, - 1266,2516,2219,241,236,237,940,41,1688,390, - 2219,1263,41,1626,49,4350,280,48,1077,322, - 2304,324,497,2658,317,2273,1238,1694,3175,40, - 1751,2909,248,251,254,257,2591,3443,1238,41, - 3175,3256,867,279,540,2541,41,1032,38,2837, - 2165,36,1077,341,37,1071,496,4096,616,506, - 2696,2928,2932,3085,3176,4209,1655,41,1032,38, - 2647,1964,36,1077,33,37,1071,32,34,924, - 31,29,58,1084,114,84,85,115,1131,345, - 1180,1156,1276,1266,1368,1375,1350,1411,1393,4350, - 1436,1454,150,319,3590,324,3311,516,151,501, - 96,2773,71,110,3127,1238,41,1688,390,80, - 1238,4084,517,1655,41,1032,38,2647,1964,36, - 1077,33,37,1071,32,34,924,31,29,58, - 1084,114,84,85,115,1131,345,1180,1156,1276, - 1266,1368,430,1350,1411,1393,2654,1436,1454,150, - 1238,41,1688,390,516,151,864,592,2773,97, - 3461,2561,110,592,41,285,1467,512,3438,517, - 1190,41,1032,38,1511,3196,36,1077,33,37, - 1071,65,34,331,337,2920,31,433,3014,2922, - 743,1655,41,1032,38,2647,1964,36,1077,33, - 37,1071,32,34,924,31,29,58,1084,114, - 84,85,115,1131,345,1180,1156,1276,1266,1368, - 907,1350,1411,1393,512,1436,1454,150,1954,1238, - 41,3266,516,151,2719,501,2773,2938,102,3127, - 3127,2535,3061,1776,1651,3014,1887,517,1857,41, - 1032,38,2647,1964,36,1077,33,37,1071,32, - 34,924,31,29,58,1084,114,84,85,115, - 1131,345,1180,1156,1276,1266,1368,1357,1350,1411, - 1393,2647,1436,1454,150,1238,41,2128,2077,516, - 151,864,334,2773,332,50,3150,2799,41,286, - 345,1779,512,189,517,2647,69,2141,41,1032, - 38,2261,3287,36,1077,33,37,1071,32,34, - 3091,510,2253,3014,2685,1075,1986,41,1032,38, - 2658,1964,36,1077,33,37,1071,32,34,924, - 31,29,58,1084,114,84,85,115,1131,1847, - 1180,1156,1276,1266,1368,2998,1350,1411,1393,513, - 1436,1454,150,30,1530,1411,4065,381,151,1721, - 41,1032,38,104,1964,36,1077,33,37,1071, - 32,34,924,31,29,58,1084,114,84,85, - 115,1131,362,1180,1156,1276,1266,1368,1271,1350, - 1411,1393,1908,1436,1454,150,3059,3327,3335,4065, - 381,151,2447,41,1032,38,2261,1964,36,1077, - 33,37,1071,32,34,924,31,29,58,1084, - 114,84,85,115,1131,3460,1180,1156,1276,1266, - 1368,2016,1350,1411,1393,2271,2776,2151,459,1946, - 3127,31,387,3285,2747,1133,66,1921,41,1032, - 38,3037,1964,36,1077,33,37,1071,32,34, - 924,31,29,58,1084,114,84,85,115,1131, - 163,1180,1156,1276,1266,1368,1411,1350,1411,1393, - 960,1436,1454,150,2929,388,3285,4065,381,151, - 437,1545,335,2095,41,1032,38,3725,1964,36, - 1077,33,37,1071,32,34,924,31,29,58, - 1084,114,84,85,115,1131,1104,1180,1156,1276, - 1266,1368,404,1350,1411,1393,501,1436,1454,150, - 420,3127,1238,4083,165,151,2095,41,1032,38, - 327,1964,36,1077,33,37,1071,32,34,924, - 31,29,58,1084,114,84,85,115,1131,458, - 1180,1156,1276,1266,1368,31,1350,1411,1393,821, - 1436,1454,150,379,3285,3077,2700,375,151,2095, - 41,1032,38,334,1964,36,1077,33,37,1071, - 32,34,924,31,29,58,1084,114,84,85, - 115,1131,1411,1180,1156,1276,1266,1368,31,1350, - 1411,1393,1133,1436,1454,150,2907,1238,41,288, - 375,151,2033,41,1032,38,2166,3287,36,1077, - 33,37,1071,67,34,616,1701,1712,2095,41, - 1032,38,391,1964,36,1077,33,37,1071,32, - 34,924,31,29,58,1084,114,84,85,115, - 1131,374,1180,1156,1276,1266,1368,31,1350,1411, - 1393,715,1436,1454,150,1238,41,3175,282,375, - 151,1793,41,1032,38,3941,1964,36,1077,33, - 37,1071,32,34,924,31,29,58,1084,114, - 84,85,115,1131,373,1180,1156,1276,1266,1368, - 153,1350,1411,1393,2658,1436,1454,150,1238,3496, - 3175,82,149,151,2095,41,1032,38,60,1964, - 36,1077,33,37,1071,32,34,924,31,29, - 58,1084,114,84,85,115,1131,77,1180,1156, - 1276,1266,1368,1236,1350,1411,1393,2199,1436,1454, - 150,1238,3409,371,1980,166,151,2095,41,1032, - 38,756,1964,36,1077,33,37,1071,32,34, - 924,31,29,58,1084,114,84,85,115,1131, - 2775,1180,1156,1276,1266,1368,321,1350,1411,1393, - 2658,1436,1454,150,2644,41,3175,3525,162,151, - 2095,41,1032,38,1410,1964,36,1077,33,37, - 1071,32,34,924,31,29,58,1084,114,84, - 85,115,1131,76,1180,1156,1276,1266,1368,1751, - 1350,1411,1393,2658,1436,1454,150,2644,41,3175, - 282,161,151,2095,41,1032,38,2261,1964,36, - 1077,33,37,1071,32,34,924,31,29,58, - 1084,114,84,85,115,1131,61,1180,1156,1276, - 1266,1368,292,1350,1411,1393,2658,1436,1454,150, - 1238,41,3175,287,160,151,2095,41,1032,38, - 1260,1964,36,1077,33,37,1071,32,34,924, - 31,29,58,1084,114,84,85,115,1131,95, - 1180,1156,1276,1266,1368,455,1350,1411,1393,2658, - 1436,1454,150,1238,41,3175,284,159,151,2095, - 41,1032,38,316,1964,36,1077,33,37,1071, - 32,34,924,31,29,58,1084,114,84,85, - 115,1131,60,1180,1156,1276,1266,1368,1338,1350, - 1411,1393,501,1436,1454,150,651,3127,331,3461, - 158,151,2095,41,1032,38,2194,1964,36,1077, - 33,37,1071,32,34,924,31,29,58,1084, - 114,84,85,115,1131,679,1180,1156,1276,1266, - 1368,31,1350,1411,1393,4253,1436,1454,150,1238, - 41,3175,3634,157,151,2095,41,1032,38,334, - 1964,36,1077,33,37,1071,32,34,924,31, - 29,58,1084,114,84,85,115,1131,2240,1180, - 1156,1276,1266,1368,1353,1350,1411,1393,501,1436, - 1454,150,3484,3127,1469,1493,156,151,2095,41, - 1032,38,2658,1964,36,1077,33,37,1071,32, - 34,924,31,29,58,1084,114,84,85,115, - 1131,78,1180,1156,1276,1266,1368,31,1350,1411, - 1393,2435,1436,1454,150,98,1162,331,1411,155, - 151,2095,41,1032,38,334,1964,36,1077,33, - 37,1071,32,34,924,31,29,58,1084,114, - 84,85,115,1131,1651,1180,1156,1276,1266,1368, - 355,1350,1411,1393,2658,1436,1454,150,4305,1777, - 1934,2164,154,151,2095,41,1032,38,2230,1964, - 36,1077,33,37,1071,32,34,924,31,29, - 58,1084,114,84,85,115,1131,352,1180,1156, - 1276,1266,1368,680,1350,1411,1393,2489,1436,1454, - 150,59,2890,41,396,153,151,2095,41,1032, - 38,2540,1964,36,1077,33,37,1071,32,34, - 924,31,29,58,1084,114,84,85,115,1131, - 79,1180,1156,1276,1266,1368,356,1350,1411,1393, - 31,1436,1454,150,2754,675,762,1411,152,151, - 2051,41,1032,38,2688,1964,36,1077,33,37, - 1071,32,34,924,31,29,58,1084,114,84, - 85,115,1131,2768,1180,1156,1276,1266,1368,1966, - 1350,1411,1393,865,1436,3194,171,2095,41,1032, - 38,2219,1964,36,1077,33,37,1071,32,34, - 924,31,29,58,1084,114,84,85,115,1131, - 3813,1180,1156,1276,1266,1368,31,1350,1411,1393, - 650,1436,1454,150,1238,41,1688,390,147,151, - 329,3328,2805,330,1637,41,1688,390,2359,41, - 1032,38,1877,1964,36,1077,33,37,1071,32, - 34,924,31,29,58,1084,114,84,85,115, - 1131,57,1180,1156,1276,1266,1368,54,1350,1411, - 1393,57,1436,1454,150,2700,2814,1645,874,196, - 151,2447,41,1032,38,522,1964,36,1077,33, - 37,1071,32,34,924,31,29,58,1084,114, - 84,85,115,1131,1378,1180,1156,1276,1266,1368, - 31,1350,1411,1393,931,1436,3194,171,2447,41, - 1032,38,2112,1964,36,1077,33,37,1071,32, - 34,924,31,29,58,1084,114,84,85,115, - 1131,289,1180,1156,1276,1266,1368,31,1350,1411, - 1393,2632,1436,3194,171,2033,41,1032,38,2658, - 3287,36,1077,33,37,1071,66,34,442,2447, - 41,1032,38,296,1964,36,1077,33,37,1071, - 32,34,924,31,29,58,1084,114,84,85, - 115,1131,2651,1180,1156,1276,1266,1368,2812,1350, - 1411,1393,2740,1436,3194,171,2447,41,1032,38, - 2969,1964,36,1077,33,37,1071,32,34,924, - 31,29,58,1084,114,84,85,115,1131,2906, - 1180,1156,1276,1266,1368,31,1350,1411,1393,2788, - 1436,3194,171,2158,41,1032,38,2658,3196,36, - 1077,33,37,1071,64,34,2552,2447,41,1032, - 38,422,1964,36,1077,33,37,1071,32,34, - 924,31,29,58,1084,114,84,85,115,1131, - 2758,1180,1156,1276,1266,1368,31,1350,1411,1393, - 2885,1436,3194,171,2491,41,1032,38,421,1964, - 36,1077,33,37,1071,32,34,924,31,29, - 58,1084,114,84,85,115,1131,2197,1180,1156, - 1276,1266,1368,2591,1350,1411,1393,729,1436,3194, - 171,1911,41,1032,38,2658,2598,36,1077,46, - 37,1071,1969,2044,2125,2447,41,1032,38,424, - 1964,36,1077,33,37,1071,32,34,924,31, - 29,58,1084,114,84,85,115,1131,75,1180, - 1156,1276,1266,1368,2779,1350,1411,2697,2658,68, - 402,2552,2447,41,1032,38,4011,1964,36,1077, - 33,37,1071,32,34,924,31,29,58,1084, - 114,84,85,115,1131,2960,1180,1156,1276,1266, - 1368,74,1350,2653,2447,41,1032,38,327,1964, - 36,1077,33,37,1071,32,34,924,31,29, - 58,1084,114,84,85,115,1131,2617,1180,1156, - 1276,1266,1368,406,2682,2447,41,1032,38,328, - 1964,36,1077,33,37,1071,32,34,924,31, - 29,58,1084,114,84,85,115,1131,358,1180, - 1156,1276,2597,2447,41,1032,38,530,1964,36, - 1077,33,37,1071,32,34,924,31,29,58, - 1084,114,84,85,115,1131,101,1180,1156,1276, - 2633,2447,41,1032,38,857,1964,36,1077,33, - 37,1071,32,34,924,31,29,58,1084,114, - 84,85,115,1131,1513,1180,1156,2052,2447,41, - 1032,38,2081,1964,36,1077,33,37,1071,32, - 34,924,31,29,58,1084,114,84,85,115, - 1131,55,1180,1156,2247,2447,41,1032,38,857, - 1964,36,1077,33,37,1071,32,34,924,31, - 29,58,1084,114,84,85,115,1131,1704,1180, - 1156,2266,2447,41,1032,38,147,1964,36,1077, - 33,37,1071,32,34,924,31,29,58,1084, - 114,84,85,115,1131,262,1180,1156,2367,536, - 1911,41,1032,38,392,426,36,1077,2335,37, - 1071,2960,66,1911,41,1032,38,4462,235,36, - 1077,342,37,1071,163,1238,41,1688,390,2799, - 41,283,1,187,3488,867,536,1238,41,1688, - 390,210,221,665,209,218,219,220,222,303, - 176,2609,41,3070,1823,235,4050,2547,393,426, - 175,163,432,190,174,177,178,179,180,181, - 187,3488,867,2700,431,1411,2834,2937,210,221, - 665,209,218,219,220,222,446,176,57,2890, - 41,396,857,2803,1645,915,1573,175,188,383, - 191,174,177,178,179,180,181,2535,41,1688, - 390,31,3105,1314,1375,1479,2447,41,1032,38, - 243,1964,36,1077,33,37,1071,32,34,924, - 31,29,58,1084,114,84,85,115,1131,290, - 1180,2454,240,1954,279,1485,41,1032,38,1612, - 2700,36,1077,341,37,1071,1384,1508,105,1737, - 2081,1238,41,1688,390,2846,41,283,238,245, - 2572,2447,41,1032,38,2654,1964,36,1077,33, - 37,1071,32,34,924,31,29,58,1084,114, - 84,85,115,1884,241,236,237,3835,279,4350, - 857,395,426,322,2304,324,161,280,317,2273, - 52,3150,336,337,2265,3409,301,238,31,859, - 354,3550,3084,248,251,254,257,2591,1651,592, - 41,452,1659,1971,4528,540,669,1166,346,1791, - 1705,351,2064,246,236,237,3532,4453,2265,3409, - 2125,2696,2928,2932,3085,3176,4209,2447,41,1032, - 38,281,1964,36,1077,33,37,1071,32,34, - 924,31,29,58,1084,114,84,85,115,1131, - 2276,1180,2508,1706,41,1032,38,4404,2690,36, - 1077,341,37,1071,2630,2553,1339,1766,41,1032, - 38,1698,3127,36,1077,341,37,1071,354,394, - 426,1911,41,1032,38,4015,353,36,1077,2551, - 37,1071,2278,2575,446,368,346,1791,1705,351, - 2890,41,396,2460,344,291,31,4350,4470,2661, - 3535,322,2304,324,2873,1375,317,2273,2939,2744, - 859,4350,2647,4088,334,322,2304,324,354,3443, - 317,2273,349,658,2005,3419,536,1643,2724,291, - 2064,345,3127,1404,357,4453,346,1791,1705,351, - 2499,529,2433,530,1784,235,2462,4223,1258,3714, - 2658,163,2140,2773,445,3716,3717,2219,2613,3419, - 187,3488,867,2144,532,428,2654,2647,210,221, - 665,209,218,219,220,222,2700,176,436,310, - 314,1973,536,73,335,4395,345,175,3633,1411, - 4071,174,177,178,179,180,181,867,4110,2125, - 3275,235,354,333,337,2700,66,163,1909,238, - 3769,4516,378,238,353,523,187,3488,867,536, - 348,1791,1705,351,210,221,665,209,218,219, - 220,222,2873,176,1075,250,236,237,235,253, - 236,237,300,175,163,2658,185,174,177,178, - 179,180,181,187,3488,867,354,1238,41,1688, - 390,210,221,665,209,218,219,220,222,610, - 176,308,106,536,346,1791,1705,351,72,2658, - 175,2772,1784,183,174,177,178,179,180,181, - 1110,1335,235,429,57,2647,2357,66,163,3991, - 1645,2836,4520,2658,1375,2521,697,187,3488,867, - 536,2849,3322,376,2685,210,221,665,209,218, - 219,220,222,326,176,1241,41,1688,390,235, - 2042,455,530,2219,175,163,63,184,174,177, - 178,179,180,181,187,3488,867,1238,41,1688, - 390,441,210,221,665,209,218,219,220,222, - 784,176,57,1335,536,2654,238,2647,1645,3076, - 1636,175,2658,867,194,174,177,178,179,180, - 181,2263,504,235,57,2647,2685,2701,524,163, - 1645,3310,256,236,237,2701,2941,871,187,3488, - 867,536,3552,337,2685,62,210,221,665,209, - 218,219,220,222,1381,176,1415,41,1688,390, - 235,502,503,31,2219,175,163,3455,4118,174, - 177,178,179,180,181,187,3488,867,1238,41, - 1688,390,521,210,221,665,209,218,219,220, - 222,958,176,57,504,536,66,238,66,1645, - 979,4537,175,4542,867,199,174,177,178,179, - 180,181,363,31,235,57,2748,2647,626,523, - 163,1645,2569,259,236,237,2852,1903,1045,187, - 3488,867,536,501,503,2960,345,210,221,665, - 209,218,219,220,222,2219,176,1238,41,1688, - 390,235,1238,41,1688,390,175,163,2773,193, - 174,177,178,179,180,181,187,3488,867,1746, - 408,1668,3696,227,210,221,665,209,218,219, - 220,222,31,176,57,4113,4120,849,31,451, - 1645,874,3545,175,2960,1118,201,174,177,178, - 179,180,181,2447,41,1032,38,1526,1964,36, - 1077,33,37,1071,32,34,924,31,29,58, - 1084,114,84,85,115,1131,2903,1875,2447,41, - 1032,38,307,1964,36,1077,33,37,1071,32, - 34,924,31,29,58,1084,114,84,85,115, - 1131,2540,1876,1367,41,3641,38,1698,3127,36, - 1077,341,37,1071,2215,41,1032,38,1612,1650, - 36,1077,341,37,1071,2447,41,1032,38,1774, - 1964,36,1077,33,37,1071,32,34,924,31, - 29,58,1084,114,84,85,115,1962,1238,41, - 1688,390,2844,2658,31,31,2647,4350,3143,2700, - 334,322,2304,324,2945,1779,317,2273,4350,2647, - 55,1906,322,2304,324,2685,2599,317,2273,985, - 1133,2700,1027,41,452,57,325,4528,2685,354, - 525,1645,2705,4223,1228,41,1032,38,2960,3127, - 36,1077,341,37,1071,167,2995,346,1791,1705, - 351,2447,41,1032,38,526,1964,36,1077,33, - 37,1071,32,34,924,31,29,58,1084,114, - 84,85,115,2006,2658,1734,186,2667,41,1688, - 390,2960,1801,504,2658,2709,2999,384,4350,2647, - 1133,335,322,2304,324,2815,362,318,2273,2647, - 2908,2964,31,2997,417,3646,2274,109,235,354, - 3534,3327,3335,1483,57,163,522,3640,235,205, - 1645,1430,501,503,207,4123,2272,348,1791,1705, - 351,212,221,665,211,218,219,220,222,2701, - 2940,212,221,665,211,218,219,220,222,1238, - 41,1688,390,31,31,2857,31,1133,2790,2647, - 1133,4000,213,215,217,298,299,3391,382,223, - 214,216,213,215,217,298,299,3391,235,223, - 214,216,4056,2781,3017,163,57,449,3716,3717, - 31,1395,1645,1774,4190,1748,2221,1318,3021,4078, - 2690,212,221,665,211,218,219,220,222,4078, - 2956,2403,41,1032,38,1837,1964,36,1077,33, - 37,1071,32,34,924,31,29,58,1084,94, - 84,85,213,215,217,298,299,3391,3000,223, - 214,216,2447,41,1032,38,1196,1964,36,1077, - 33,37,1071,32,34,924,31,29,58,1084, - 114,84,85,93,31,3015,2966,3023,3605,4078, - 2985,2447,1694,1032,1704,2899,1964,36,1077,33, - 37,1071,32,34,924,31,29,58,1084,114, - 84,85,92,2447,41,1032,38,3028,1964,36, - 1077,33,37,1071,32,34,924,31,29,58, - 1084,114,84,85,91,2447,41,1032,38,3019, - 1964,36,1077,33,37,1071,32,34,924,31, - 29,58,1084,114,84,85,90,2447,41,1032, - 38,2481,1964,36,1077,33,37,1071,32,34, - 924,31,29,58,1084,114,84,85,89,2447, - 41,1032,38,3030,1964,36,1077,33,37,1071, - 32,34,924,31,29,58,1084,114,84,85, - 88,2447,41,1032,38,3032,1964,36,1077,33, - 37,1071,32,34,924,31,29,58,1084,114, - 84,85,87,2447,41,1032,38,2589,1964,36, - 1077,33,37,1071,32,34,924,31,29,58, - 1084,114,84,85,86,2313,41,1032,38,3034, - 1964,36,1077,33,37,1071,32,34,924,31, - 29,58,1084,114,84,85,112,2447,41,1032, - 38,88,1964,36,1077,33,37,1071,32,34, - 924,31,29,58,1084,114,84,85,117,2447, - 41,1032,38,3037,1964,36,1077,33,37,1071, - 32,34,924,31,29,58,1084,114,84,85, - 116,2447,41,1032,38,2658,1964,36,1077,33, - 37,1071,32,34,924,31,29,58,1084,114, - 84,85,113,1902,41,1032,38,1698,2960,36, - 1077,341,37,1071,2658,2999,3038,3039,3334,536, - 31,31,2876,3043,536,1133,2647,1238,41,297, - 31,1476,31,31,3442,2753,3110,2647,4216,2647, - 1312,3044,175,345,163,235,204,450,2599,163, - 163,3048,1133,187,3488,2219,345,4350,235,1440, - 2746,322,2304,324,528,2773,317,2273,212,221, - 665,211,218,219,220,222,1354,167,2773,1404, - 202,212,221,665,211,218,219,220,222,1789, - 1583,41,1688,390,31,867,2658,2960,2979,213, - 215,217,298,299,3391,31,519,214,216,3471, - 378,588,213,215,217,298,299,3391,2785,518, - 214,216,2647,3049,2960,310,314,57,2918,380, - 2282,4057,2647,1645,55,306,31,3050,2948,3051, - 4109,235,2647,1591,3010,1569,4316,1133,1133,2042, - 3054,235,927,31,1350,630,3769,956,814,4414, - 1375,235,208,2960,212,221,665,211,218,219, - 220,222,163,163,212,221,665,211,218,219, - 220,222,534,169,212,221,665,211,218,219, - 220,222,4566,203,1870,213,215,217,298,299, - 3391,206,224,214,216,213,215,217,298,299, - 3391,3992,309,214,216,213,215,217,298,299, - 3391,2654,498,214,216,1781,41,3641,38,1698, - 1375,36,1077,341,37,1071,1530,41,1032,38, - 1698,3014,36,1077,341,37,1071,2658,2658,2604, - 41,1688,390,31,3105,5236,31,1133,3604,337, - 3963,521,244,1500,41,1032,38,5236,3127,36, - 1077,341,37,1071,2175,41,297,2960,2658,4350, - 3086,3140,163,322,2304,324,279,2960,317,2273, - 4350,2654,2265,1201,322,2304,324,2647,3599,317, - 2273,985,2175,3688,297,31,3454,5236,5236,1133, - 238,3177,1404,586,2876,302,235,4350,4324,5236, - 335,322,2304,324,2658,4104,320,2273,4054,337, - 2658,2959,5236,5236,163,3404,242,236,237,1124, - 407,4382,2876,2658,2308,1500,41,1032,38,280, - 3127,36,1077,341,37,1071,2960,3113,311,314, - 2960,5236,5236,3204,2658,249,252,255,258,2591, - 408,409,410,298,299,3391,4320,540,1921,1238, - 41,297,5236,5236,5236,5236,418,3646,5236,5236, - 1238,41,1688,390,228,3347,5236,3268,200,4350, - 5236,5236,335,322,2304,324,1921,5236,318,2273, - 1530,41,1032,38,1698,5236,36,1077,341,37, - 1071,5236,1838,41,1032,38,3393,57,36,1077, - 341,37,1071,1645,2768,1547,5236,5236,5236,2647, - 3127,5236,1276,5236,1547,5236,2647,3599,2647,3127, - 5236,5236,411,413,1241,41,1688,390,2685,5236, - 403,5236,31,5236,4350,235,2647,2685,322,2304, - 324,5236,5236,317,2273,1216,4350,4402,5236,5236, - 319,3590,324,4237,5236,345,4099,5236,1124,407, - 4382,57,334,2825,41,1688,390,1645,55,5236, - 5236,334,1415,41,1688,390,5236,2773,5236,5236, - 2825,41,1688,390,5236,5236,1257,5236,1790,408, - 409,410,298,299,3391,2907,362,5236,5236,5236, - 57,5236,5236,5236,3484,362,1645,55,5236,57, - 2177,3327,3335,5236,3347,1645,55,57,5236,2177, - 3327,3335,5236,1645,55,735,2825,41,1688,390, - 2825,41,1688,390,2851,5236,5236,5236,2825,41, - 1688,390,780,5236,5236,5236,2922,2979,41,1688, - 390,5236,2982,41,1688,390,2599,2599,5236,5236, - 1133,1133,5236,57,5236,5236,5236,57,5236,1645, - 55,411,414,1645,55,57,3003,5236,5236,31, - 536,1645,55,536,57,167,167,5236,2565,57, - 1645,55,2577,31,31,1645,55,536,536,345, - 3292,5236,345,5236,5236,163,31,31,163,3987, - 2647,536,5236,5236,4339,195,345,345,960,5236, - 5236,4370,163,163,2773,5236,5236,31,5236,345, - 345,2647,195,195,5236,1526,163,31,4370,4370, - 5236,2647,5236,31,31,2702,195,2647,2647,2647, - 345,2773,4370,3083,3152,31,5236,2599,5236,1133, - 345,1133,1798,5236,5236,5236,345,345,345,31, - 5236,5236,2773,1133,31,5236,2599,31,1133,197, - 1133,1133,2773,2089,163,5236,167,5236,2773,2773, - 4291,5236,5236,508,2930,5236,4207,4208,163,506, - 533,5236,5236,163,5236,167,163,5236,3025,5236, - 4238,5236,5236,2615,5236,5236,4303,5236,5236,5236, - 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, - 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, - 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, - 5236,5236,4247,5236,3524,5236,5236,5236,5236,5236, - 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, - 5236,5236,5236,3974,5236,5236,5236,5236,5236,5236, - 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, - 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, - 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, - 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, - 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, - 5236,5236,5236,5236,5236,4290,5236,0,45,5256, - 0,45,5255,0,565,35,0,439,816,0, - 453,1205,0,44,5256,0,44,5255,0,2485, - 133,0,1,443,0,457,995,0,456,1116, - 0,565,47,0,1248,99,0,565,389,0, - 41,39,0,38,40,0,45,646,0,1, - 1086,0,1,5514,0,1,5513,0,1,5512, - 0,1,5511,0,1,5510,0,1,5509,0, - 1,5508,0,1,5507,0,1,5506,0,1, - 5505,0,1,5504,0,45,1,5256,0,45, - 1,5255,0,631,1,0,5476,247,0,5475, - 247,0,5576,247,0,5575,247,0,5503,247, - 0,5502,247,0,5501,247,0,5500,247,0, - 5499,247,0,5498,247,0,5497,247,0,5496, - 247,0,5514,247,0,5513,247,0,5512,247, - 0,5511,247,0,5510,247,0,5509,247,0, - 5508,247,0,5507,247,0,5506,247,0,5505, - 247,0,5504,247,0,45,247,5256,0,45, - 247,5255,0,5280,247,0,56,5256,0,56, - 5255,0,51,5278,0,51,43,0,5256,56, - 0,5255,56,0,2485,135,0,2485,134,0, - 5242,1,0,5241,1,0,243,3466,0,390, - 38,0,38,390,0,389,35,0,35,389, - 0,5568,444,0,1307,444,0,1,100,0, - 43,55,0,5280,1,0,45,1,0,55, - 43,0,500,3366,0,5280,234,1,0,45, - 234,1,0,234,416,0,43,5256,0,43, - 5255,0,5278,53,0,53,43,0,5256,42, - 0,5255,42,0,1,5256,2,0,1,5255, - 2,0,43,5256,2,0,43,5255,2,0, - 5246,405,0,5245,405,0,1,581,0,1, - 646,0,1,2943,0,234,415,0,5568,103, - 0,1307,103,0,41,81,0,3203,321,0, - 1,5568,0,1,1307,0,45,1,5256,2, - 0,45,1,5255,2,0,45,5256,2,0, - 45,5255,2,0,284,4546,0,500,3995,0, - 234,1,0,234,226,0,234,225,0,1, - 1832,0,1,2629,0,5248,1,0,5244,1, - 0,234,1,3879,0,5245,234,0,3901,234, - 0,5248,385,0,5247,385,0,4002,234,0, - 10,12,0,8,10,12,0,192,3231,0, - 4201,385,0,8,12,0 + 41,39,29,142,142,96,96,173,173,91, + 196,196,67,67,67,67,67,67,67,67, + 67,68,68,68,65,65,54,54,174,174, + 69,69,69,102,102,175,175,70,70,70, + 176,176,71,71,71,71,71,72,72,83, + 83,83,83,83,83,83,49,49,49,49, + 49,113,113,114,114,50,177,23,23,23, + 23,23,48,48,86,86,86,86,86,149, + 149,144,144,144,144,144,145,145,145,146, + 146,146,147,147,147,148,148,148,87,87, + 87,87,87,88,88,88,13,13,13,13, + 13,13,13,13,13,13,13,97,118,118, + 118,118,118,118,116,116,116,117,117,151, + 151,150,150,120,120,103,78,78,79,80, + 52,47,152,152,53,51,85,85,153,153, + 143,143,121,122,122,75,75,154,154,62, + 62,62,59,59,58,63,63,74,74,57, + 57,57,89,89,99,98,98,61,61,60, + 60,56,56,45,100,100,100,92,92,92, + 93,93,94,94,94,95,95,104,104,104, + 106,106,105,105,197,197,90,90,179,179, + 179,179,179,124,46,46,156,178,178,125, + 125,125,125,126,158,180,180,34,34,115, + 127,127,127,127,107,107,119,119,119,159, + 160,160,160,160,160,160,160,160,160,160, + 160,183,183,181,181,182,182,161,161,161, + 161,162,184,109,108,108,185,185,163,163, + 163,163,101,101,101,186,186,8,8,9, + 187,187,188,164,155,155,165,165,166,167, + 167,7,7,10,189,189,189,189,189,189, + 189,189,189,189,189,189,189,189,189,189, + 189,189,189,189,189,189,189,189,189,189, + 189,189,189,189,189,189,189,189,189,189, + 189,189,189,189,189,189,76,81,81,168, + 168,129,129,130,130,130,130,130,130,3, + 131,131,128,128,110,110,84,77,73,157, + 157,111,111,190,190,190,132,132,123,123, + 191,191,169,169,1132,41,2650,2649,1090,4160, + 33,36,37,1016,1022,32,34,2632,31,29, + 56,1084,112,82,83,113,1109,1260,1285,1197, + 1388,1345,1431,2037,1423,1517,1467,717,277,1553, + 1560,148,504,41,3013,163,149,2508,41,946, + 38,1260,3057,33,36,37,1016,1022,63,34, + 494,2396,41,946,38,236,2882,33,36,37, + 1016,1022,32,34,935,31,29,56,1084,112, + 82,83,113,1109,30,1285,1197,1388,1345,2323, + 239,234,235,504,1646,1768,40,2396,41,946, + 38,278,2882,33,36,37,1016,1022,32,34, + 935,31,29,56,1084,112,82,83,91,246, + 249,252,255,2472,2803,41,281,2659,41,946, + 38,1074,3057,33,36,37,1016,1022,62,34, + 331,41,283,1236,1269,4697,674,727,2690,2987, + 3146,3607,3643,4301,1660,41,946,38,2833,2882, + 33,36,37,1016,1022,32,34,935,31,29, + 56,1084,112,82,83,113,1109,343,1285,1197, + 1388,1345,1431,67,1423,1517,1467,2176,3370,1553, + 1560,148,4691,1113,1343,514,149,2176,2048,3626, + 2514,2598,4691,4691,2668,99,678,41,1622,388, + 515,1660,41,946,38,2833,2882,33,36,37, + 1016,1022,32,34,935,31,29,56,1084,112, + 82,83,113,1109,343,1285,1197,1388,1345,1431, + 55,1423,1517,1467,728,1212,1553,1560,148,1603, + 2871,1260,514,149,332,728,3626,572,2493,2519, + 1332,2421,1604,66,510,2425,187,515,592,2161, + 41,946,38,3182,4702,33,36,37,1016,1022, + 32,34,2729,508,75,2787,983,1660,41,946, + 38,2833,2882,33,36,37,1016,1022,32,34, + 935,31,29,56,1084,112,82,83,113,1109, + 343,1285,1197,1388,1345,1431,2203,1423,1517,1467, + 2011,510,1553,1560,148,2176,100,572,514,149, + 4691,440,3626,1983,1943,48,2955,102,4340,2806, + 1913,495,2787,515,1865,41,946,38,2833,2882, + 33,36,37,1016,1022,32,34,935,31,29, + 56,1084,112,82,83,113,1109,343,1285,1197, + 1388,1345,1431,1542,1423,1517,1467,1911,402,1553, + 1560,148,332,44,44,514,149,684,741,3626, + 504,41,1622,388,331,41,283,510,1337,4708, + 515,1650,41,946,38,1335,4702,33,36,37, + 1016,1022,65,34,2780,2901,2167,435,2787,2519, + 1994,41,946,38,428,2882,33,36,37,1016, + 1022,32,34,935,31,29,56,1084,112,82, + 83,113,1109,389,1285,1197,1388,1345,1431,1396, + 1423,1517,1467,1512,511,1553,1560,148,4691,2665, + 3441,379,149,1729,41,946,38,2519,2882,33, + 36,37,1016,1022,32,34,935,31,29,56, + 1084,112,82,83,113,1109,2231,1285,1197,1388, + 1345,1431,2493,1423,1517,1467,329,335,1553,1560, + 148,457,2514,3441,379,149,2102,41,946,38, + 333,2882,33,36,37,1016,1022,32,34,935, + 31,29,56,1084,112,82,83,113,1109,3480, + 1285,1197,1388,1345,1431,44,1423,1517,1467,817, + 1260,1553,1560,148,1980,385,2155,163,149,456, + 1929,41,946,38,2577,2882,33,36,37,1016, + 1022,32,34,935,31,29,56,1084,112,82, + 83,113,1109,74,1285,1197,1388,1345,1431,417, + 1423,1517,1467,1088,1418,1553,1560,148,386,2155, + 3441,379,149,2216,41,394,2102,41,946,38, + 3562,2882,33,36,37,1016,1022,32,34,935, + 31,29,56,1084,112,82,83,113,1109,3404, + 1285,1197,1388,1345,1431,592,1423,1517,1467,2519, + 4541,1553,1560,148,504,41,286,373,149,504, + 3241,1718,41,295,2396,41,946,38,674,2882, + 33,36,37,1016,1022,32,34,935,31,29, + 56,1084,112,82,83,113,1109,582,1285,1197, + 1388,1345,1431,1088,2497,377,2155,2102,41,946, + 38,1848,2882,33,36,37,1016,1022,32,34, + 935,31,29,56,1084,112,82,83,113,1109, + 3716,1285,1197,1388,1345,1431,356,1423,1517,1467, + 1980,4037,1553,1560,148,528,2848,1088,373,149, + 372,2102,41,946,38,2519,2882,33,36,37, + 1016,1022,32,34,935,31,29,56,1084,112, + 82,83,113,1109,2068,1285,1197,1388,1345,1431, + 730,1423,1517,1467,400,2488,1553,1560,148,290, + 770,1596,373,149,3573,1036,1427,1801,41,946, + 38,2900,2882,33,36,37,1016,1022,32,34, + 935,31,29,56,1084,112,82,83,113,1109, + 161,1285,1197,1388,1345,1431,355,1423,1517,1467, + 532,371,1553,1560,148,528,44,57,147,149, + 928,2102,41,946,38,1814,2882,33,36,37, + 1016,1022,32,34,935,31,29,56,1084,112, + 82,83,113,1109,353,1285,1197,1388,1345,1431, + 324,1423,1517,1467,1260,369,1553,1560,148,528, + 1260,2730,164,149,2102,41,946,38,156,2882, + 33,36,37,1016,1022,32,34,935,31,29, + 56,1084,112,82,83,113,1109,59,1285,1197, + 1388,1345,1431,93,1423,1517,1467,1260,44,1553, + 1560,148,4353,234,2730,160,149,2102,41,946, + 38,60,2882,33,36,37,1016,1022,32,34, + 935,31,29,56,1084,112,82,83,113,1109, + 58,1285,1197,1388,1345,1431,2807,1423,1517,1467, + 538,1270,1553,1560,148,444,4563,1259,159,149, + 2102,41,946,38,314,2882,33,36,37,1016, + 1022,32,34,935,31,29,56,1084,112,82, + 83,113,1109,76,1285,1197,1388,1345,1431,44, + 1423,1517,1467,2355,941,1553,1560,148,2781,504, + 3128,158,149,2102,41,946,38,1140,2882,33, + 36,37,1016,1022,32,34,935,31,29,56, + 1084,112,82,83,113,1109,77,1285,1197,1388, + 1345,1431,44,1423,1517,1467,2749,44,1553,1560, + 148,2145,1260,46,157,149,2102,41,946,38, + 1415,2882,33,36,37,1016,1022,32,34,935, + 31,29,56,1084,112,82,83,113,1109,161, + 1285,1197,1388,1345,1431,96,1423,1517,1467,2519, + 44,1553,1560,148,3125,1260,248,156,149,2102, + 41,946,38,853,2882,33,36,37,1016,1022, + 32,34,935,31,29,56,1084,112,82,83, + 113,1109,2552,1285,1197,1388,1345,1431,350,1423, + 1517,1467,1260,44,1553,1560,148,2946,504,3821, + 155,149,2102,41,946,38,1355,2882,33,36, + 37,1016,1022,32,34,935,31,29,56,1084, + 112,82,83,113,1109,1762,1285,1197,1388,1345, + 1431,327,1423,1517,1467,1260,2622,1553,1560,148, + 3147,1474,1317,154,149,2102,41,946,38,1413, + 2882,33,36,37,1016,1022,32,34,935,31, + 29,56,1084,112,82,83,113,1109,1805,1285, + 1197,1388,1345,1431,44,1423,1517,1467,2803,44, + 1553,1560,148,3327,1260,1647,153,149,2102,41, + 946,38,75,2882,33,36,37,1016,1022,32, + 34,935,31,29,56,1084,112,82,83,113, + 1109,1708,1285,1197,1388,1345,1431,73,1423,1517, + 1467,1260,44,1553,1560,148,2704,1260,2578,152, + 149,2102,41,946,38,2596,2882,33,36,37, + 1016,1022,32,34,935,31,29,56,1084,112, + 82,83,113,1109,72,1285,1197,1388,1345,1431, + 71,1423,1517,1467,1260,44,1553,1560,148,3537, + 1260,2665,151,149,2102,41,946,38,2900,2882, + 33,36,37,1016,1022,32,34,935,31,29, + 56,1084,112,82,83,113,1109,70,1285,1197, + 1388,1345,1431,2228,1423,1517,1467,1260,44,1553, + 1560,148,2856,1260,1613,150,149,2059,41,946, + 38,768,2882,33,36,37,1016,1022,32,34, + 935,31,29,56,1084,112,82,83,113,1109, + 61,1285,1197,1388,1345,1431,60,1423,1517,1467, + 381,591,1553,2961,169,2102,41,946,38,852, + 2882,33,36,37,1016,1022,32,34,935,31, + 29,56,1084,112,82,83,113,1109,2150,1285, + 1197,1388,1345,1431,1357,1423,1517,1467,1301,44, + 1553,1560,148,4126,2519,354,145,149,44,328, + 2781,939,1036,1980,2309,41,946,38,1589,2882, + 33,36,37,1016,1022,32,34,935,31,29, + 56,1084,112,82,83,113,1109,161,1285,1197, + 1388,1345,1431,3407,1423,1517,1467,581,404,1553, + 1560,148,444,1714,2720,194,149,2396,41,946, + 38,1026,2882,33,36,37,1016,1022,32,34, + 935,31,29,56,1084,112,82,83,113,1109, + 2883,1285,1197,1388,1345,1431,103,1423,1517,1467, + 2781,1260,1553,2961,169,2396,41,946,38,2487, + 2882,33,36,37,1016,1022,32,34,935,31, + 29,56,1084,112,82,83,113,1109,2150,1285, + 1197,1388,1345,1431,323,1423,1517,1467,301,2781, + 1553,2961,169,1773,41,946,38,1853,1980,47, + 36,37,1016,1022,2396,41,946,38,294,2882, + 33,36,37,1016,1022,32,34,935,31,29, + 56,1084,112,82,83,113,1109,225,1285,1197, + 1388,1345,1431,325,1423,1517,1467,1175,2277,1553, + 2961,169,2396,41,946,38,2233,2882,33,36, + 37,1016,1022,32,34,935,31,29,56,1084, + 112,82,83,113,1109,1710,1285,1197,1388,1345, + 1431,326,1423,1517,1467,1118,2781,1553,2961,169, + 1790,41,946,38,2520,1980,46,36,37,1016, + 1022,2396,41,946,38,420,2882,33,36,37, + 1016,1022,32,34,935,31,29,56,1084,112, + 82,83,113,1109,305,1285,1197,1388,1345,1431, + 1850,1423,1517,1467,418,3629,1553,2961,169,2439, + 41,946,38,419,2882,33,36,37,1016,1022, + 32,34,935,31,29,56,1084,112,82,83, + 113,1109,2884,1285,1197,1388,1345,1431,44,1423, + 1517,1467,4151,2519,1553,2961,169,1790,41,946, + 38,843,2158,1940,36,37,1016,1022,2396,41, + 946,38,422,2882,33,36,37,1016,1022,32, + 34,935,31,29,56,1084,112,82,83,113, + 1109,2781,1285,1197,1388,1345,1431,44,1423,1517, + 1467,3692,2724,2605,2655,3243,2396,41,946,38, + 3812,2882,33,36,37,1016,1022,32,34,935, + 31,29,56,1084,112,82,83,113,1109,184, + 1285,1197,1388,1345,1431,104,1423,1517,2505,2396, + 41,946,38,930,2882,33,36,37,1016,1022, + 32,34,935,31,29,56,1084,112,82,83, + 113,1109,1155,1285,1197,1388,1345,1431,2150,1423, + 2461,2396,41,946,38,669,2882,33,36,37, + 1016,1022,32,34,935,31,29,56,1084,112, + 82,83,113,1109,1155,1285,1197,1388,2383,2396, + 41,946,38,2110,2882,33,36,37,1016,1022, + 32,34,935,31,29,56,1084,112,82,83, + 113,1109,2979,1285,1197,1388,2420,1306,41,946, + 38,2858,4476,33,36,37,1016,1022,339,34, + 2115,504,41,1622,388,504,41,1622,388,1227, + 41,946,38,2666,4476,33,36,37,1016,1022, + 339,34,1650,41,946,38,1911,4702,33,36, + 37,1016,1022,64,34,277,2753,41,284,55, + 2781,1809,351,390,424,320,2067,322,52,315, + 2029,592,1190,41,2831,1504,4567,4165,504,41, + 295,352,3389,504,41,1622,388,320,2067,322, + 1911,315,2029,504,41,1768,2971,321,203,344, + 1861,1290,349,352,2021,1398,55,3328,504,41, + 1676,1633,287,520,592,1603,2508,277,279,4602, + 3314,344,1861,1290,349,2396,41,946,38,1595, + 2882,33,36,37,1016,1022,32,34,935,31, + 29,56,1084,112,82,83,113,1109,408,1285, + 1197,1991,2396,41,946,38,288,2882,33,36, + 37,1016,1022,32,34,935,31,29,56,1084, + 112,82,83,113,1109,2781,1285,1197,2107,1499, + 340,3050,2396,41,946,38,366,2882,33,36, + 37,1016,1022,32,34,935,31,29,56,1084, + 112,82,83,113,1109,394,1285,1197,2135,2396, + 41,946,38,202,2882,33,36,37,1016,1022, + 32,34,935,31,29,56,1084,112,82,83, + 113,1109,1546,1285,1197,2154,1639,41,946,38, + 4497,4545,33,36,37,1016,1022,339,34,2626, + 2566,504,41,1622,388,2998,1703,1724,1188,2833, + 2833,4691,1036,2847,1785,1337,1703,534,262,2173, + 2833,4691,534,4175,1790,41,946,38,343,2407, + 2020,36,37,1016,1022,431,3662,165,1613,2407, + 1387,232,161,332,320,2067,322,161,315,2029, + 3710,185,2271,243,1118,1989,185,2271,730,3126, + 2850,1296,2146,332,208,219,4463,207,216,217, + 218,220,174,332,2936,4310,2665,44,200,1878, + 44,3163,1260,173,534,188,172,175,176,177, + 178,179,1911,44,1,2780,360,2833,534,1458, + 3241,236,2237,343,1374,3507,360,308,312,161, + 1675,3061,3103,334,335,107,343,232,2727,1070, + 1675,3061,3103,161,2150,3626,244,234,235,2059, + 1914,669,185,2271,730,4691,781,2717,3626,3705, + 208,219,4463,207,216,217,218,220,174,1682, + 331,41,450,1458,3241,4624,2152,1980,299,173, + 186,189,172,175,176,177,178,179,1534,41, + 946,38,2858,4476,33,36,37,1016,1022,339, + 34,2692,2150,2482,41,1622,388,333,736,4615, + 201,2927,2744,592,3243,3774,241,730,4628,44, + 2753,41,281,1818,352,44,2645,3001,2176,1113, + 2833,376,94,4691,2691,108,1188,277,2656,289, + 1036,1746,346,1861,1290,349,320,2067,322,232, + 315,2029,1416,41,1622,388,418,41,450,391, + 424,4624,352,523,236,165,1260,351,1260,2446, + 3242,2184,210,219,4463,209,216,217,218,220, + 344,1861,1290,349,3351,332,55,592,524,239, + 234,235,4632,289,44,1603,1854,2936,1203,3083, + 278,2146,211,213,215,296,297,3168,352,221, + 212,214,504,41,1622,388,669,3507,246,249, + 252,255,2472,2490,3242,2072,344,1861,1290,349, + 1074,1677,1417,374,1595,443,3640,3648,520,4106, + 2742,2521,69,41,1622,388,430,2690,2987,3146, + 3607,3643,4301,2396,41,946,38,2147,2882,33, + 36,37,1016,1022,32,34,935,31,29,56, + 1084,112,82,83,113,1109,277,1285,2241,2396, + 41,946,38,2895,2882,33,36,37,1016,1022, + 32,34,935,31,29,56,1084,112,82,83, + 113,1109,1980,1285,2242,1488,41,3576,38,4497, + 4545,33,36,37,1016,1022,339,34,236,1855, + 2781,447,3640,3648,393,424,2232,765,41,1622, + 388,1104,1718,3596,295,95,2045,349,108,3056, + 2833,534,730,248,234,235,1260,1316,504,41, + 1768,280,4537,44,78,2800,522,4246,304,343, + 232,55,332,320,2067,322,161,315,2029,527, + 1603,1984,1848,2736,436,185,2271,730,534,448, + 2010,3626,2972,208,219,4463,207,216,217,218, + 220,174,530,2452,4310,2718,44,232,2781,2833, + 3702,2624,173,161,3814,172,175,176,177,178, + 179,523,185,2271,730,534,2175,669,2407,2425, + 208,219,4463,207,216,217,218,220,174,504, + 3254,1768,80,2724,232,2068,206,2833,2361,173, + 161,183,172,175,176,177,178,179,1461,185, + 2271,730,504,41,1622,388,2407,208,219,4463, + 207,216,217,218,220,174,415,3584,610,44, + 2844,2189,534,1036,2833,2833,173,236,181,172, + 175,176,177,178,179,360,55,1246,44,50, + 2955,232,3200,2407,2407,1603,724,161,1552,1810, + 3061,3103,251,234,235,697,185,2271,730,534, + 426,1673,2899,1499,208,219,4463,207,216,217, + 218,220,174,502,2686,392,424,3410,232,2216, + 41,394,3571,173,161,182,172,175,176,177, + 178,179,784,185,2271,730,534,1577,41,1768, + 3294,208,219,4463,207,216,217,218,220,174, + 502,361,499,501,2409,232,1577,41,1768,280, + 173,161,192,172,175,176,177,178,179,871, + 185,2271,730,534,504,41,1768,285,208,219, + 4463,207,216,217,218,220,174,1337,1873,499, + 501,3631,232,504,41,1622,388,173,161,3931, + 172,175,176,177,178,179,958,185,2271,730, + 534,504,41,1768,282,208,219,4463,207,216, + 217,218,220,174,2781,2781,3722,429,3803,232, + 504,41,1768,3574,173,161,197,172,175,176, + 177,178,179,1045,185,2271,730,534,2665,2790, + 2781,2485,208,219,4463,207,216,217,218,220, + 174,2145,204,300,1508,2833,232,1980,2833,2857, + 2687,173,161,191,172,175,176,177,178,179, + 1911,185,2271,730,343,331,335,343,4327,208, + 219,4463,207,216,217,218,220,174,44,1911, + 44,44,3647,526,1247,3561,673,730,173,563, + 199,172,175,176,177,178,179,2396,41,946, + 38,376,2882,33,36,37,1016,1022,32,34, + 935,31,29,56,1084,112,82,83,113,1109, + 75,1775,2396,41,946,38,298,2882,33,36, + 37,1016,1022,32,34,935,31,29,56,1084, + 112,82,83,113,1109,306,1811,1550,41,946, + 38,2941,4545,33,36,37,1016,1022,339,34, + 1844,41,946,38,4497,4476,33,36,37,1016, + 1022,339,34,2396,41,946,38,1337,2882,33, + 36,37,1016,1022,32,34,935,31,29,56, + 1084,112,82,83,113,1891,1260,504,41,1622, + 388,1911,1854,3438,333,320,2067,322,1188,316, + 2029,2901,1036,44,2943,1547,2738,4270,320,2067, + 322,352,315,2029,2935,2495,2947,2511,439,378, + 453,449,2216,41,394,1296,2923,165,2665,346, + 1861,1290,349,2396,41,946,38,2769,2882,33, + 36,37,1016,1022,32,34,935,31,29,56, + 1084,112,82,83,113,1899,1713,382,1732,44, + 855,1972,1316,950,1260,2855,335,4537,380,2937, + 2945,308,312,2862,504,41,295,2885,2972,1349, + 41,3576,38,4497,4476,33,36,37,1016,1022, + 339,34,44,3697,1847,1260,3520,3235,236,2396, + 41,946,38,3705,2882,33,36,37,1016,1022, + 32,34,935,31,29,56,1084,112,82,83, + 113,1941,2771,254,234,235,2833,2781,3272,3909, + 352,1260,2832,2974,236,2949,2833,320,2067,322, + 2874,315,2029,2864,2818,232,2964,2833,344,1861, + 1290,349,2965,1260,2010,232,342,2976,44,257, + 234,235,1036,1461,3309,226,232,2978,210,219, + 4463,209,216,217,218,220,88,3365,210,219, + 4463,209,216,217,218,220,3032,161,519,210, + 219,4463,209,216,217,218,220,1255,211,213, + 215,296,297,3168,1260,221,212,214,211,213, + 215,296,297,3168,44,221,212,214,1036,211, + 213,215,296,297,3168,427,517,212,214,2984, + 2986,2988,2990,2760,2402,4106,3420,4193,2994,175, + 416,3584,2980,3556,1226,4106,3439,2396,1646,946, + 1681,2995,2882,33,36,37,1016,1022,32,34, + 935,31,29,56,1084,112,82,83,90,2396, + 41,946,38,940,2882,33,36,37,1016,1022, + 32,34,935,31,29,56,1084,112,82,83, + 89,2396,41,946,38,2999,2882,33,36,37, + 1016,1022,32,34,935,31,29,56,1084,112, + 82,83,88,2396,41,946,38,3000,2882,33, + 36,37,1016,1022,32,34,935,31,29,56, + 1084,112,82,83,87,2396,41,946,38,3003, + 2882,33,36,37,1016,1022,32,34,935,31, + 29,56,1084,112,82,83,86,2396,41,946, + 38,1119,2882,33,36,37,1016,1022,32,34, + 935,31,29,56,1084,112,82,83,85,2396, + 41,946,38,2896,2882,33,36,37,1016,1022, + 32,34,935,31,29,56,1084,112,82,83, + 84,2263,41,946,38,5230,2882,33,36,37, + 1016,1022,32,34,935,31,29,56,1084,112, + 82,83,110,2396,41,946,38,5230,2882,33, + 36,37,1016,1022,32,34,935,31,29,56, + 1084,112,82,83,115,2396,41,946,38,5230, + 2882,33,36,37,1016,1022,32,34,935,31, + 29,56,1084,112,82,83,114,2396,41,946, + 38,5230,2882,33,36,37,1016,1022,32,34, + 935,31,29,56,1084,112,82,83,111,1369, + 41,946,38,4497,4476,33,36,37,1016,1022, + 339,34,2353,41,946,38,1260,2882,33,36, + 37,1016,1022,32,34,935,31,29,56,1084, + 92,82,83,2706,2847,5230,44,2833,1036,44, + 1036,5230,5230,1036,5230,5230,2739,5230,44,4164, + 2833,5230,1036,5230,5230,1260,232,320,2067,322, + 5230,315,2029,161,5230,161,2718,5230,161,232, + 2833,5230,205,3364,1296,2548,5230,161,1724,210, + 219,4463,209,216,217,218,220,1761,3383,2407, + 5230,1337,210,219,4463,209,216,217,218,220, + 2186,41,1622,388,2781,765,41,1622,388,211, + 213,215,296,297,3168,2925,516,212,214,2833, + 309,312,211,213,215,296,297,3168,2953,222, + 212,214,2833,1980,55,5230,5230,5230,232,55, + 5230,5230,198,1603,2284,5230,5230,5230,1603,53, + 5230,232,2665,1188,5230,2421,360,1036,5230,5230, + 2456,210,219,4463,209,216,217,218,220,5230, + 2896,3061,3103,730,210,219,4463,209,216,217, + 218,220,165,5230,5230,5230,1337,521,5230,2924, + 335,211,213,215,296,297,3168,5230,307,212, + 214,5230,5230,5230,211,213,215,296,297,3168, + 2885,496,212,214,1369,41,946,38,4497,4476, + 33,36,37,1016,1022,339,34,5230,1369,41, + 946,38,4497,4476,33,36,37,1016,1022,339, + 34,2540,41,1622,388,5230,736,2665,5230,1853, + 1388,41,946,38,242,4545,33,36,37,1016, + 1022,339,34,5230,5230,44,44,2889,5230,1036, + 1036,1036,320,2067,322,277,315,2029,5230,5230, + 678,41,1622,388,3440,335,320,2067,322,2021, + 315,2029,5230,1200,161,161,161,2833,4713,5230, + 5230,5230,236,3887,1767,1804,167,333,320,2067, + 322,5230,318,2029,55,5230,232,5230,5230,5230, + 5230,519,5230,1603,53,5230,44,240,234,235, + 1036,5230,1188,1188,5230,1164,1036,1036,278,870, + 405,4402,1502,41,946,38,3035,4476,33,36, + 37,1016,1022,339,34,161,247,250,253,256, + 2472,165,165,5230,5230,1934,5230,2857,1074,406, + 407,408,296,297,3168,5230,1388,41,946,38, + 401,4545,33,36,37,1016,1022,339,34,5230, + 5230,44,5230,5230,3123,1036,5230,5230,5230,5230, + 317,3511,322,1974,41,946,38,2636,4476,33, + 36,37,1016,1022,339,34,678,41,1622,388, + 161,1275,5230,2724,5230,2833,4713,2833,2732,3076, + 4076,5230,5230,333,320,2067,322,2176,316,2029, + 4115,5230,4691,5230,232,5230,2407,5230,5230,5230, + 55,5230,409,411,5230,5230,5230,5230,5230,1603, + 2710,317,3511,322,5230,5230,5230,870,405,4402, + 5230,2483,5230,5230,907,5230,4481,678,41,1622, + 388,765,41,1622,388,678,41,1622,388,5230, + 5230,5230,5230,5230,332,5230,1924,406,407,408, + 296,297,3168,678,41,1622,388,678,41,1622, + 388,55,5230,502,5230,55,5230,5230,5230,55, + 1603,53,3123,5230,1603,53,4436,5230,1603,2768, + 5230,5230,920,5230,5230,5230,2674,55,5230,5230, + 2483,55,678,41,1622,388,1603,53,5230,5230, + 1603,53,500,501,5230,2878,5230,1924,2651,534, + 5230,5230,2942,5230,678,41,1622,388,2489,41, + 1622,388,2516,41,1622,388,55,5230,343,5230, + 409,412,5230,5230,161,1603,53,5230,5230,5230, + 5230,44,5230,5230,193,534,5230,3333,55,5230, + 4288,5230,55,5230,5230,5230,55,1603,53,5230, + 5230,1603,53,5230,343,1603,53,5230,5230,3557, + 161,5230,5230,2478,5230,5230,5230,3644,5230,5230, + 581,504,41,1622,388,5230,3626,504,41,1622, + 388,5230,504,41,1622,388,5230,1380,504,41, + 1622,388,5230,504,41,1622,388,195,5230,5230, + 44,5230,5230,5230,534,55,5230,5230,5230,5230, + 5230,55,5230,5230,1603,3049,55,5230,5230,5230, + 1603,2850,55,343,44,1603,1854,55,534,161, + 5230,1603,654,5230,5230,5230,1603,2688,44,193, + 5230,5230,534,5230,5230,4288,5230,343,44,5230, + 44,44,2833,161,2833,2833,44,5230,44,5230, + 2833,343,2833,193,44,5230,5230,161,2833,4288, + 3390,343,5230,343,343,5230,44,193,5230,343, + 2833,343,5230,4288,5230,5230,5230,343,5230,5230, + 5230,5230,5230,3626,5230,3626,3626,5230,5230,343, + 5230,3626,3634,3626,1689,5230,1725,1751,5230,3626, + 5230,5230,1632,5230,506,5230,5230,5230,5230,5230, + 504,3626,5230,5230,5230,5230,3665,5230,5230,5230, + 5230,5230,531,5230,5230,5230,5230,5230,5230,5230, + 3701,5230,0,45,5250,0,45,5249,0,913, + 35,0,437,914,0,451,1065,0,44,623, + 0,44,5250,0,44,5249,0,2582,131,0, + 1,441,0,455,949,0,454,997,0,3199, + 97,0,913,387,0,41,39,0,38,40, + 0,45,623,0,1,798,0,1,5506,0, + 1,5505,0,1,5504,0,1,5503,0,1, + 5502,0,1,5501,0,1,5500,0,1,5499, + 0,1,5498,0,1,5497,0,1,5496,0, + 45,1,5250,0,45,1,5249,0,2063,1, + 0,5468,245,0,5467,245,0,5568,245,0, + 5567,245,0,5495,245,0,5494,245,0,5493, + 245,0,5492,245,0,5491,245,0,5490,245, + 0,5489,245,0,5488,245,0,5506,245,0, + 5505,245,0,5504,245,0,5503,245,0,5502, + 245,0,5501,245,0,5500,245,0,5499,245, + 0,5498,245,0,5497,245,0,5496,245,0, + 45,5250,245,0,45,5249,245,0,5274,245, + 0,5250,54,0,5249,54,0,49,5272,0, + 49,43,0,2582,133,0,2582,132,0,5236, + 1,0,5235,1,0,2658,241,0,38,388, + 0,35,387,0,5560,442,0,1336,442,0, + 1,98,0,53,43,0,5274,1,0,45, + 1,0,498,3131,0,5274,1,233,0,45, + 1,233,0,233,414,0,5250,43,0,5249, + 43,0,5272,51,0,43,51,0,5250,42, + 0,5249,42,0,5250,2,43,0,5249,2, + 43,0,5240,403,0,5239,403,0,1,4274, + 0,1,3401,0,1,623,0,233,413,0, + 5560,101,0,1336,101,0,41,79,0,1929, + 319,0,1,5560,0,1,1336,0,3568,282, + 0,498,4093,0,1,233,0,233,224,0, + 233,223,0,1,1123,0,1,3259,0,5242, + 1,0,5238,1,0,1,233,3737,0,5239, + 233,0,3746,233,0,5242,383,0,5241,383, + 0,3809,233,0,10,12,0,8,10,12, + 0,190,3346,0,3953,383,0,8,12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1065,321 +1068,316 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 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, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,0,55,56,57,58,0, - 60,61,62,63,64,0,66,67,68,4, - 0,71,72,3,0,75,76,77,78,79, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,0,44,0,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 60,61,62,63,64,65,66,67,0,1, + 2,71,72,5,0,75,76,77,78,79, 80,81,82,83,84,85,86,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,0,31,32, + 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,0,55,56,57,58,0,60,61,62, - 63,64,0,66,67,68,97,98,71,72, - 0,9,75,76,77,78,79,80,81,82, + 0,44,0,46,47,48,49,50,51,52, + 53,54,55,56,57,58,101,60,61,62, + 63,64,65,66,67,0,97,98,71,72, + 0,0,75,76,77,78,79,80,81,82, 83,84,85,86,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,0,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 46,47,48,49,50,51,52,53,0,55, - 56,57,58,73,60,61,62,63,64,0, - 66,67,68,97,98,71,72,0,9,75, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,42,0,44,59, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,0,60,61,62,63,64,65, + 66,67,9,88,89,71,72,0,0,75, 76,77,78,79,80,81,82,83,84,85, 86,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,0,31,32,33,34,35,36,37,38, - 39,40,41,42,43,44,45,46,47,48, - 49,50,51,52,53,0,55,56,57,58, - 0,60,61,62,63,64,0,66,67,68, - 0,0,6,72,3,5,75,76,77,78, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,0,44,59,46,47,48, + 49,50,51,52,53,54,55,56,57,58, + 0,60,61,62,63,64,65,66,67,9, + 0,1,2,72,4,0,75,76,77,78, 79,80,81,82,83,84,85,86,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,0,31, + 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,0,55,56,57,58,0,60,61, - 62,63,64,6,66,67,68,91,92,0, - 72,101,0,75,76,77,78,79,80,81, + 42,0,44,0,46,47,48,49,50,51, + 52,53,54,55,56,57,58,0,60,61, + 62,63,64,65,66,67,0,0,1,2, + 72,4,0,75,76,77,78,79,80,81, 82,83,84,85,86,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,0,31,32,33,34, - 35,36,37,38,39,40,41,42,43,44, - 45,46,47,48,49,50,51,52,53,70, - 55,56,57,58,0,60,61,62,63,64, - 0,66,67,68,4,0,6,72,3,9, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,0,44, + 73,46,47,48,49,50,51,52,53,54, + 55,56,57,58,101,60,61,62,63,64, + 65,66,67,0,1,2,90,72,92,0, 75,76,77,78,79,80,81,82,83,84, 85,86,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,0,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,0,55,56,57, - 58,0,60,61,62,63,64,0,66,67, - 68,0,1,2,72,4,0,75,76,77, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,0,44,0,46,47, + 48,49,50,51,52,53,54,55,56,57, + 58,0,60,61,62,63,64,65,66,67, + 0,0,11,12,72,4,0,75,76,77, 78,79,80,81,82,83,84,85,86,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,0, + 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,76,55,56,57,58,0,60, - 61,62,63,64,0,66,67,68,0,0, - 6,72,4,4,75,76,77,78,79,80, + 41,42,0,44,0,46,47,48,49,50, + 51,52,53,54,55,56,57,58,0,60, + 61,62,63,64,65,66,67,0,1,2, + 90,72,92,0,75,76,77,78,79,80, 81,82,83,84,85,86,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,0,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 0,55,56,57,58,0,60,61,62,63, - 64,0,66,67,68,91,92,6,72,101, - 0,75,76,77,78,79,80,81,82,83, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,0, + 44,73,46,47,48,49,50,51,52,53, + 54,55,56,57,58,0,60,61,62,63, + 64,65,66,67,0,1,2,0,72,0, + 3,75,76,77,78,79,80,81,82,83, 84,85,86,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,0,31,32,33,34,35,36, - 37,38,39,40,41,42,43,44,45,46, - 47,48,49,50,51,52,53,0,55,56, - 57,58,0,60,61,62,63,64,0,66, - 67,68,91,92,99,72,0,0,75,76, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,42,59,44,59,46, + 47,48,49,50,51,52,53,54,55,56, + 57,58,0,60,61,62,63,64,65,66, + 67,0,0,11,12,72,4,0,75,76, 77,78,79,80,81,82,83,84,85,86, 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, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,0,55,56,57,58,73, - 60,61,62,63,64,122,66,67,68,0, - 1,2,72,95,5,75,76,77,78,79, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,0,44,0,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 60,61,62,63,64,65,66,67,0,0, + 0,90,72,92,4,75,76,77,78,79, 80,81,82,83,84,85,86,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,0,31,32, + 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,0,55,56,57,58,0,60,61,62, - 63,64,0,66,67,68,0,1,2,72, - 4,0,75,76,77,78,79,80,81,82, + 61,44,0,46,47,48,49,50,51,52, + 53,54,55,56,57,58,0,60,61,62, + 63,64,65,66,67,0,97,98,90,72, + 92,0,75,76,77,78,79,80,81,82, 83,84,85,86,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,0,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 46,47,48,49,50,51,52,53,0,55, - 56,57,58,0,60,61,62,63,64,0, - 66,67,68,4,11,12,72,0,0,75, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,42,0,44,0, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,0,60,61,62,63,64,65, + 66,67,0,88,89,3,72,0,0,75, 76,77,78,79,80,81,82,83,84,85, - 86,0,1,2,3,4,5,6,7,30, - 9,10,11,12,70,14,15,16,17,18, + 86,0,1,2,3,4,5,6,7,0, + 9,10,11,12,57,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, - 29,0,31,32,33,34,35,36,37,38, - 39,40,41,42,43,44,45,46,47,48, - 49,50,51,52,53,0,55,70,57,0, - 1,2,61,4,5,0,7,66,67,68, - 0,1,2,3,4,5,6,7,8,9, - 10,0,0,13,14,15,16,17,18,19, - 20,21,22,23,24,25,65,0,1,2, - 3,4,5,6,7,0,9,0,1,2, - 0,1,2,54,44,45,46,47,48,49, - 50,51,52,53,54,55,56,0,58,0, - 65,61,0,1,2,70,66,67,68,7, - 0,71,72,73,17,0,1,2,3,4, - 5,6,7,8,9,10,59,87,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,44,45,46,47,48,49,50,51,52, - 53,0,55,0,114,115,116,0,59,44, - 45,46,47,48,49,50,51,52,53,54, - 55,56,121,58,0,100,61,0,0,1, - 2,66,67,68,10,28,71,72,73,0, - 1,2,0,4,0,3,0,8,6,3, - 8,9,87,11,12,13,0,1,2,3, - 4,5,6,7,0,9,65,0,26,27, - 0,70,30,0,114,115,116,10,54,114, - 115,116,54,0,0,61,59,14,15,16, - 17,18,19,20,21,22,23,24,25,0, - 0,59,99,64,0,1,2,65,8,45, - 46,69,70,71,30,73,74,44,45,46, - 47,48,49,50,51,52,53,0,55,73, - 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,0,73,0,117, - 118,3,120,121,6,0,8,9,69,11, - 12,13,102,8,0,1,2,3,4,5, - 6,7,0,9,26,27,30,117,30,0, - 1,2,3,4,5,6,7,0,9,0, - 0,102,0,104,105,106,107,108,109,110, - 111,112,113,11,12,0,117,59,118,0, - 1,2,3,65,5,0,7,69,70,71, - 30,73,74,59,0,70,0,1,2,74, - 4,59,6,69,8,9,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,0,1,2,117,118,0,120,121, - 0,1,2,3,4,5,6,7,73,9, - 10,11,12,0,14,15,16,100,18,19, - 20,21,22,23,24,25,26,27,28,29, - 74,31,32,33,34,35,36,37,38,39, - 40,41,42,43,90,0,0,1,2,4, - 96,95,0,1,2,3,4,57,6,0, - 0,9,62,63,0,1,2,3,4,5, - 6,7,72,9,10,11,12,0,14,15, - 16,4,18,19,20,21,22,23,24,25, - 26,27,28,29,0,31,32,33,34,35, - 36,37,38,39,40,41,42,43,62,63, - 0,59,0,0,54,0,1,2,3,0, - 5,57,7,8,11,12,62,63,69,65, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,0,14,15,16,4,18,19, - 20,21,22,23,24,25,26,27,28,29, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,43,59,0,1,2,3,4, - 5,6,7,0,9,0,0,57,0,74, - 0,1,2,3,64,5,8,7,88,89, - 0,71,0,1,2,3,4,5,6,7, - 0,9,10,11,12,30,14,15,16,59, - 18,19,20,21,22,23,24,25,26,27, - 28,29,0,31,32,33,34,35,36,37, - 38,39,40,41,42,43,0,0,1,2, - 3,65,5,70,7,8,0,1,2,57, - 13,5,74,73,62,63,0,1,2,3, - 4,5,6,7,28,9,10,11,12,69, - 14,15,16,95,18,19,20,21,22,23, - 24,25,26,27,28,29,0,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 54,0,1,2,3,0,5,0,7,8, - 0,1,2,57,13,5,30,7,62,63, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,0,14,15,16,30,18,19, - 20,21,22,23,24,25,26,27,28,29, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,43,59,0,1,2,0,4, - 0,6,0,3,9,3,8,57,8,0, - 8,13,3,0,64,0,1,2,3,4, - 5,6,7,8,9,10,11,12,65,14, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,0,44,59,46,47,48, + 49,50,51,52,53,54,55,0,57,0, + 1,2,61,4,91,8,65,66,67,0, + 1,2,3,4,5,6,7,8,9,10, + 121,0,13,14,15,16,17,18,19,20, + 21,22,23,24,25,0,0,1,2,3, + 4,5,43,7,8,0,1,2,99,4, + 122,6,43,44,9,46,47,48,49,50, + 51,52,53,54,55,56,45,58,0,0, + 61,74,88,89,65,66,67,8,0,0, + 71,72,73,4,0,1,2,3,4,5, + 6,7,8,9,10,59,87,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 74,76,103,104,105,0,1,2,3,4, + 5,6,7,44,9,0,0,43,44,4, + 46,47,48,49,50,51,52,53,54,55, + 56,0,58,74,0,61,0,3,70,65, + 66,67,0,1,2,71,72,73,0,1, + 2,3,4,5,0,7,0,3,100,44, + 6,87,8,9,59,11,12,13,0,1, + 2,3,4,5,69,7,45,103,104,105, + 26,27,46,47,68,43,0,0,1,2, + 3,4,5,6,7,0,9,0,3,45, + 14,15,16,17,18,19,20,21,22,23, + 24,25,0,59,0,0,1,2,103,104, + 105,73,68,69,70,71,0,73,74,3, + 44,75,46,47,48,49,50,51,52,53, + 54,55,88,89,90,91,92,93,94,95, + 96,97,98,99,100,101,102,0,1,2, + 106,107,108,109,110,111,112,113,114,115, + 116,117,118,0,120,121,3,62,63,6, + 68,8,9,69,11,12,13,0,1,2, + 3,4,5,6,7,69,9,100,0,26, + 27,0,1,2,3,4,5,0,7,8, + 3,0,1,2,13,4,102,6,45,0, + 9,107,108,109,110,111,112,113,114,115, + 116,117,59,0,1,2,3,4,5,0, + 7,68,69,70,71,0,73,74,3,0, + 1,2,3,4,5,6,7,59,9,0, + 73,88,89,90,91,92,93,94,95,96, + 97,98,99,100,101,102,0,1,2,106, + 107,108,109,110,111,112,113,114,115,116, + 117,118,59,120,121,0,1,2,3,4, + 5,6,7,0,9,10,11,12,59,14, 15,16,0,18,19,20,21,22,23,24, - 25,26,27,28,29,0,31,32,33,34, - 35,36,37,38,39,40,41,42,43,59, - 28,59,0,1,2,65,4,5,70,7, - 70,0,57,0,74,30,74,0,69,64, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,0,14,15,16,4,18,19, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,0,1, + 2,3,4,5,6,7,0,9,45,0, + 1,2,57,4,5,43,7,62,63,0, + 1,2,3,4,5,6,7,72,9,10, + 11,12,0,14,15,16,0,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,1,2,0,4,0,6,0, + 8,9,0,0,68,3,57,0,1,2, + 8,62,63,0,0,8,3,68,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,69,14,15,16,0,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,59,0,1,2,68,74,5,102,7, + 68,64,70,107,0,57,74,3,43,0, + 1,2,64,91,5,0,7,88,89,71, + 0,1,2,3,4,5,6,7,0,9, + 10,11,12,0,14,15,16,0,18,19, 20,21,22,23,24,25,26,27,28,29, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,43,0,1,2,3,4,5, - 6,7,59,9,10,11,12,44,14,15, - 16,0,18,19,20,21,22,23,24,25, - 26,27,28,29,0,31,32,33,34,35, - 36,37,38,39,40,41,42,43,0,0, - 0,1,2,0,4,5,3,7,5,6, - 0,57,9,73,11,12,17,0,1,2, - 119,4,5,0,7,0,3,0,118,26, - 27,4,29,30,0,1,2,114,115,116, - 30,57,8,44,45,46,47,48,49,50, - 51,52,53,0,55,30,0,30,0,88, - 89,3,59,5,6,62,63,9,65,11, - 12,54,69,70,0,1,2,3,0,5, - 0,7,59,30,26,27,8,29,30,0, - 65,88,89,90,91,92,93,94,64,0, - 97,98,99,100,101,102,103,104,105,106, - 107,108,109,110,111,112,113,59,93,94, - 62,63,0,65,0,1,2,69,70,30, - 0,1,2,59,4,0,6,0,3,9, - 3,0,64,0,88,89,88,89,90,91, - 92,93,94,73,65,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, - 0,9,10,11,12,0,14,15,16,0, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,0,1,2,3,4,5,0, + 7,8,0,0,0,3,13,57,45,10, + 6,8,62,63,0,1,2,3,4,5, + 6,7,0,9,10,11,12,0,14,15, + 16,68,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,99,95,96, + 0,59,0,0,1,2,3,4,8,6, + 8,57,9,70,71,13,62,63,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,69,14,15,16,68,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,59,0,1,2,3,4,5,0, + 7,71,0,1,2,57,4,8,0,0, + 8,3,64,0,1,2,3,4,5,6, + 7,8,9,10,11,12,0,14,15,16, + 0,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,1,2,68, + 4,70,6,64,0,9,64,0,1,2, + 57,4,8,6,0,45,9,64,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,0,14,15,16,4,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,1,2,3,4,5,6,7,0, + 9,10,11,12,0,14,15,16,74,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,0,0,3,3,5, + 6,0,0,9,45,11,12,0,57,45, + 0,1,2,17,4,5,0,7,11,12, + 26,27,0,29,0,0,118,68,0,4, + 8,6,68,0,9,0,1,2,0,45, + 44,17,46,47,48,49,50,51,52,53, + 54,55,0,59,95,96,62,63,0,95, + 96,45,68,69,70,0,1,2,44,68, + 46,47,48,49,50,51,52,53,54,55, + 0,0,88,89,90,4,64,93,94,95, + 96,97,98,99,100,101,102,62,63,0, + 106,68,108,109,110,111,112,113,114,115, + 116,117,0,1,2,3,4,5,6,7, + 0,9,10,11,12,45,14,15,16,91, 18,19,20,21,22,23,24,25,26,27, - 28,29,61,31,32,33,34,35,36,37, - 38,39,40,41,42,43,0,95,0,1, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,103,104,105,0,1, 2,3,4,5,6,7,0,9,10,11, 12,59,14,15,16,0,18,19,20,21, - 22,23,24,25,26,27,28,29,0,31, + 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, - 54,9,10,11,12,57,14,15,16,0, + 42,0,0,1,2,3,4,5,6,7, + 0,9,10,11,12,57,14,15,16,0, 18,19,20,21,22,23,24,25,26,27, - 28,29,0,31,32,33,34,35,36,37, - 38,39,40,41,42,43,0,1,2,3, - 4,5,6,7,0,9,10,11,12,0, - 14,15,16,4,18,19,20,21,22,23, - 24,25,26,27,28,29,0,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 0,1,2,3,4,5,6,7,0,9, - 10,11,12,44,14,15,16,75,18,19, - 20,21,22,23,24,25,26,27,28,29, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,43,0,1,2,17,4,0, - 0,1,2,3,10,5,0,7,14,15, - 16,17,18,19,20,21,22,23,24,25, - 0,1,2,65,44,45,46,47,48,49, - 50,51,52,53,0,55,30,3,44,45, - 46,47,48,49,50,51,52,53,0,55, - 0,1,2,54,4,61,6,0,0,9, - 66,67,68,0,1,2,8,4,0,1, - 2,65,4,10,54,0,0,14,15,16, - 17,18,19,20,21,22,23,24,25,0, - 1,2,3,4,5,6,7,8,9,93, - 94,0,13,0,1,2,17,44,45,46, - 47,48,49,50,51,52,53,0,55,30, - 0,73,54,3,61,8,0,1,2,66, - 67,68,74,44,45,46,47,48,49,50, - 51,52,53,0,55,88,89,0,59,0, - 1,2,3,4,5,6,7,8,9,0, - 0,0,13,74,88,89,17,8,0,1, - 2,3,4,5,6,7,8,9,0,1, - 2,13,4,0,6,17,3,9,62,63, - 30,74,0,44,45,46,47,48,49,50, - 51,52,53,0,55,0,0,0,59,3, - 3,8,0,1,2,3,4,5,6,7, - 8,9,54,74,56,13,58,0,60,17, - 71,0,26,27,0,1,2,90,0,71, - 0,3,30,96,0,1,2,3,4,5, - 6,7,8,9,0,87,95,13,0,1, - 2,17,0,0,0,59,54,64,56,0, - 58,0,60,0,0,1,2,3,4,5, - 6,7,8,9,0,1,2,13,54,0, - 0,17,30,0,1,2,65,59,54,87, - 56,30,58,0,60,0,1,2,0,103, - 70,0,54,10,3,71,0,1,2,3, - 4,5,6,7,8,9,120,65,54,13, - 56,87,58,17,60,0,1,2,3,4, - 5,6,7,8,9,71,119,54,13,0, - 1,2,17,0,90,93,94,54,0,54, - 96,87,0,90,61,0,8,0,0,96, - 54,3,56,65,58,10,60,0,1,2, - 3,4,5,6,7,8,9,71,0,54, - 13,56,30,58,17,60,8,0,0,0, - 0,13,3,87,0,8,8,0,1,2, - 3,4,5,6,7,8,9,17,0,0, - 13,56,87,0,17,0,8,8,70,71, - 0,54,13,56,4,58,69,60,0,1, - 2,0,1,2,44,45,46,47,48,49, - 50,51,52,53,0,55,0,0,0,0, - 30,54,0,56,87,58,8,60,71,0, - 8,13,74,0,0,13,0,8,0,3, - 0,8,0,3,30,3,30,0,65,0, - 3,0,74,0,87,70,0,0,0,3, - 3,3,0,0,30,3,3,0,0,0, - 0,0,3,0,0,0,0,0,0,0, - 0,0,0,119,0,0,69,0,69,0, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,0,1,2,3,4, + 5,6,7,43,9,10,11,12,0,14, + 15,16,4,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,1, + 2,3,4,5,6,7,0,9,10,11, + 12,0,14,15,16,0,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,1,2,0,4,0,0,0,1, + 2,10,0,6,0,14,15,16,17,18, + 19,20,21,22,23,24,25,0,1,2, + 0,4,5,0,7,0,1,2,0,0, + 0,8,28,3,73,44,8,46,47,48, + 49,50,51,52,53,54,55,45,28,0, + 1,2,61,4,0,59,65,66,67,10, + 43,0,68,14,15,16,17,18,19,20, + 21,22,23,24,25,0,1,2,3,4, + 5,6,7,8,9,0,0,0,13,3, + 93,94,17,44,71,46,47,48,49,50, + 51,52,53,54,55,0,45,0,1,2, + 61,6,26,27,65,66,67,88,89,44, + 45,46,47,48,49,50,51,52,53,54, + 55,0,45,0,59,0,1,2,3,4, + 5,6,7,8,9,59,118,0,13,74, + 43,0,17,0,0,1,2,3,4,5, + 6,7,8,9,0,1,2,13,0,1, + 2,17,4,5,0,7,45,0,45,44, + 6,46,47,48,49,50,51,52,53,54, + 55,0,106,0,59,0,0,43,93,94, + 0,0,0,3,8,4,120,43,8,74, + 56,43,58,0,60,0,1,2,3,4, + 5,6,7,8,9,71,0,0,13,0, + 1,2,17,0,5,8,0,1,2,0, + 45,87,6,10,5,0,45,0,0,1, + 2,3,4,5,6,7,8,9,43,59, + 45,13,0,1,2,17,70,93,94,0, + 74,56,43,58,74,60,43,0,0,43, + 0,1,2,3,4,5,6,7,8,9, + 0,43,45,13,61,17,70,17,8,0, + 0,74,87,13,56,43,58,0,60,0, + 1,2,0,1,2,70,0,0,91,71, + 73,4,44,43,46,47,48,49,50,51, + 52,53,54,55,0,87,56,68,58,70, + 60,0,1,2,3,4,5,6,7,8, + 9,71,43,0,13,43,0,0,17,0, + 1,2,45,10,8,8,0,87,69,13, + 13,0,0,0,1,2,3,4,5,6, + 7,8,9,0,43,0,13,0,17,4, + 17,8,0,0,0,8,43,56,0,58, + 13,60,43,10,0,0,8,3,0,0, + 0,45,71,8,61,44,43,46,47,48, + 49,50,51,52,53,54,55,70,87,56, + 45,58,0,60,0,1,2,3,4,5, + 6,7,8,9,0,0,0,13,3,56, + 0,17,0,3,0,3,0,74,0,3, + 87,69,0,1,2,3,4,5,6,7, + 8,9,74,0,0,13,71,43,70,17, + 70,0,73,0,3,0,3,0,0,0, + 56,45,58,0,60,0,3,0,3,0, + 3,69,3,0,0,43,3,0,0,0, + 0,3,0,119,0,0,0,73,56,0, + 58,87,60,0,70,0,0,0,70,0, 0,0,0,0,0,0,0,0,0,0, - 0,30,0,74,71,0,0,0,70,0, - 0,0,0,0,0,0,0,0,69,0, - 69,0,0,0,0,0,73,0,0,0, - 0,0,0,0,0,0,0,69,0,69, - 73,0,69,0,0,0,0,0,0,0, + 0,0,69,69,28,0,0,0,0,87, + 0,0,0,0,0,0,0,0,73,45, + 73,0,73,0,0,0,0,0,0,0, + 0,0,0,69,0,0,0,0,69,0, + 0,69,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,91,0, + 0,0,0,0,0,0,0,119,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,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,0,0,0,0,0 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -1387,319 +1385,318 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 5236,5201,5180,5180,5180,5180,5180,5180,5217,5180, - 1,1,1,5205,1,1,1,1,1,1, + 5230,5195,5174,5174,5174,5174,5174,5174,5211,5174, + 1,1,1,5199,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,386,1,1172,1,2159,136, - 3648,1,1,1,5247,45,1,1,1,5280, - 5236,5243,5418,3980,5236,622,3983,3968,2224,3531, - 3857,2902,3977,740,3976,3536,3923,10,5220,5220, - 5220,5220,5220,5220,5220,5220,5220,5220,5220,5220, - 5220,5220,5220,5220,5220,5220,5220,5220,5220,5220, - 5220,5220,5220,5220,5220,5220,5220,5236,5220,5220, - 5220,5220,5220,5220,5220,5220,5220,5220,5220,5220, - 5220,5220,5220,5220,5220,5220,5220,5220,5220,5220, - 5220,5236,5220,5220,5220,5220,137,5220,5220,5220, - 5220,5220,138,5220,5220,5220,2403,2375,5220,5220, - 5236,593,5220,5220,5220,5220,5220,5220,5220,5220, - 5220,5220,5220,5220,8,5223,5223,5223,5223,5223, - 5223,5223,5223,5223,5223,5223,5223,5223,5223,5223, - 5223,5223,5223,5223,5223,5223,5223,5223,5223,5223, - 5223,5223,5223,5223,5236,5223,5223,5223,5223,5223, - 5223,5223,5223,5223,5223,5223,5223,5223,5223,5223, - 5223,5223,5223,5223,5223,5223,5223,5223,5236,5223, - 5223,5223,5223,1917,5223,5223,5223,5223,5223,139, - 5223,5223,5223,2403,2375,5223,5223,5236,593,5223, - 5223,5223,5223,5223,5223,5223,5223,5223,5223,5223, - 5223,5236,5201,5180,5180,5180,5180,5180,5180,5208, - 5180,1,1,1,5205,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5236,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5236,1,1172,1,2159, - 144,3648,1,1,1,5247,122,1,1,1, - 5236,5236,3501,5418,3466,1358,622,3983,3968,2224, - 3531,3857,2902,3977,740,3976,3536,3923,5236,5201, - 5180,5180,5180,5180,5180,5180,5208,5180,1,1, - 1,5205,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5236,1, + 1,1,1,1,1,142,1,1,1,1, + 1,1,1,1,1,1,1638,1,2222,134, + 3586,1,1,1,5241,1,1,1,5230,5249, + 5250,5237,5410,3159,384,1240,3802,2575,2199,2460, + 3727,3067,3801,1509,3800,4094,3799,10,5214,5214, + 5214,5214,5214,5214,5214,5214,5214,5214,5214,5214, + 5214,5214,5214,5214,5214,5214,5214,5214,5214,5214, + 5214,5214,5214,5214,5214,5214,5214,5214,5214,5214, + 5214,5214,5214,5214,5214,5214,5214,5214,5214,5214, + 5230,5214,5230,5214,5214,5214,5214,5214,5214,5214, + 5214,5214,5214,5214,5214,5214,2286,5214,5214,5214, + 5214,5214,5214,5214,5214,126,2379,2351,5214,5214, + 455,5230,5214,5214,5214,5214,5214,5214,5214,5214, + 5214,5214,5214,5214,8,5217,5217,5217,5217,5217, + 5217,5217,5217,5217,5217,5217,5217,5217,5217,5217, + 5217,5217,5217,5217,5217,5217,5217,5217,5217,5217, + 5217,5217,5217,5217,5217,5217,5217,5217,5217,5217, + 5217,5217,5217,5217,5217,5217,5217,5230,5217,4893, + 5217,5217,5217,5217,5217,5217,5217,5217,5217,5217, + 5217,5217,5217,136,5217,5217,5217,5217,5217,5217, + 5217,5217,591,2983,3009,5217,5217,454,5230,5217, + 5217,5217,5217,5217,5217,5217,5217,5217,5217,5217, + 5217,5230,5195,5174,5174,5174,5174,5174,5174,5202, + 5174,1,1,1,5199,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5236,1,1172,1,2159,5236,3648,1, - 1,1,5247,2216,1,1,1,3415,2711,164, - 5418,2275,5236,622,3983,3968,2224,3531,3857,2902, - 3977,740,3976,3536,3923,5236,5201,5180,5180,5180, - 5180,5180,5180,5208,5180,1,1,1,5205,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5236,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1364, - 1,1172,1,2159,5236,3648,1,1,1,5247, - 45,1,1,1,5280,99,1307,5418,4864,5568, - 622,3983,3968,2224,3531,3857,2902,3977,740,3976, - 3536,3923,5236,5201,5180,5180,5180,5180,5180,5180, - 5208,5180,1,1,1,5205,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,5236,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5236,1,1172,1, - 2159,5236,3648,1,1,1,5247,5236,1,1, - 1,5236,4831,4828,5418,5280,5236,622,3983,3968, - 2224,3531,3857,2902,3977,740,3976,3536,3923,5236, - 5201,5180,5180,5180,5180,5180,5180,5208,5180,1, - 1,1,5205,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5236, + 1,1,1,1,5230,1,4896,1,1,1, + 1,1,1,1,1,1,1,1638,1,2222, + 137,3586,1,1,1,5241,1,1,1,591, + 5230,4866,4863,5410,5274,5230,1240,3802,2575,2199, + 2460,3727,3067,3801,1509,3800,4094,3799,5230,5195, + 5174,5174,5174,5174,5174,5174,5202,5174,1,1, + 1,5199,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,4097,1,1172,1,2159,145,3648, - 1,1,1,5247,124,1,1,1,5236,1, - 3501,5418,791,390,622,3983,3968,2224,3531,3857, - 2902,3977,740,3976,3536,3923,5236,5201,5180,5180, - 5180,5180,5180,5180,5208,5180,1,1,1,5205, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5236,1,1,1, + 1,5230,1,143,1,1,1,1,1,1, + 1,1,1,1,1638,1,2222,5230,3586,1, + 1,1,5241,1,1,1,116,5230,4866,4863, + 5410,5274,5230,1240,3802,2575,2199,2460,3727,3067, + 3801,1509,3800,4094,3799,5230,5195,5174,5174,5174, + 5174,5174,5174,5202,5174,1,1,1,5199,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5236,1,1172,1,2159,140,3648,1,1,1, - 5247,123,1,1,1,3415,2711,3501,5418,2275, - 5236,622,3983,3968,2224,3531,3857,2902,3977,740, - 3976,3536,3923,5236,5201,5180,5180,5180,5180,5180, - 5180,5208,5180,1,1,1,5205,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,192,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5236,1,1172, - 1,2159,5236,3648,1,1,1,5247,360,1, - 1,1,3415,2711,2344,5418,427,5236,622,3983, - 3968,2224,3531,3857,2902,3977,740,3976,3536,3923, - 5236,5201,5180,5180,5180,5180,5180,5180,5208,5180, - 1,1,1,5205,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 5236,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5236,1,1172,1,2159,2782, - 3648,1,1,1,5247,5227,1,1,1,5236, - 5255,5256,5418,5595,1358,622,3983,3968,2224,3531, - 3857,2902,3977,740,3976,3536,3923,5236,5201,5180, - 5180,5180,5180,5180,5180,5208,5180,1,1,1, - 5205,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5236,1,1, + 1,1,1,1,1,1,1,1,5230,1, + 1895,1,1,1,1,1,1,1,1,1, + 1,1638,1,2222,2286,3586,1,1,1,5241, + 1,1,1,5230,5249,5250,3993,5410,4015,5230, + 1240,3802,2575,2199,2460,3727,3067,3801,1509,3800, + 4094,3799,5230,5195,5174,5174,5174,5174,5174,5174, + 5202,5174,1,1,1,5199,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5236,1,1172,1,2159,5236,3648,1,1, - 1,5247,5236,1,1,1,5236,4831,4828,5418, - 5280,5236,622,3983,3968,2224,3531,3857,2902,3977, - 740,3976,3536,3923,5236,3879,1,1,1,1, - 1,1,3901,1,1,1,1,5245,1,1, + 1,1,1,1,1,5230,1,5230,1,1, + 1,1,1,1,1,1,1,1,1638,1, + 2222,123,3586,1,1,1,5241,1,1,1, + 119,45,3482,3457,5410,5274,5230,1240,3802,2575, + 2199,2460,3727,3067,3801,1509,3800,4094,3799,5230, + 5195,5174,5174,5174,5174,5174,5174,5202,5174,1, + 1,1,5199,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,514,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5236,1, - 1172,1,2159,125,3648,1,1,1,5247,396, - 1,1,1,389,3368,3343,5418,364,5236,622, - 3983,3968,2224,3531,3857,2902,3977,740,3976,3536, - 3923,45,4831,4828,1081,631,3721,3787,2943,565, - 3809,793,3765,3743,878,5506,5504,5513,5499,5512, - 5508,5509,5507,5510,5511,5514,5505,3853,3831,5261, - 3692,5236,796,876,5263,804,3661,873,5264,5262, - 732,5257,5259,5260,5258,5502,5575,5576,5496,5503, - 5475,5501,5500,5497,5498,5236,5476,3161,1321,5236, - 4831,4828,5634,631,4876,5236,2943,4114,5635,5636, - 5236,5079,5079,234,5075,234,234,234,5083,234, - 1,5236,5236,234,1,1,1,1,1,1, - 1,1,1,1,1,1,2862,347,5170,5166, - 2823,5280,646,1307,2943,142,5568,5236,5255,5256, - 5236,5009,5006,1262,1,1,1,1,1,1, - 1,1,1,1,5072,1,4234,230,2034,457, - 4098,1,44,4846,4843,3071,1,1,1,1397, - 438,416,5648,234,5499,5236,5079,5079,234,5075, - 234,234,234,5135,234,1,1880,5735,234,1, + 1,1,5230,1,5230,1,1,1,1,1, + 1,1,1,1,1,1638,1,2222,425,3586, + 1,1,1,5241,1,1,1,5230,5044,5041, + 3993,5410,4015,5230,1240,3802,2575,2199,2460,3727, + 3067,3801,1509,3800,4094,3799,5230,5195,5174,5174, + 5174,5174,5174,5174,5202,5174,1,1,1,5199, 1,1,1,1,1,1,1,1,1,1, - 1,5502,5575,5576,5496,5503,5475,5501,5500,5497, - 5498,5236,5476,141,5670,5671,5672,5236,4855,1, - 1,1,1,1,1,1,1,1,1,5072, - 1,4234,4827,2034,1,2312,1,456,5236,8823, - 8823,1,1,1,5189,2889,415,5648,234,5236, - 4831,4828,39,5280,5236,4870,1,5248,4870,4617, - 4870,4870,5735,4870,4870,4870,5236,5161,5156,581, - 5063,646,5153,2943,338,5150,4090,305,4870,4870, - 146,3071,4870,229,5670,5671,5672,5540,3715,5670, - 5671,5672,5278,5236,35,5192,4858,5506,5504,5513, - 5499,5512,5508,5509,5507,5510,5511,5514,5505,146, - 5236,4870,2344,5247,56,5021,5018,4870,5240,5575, - 5576,4870,4870,4870,565,4870,4870,5502,5575,5576, - 5496,5503,5475,5501,5500,5497,5498,5236,5476,2099, - 4870,4870,4870,4870,4870,4870,4870,4870,4870,4870, - 4870,4870,4870,4870,4870,4870,4870,4870,4870,4870, - 4870,4870,4870,4870,4870,4870,5236,423,5236,4870, - 4870,4873,4870,4870,4873,5236,4873,4873,1837,4873, - 4873,4873,1042,5242,369,5108,5104,2823,1,646, - 1,2943,350,1,4873,4873,3253,3981,4873,5236, - 5170,5166,581,5280,646,1307,2943,143,5568,5236, - 5236,1042,127,1794,1751,1708,1665,1622,1579,1536, - 1493,1450,1407,3368,3343,5236,3981,4873,5239,1, - 5108,5104,581,4873,646,5236,2943,4873,4873,4873, - 3993,4873,4873,1880,118,4634,1,5066,5066,5241, - 5063,1880,1307,1176,365,5568,4873,4873,4873,4873, - 4873,4873,4873,4873,4873,4873,4873,4873,4873,4873, - 4873,4873,4873,4873,4873,4873,4873,4873,4873,4873, - 4873,4873,56,5009,5006,4873,4873,5236,4873,4873, - 5236,1,1,1,1,1,1,1,5637,1, - 1,1,1,5236,1,1,1,2312,1,1, 1,1,1,1,1,1,1,1,1,1, - 365,1,1,1,1,1,1,1,1,1, - 1,1,1,1,3897,5236,5236,5255,5256,2616, - 3919,365,347,45,45,2961,5280,1,1307,295, - 43,5568,1,1,1,4919,4915,1081,4923,3721, - 3787,2943,5771,3809,4879,3765,3743,5236,4906,4912, - 4885,1618,4888,4900,4897,4903,4894,4891,4882,4909, - 3853,3831,5261,3692,5236,796,876,5263,804,3661, - 873,5264,5262,732,5257,5259,5260,5258,3875,679, - 128,1880,5236,126,5278,1,5108,5104,2823,5236, - 646,1321,2943,5030,3368,3343,45,45,2011,515, - 45,4831,4828,1081,631,3721,3787,2943,5230,3809, - 1086,3765,3743,5236,5506,5504,5513,1747,5512,5508, - 5509,5507,5510,5511,5514,5505,3853,3831,5261,3692, - 108,796,876,5263,804,3661,873,5264,5262,732, - 5257,5259,5260,5258,1880,313,5161,5156,581,5063, - 646,5153,2943,293,5150,5236,5236,1321,1,5033, - 1,5108,5104,581,5214,646,365,2943,2656,2797, - 5236,5243,148,4831,4828,1081,631,3721,3787,2943, - 372,3809,1086,3765,3743,4422,5506,5504,5513,4664, - 5512,5508,5509,5507,5510,5511,5514,5505,3853,3831, - 5261,3692,5236,796,876,5263,804,3661,873,5264, - 5262,732,5257,5259,5260,5258,5236,1,5108,5104, - 5126,2863,5129,1401,5132,5246,43,5060,5060,1321, - 5245,5060,365,2099,45,45,1,4919,4915,1081, - 4923,3721,3787,2943,3945,3809,4879,3765,3743,1219, - 4906,4912,4885,365,4888,4900,4897,4903,4894,4891, - 4882,4909,3853,3831,5261,3692,5236,796,876,5263, - 804,3661,873,5264,5262,732,5257,5259,5260,5258, - 1444,1,5108,5104,581,107,646,35,2943,313, - 5236,5255,5256,1321,313,646,4596,2943,45,45, - 45,4831,4828,1081,631,3721,3787,2943,5211,3809, - 1086,3765,3743,5236,5506,5504,5513,4834,5512,5508, - 5509,5507,5510,5511,5514,5505,3853,3831,5261,3692, - 5236,796,876,5263,804,3661,873,5264,5262,732, - 5257,5259,5260,5258,2048,443,1,1,5236,1, - 1,4852,1,2961,4852,2961,5246,1321,343,315, - 5030,5245,3603,5236,5214,45,4831,4828,1081,631, - 3721,3787,2943,5211,3809,1086,3765,3743,2879,5506, - 5504,5513,1,5512,5508,5509,5507,5510,5511,5514, - 5505,3853,3831,5261,3692,439,796,876,5263,804, - 3661,873,5264,5262,732,5257,5259,5260,5258,1880, - 3647,1880,5236,4831,4828,343,631,646,4185,2943, - 343,5236,1321,323,343,4837,5033,5236,1087,5214, - 45,4831,4828,1081,631,3721,3787,2943,5240,3809, - 1086,3765,3743,45,5506,5504,5513,5280,5512,5508, - 5509,5507,5510,5511,5514,5505,3853,3831,5261,3692, - 447,796,876,5263,804,3661,873,5264,5262,732, - 5257,5259,5260,5258,45,4831,4828,1081,631,3721, - 3787,2943,1880,3809,1086,3765,3743,1028,5506,5504, - 5513,132,5512,5508,5509,5507,5510,5511,5514,5505, - 3853,3831,5261,3692,531,796,876,5263,804,3661, - 873,5264,5262,732,5257,5259,5260,5258,5236,231, - 5236,4831,4828,1,631,646,643,2943,5704,5698, - 453,1321,5702,2769,5696,5697,5499,5236,4831,4828, - 4001,631,4876,349,2943,133,2040,56,5239,5727, - 5728,5256,5705,5707,5236,5255,5256,5670,5671,5672, - 4840,3747,5248,5502,5575,5576,5496,5503,5475,5501, - 5500,5497,5498,47,5476,2512,131,5256,5236,2656, - 2797,643,559,5704,5698,1540,1608,5702,5708,5696, - 5697,2085,5706,5729,1,5108,5104,2823,5236,646, - 5236,2943,1880,4861,5727,5728,5248,5705,5707,5236, - 4849,5718,5717,5730,5699,5700,5723,5724,5247,389, - 5721,5722,5701,5703,5725,5726,5731,5711,5712,5713, - 5709,5710,5719,5720,5715,5714,5716,559,2458,2431, - 1540,1608,1,5708,294,5255,5256,5706,5729,4867, - 444,45,45,1880,5280,243,5054,5236,5036,5051, - 4213,5236,5247,5236,2656,2797,5718,5717,5730,5699, - 5700,5723,5724,2136,2908,5721,5722,5701,5703,5725, - 5726,5731,5711,5712,5713,5709,5710,5719,5720,5715, - 5714,5716,45,4831,4828,1081,631,3721,3787,2943, - 5236,3809,1086,3765,3743,5236,5506,5504,5513,5236, - 5512,5508,5509,5507,5510,5511,5514,5505,3853,3831, - 5261,3692,2870,796,876,5263,804,3661,873,5264, - 5262,732,5257,5259,5260,5258,55,5597,45,4831, - 4828,1081,631,3721,3787,2943,5236,3809,1086,3765, - 3743,1242,5506,5504,5513,5236,5512,5508,5509,5507, - 5510,5511,5514,5505,3853,3831,5261,3692,5236,796, - 876,5263,804,3661,873,5264,5262,732,5257,5259, - 5260,5258,45,4831,4828,4569,631,3721,3787,2943, - 1315,3809,1086,3765,3743,1321,5506,5504,5513,5236, - 5512,5508,5509,5507,5510,5511,5514,5505,3853,3831, - 5261,3692,1,796,876,5263,804,3661,873,5264, - 5262,732,5257,5259,5260,5258,45,4831,4828,1081, - 631,3721,3787,2943,5236,3809,1086,3765,3743,45, - 5506,5504,5513,5280,5512,5508,5509,5507,5510,5511, - 5514,5505,3853,3831,5261,3692,5236,796,876,5263, - 804,3661,873,5264,5262,732,5257,5259,5260,5258, - 45,4831,4828,1081,631,3721,3787,2943,5236,3809, - 1086,3765,3743,2986,5506,5504,5513,3445,5512,5508, - 5509,5507,5510,5511,5514,5505,3853,3831,5261,3692, - 232,796,876,5263,804,3661,873,5264,5262,732, - 5257,5259,5260,5258,5236,4831,4828,5499,5280,5236, - 1,5108,5104,5126,574,5129,135,5132,5506,5504, - 5513,5499,5512,5508,5509,5507,5510,5511,5514,5505, - 51,5015,5015,5747,5502,5575,5576,5496,5503,5475, - 5501,5500,5497,5498,5236,5476,2512,4265,5502,5575, - 5576,5496,5503,5475,5501,5500,5497,5498,5236,5476, - 100,1,1,3553,1,5634,5057,130,1,5057, - 4114,5635,5636,247,4999,4995,168,5003,397,4831, - 4828,5024,5280,574,5012,5236,129,4986,4992,4965, - 4950,4968,4980,4977,4983,4974,4971,4962,4989,35, - 389,389,5045,389,389,5045,389,5048,5045,2458, - 2431,5236,5045,42,5101,5098,389,4941,4935,4932, - 4959,4938,4929,4944,4947,4956,4953,5236,4926,4834, - 5236,2958,45,4645,5634,5242,5236,5009,5006,4114, - 5635,5636,168,389,389,389,389,389,389,389, - 389,389,389,5236,389,2656,2797,121,5048,38, - 390,390,5039,390,390,5039,390,5042,5039,5236, - 5236,1,5039,5048,2656,2797,390,5244,1,5180, - 5180,234,5180,234,234,234,5183,234,103,45, - 45,234,5280,5236,5141,7774,4659,5138,3875,679, - 565,5241,5236,390,390,390,390,390,390,390, - 390,390,390,1,390,5236,83,5236,5042,4008, - 4546,5195,1,5180,5180,234,5180,234,234,234, - 234,234,5177,5042,4262,234,2159,377,3648,7774, - 5243,5236,5306,5307,43,5069,5069,3897,321,226, - 425,5147,3551,3919,1,5180,5180,234,5180,234, - 234,234,5186,234,5236,5735,4284,234,5236,5089, - 5086,7774,134,5236,120,3606,5177,5247,4262,5236, - 2159,1,3648,119,1,5180,5180,234,5180,234, - 234,234,5183,234,5236,5021,5018,234,1487,5236, - 5236,7774,2512,53,5095,5095,5676,1880,5177,5735, - 4262,565,2159,1,3648,5236,5116,5112,5236,800, - 2910,5236,5278,5189,4547,225,1,5180,5180,234, - 5180,234,234,234,5183,234,2173,5027,5177,234, - 4262,5735,2159,7774,3648,1,5180,5180,234,5180, - 234,234,234,234,234,226,4001,5092,234,397, - 5255,5256,7774,5236,3897,2458,2431,3715,5236,5278, - 3919,5735,5236,3897,5192,305,5244,370,111,3919, - 5177,4647,4262,5690,2159,5540,3648,1,5180,5180, - 234,5180,234,234,234,234,234,226,405,5177, - 234,4262,3551,2159,7774,3648,5120,1,1,5236, - 233,5123,3203,5735,520,5198,5242,1,5180,5180, - 234,5180,234,234,234,234,234,5499,1,5236, - 234,3236,5735,5236,7774,448,527,5246,999,5243, - 56,5177,5245,4262,5255,2159,1278,3648,5236,8742, - 7939,5236,8742,7939,5502,5575,5576,5496,5503,5475, - 5501,5500,5497,5498,81,5476,5236,419,1,41, - 5255,5177,1,4262,5735,2159,5246,3648,5243,1, - 198,5245,5241,8,5236,198,284,170,312,5174, - 5236,5233,5236,3665,5144,4666,3444,5236,3982,507, - 2888,505,527,5236,5735,3472,5236,5236,5236,4583, - 4584,3975,5236,5236,3990,4597,4635,5236,5236,5236, - 5236,2,4667,509,5236,5236,5236,5236,5236,5236, - 5236,5236,5236,4001,5236,5236,2187,5236,3238,5236, - 5236,5236,5236,5236,5236,5236,5236,5236,5236,5236, - 5236,43,5236,170,5233,5236,5236,5236,4196,5236, - 5236,5236,5236,5236,5236,5236,5236,5236,4627,5236, - 4633,5236,5236,5236,5236,5236,2995,5236,5236,5236, - 5236,5236,5236,5236,5236,5236,5236,3238,5236,1968, - 3049,5236,937 + 1,1,1,1,1,1,1,1,1,5230, + 1,3077,1,1,1,1,1,1,1,1, + 1,1,1638,1,2222,5230,3586,1,1,1, + 5241,1,1,1,54,5044,5041,347,5410,348, + 1590,1240,3802,2575,2199,2460,3727,3067,3801,1509, + 3800,4094,3799,5230,5195,5174,5174,5174,5174,5174, + 5174,5202,5174,1,1,1,5199,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1857,1,1857,1, + 1,1,1,1,1,1,1,1,1,1638, + 1,2222,125,3586,1,1,1,5241,1,1, + 1,118,5230,3482,3457,5410,731,5230,1240,3802, + 2575,2199,2460,3727,3067,3801,1509,3800,4094,3799, + 5230,5195,5174,5174,5174,5174,5174,5174,5202,5174, + 1,1,1,5199,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5230,1,5230,1,1,1,1, + 1,1,1,1,1,1,1638,1,2222,135, + 3586,1,1,1,5241,1,1,1,117,5230, + 1,3993,5410,4015,388,1240,3802,2575,2199,2460, + 3727,3067,3801,1509,3800,4094,3799,5230,5195,5174, + 5174,5174,5174,5174,5174,5202,5174,1,1,1, + 5199,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 3592,1,5230,1,1,1,1,1,1,1, + 1,1,1,1638,1,2222,5230,3586,1,1, + 1,5241,1,1,1,130,2379,2351,3993,5410, + 4015,5230,1240,3802,2575,2199,2460,3727,3067,3801, + 1509,3800,4094,3799,5230,3737,1,1,1,1, + 1,1,3746,1,1,1,1,5239,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,529,1,5230, + 1,1,1,1,1,1,1,1,1,1, + 1638,1,2222,358,3586,1,1,1,5241,1, + 1,1,5230,2983,3009,2730,5410,106,190,1240, + 3802,2575,2199,2460,3727,3067,3801,1509,3800,4094, + 3799,45,4866,4863,1938,2063,3817,3883,3401,138, + 3905,924,3861,3839,3703,5498,5496,5505,5491,5504, + 5500,5501,5499,5502,5503,5506,5497,3949,3927,5255, + 627,775,850,5257,790,4072,792,5258,5256,723, + 5251,5253,5254,5252,129,5494,4386,5567,5568,5488, + 5495,5467,5493,5492,5489,5490,5468,1,1297,395, + 4866,4863,5626,5274,5587,166,863,5627,5628,5230, + 5099,5099,233,5095,233,233,233,5103,233,1, + 4862,5230,233,1,1,1,1,1,1,1, + 1,1,1,1,1,5230,1,4954,4950,2429, + 4958,623,45,3401,5059,441,1,1,1174,1, + 5221,4890,5092,1,4890,1,1,1,1,1, + 1,1,1,1,1,1171,2743,2190,140,5230, + 1,166,2983,3009,1,1,1,5236,162,45, + 414,5640,233,5274,5230,5099,5099,233,5095,233, + 233,233,5147,233,1,1857,5727,233,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5062,3865,5662,5663,5664,367,4954,4950,2429,4958, + 623,1,3401,2471,1,45,5230,5092,1,5274, + 1,1,1,1,1,1,1,1,1,1, + 1171,5230,2190,5235,5230,1,336,2658,1341,1, + 1,1,5230,8768,8768,413,5640,233,1,4954, + 4950,4274,4958,623,39,3401,1,4905,2319,846, + 4905,5727,4905,4905,1857,4905,4905,4905,1,4954, + 4950,4274,4958,623,1126,3401,4768,5662,5663,5664, + 4905,4905,5567,5568,2657,5272,227,5230,4866,4863, + 4274,2063,623,1336,3401,97,5560,141,4899,4905, + 5498,5496,5505,5491,5504,5500,5501,5499,5502,5503, + 5506,5497,5230,4905,144,5230,5249,5250,5662,5663, + 5664,2074,4905,4905,4905,4905,313,4905,4905,3784, + 5494,2849,5567,5568,5488,5495,5467,5493,5492,5489, + 5490,5468,4905,4905,4905,4905,4905,4905,4905,4905, + 4905,4905,4905,4905,4905,4905,4905,292,5249,5250, + 4905,4905,4905,4905,4905,4905,4905,4905,4905,4905, + 4905,4905,4905,5230,4905,4905,4908,3971,979,4908, + 2664,4908,4908,1814,4908,4908,4908,5230,4954,4950, + 4274,4958,623,5165,3401,1080,5162,2319,105,4908, + 4908,1,4954,4950,5138,4958,5144,1,5141,5240, + 4776,442,45,45,5239,5274,2248,5077,4908,5230, + 5074,4096,1771,1728,1685,1642,1599,1556,1513,1470, + 1427,1384,4908,1,4954,4950,2429,4958,623,5230, + 3401,4908,4908,4908,4908,241,4908,4908,5065,345, + 4866,4863,2429,2063,623,1336,3401,2025,5560,5230, + 2074,4908,4908,4908,4908,4908,4908,4908,4908,4908, + 4908,4908,4908,4908,4908,4908,42,5121,5118,4908, + 4908,4908,4908,4908,4908,4908,4908,4908,4908,4908, + 4908,4908,1857,4908,4908,5230,1,1,1,1, + 1,1,1,5230,1,1,1,1,1857,1, + 1,1,43,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,311,4954, + 4950,4274,4958,623,5165,3401,5230,5162,4770,5230, + 4866,4863,1,2063,623,5272,3401,1,1,1, + 4954,4950,1938,4958,3817,3883,3401,5763,3905,4914, + 3861,3839,293,4941,4947,4920,144,4923,4935,4932, + 4938,4929,4926,4917,4944,3949,3927,5255,627,775, + 850,5257,790,4072,792,5258,5256,723,5251,5253, + 5254,5252,1,5089,5089,5230,5086,5230,1336,128, + 363,5560,1,5230,2705,2864,1297,5230,5249,5250, + 341,45,45,5230,5230,5242,4099,513,45,4866, + 4863,1938,2063,3817,3883,3401,5224,3905,798,3861, + 3839,1987,5498,5496,5505,53,5504,5500,5501,5499, + 5502,5503,5506,5497,3949,3927,5255,627,775,850, + 5257,790,4072,792,5258,5256,723,5251,5253,5254, + 5252,1857,44,4884,4881,2712,363,4878,2248,3401, + 341,5241,341,4096,5230,1297,341,4108,3078,5230, + 5249,5250,5208,363,623,5230,3401,2983,3009,5237, + 146,4866,4863,1938,2063,3817,3883,3401,139,3905, + 798,3861,3839,131,5498,5496,5505,5230,5504,5500, + 5501,5499,5502,5503,5506,5497,3949,3927,5255,627, + 775,850,5257,790,4072,792,5258,5256,723,5251, + 5253,5254,5252,1,4954,4950,4274,4958,623,303, + 3401,311,319,5230,5230,5159,311,1297,2609,5532, + 1719,5238,45,45,1,4954,4950,1938,4958,3817, + 3883,3401,370,3905,4914,3861,3839,5230,4941,4947, + 4920,4887,4923,4935,4932,4938,4929,4926,4917,4944, + 3949,3927,5255,627,775,850,5257,790,4072,792, + 5258,5256,723,5251,5253,5254,5252,1174,2552,2525, + 5230,1857,403,345,45,45,2864,5274,5238,1336, + 5132,1297,5560,993,5237,5135,45,45,45,4866, + 4863,1938,2063,3817,3883,3401,5205,3905,798,3861, + 3839,1207,5498,5496,5505,5739,5504,5500,5501,5499, + 5502,5503,5506,5497,3949,3927,5255,627,775,850, + 5257,790,4072,792,5258,5256,723,5251,5253,5254, + 5252,5230,1857,1,4954,4950,5138,4958,5144,5230, + 5141,5237,5230,4866,4863,1297,5274,5242,5230,5230, + 5242,4325,5208,45,4866,4863,1938,2063,3817,3883, + 3401,5205,3905,798,3861,3839,5230,5498,5496,5505, + 5230,5504,5500,5501,5499,5502,5503,5506,5497,3949, + 3927,5255,627,775,850,5257,790,4072,792,5258, + 5256,723,5251,5253,5254,5252,98,1,1,4188, + 1,4483,5080,5241,1,5080,5241,101,45,45, + 1297,5274,5236,5153,5230,4771,5150,5208,45,4866, + 4863,1938,2063,3817,3883,3401,5234,3905,798,3861, + 3839,5230,5498,5496,5505,3085,5504,5500,5501,5499, + 5502,5503,5506,5497,3949,3927,5255,627,775,850, + 5257,790,4072,792,5258,5256,723,5251,5253,5254, + 5252,45,4866,4863,1938,2063,3817,3883,3401,133, + 3905,798,3861,3839,132,5498,5496,5505,5235,5504, + 5500,5501,5499,5502,5503,5506,5497,3949,3927,5255, + 627,775,850,5257,790,4072,792,5258,5256,723, + 5251,5253,5254,5252,1,5230,228,557,4326,5696, + 5690,5230,5230,5694,2609,5688,5689,124,1297,2609, + 5230,4866,4863,5491,2063,623,35,3401,3482,3457, + 5719,5720,1,5697,229,45,5233,5053,5230,5274, + 5189,1336,5056,5230,5560,5230,5044,5041,1,5699, + 5494,5491,5567,5568,5488,5495,5467,5493,5492,5489, + 5490,5468,436,789,2552,2525,1579,1596,5230,2552, + 2525,4869,5700,5698,5721,395,5249,5250,5494,5668, + 5567,5568,5488,5495,5467,5493,5492,5489,5490,5468, + 437,5230,5710,5709,5722,1381,5241,5691,5692,5715, + 5716,5713,5714,5693,5695,5717,5718,3971,979,5230, + 5723,5682,5703,5704,5705,5701,5702,5711,5712,5707, + 5706,5708,45,4866,4863,1938,2063,3817,3883,3401, + 5230,3905,798,3861,3839,4872,5498,5496,5505,5589, + 5504,5500,5501,5499,5502,5503,5506,5497,3949,3927, + 5255,627,775,850,5257,790,4072,792,5258,5256, + 723,5251,5253,5254,5252,5662,5663,5664,45,4866, + 4863,1938,2063,3817,3883,3401,5230,3905,798,3861, + 3839,1159,5498,5496,5505,5230,5504,5500,5501,5499, + 5502,5503,5506,5497,3949,3927,5255,627,775,850, + 5257,790,4072,792,5258,5256,723,5251,5253,5254, + 5252,5230,45,4866,4863,4651,2063,3817,3883,3401, + 5230,3905,798,3861,3839,1297,5498,5496,5505,5230, + 5504,5500,5501,5499,5502,5503,5506,5497,3949,3927, + 5255,627,775,850,5257,790,4072,792,5258,5256, + 723,5251,5253,5254,5252,45,4866,4863,1938,2063, + 3817,3883,3401,3409,3905,798,3861,3839,5230,5498, + 5496,5505,1424,5504,5500,5501,5499,5502,5503,5506, + 5497,3949,3927,5255,627,775,850,5257,790,4072, + 792,5258,5256,723,5251,5253,5254,5252,45,4866, + 4863,1938,2063,3817,3883,3401,5230,3905,798,3861, + 3839,5230,5498,5496,5505,5230,5504,5500,5501,5499, + 5502,5503,5506,5497,3949,3927,5255,627,775,850, + 5257,790,4072,792,5258,5256,723,5251,5253,5254, + 5252,5230,4866,4863,5230,5274,321,120,5230,8639, + 8571,670,451,3669,5230,5498,5496,5505,5491,5504, + 5500,5501,5499,5502,5503,5506,5497,5230,4866,4863, + 5230,2063,4911,1,3401,5230,8639,8571,5230,127, + 5230,5192,2669,3568,5629,5494,5234,5567,5568,5488, + 5495,5467,5493,5492,5489,5490,5468,4875,2898,245, + 5034,5030,5626,5038,5230,1857,863,5627,5628,670, + 931,387,3713,5021,5027,5000,4985,5003,5015,5012, + 5018,5009,5006,4997,5024,35,387,387,5071,387, + 387,5071,387,5071,5071,5230,81,5230,5071,2866, + 3603,3533,387,4976,5237,4970,4967,4994,4973,4964, + 4979,4982,4991,4988,4961,122,4902,49,5050,5050, + 5626,3669,5298,5299,863,5627,5628,2983,3009,387, + 4869,387,387,387,387,387,387,387,387,387, + 387,1,913,5230,5071,38,388,388,5068,388, + 388,5068,388,5068,5068,3728,5233,5230,5068,5071, + 5047,5230,388,5230,1,5174,5174,233,5174,233, + 233,233,5177,233,43,5083,5083,233,5230,4866, + 4863,8770,2063,4911,121,3401,913,5230,3391,388, + 3669,388,388,388,388,388,388,388,388,388, + 388,5230,577,5230,5068,79,5230,5171,3603,3533, + 1,394,5230,2864,5236,387,657,3296,5059,5068, + 3062,2442,2222,5230,3586,1,5174,5174,233,5174, + 233,233,233,233,233,224,512,1,233,43, + 5083,5083,8770,1,5083,363,43,5083,5083,5230, + 5156,5727,1719,5183,3159,362,913,35,1,5174, + 5174,233,5174,233,233,233,5180,233,5171,1857, + 3391,233,5230,5109,5106,8770,4796,3603,3533,5230, + 5235,3062,3277,2222,5062,3586,3639,5230,230,5272, + 1,5174,5174,233,5174,233,233,233,5177,233, + 5230,5171,913,233,5186,5491,874,8770,5240,368, + 5230,363,5727,5239,3062,5272,2222,5230,3586,51, + 5115,5115,5230,5128,5124,3201,5230,54,363,223, + 421,5250,5494,5171,5567,5568,5488,5495,5467,5493, + 5492,5489,5490,5468,5230,5727,3062,3843,2222,4483, + 3586,1,5174,5174,233,5174,233,233,233,5177, + 233,224,5112,1,233,5272,1,5230,8770,43, + 5083,5083,5250,5183,5240,5240,5230,5727,1251,5239, + 5239,231,5230,1,5174,5174,233,5174,233,233, + 233,233,233,1,5171,54,233,1,5491,5249, + 8770,525,417,303,5230,196,3639,3062,1,2222, + 196,3586,5272,5532,5230,8,168,4213,291,445, + 423,2727,224,5227,5186,5494,5171,5567,5568,5488, + 5495,5467,5493,5492,5489,5490,5468,3649,5727,3062, + 5249,2222,41,3586,1,5174,5174,233,5174,233, + 233,233,233,233,5230,109,5230,233,4392,2843, + 5230,8770,282,1929,446,5168,5230,525,310,3587, + 5727,2161,1,5174,5174,233,5174,233,233,233, + 233,233,168,505,503,233,5227,5171,1169,8770, + 3632,5230,2800,5230,4393,5230,3066,5230,375,5230, + 3062,3218,2222,5230,3586,5230,4720,5230,4744,5230, + 2663,2917,4758,5230,5230,5171,2655,1,5230,5230, + 518,4451,507,3808,2,5230,1,2112,3062,5230, + 2222,5727,3586,5230,2886,5230,5230,5230,4059,5230, + 5230,5230,5230,5230,5230,5230,5230,5230,5230,5230, + 5230,5230,4778,4784,3585,5230,5230,5230,5230,5727, + 5230,5230,5230,5230,5230,5230,5230,5230,3104,43, + 3141,5230,3198,5230,5230,5230,5230,5230,5230,5230, + 5230,5230,5230,2917,5230,5230,5230,5230,1944,5230, + 5230,799,5230,5230,5230,5230,5230,5230,5230,5230, + 5230,5230,5230,5230,5230,5230,5230,5230,3723,5230, + 5230,5230,5230,5230,5230,5230,5230,3808,5230,5230, + 5230,5230,5230,5230,5230,5230,5230,5230,5230,5230, + 5230,5230,5230,5230,5230,5230,5230,5230,5230,3808 }; }; public final static char termAction[] = TermAction.termAction; @@ -1707,59 +1704,59 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 981,67,321,61,558,883,883,883,883,1104, - 558,440,440,696,440,850,321,852,322,322, - 322,322,322,322,322,322,322,442,448,453, - 450,457,455,462,460,464,463,465,115,466, - 321,305,29,29,29,29,361,812,1,1, - 437,29,274,408,440,440,1,727,442,408, - 889,28,973,1106,1041,305,440,442,639,639, - 812,321,322,322,322,322,322,322,322,322, - 322,322,322,322,322,322,322,322,322,322, - 322,321,321,321,321,321,321,321,321,321, - 321,321,321,322,408,408,399,305,766,766, - 766,766,213,408,1,1,1102,1030,1041,429, - 1041,424,1041,426,1041,1025,1104,361,274,274, - 1,274,28,321,359,972,408,358,361,360, - 358,408,274,450,450,448,448,448,455,455, - 455,455,453,453,460,457,457,463,462,464, - 1118,465,1102,233,562,498,497,524,1048,1048, - 1104,852,558,558,558,558,361,361,766,765, - 766,437,361,433,168,361,770,213,217,768, - 429,228,361,361,361,213,766,322,29,446, - 364,408,1106,361,361,883,360,973,321,399, - 274,481,408,564,566,361,973,321,321,321, - 321,558,558,305,930,433,168,770,769,770, - 213,770,228,228,361,213,361,408,446,1102, - 972,1106,361,359,408,502,490,501,566,213, - 359,408,408,408,408,812,812,433,432,809, - 361,168,1118,427,883,215,108,1108,168,770, - 770,516,361,228,809,807,808,361,446,447, - 446,321,364,166,442,1106,506,321,499,499, - 411,411,361,560,1102,774,408,361,408,408, - 433,973,601,429,766,883,358,691,1110,355, - 558,857,56,517,361,809,322,361,446,812, - 322,274,166,506,321,321,566,973,408,564, - 490,506,1083,359,601,601,647,184,359,770, - 770,355,486,1102,876,322,1118,419,516,361, - 1104,1104,361,447,408,274,868,566,359,506, - 487,809,1023,934,157,558,427,683,601,601, - 184,359,770,429,1104,1110,355,322,322,361, - 361,361,868,408,868,646,157,1023,885,1104, - 809,765,883,222,222,487,429,285,857,361, - 558,361,361,558,861,868,647,601,487,418, - 486,408,1104,361,184,647,184,764,764,932, - 286,1104,361,812,567,861,601,321,70,355, - 487,361,361,184,29,29,932,285,1118,322, - 1118,487,284,558,558,558,286,558,361,123, - 487,487,361,429,408,407,863,809,408,809, - 429,361,487,765,277,558,277,286,1118,286, - 305,305,303,979,305,487,487,874,932,29, - 863,809,70,487,599,774,286,408,355,408, - 303,157,558,408,932,70,222,408,408,1096, - 286,874,286,487,157,321,286,283,808,764, - 429,429,1098,321,284,812,487,408,485,69, - 358,286,408,487,485,485,286 + 168,54,485,48,210,929,929,929,929,1104, + 210,682,682,844,682,155,485,157,486,486, + 486,486,486,486,486,486,486,684,690,695, + 692,699,697,704,702,706,705,707,212,708, + 485,469,884,884,884,884,525,629,56,56, + 679,884,420,45,682,682,56,525,45,937, + 883,1019,1106,1041,469,682,684,372,372,629, + 485,486,486,486,486,486,486,486,486,486, + 486,486,486,486,486,486,486,486,486,486, + 485,485,485,485,485,485,485,485,485,485, + 485,485,486,45,45,36,469,804,804,804, + 804,310,45,56,56,1102,1030,1041,590,1041, + 585,1041,587,1041,1025,1104,525,420,420,56, + 929,420,883,485,523,1018,45,522,524,522, + 45,420,692,692,690,690,690,697,697,697, + 697,695,695,702,699,699,705,704,706,1118, + 707,1102,379,546,536,535,593,1048,1048,1104, + 157,210,210,210,210,525,525,804,803,804, + 679,525,675,265,525,779,310,314,777,590, + 319,525,525,525,310,804,486,884,688,1, + 45,1106,525,525,524,1019,485,36,420,723, + 45,548,550,525,1019,485,485,485,485,210, + 210,469,263,675,265,779,778,779,310,779, + 319,319,525,310,525,45,688,1102,1018,1106, + 525,523,45,540,528,539,550,310,523,45, + 45,45,45,629,629,675,674,841,525,265, + 1118,588,929,312,109,1108,265,779,779,783, + 525,319,841,839,840,525,688,689,688,485, + 1,114,684,1106,324,485,537,537,428,428, + 525,544,1102,806,45,525,45,45,675,1019, + 334,590,804,929,522,423,1110,519,210,918, + 911,784,525,841,486,525,688,629,486,420, + 114,324,485,485,550,525,1019,45,548,528, + 324,1083,523,334,334,733,281,523,779,779, + 519,728,1102,525,922,486,1118,436,783,525, + 1104,1104,525,689,45,420,798,550,324,729, + 841,672,980,254,210,588,769,334,334,281, + 523,779,590,1104,1110,519,1018,486,486,525, + 525,525,798,45,798,732,254,672,931,1104, + 841,803,929,162,162,729,590,449,918,525, + 210,525,525,210,791,798,733,334,729,435, + 728,45,1104,525,281,733,281,802,802,916, + 450,1104,525,629,551,791,334,485,117,519, + 729,525,525,281,884,884,916,449,1118,486, + 1118,729,448,210,210,210,450,210,525,220, + 729,729,525,590,45,44,793,841,45,841, + 590,525,729,803,441,210,441,450,1118,450, + 469,469,467,935,469,729,729,439,916,884, + 793,841,117,729,583,806,450,45,519,45, + 467,254,210,45,916,117,162,45,45,1096, + 450,439,450,729,254,485,450,447,840,802, + 590,590,1098,485,448,629,729,45,727,116, + 522,450,45,729,727,727,450 }; }; public final static char asb[] = Asb.asb; @@ -1767,118 +1764,118 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 31,62,32,33,63,7,34,35,36,37, - 57,38,39,40,41,42,28,26,27,9, - 6,11,12,5,29,65,43,3,47,14, - 15,61,45,16,66,48,17,18,49,50, - 19,20,51,52,21,22,53,67,55,10, - 68,23,24,46,25,1,2,4,44,0, - 8,73,118,74,13,70,121,0,71,62, - 63,57,26,27,9,6,11,12,29,35, - 3,40,43,41,42,28,38,33,37,15, - 25,14,21,19,20,22,23,18,16,24, - 32,36,34,31,39,64,8,7,1,2, - 5,4,10,0,65,73,95,70,118,74, - 71,121,14,15,31,62,16,32,33,18, - 19,20,63,34,21,22,35,36,37,57, - 38,39,10,23,24,25,40,41,42,28, - 26,27,11,12,29,43,8,9,6,4, - 13,1,2,7,3,5,0,87,56,7, - 114,115,116,58,8,3,9,6,5,73, - 71,13,72,47,14,15,61,45,16,66, - 48,17,18,49,50,19,20,51,52,21, - 22,53,67,55,10,68,23,44,24,46, - 25,4,1,2,54,0,4,8,73,64, - 0,65,69,70,1,2,0,1,2,8, - 71,0,62,63,10,32,36,34,31,39, - 15,25,14,21,19,20,22,23,18,16, - 24,40,43,41,42,28,38,33,37,5, - 7,4,3,26,27,9,6,11,12,29, - 35,1,2,118,8,0,87,114,115,116, - 54,73,119,122,71,72,75,58,56,60, - 77,79,85,83,76,81,82,84,86,64, - 78,80,13,8,47,61,45,66,48,17, - 49,50,51,52,53,67,55,68,44,46, - 57,62,63,10,32,36,34,31,39,15, - 25,14,21,19,20,22,23,18,16,24, - 40,43,41,42,28,38,33,37,26,27, - 11,12,29,35,9,6,3,4,7,5, - 1,2,0,96,90,11,12,91,92,88, - 89,30,93,94,97,98,99,100,101,102, - 117,73,95,69,104,105,106,107,108,109, - 110,111,112,113,118,71,13,121,65,1, - 2,9,6,4,3,59,70,74,8,0, - 75,65,73,95,74,64,59,3,8,70, - 13,69,0,54,73,4,1,2,64,8, - 0,57,45,7,46,5,1,2,4,75, - 64,120,103,26,27,59,3,96,90,6, - 91,92,11,12,89,88,30,93,94,97, - 98,9,99,100,101,65,95,74,121,69, - 104,105,106,107,108,109,110,111,112,113, - 73,118,102,117,71,70,13,8,0,9, - 6,4,5,7,1,2,3,59,65,69, - 70,8,74,95,0,45,57,46,8,65, - 95,69,70,74,0,44,1,2,4,114, - 115,116,0,47,14,15,45,16,48,17, - 18,49,50,19,20,51,7,52,21,22, - 53,55,23,44,24,46,25,1,2,8, - 59,9,6,5,4,74,13,3,0,7, - 5,3,59,6,9,95,47,14,15,45, - 16,66,48,17,18,49,50,19,20,51, - 52,21,22,53,67,55,10,68,23,44, - 24,46,25,1,2,4,74,8,61,0, - 60,47,14,15,61,45,16,66,48,87, - 17,18,49,50,19,20,51,56,52,21, - 22,53,67,55,10,68,23,58,44,24, - 46,25,8,3,9,6,71,13,7,4, - 54,5,1,2,0,64,61,45,16,66, - 48,18,49,50,19,20,51,52,21,22, - 53,67,55,68,23,44,24,46,25,15, - 14,47,8,3,9,6,13,58,60,87, - 17,54,7,1,2,5,4,10,56,0, - 8,73,64,75,0,47,14,15,61,45, - 16,66,48,17,18,49,50,19,20,51, - 52,21,22,53,67,55,10,68,23,44, - 24,46,25,1,2,4,63,62,11,12, - 6,91,92,99,9,100,5,29,30,107, - 108,104,105,106,112,111,113,89,88,109, - 110,97,98,93,94,101,102,26,27,90, - 103,3,59,69,70,65,0,4,30,8, - 73,64,0,47,14,15,61,45,16,66, - 48,17,18,49,50,19,20,51,52,21, - 22,53,67,55,10,68,23,44,24,46, - 25,1,2,4,95,0,69,70,71,8, - 0,8,74,14,15,31,16,32,33,18, - 19,20,34,21,22,35,36,37,57,38, - 39,10,23,24,25,40,41,42,28,3, - 26,27,9,6,11,12,29,4,43,5, - 7,1,2,63,62,0,8,64,70,0, - 45,46,75,3,73,13,64,57,8,65, - 95,70,74,69,0,73,8,59,3,69, - 70,13,30,0,8,64,69,0,62,63, - 26,27,9,11,12,5,29,35,3,4, - 7,40,43,41,42,28,38,33,37,15, - 25,14,21,19,20,22,23,18,16,24, - 10,32,36,34,31,39,59,1,2,6, - 0,119,0,61,45,16,66,48,18,49, - 50,19,20,51,52,21,22,53,67,55, - 10,68,23,44,24,46,25,15,14,47, - 8,3,9,13,58,56,60,87,17,30, - 4,6,7,1,2,5,54,0,76,0, - 14,15,31,62,16,32,33,18,19,20, - 63,7,34,21,22,35,36,37,57,38, - 39,10,23,24,25,40,41,42,1,2, + 92,90,11,12,93,94,88,89,45,95, + 96,97,98,99,100,101,102,107,73,91, + 69,108,109,110,111,112,113,114,115,116, + 117,118,71,13,121,68,1,2,9,6, + 4,3,59,70,74,8,0,8,73,118, + 74,13,70,121,0,48,14,15,61,46, + 30,62,16,31,65,49,17,32,18,50, + 51,19,20,52,63,53,33,21,22,34, + 54,35,66,36,57,37,55,38,67,23, + 44,24,47,25,39,40,41,28,3,26, + 27,9,6,11,12,29,68,42,7,1, + 2,4,10,5,0,71,57,26,27,9, + 6,11,12,29,34,3,4,39,42,40, + 41,28,37,32,36,15,25,14,21,19, + 20,22,23,18,16,24,10,31,35,33, + 30,38,64,8,7,5,1,2,63,62, + 0,68,69,70,1,2,0,14,15,30, + 62,16,31,32,18,19,20,63,7,33, + 21,22,34,35,36,57,37,38,10,23, + 24,25,39,40,41,28,1,2,26,27, + 9,6,11,12,5,29,4,42,72,3, + 0,68,73,91,70,118,74,71,121,14, + 15,30,62,16,31,32,18,19,20,63, + 33,21,22,34,35,36,57,37,38,10, + 23,24,25,39,40,41,28,26,27,11, + 12,29,42,8,9,13,5,7,1,2, + 4,3,6,0,87,56,7,103,104,105, + 58,8,3,9,6,5,73,71,13,72, + 48,14,15,61,46,16,65,49,17,18, + 50,51,19,20,52,53,21,22,54,66, + 55,10,67,23,44,24,47,25,4,1, + 2,43,0,4,8,73,64,0,1,2, + 8,71,0,46,57,47,8,68,91,69, + 70,74,0,60,48,14,15,61,46,16, + 65,49,87,17,18,50,51,19,20,52, + 56,53,21,22,54,66,55,10,67,23, + 58,44,24,47,25,8,3,9,6,71, + 13,7,4,43,5,1,2,0,62,63, + 10,31,35,33,30,38,15,25,14,21, + 19,20,22,23,18,16,24,39,42,40, + 41,28,37,32,36,5,7,4,3,26, + 27,9,6,11,12,29,34,1,2,118, + 8,0,8,73,64,75,0,75,68,73, + 91,74,64,59,3,8,70,13,69,0, + 87,103,104,105,43,73,119,122,71,72, + 75,58,56,60,77,79,85,83,76,81, + 82,84,86,64,78,80,13,8,48,61, + 46,65,49,17,50,51,52,53,54,66, + 55,67,44,47,57,62,63,10,31,35, + 33,30,38,15,25,14,21,19,20,22, + 23,18,16,24,39,42,40,41,28,37, + 32,36,26,27,11,12,29,34,9,6, + 3,4,7,5,1,2,0,9,6,7, + 5,4,1,2,3,59,68,69,70,8, + 74,91,0,5,7,3,59,6,9,91, + 48,14,15,46,16,65,49,17,18,50, + 51,19,20,52,53,21,22,54,66,55, + 10,67,23,44,24,47,25,1,2,4, + 74,8,61,0,43,73,4,1,2,64, + 8,0,48,14,15,46,16,49,17,18, + 50,51,19,20,52,7,53,21,22,54, + 55,23,44,24,47,25,1,2,8,59, + 9,6,5,4,74,13,3,0,8,74, + 14,15,30,62,16,31,32,18,19,20, + 63,7,33,21,22,34,35,36,57,37, + 38,10,23,24,25,39,40,41,1,2, 3,26,27,9,6,11,12,5,29,4, - 43,72,28,0,10,66,61,67,68,15, + 42,28,0,57,46,7,47,5,1,2, + 4,75,64,120,106,26,27,59,3,92, + 90,6,93,94,11,12,89,88,45,95, + 96,97,98,9,99,100,101,68,91,74, + 121,69,108,109,110,111,112,113,114,115, + 116,117,73,118,102,107,71,70,13,8, + 0,64,61,46,16,65,49,18,50,51, + 19,20,52,53,21,22,54,66,55,67, + 23,44,24,47,25,15,14,48,8,3, + 9,6,13,58,60,87,17,43,7,1, + 2,5,4,10,56,0,4,45,8,73, + 64,0,44,1,2,4,103,104,105,0, + 46,47,75,3,73,13,64,57,8,91, + 74,69,70,68,0,48,14,15,61,46, + 16,65,49,17,18,50,51,19,20,52, + 53,21,22,54,66,55,10,67,23,44, + 24,47,25,1,2,4,91,0,69,70, + 71,8,0,63,62,11,12,6,93,94, + 99,9,100,5,29,69,45,68,111,112, + 108,109,110,116,115,117,89,88,113,114, + 97,98,95,96,101,102,26,27,70,90, + 106,59,3,48,14,15,61,46,16,65, + 49,17,18,50,51,19,20,52,53,21, + 22,54,66,55,10,67,23,24,47,25, + 1,2,4,44,0,119,0,8,64,70, + 0,73,8,59,3,69,70,13,45,0, + 8,64,69,0,76,0,62,63,26,27, + 9,6,11,12,5,29,34,3,4,7, + 39,42,40,41,28,37,32,36,15,25, + 14,21,19,20,22,23,18,16,24,10, + 31,35,33,30,38,59,1,2,0,61, + 46,16,65,49,18,50,51,19,20,52, + 53,21,22,54,66,55,10,67,23,44, + 24,47,25,15,14,48,8,3,9,13, + 58,56,60,87,17,45,4,6,7,1, + 2,5,43,0,10,65,61,66,67,15, 25,14,21,19,20,22,23,18,16,24, - 75,73,95,118,71,64,121,120,96,103, - 90,26,27,11,12,91,92,88,89,30, - 65,93,94,97,98,99,100,101,102,117, - 69,104,105,106,107,108,109,110,111,112, - 113,70,47,45,48,17,49,50,51,52, - 53,55,44,46,13,8,74,3,59,7, - 5,6,9,1,2,4,0,13,8,7, - 5,3,1,2,6,9,4,73,0 + 75,73,91,118,71,64,121,120,92,106, + 90,26,27,11,12,93,94,88,89,45, + 68,95,96,97,98,99,100,101,102,107, + 69,108,109,110,111,112,113,114,115,116, + 117,70,48,46,49,17,50,51,52,53, + 54,55,44,47,13,8,74,3,59,5, + 7,6,9,1,2,4,0,13,8,5, + 7,3,1,2,4,6,9,73,0 }; }; public final static byte asr[] = Asr.asr; @@ -1886,59 +1883,59 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static char nasb[] = {0, - 227,12,57,12,12,12,12,12,12,61, - 12,12,12,161,12,21,105,86,57,57, - 203,57,57,57,57,57,57,12,12,12, - 12,12,12,12,12,12,12,12,57,12, - 57,215,34,34,34,34,86,181,140,140, - 83,5,79,147,12,12,140,163,12,147, - 57,27,122,12,12,215,12,12,43,43, - 181,105,57,57,57,57,57,57,57,57, - 57,57,57,57,57,57,57,57,57,57, - 57,57,57,57,57,57,57,57,57,57, - 57,57,105,57,147,147,166,1,12,12, - 12,12,142,147,29,29,178,243,244,113, - 244,115,244,233,244,237,10,86,79,79, - 29,79,34,65,190,39,147,189,207,86, - 189,147,79,12,12,12,12,12,12,12, + 78,12,60,12,12,12,12,12,12,64, + 12,12,12,198,12,110,135,173,60,60, + 222,60,60,60,60,60,60,12,12,12, + 12,12,12,12,12,12,12,12,60,12, + 60,140,34,34,34,34,173,124,261,261, + 26,5,92,189,12,12,261,226,189,60, + 55,24,12,12,140,12,12,16,16,124, + 135,60,60,60,60,60,60,60,60,60, + 60,60,60,60,60,60,60,60,60,60, + 60,60,60,60,60,60,60,60,60,60, + 60,135,60,189,189,169,1,12,12,12, + 12,37,189,29,29,184,242,243,149,243, + 114,243,49,243,236,10,173,92,92,29, + 12,92,34,195,110,43,189,109,173,109, + 189,92,12,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,178,74,165,70,70,12,12,12, - 10,86,12,12,12,12,117,11,12,12, - 12,151,86,140,140,117,140,224,140,12, - 113,140,224,86,11,12,12,57,34,140, - 91,147,12,11,86,12,18,122,57,149, - 79,12,147,264,140,86,122,105,105,105, - 105,12,12,29,12,37,249,140,140,96, - 121,96,140,208,11,121,117,147,25,151, - 39,12,207,117,147,12,133,12,212,120, - 117,147,147,147,147,181,181,140,37,50, - 86,201,12,246,12,12,89,256,249,96, - 96,128,117,208,50,12,12,117,140,13, - 12,105,151,19,12,12,140,57,12,12, - 70,70,86,132,178,212,147,117,147,147, - 37,122,140,113,12,12,61,140,172,135, - 12,12,61,63,224,50,57,208,25,181, - 57,79,19,37,57,57,140,122,147,264, - 184,140,12,190,194,140,219,140,224,140, - 98,186,201,178,12,57,12,52,154,224, - 61,61,11,13,147,79,140,212,190,37, - 201,50,12,219,257,12,234,89,219,194, - 212,190,98,158,124,135,186,57,57,11, - 224,224,94,147,140,112,172,12,12,61, - 50,12,12,72,72,201,158,49,12,224, - 12,11,11,12,140,94,219,140,201,68, - 12,147,61,224,212,219,140,12,12,140, - 102,124,11,181,145,37,194,65,55,135, - 201,224,247,212,34,34,170,108,12,57, - 12,201,12,12,12,12,109,12,208,199, - 201,201,208,15,147,147,140,50,147,140, - 113,247,201,12,81,12,12,109,12,109, - 273,273,210,12,273,201,201,12,140,34, - 94,50,140,201,12,34,109,147,135,147, - 269,140,12,147,170,55,72,147,147,140, - 109,12,109,201,135,105,109,81,50,12, - 15,15,133,57,12,230,201,147,100,54, - 189,109,147,201,100,12,109 + 12,184,87,168,76,76,12,12,12,10, + 173,12,12,12,12,116,11,12,12,12, + 208,173,261,261,116,261,233,261,12,149, + 261,233,173,11,12,12,60,34,261,13, + 189,12,11,173,176,24,60,151,92,12, + 189,119,261,173,24,135,135,135,135,12, + 12,29,12,53,248,261,261,100,23,100, + 261,227,11,23,116,189,96,208,43,12, + 226,116,189,12,105,12,129,22,116,189, + 189,189,189,124,124,261,53,41,173,231, + 12,70,12,12,98,255,248,100,100,191, + 116,227,41,12,12,116,261,138,12,135, + 208,177,12,12,261,60,12,12,76,76, + 173,104,184,129,189,116,189,189,53,24, + 261,149,12,12,64,261,179,107,12,12, + 64,47,233,41,60,227,96,124,60,92, + 177,53,60,60,261,11,24,189,119,202, + 261,12,110,163,261,217,261,233,261,83, + 204,231,184,173,12,60,12,94,211,233, + 64,64,11,138,189,92,261,129,53,231, + 41,12,217,256,12,50,98,217,163,129, + 110,83,160,156,107,204,24,60,60,11, + 233,233,66,189,261,148,179,12,12,64, + 41,12,12,68,68,231,160,40,12,233, + 12,11,11,12,261,66,217,261,231,81, + 12,189,64,233,129,217,261,12,12,261, + 132,156,11,124,187,53,163,195,58,107, + 231,233,71,129,34,34,215,144,12,60, + 12,231,12,12,12,12,145,12,227,229, + 231,231,227,73,189,189,261,41,189,261, + 149,71,231,12,102,12,12,145,12,145, + 267,267,127,12,267,231,231,12,261,34, + 66,41,261,231,12,34,145,189,107,189, + 263,261,12,189,215,58,68,189,189,261, + 145,12,145,231,107,135,145,102,41,12, + 73,73,105,60,12,245,231,189,85,57, + 109,145,189,231,85,12,145 }; }; public final static char nasb[] = Nasb.nasb; @@ -1946,34 +1943,33 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 3,13,7,10,149,147,120,146,145,5, - 2,0,138,0,40,55,0,2,113,0, - 2,7,3,0,140,0,171,0,5,7, - 10,2,13,4,45,0,61,0,67,135, - 134,0,5,2,10,7,136,0,4,66, - 0,185,0,66,127,40,7,10,2,13, - 5,0,187,0,4,29,0,179,0,75, - 0,108,0,13,2,10,7,5,83,0, - 112,0,4,189,0,2,44,0,152,0, - 4,173,0,124,0,109,0,155,0,158, - 0,48,40,175,4,39,0,66,39,48, - 68,4,40,0,5,44,2,3,0,54, - 2,67,0,167,5,166,0,5,102,186, - 0,33,95,94,64,54,7,10,2,4, - 0,54,67,0,45,4,33,0,95,94, - 5,57,0,5,102,163,0,40,156,0, - 4,45,168,0,33,94,95,4,0,157, - 0,2,64,54,7,10,4,5,90,0, - 4,97,0,95,94,54,64,57,5,7, - 10,2,0,114,4,48,82,0,4,39, - 38,0,5,7,10,13,3,1,0,39, - 177,23,4,0,4,45,39,0,4,48, - 82,84,0,2,62,0,4,170,0,4, - 174,0,5,1,40,0,2,5,120,116, - 117,118,13,87,0,40,104,0,4,48, - 82,102,46,5,0,38,54,7,10,2, - 4,154,0,23,4,5,90,0,45,4, - 176,0,4,45,103,0 + 3,13,10,9,149,147,119,146,145,5, + 2,0,4,172,0,5,2,9,10,136, + 0,133,2,64,0,4,188,0,5,10, + 9,2,13,4,45,0,133,64,0,4, + 66,0,64,135,134,0,186,0,5,1, + 40,0,61,0,170,0,66,126,40,10, + 9,2,13,5,0,123,0,107,0,40, + 103,0,40,54,0,74,0,4,169,0, + 178,0,155,0,158,0,13,2,9,10, + 5,82,0,184,0,140,0,152,0,108, + 0,111,0,33,94,93,63,4,5,10, + 9,2,0,5,44,2,3,0,23,4, + 5,89,0,4,96,0,39,176,23,4, + 0,48,40,174,4,39,0,138,0,4, + 45,39,0,66,39,48,67,4,40,0, + 94,93,5,57,0,167,5,166,0,40, + 156,0,113,4,48,81,0,33,93,94, + 4,0,2,44,0,2,112,0,2,63, + 9,10,4,5,89,0,45,4,33,0, + 5,101,185,0,4,29,0,4,45,189, + 0,94,93,10,9,2,63,5,57,0, + 5,101,163,0,157,0,4,48,81,83, + 0,5,10,9,13,3,1,0,4,39, + 38,0,2,55,0,2,5,119,115,116, + 117,13,86,0,4,173,0,4,48,81, + 101,46,5,0,38,5,2,9,10,154, + 4,0,45,4,175,0,4,45,102,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1983,16 +1979,16 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final static char terminalIndex[] = {0, 113,114,2,31,13,10,79,115,9,100, 11,12,120,48,52,60,66,68,74,75, - 86,87,102,105,107,7,8,112,14,19, - 55,61,67,84,88,90,94,97,99,109, - 110,111,123,104,54,106,47,64,70,73, - 76,83,89,93,98,77,95,103,1,46, - 53,58,78,121,20,63,91,101,33,44, + 86,87,102,105,107,7,8,112,14,55, + 61,67,84,88,90,94,97,99,109,110, + 111,123,93,104,19,54,106,47,64,70, + 73,76,83,89,98,77,95,103,1,46, + 53,58,78,121,63,91,101,20,33,44, 119,122,30,118,96,108,49,50,56,57, 59,69,71,72,85,92,65,17,18,6, - 15,16,21,22,32,4,23,24,25,26, - 27,28,5,34,35,36,37,38,39,40, - 41,42,43,80,81,82,29,117,51,3, + 32,4,15,16,21,22,23,24,25,26, + 27,28,80,81,82,5,29,34,35,36, + 37,38,39,40,41,42,43,117,51,3, 124,62,116 }; }; @@ -2001,26 +1997,26 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 132,137,139,0,0,138,236,136,0,230, - 135,0,146,134,0,0,145,151,0,0, - 152,161,182,162,163,164,165,166,154,167, - 168,169,127,170,171,0,144,129,133,130, - 172,0,141,140,155,180,0,0,0,0, - 0,0,0,0,175,148,158,0,205,0, - 189,0,202,206,0,128,0,174,0,0, - 0,0,0,0,207,178,0,0,0,0, - 0,0,126,131,0,0,188,0,0,203, - 213,160,209,210,211,0,0,0,0,149, - 208,221,177,198,0,0,212,0,0,0, - 241,242,150,181,0,191,192,193,194,195, - 197,200,0,0,215,218,0,220,0,239, - 0,240,0,142,143,147,0,0,157,159, - 0,173,0,183,184,185,186,187,190,0, - 196,0,199,204,0,216,217,0,0,222, - 225,227,229,0,233,234,235,237,238,125, - 0,153,156,0,176,0,179,0,201,214, - 219,0,223,224,226,228,0,231,232,243, - 244,0,0,0,0,0,0 + 132,137,138,0,0,136,0,0,229,235, + 135,0,145,134,0,0,144,150,0,0, + 151,160,181,161,162,163,164,165,153,166, + 167,168,127,143,169,170,0,129,133,130, + 171,0,140,139,154,179,0,0,0,0, + 0,0,0,174,0,147,157,0,204,0, + 188,201,205,0,0,128,173,0,0,0, + 0,0,0,206,177,0,0,0,0,0, + 0,126,131,0,0,187,0,0,202,212, + 159,208,209,210,0,0,148,0,0,207, + 220,176,197,0,0,211,0,0,0,240, + 241,149,180,0,190,191,192,193,194,196, + 199,0,0,214,217,0,219,0,238,0, + 239,0,0,141,142,146,0,0,156,158, + 0,172,0,182,183,184,185,186,189,0, + 195,0,198,203,0,215,216,0,0,221, + 224,226,228,0,232,233,234,237,125,0, + 152,155,0,175,0,178,0,200,213,218, + 0,222,223,225,227,0,230,231,236,242, + 243,0,0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2028,18 +2024,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopePrefix { public final static char scopePrefix[] = { - 156,572,591,523,539,550,561,361,266,280, - 302,308,42,291,381,419,164,580,466,20, - 51,71,80,85,90,127,192,297,314,325, - 336,141,272,286,494,27,141,371,336,599, - 27,214,245,1,14,61,76,106,227,319, - 332,341,350,354,437,459,488,515,519,609, - 613,617,97,7,97,399,415,428,449,507, - 428,530,546,557,568,204,477,56,56,153, - 219,222,240,261,222,222,56,358,456,463, - 153,56,630,110,233,403,443,116,116,233, - 56,233,390,174,104,441,621,628,621,628, - 65,409,134,104,104,250 + 156,566,585,517,533,544,555,355,262,276, + 298,304,42,287,375,413,164,574,460,20, + 51,71,80,85,90,127,192,293,310,321, + 332,141,268,282,488,27,141,365,332,593, + 27,214,241,1,14,61,76,106,315,328, + 337,344,348,431,453,482,509,513,603,607, + 611,97,7,97,393,409,422,443,501,422, + 524,540,551,562,204,471,56,56,153,219, + 222,56,236,257,222,222,56,352,450,457, + 153,56,626,110,229,397,437,116,116,229, + 56,229,384,174,104,435,615,622,615,622, + 65,403,134,104,104,246 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2047,18 +2043,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,5,5,5,5,368,132,95, - 132,132,48,277,387,425,170,67,472,25, - 25,25,59,59,95,132,197,132,132,330, - 330,146,277,101,499,38,149,376,586,604, - 32,208,208,5,18,5,59,95,231,323, - 323,323,95,95,132,243,5,5,5,5, - 5,243,231,11,101,368,368,368,453,499, - 432,534,534,534,534,208,481,59,59,5, - 5,225,243,5,264,264,348,95,5,243, - 5,492,5,113,345,406,446,119,123,236, - 511,502,393,177,95,95,623,623,625,625, - 67,411,136,199,184,252 + 18,5,5,5,5,5,5,362,132,95, + 132,132,48,273,381,419,170,67,466,25, + 25,25,59,59,95,132,197,132,132,326, + 326,146,273,101,493,38,149,370,580,598, + 32,208,208,5,18,5,59,95,319,319, + 319,95,95,132,239,5,5,5,5,5, + 239,624,11,101,362,362,362,447,493,426, + 528,528,528,528,208,475,59,59,5,5, + 225,227,239,5,260,260,227,95,5,239, + 5,486,5,113,341,400,440,119,123,232, + 505,496,387,177,95,95,617,617,619,619, + 67,405,136,199,184,248 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2066,18 +2062,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 46,17,17,17,17,17,17,71,86,47, - 80,118,77,52,71,70,46,17,19,3, - 6,9,163,163,160,116,46,81,118,117, - 119,126,53,47,136,131,126,71,17,17, - 131,96,58,133,74,166,163,160,60,117, - 117,119,178,50,55,140,18,17,17,17, - 17,17,12,112,160,71,70,70,36,136, - 70,17,17,17,17,96,19,167,163,179, - 94,101,75,59,154,76,119,72,141,140, - 171,136,16,160,119,103,69,128,128,57, - 136,136,71,46,160,65,134,44,134,44, - 166,103,116,46,46,58 + 46,17,17,17,17,17,17,70,85,47, + 79,117,76,52,70,69,46,17,19,3, + 7,8,163,163,160,115,46,80,117,116, + 118,125,53,47,136,130,125,70,17,17, + 130,95,58,132,73,166,163,160,116,116, + 118,177,50,54,140,18,17,17,17,17, + 17,12,111,160,70,69,69,37,136,69, + 17,17,17,17,95,19,167,163,178,93, + 100,60,74,59,154,75,118,71,141,140, + 170,136,16,160,118,102,68,127,127,57, + 136,136,70,46,160,65,134,44,134,44, + 166,102,115,46,46,58 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2086,16 +2082,16 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLa { public final static byte scopeLa[] = { 119,74,74,74,74,74,74,74,71,13, - 71,71,65,1,74,122,64,3,74,65, - 65,65,1,1,13,71,64,71,71,1, - 1,71,1,1,4,65,70,13,1,1, - 65,74,74,74,119,74,1,13,1,1, - 1,1,13,13,71,118,74,74,74,74, - 74,118,1,74,1,74,74,74,73,4, - 74,65,65,65,65,74,3,1,1,74, - 74,3,118,74,1,1,1,13,74,118, - 74,5,74,1,54,69,73,1,1,6, - 1,54,76,75,13,13,4,4,4,4, + 71,71,68,1,74,122,64,3,74,68, + 68,68,1,1,13,71,64,71,71,1, + 1,71,1,1,4,68,70,13,1,1, + 68,74,74,74,119,74,1,13,1,1, + 1,13,13,71,118,74,74,74,74,74, + 118,1,74,1,74,74,74,73,4,74, + 68,68,68,68,74,3,1,1,74,74, + 3,1,118,74,1,1,1,13,74,118, + 74,5,74,1,43,69,73,1,1,6, + 1,43,76,75,13,13,4,4,4,4, 3,1,64,1,1,3 }; }; @@ -2104,16 +2100,16 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeStateSet { public final static char scopeStateSet[] = { - 96,248,248,248,248,248,248,106,87,96, - 85,154,85,98,106,106,96,248,248,181, - 223,224,57,57,82,154,96,85,154,154, - 154,310,98,96,149,50,310,106,248,248, - 50,141,63,26,106,30,57,82,63,154, - 154,154,22,98,33,79,248,248,248,248, - 248,248,243,6,82,106,106,106,279,149, - 106,248,248,248,248,141,248,30,57,24, - 141,143,137,63,60,68,154,106,54,79, - 152,149,248,82,154,1,106,154,154,121, + 96,250,250,250,250,250,250,106,87,96, + 85,154,85,98,106,106,96,250,250,182, + 226,226,57,57,82,154,96,85,154,154, + 154,312,98,96,149,50,312,106,250,250, + 50,141,63,26,106,30,57,82,154,154, + 154,22,98,33,79,250,250,250,250,250, + 250,230,6,82,106,106,106,281,149,106, + 250,250,250,250,141,250,30,57,24,141, + 143,63,137,63,60,68,154,106,54,79, + 152,149,250,82,154,1,106,154,154,121, 149,149,106,96,82,11,118,158,118,158, 30,1,154,96,96,63 }; @@ -2124,69 +2120,68 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, 314,3,57,0,127,0,313,3,119,0, - 127,175,0,127,178,75,0,217,0,252, - 127,30,125,0,20,0,292,127,30,54, + 127,174,0,127,177,75,0,216,0,251, + 127,45,125,0,20,0,291,127,45,43, 0,20,53,0,33,134,0,20,53,0, - 0,292,127,30,54,205,0,20,131,0, - 252,127,30,130,0,185,128,0,144,0, - 220,3,290,0,290,0,2,0,127,0, - 252,127,30,133,0,185,128,225,0,185, - 128,44,225,0,185,128,310,44,0,131, - 190,167,128,0,129,0,190,167,128,0, - 136,129,0,171,0,306,127,171,0,127, - 171,0,223,129,0,167,243,0,139,0, - 0,0,137,0,0,0,305,127,163,251, - 0,128,0,251,0,130,0,0,128,0, - 304,127,163,250,0,128,0,0,44,128, + 0,291,127,45,43,204,0,20,131,0, + 251,127,45,133,0,178,128,0,143,0, + 219,3,290,0,290,0,2,0,127,0, + 251,127,45,132,0,178,128,224,0,178, + 128,44,224,0,178,128,309,44,0,129, + 187,167,128,0,129,0,187,167,128,0, + 136,129,0,171,0,305,127,171,0,127, + 171,0,222,129,0,167,242,0,138,0, + 0,0,137,0,0,0,304,127,163,250, + 0,128,0,250,0,130,0,0,128,0, + 303,127,163,249,0,128,0,0,44,128, 0,0,152,3,0,127,279,278,127,75, - 277,171,0,278,127,75,277,171,0,216, - 0,217,0,277,171,0,96,0,0,216, - 0,217,0,204,96,0,0,216,0,217, - 0,278,127,277,171,0,216,0,204,0, - 0,216,0,228,127,3,0,127,0,0, - 0,0,0,228,127,3,217,0,224,3, - 0,213,127,0,209,0,190,167,177,0, - 136,0,167,128,0,10,0,0,0,215, - 59,0,126,0,228,127,3,182,0,182, - 0,2,0,0,127,0,0,0,0,0, - 199,3,0,202,0,238,127,163,28,17, - 0,185,128,56,58,0,198,129,0,131, - 185,128,275,58,0,185,128,275,58,0, - 185,128,69,124,56,0,238,127,163,56, - 0,238,127,163,227,56,0,273,127,163, - 124,66,0,273,127,163,66,0,185,128, - 66,0,137,0,190,185,128,243,0,139, - 0,185,128,243,0,190,167,128,10,0, - 167,128,10,0,93,139,0,149,0,266, - 127,146,0,266,127,171,0,162,85,0, - 297,161,299,300,3,82,0,127,174,0, - 299,300,3,82,0,129,0,127,174,0, - 162,3,76,191,81,0,127,129,0,191, - 81,0,108,2,133,127,129,0,226,3, - 76,0,199,168,0,33,172,0,168,0, - 178,33,172,0,226,3,86,0,191,156, - 226,3,84,0,62,174,0,226,3,84, - 0,127,174,62,174,0,298,127,163,0, - 162,0,215,78,0,30,174,0,162,117, - 158,0,30,172,0,220,3,0,215,59, - 263,0,162,59,0,179,3,294,63,128, - 0,127,0,0,0,0,294,63,128,0, - 2,148,127,0,0,0,0,179,3,35, - 0,150,0,126,54,167,128,0,31,150, - 0,93,139,31,150,0,223,185,128,0, - 149,31,150,0,179,3,39,0,162,3, - 39,0,162,3,65,179,30,31,0,179, - 30,31,0,20,2,133,127,0,162,3, - 65,179,30,34,0,179,30,34,0,162, - 3,65,179,30,36,0,179,30,36,0, - 162,3,65,179,30,32,0,179,30,32, - 0,220,3,126,190,167,128,10,0,126, - 190,167,128,10,0,139,2,0,127,0, - 220,3,125,177,167,128,10,0,177,167, - 128,10,0,137,2,0,127,0,220,3, - 136,0,220,3,140,0,162,59,140,0, - 258,0,31,0,31,142,0,166,0,162, - 3,0 + 277,171,0,278,127,75,277,171,0,215, + 0,216,0,277,171,0,96,0,0,215, + 0,216,0,203,96,0,0,215,0,216, + 0,278,127,277,171,0,215,0,203,0, + 0,215,0,227,127,3,0,127,0,0, + 0,0,0,227,127,3,216,0,223,3, + 0,212,127,0,208,0,148,0,167,128, + 0,10,0,0,0,214,59,0,126,0, + 227,127,3,182,0,182,0,2,0,0, + 127,0,0,0,0,0,198,3,0,201, + 0,237,127,163,28,17,0,178,128,56, + 58,0,197,129,0,129,178,128,275,58, + 0,178,128,275,58,0,178,128,69,124, + 56,0,237,127,163,56,0,237,127,163, + 226,56,0,273,127,163,124,65,0,273, + 127,163,65,0,178,128,65,0,137,0, + 187,178,128,242,0,138,0,178,128,242, + 0,187,167,128,10,0,167,128,10,0, + 93,138,0,266,127,146,0,266,127,171, + 0,162,85,0,296,161,298,299,3,82, + 0,127,173,0,298,299,3,82,0,129, + 0,127,173,0,162,3,76,190,81,0, + 127,129,0,190,81,0,108,2,133,127, + 129,0,225,3,76,0,198,168,0,33, + 171,0,168,0,177,33,171,0,225,3, + 86,0,190,156,225,3,84,0,62,173, + 0,225,3,84,0,127,173,62,173,0, + 297,127,163,0,162,0,214,78,0,30, + 173,0,162,107,159,0,30,171,0,219, + 3,0,214,59,263,0,162,59,0,179, + 3,293,63,128,0,127,0,0,0,0, + 293,63,128,0,2,147,127,0,0,0, + 0,179,3,34,0,149,0,126,43,167, + 128,0,31,149,0,93,138,31,149,0, + 220,178,128,0,148,31,149,0,179,3, + 38,0,162,3,38,0,162,3,68,179, + 45,30,0,179,45,30,0,20,2,133, + 127,0,162,3,68,179,45,33,0,179, + 45,33,0,162,3,68,179,45,35,0, + 179,45,35,0,162,3,68,179,45,31, + 0,179,45,31,0,219,3,126,187,167, + 128,10,0,126,187,167,128,10,0,138, + 2,0,127,0,219,3,125,256,167,128, + 10,0,256,167,128,10,0,137,2,0, + 127,0,219,3,136,0,219,3,140,0, + 162,59,140,0,258,0,31,0,31,141, + 0,166,0,136,0,162,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2194,38 +2189,38 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 4566,4597,4584,4583,0,3454,4109,1903,3110,0, - 3268,3231,3177,3140,3086,3049,2995,2958,2902,2572, - 2535,3975,0,1404,0,2979,2790,2274,0,3472, - 2769,0,3268,3231,3204,3113,3177,3140,3086,3049, - 2995,2958,622,2902,2572,2535,4015,2937,0,3442, - 3071,3143,0,651,592,0,2910,2782,0,665, - 4382,0,4305,665,4223,3484,4382,3404,3963,4370, - 4196,2837,4185,581,3393,2823,2685,0,1479,650, - 0,4402,4253,0,4402,4253,3605,4098,4088,3545, - 4078,3995,3982,3535,0,4402,4253,3605,4098,4088, - 3545,4078,3995,3982,3535,3268,3231,3177,3140,3086, - 3049,2995,2958,2902,2572,2535,0,2616,791,0, - 2837,4305,1698,4223,3484,4404,3393,1612,864,729, - 4395,2907,1075,1166,865,0,2304,2273,1791,1705, - 3484,2907,3404,2823,2685,2961,2773,0,2173,800, - 0,679,0,4209,536,2647,0,4542,4537,4528, - 4520,4516,4470,4462,4453,4350,3599,3438,3287,3218, - 4414,4050,3127,3527,3196,3105,2591,3037,1964,0, - 4542,3292,4537,2577,2565,4528,4520,4516,780,735, - 4470,4462,4453,1659,4350,1573,1530,3599,1487,1444, - 1358,1315,3438,626,3287,1954,2701,3218,4414,4050, - 915,3127,658,3527,3196,646,3105,4209,2591,2647, - 3037,1964,631,3404,3963,4370,4196,2837,4305,4185, - 2851,665,2553,4223,2540,3484,581,3393,2823,4382, - 2685,2261,937,2085,1262,2173,800,3941,1042,2275, - 2344,2312,2403,2375,593,2797,2656,2512,2485,2458, - 2431,3501,3415,2711,3368,3343,3919,3897,3875,3853, - 3831,3809,3787,3765,3743,3721,3692,3661,1968,2224, - 2187,2136,2099,1278,1219,2048,2011,1176,878,1917, - 1880,821,743,686,536,1837,1794,1751,1708,1665, - 1622,1579,1536,1493,1450,1407,1364,1321,1133,999, - 956,1087,0 + 4615,4758,4744,4720,0,2857,4270,2402,3647,0, + 3383,3346,3309,3272,3235,3198,3141,3104,3067,2744, + 2668,2663,0,1296,0,1247,1203,1113,0,2886, + 2800,0,3383,3346,4193,3032,3309,3272,3235,3198, + 3141,3104,1240,3067,2744,2668,3407,2807,0,3200, + 4483,3163,0,2927,2724,0,3632,3077,0,4463, + 4402,0,4436,4463,4310,3507,4402,2818,3520,4288, + 4059,2636,3649,4274,3035,2429,2407,0,2704,2145, + 0,4481,4353,0,4481,4353,3702,4188,4175,3692, + 4106,4093,3713,2856,0,4481,4353,3702,4188,4175, + 3692,4106,4093,3713,2856,3383,3346,3309,3272,3235, + 3198,3141,3104,3067,2744,2668,0,3085,731,0, + 2636,4436,4497,4310,3507,2666,3035,2858,728,717, + 2656,2780,983,855,727,0,2067,2029,1861,1290, + 3507,2780,2818,2429,2407,2864,3626,0,657,577, + 0,979,0,4301,534,2833,0,4632,4628,4624, + 4602,4567,4563,4545,4541,4537,4476,4713,4708,4702, + 4697,4340,4165,4691,4160,3057,736,2472,3182,2882, + 0,4632,3557,4628,3333,2942,4624,4602,4567,2651, + 920,4563,4545,4541,2483,4537,3370,4476,3351,3314, + 4713,3296,3277,3159,3078,4708,2972,4702,2425,2421, + 4697,4340,4165,2508,4691,2493,4160,3057,736,4301, + 2472,623,2833,3182,2882,2674,2237,2150,2063,799, + 2818,3520,4288,4059,2636,4436,3649,4463,4310,3507, + 4274,3035,2429,4402,2407,2442,931,657,577,4037, + 2248,2286,1174,2319,2379,2351,591,3009,2983,2609, + 2582,2552,2525,3669,3603,3533,3482,3457,4015,3993, + 3971,3949,3927,3905,3883,3861,3839,3817,627,4072, + 1944,2199,2161,2112,2074,1251,1207,2025,1987,1126, + 874,1895,1857,817,741,684,534,1814,1771,1728, + 1685,1642,1599,1556,1513,1470,1427,1384,1341,1297, + 1036,993,950,1080,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2233,59 +2228,59 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface InSymb { public final static char inSymb[] = {0, - 0,293,127,265,39,31,34,36,32,10, - 136,125,133,7,130,4,3,128,35,29, + 0,292,127,265,38,30,33,35,31,10, + 136,125,132,7,133,4,3,128,34,29, 5,12,11,6,9,27,26,140,145,148, - 147,150,149,153,151,155,154,157,57,158, - 70,3,30,30,30,30,128,3,30,30, - 168,127,59,3,62,63,30,7,125,162, - 62,63,167,166,125,3,124,126,103,120, - 3,59,90,96,12,11,92,91,6,94, - 93,65,30,88,89,9,98,97,100,99, - 101,113,112,111,110,109,108,107,106,105, - 104,69,117,102,179,162,168,127,179,179, - 179,179,167,220,127,127,127,267,268,251, - 269,243,270,66,271,272,10,128,59,59, - 127,59,294,3,190,4,179,54,5,128, - 54,220,162,147,147,145,145,145,149,149, - 149,149,148,148,151,150,150,154,153,155, - 162,157,127,59,3,218,217,136,126,125, - 10,128,65,65,65,65,190,177,252,255, - 252,213,128,6,163,167,231,128,126,125, - 124,163,128,128,185,167,252,206,3,295, - 168,152,258,190,128,125,185,167,73,213, - 215,158,224,127,3,128,167,3,3,3, - 3,126,125,70,167,127,127,126,125,127, - 185,127,163,127,185,167,54,179,127,127, - 4,223,5,54,228,229,146,230,127,167, - 54,162,162,162,162,3,3,6,184,305, - 128,169,225,56,54,205,58,171,307,127, - 127,73,190,127,273,124,274,190,156,260, - 263,59,180,4,124,126,156,69,224,199, - 187,182,177,3,127,70,228,190,220,220, - 127,167,163,227,30,54,275,277,127,3, - 182,309,225,44,128,273,69,70,127,3, - 59,162,4,127,69,69,3,167,199,127, - 213,156,126,190,127,163,65,30,128,75, - 127,213,306,127,125,73,285,199,70,128, - 44,310,185,260,220,215,221,127,190,127, - 131,238,17,54,171,60,56,58,237,127, - 127,185,127,278,73,70,213,73,69,185, - 128,128,127,228,221,28,127,3,124,56, - 238,292,54,10,61,131,278,163,289,128, - 290,185,185,57,156,127,127,163,266,199, - 276,28,69,128,70,65,30,231,231,279, - 127,70,185,3,3,127,127,3,69,70, - 156,128,185,127,69,69,127,298,80,78, + 147,150,149,153,151,155,154,158,57,159, + 70,3,45,45,45,45,128,3,45,45, + 168,127,59,3,62,63,45,5,162,62, + 63,167,166,125,3,124,126,106,120,3, + 59,90,92,12,11,94,93,6,96,95, + 68,45,88,89,9,98,97,100,99,101, + 117,116,115,114,113,112,111,110,109,108, + 69,107,102,179,162,168,127,179,179,179, + 179,167,219,127,127,127,267,268,250,269, + 242,270,65,271,272,10,128,59,59,127, + 125,59,293,3,187,4,179,43,128,43, + 219,162,147,147,145,145,145,149,149,149, + 149,148,148,151,150,150,154,153,155,162, + 158,127,59,3,217,216,136,126,125,10, + 128,68,68,68,68,187,256,251,254,251, + 212,128,6,163,167,230,128,126,125,124, + 163,128,128,178,167,251,205,3,294,168, + 152,258,187,128,178,167,73,212,214,159, + 223,127,3,128,167,3,3,3,3,126, + 125,70,167,127,127,126,125,127,178,127, + 163,127,178,167,43,179,127,127,4,220, + 5,43,227,228,146,229,127,167,43,162, + 162,162,162,3,3,6,184,304,128,169, + 224,56,43,204,58,171,306,127,127,73, + 187,127,273,124,274,187,156,260,263,59, + 180,4,124,126,156,69,223,198,186,182, + 128,3,127,70,227,187,219,219,127,167, + 163,226,45,43,275,277,127,3,182,308, + 224,44,128,273,69,70,127,3,59,162, + 4,127,69,69,3,178,167,198,127,212, + 156,126,187,127,163,68,45,128,75,127, + 212,305,127,128,125,73,285,198,70,128, + 44,309,178,260,219,214,221,127,127,129, + 237,17,43,171,60,56,58,236,127,127, + 178,127,278,73,70,212,167,73,69,178, + 128,128,127,227,221,28,127,3,124,56, + 237,291,43,10,61,129,278,163,289,128, + 290,178,178,57,156,127,127,163,266,198, + 276,28,69,128,70,68,45,230,230,279, + 127,70,178,3,3,127,127,3,69,70, + 156,128,178,127,69,69,127,297,80,78, 1,162,8,86,84,82,81,76,83,85, - 79,77,56,75,220,314,221,238,152,163, - 250,185,227,292,280,119,8,73,215,73, - 3,3,3,191,3,124,162,124,178,70, - 127,127,163,227,65,3,73,226,168,226, - 300,146,76,226,127,127,61,95,313,168, - 156,199,156,299,127,3,156,280,304,231, - 156,156,127,69,191,161,266,162,189,70, - 69,122,297,156,189,8,156 + 79,77,56,75,219,314,221,237,152,163, + 249,178,226,291,280,119,8,73,214,73, + 3,3,3,190,3,124,162,124,177,70, + 127,127,163,226,68,3,73,225,168,225, + 299,146,76,225,127,127,61,91,313,168, + 156,198,156,298,127,3,156,280,303,230, + 156,156,127,69,190,161,266,162,189,70, + 69,122,296,156,189,8,156 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2431,7 +2426,6 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "qualified_or_unqualified_name", "unqualified_id_name", "identifier_name", - "operator_function_id_name", "template_id_name", "nested_name_specifier", "class_or_namespace_name", @@ -2563,18 +2557,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final static int NUM_STATES = 527, NT_OFFSET = 123, - LA_STATE_OFFSET = 5771, + LA_STATE_OFFSET = 5763, MAX_LA = 2147483647, - NUM_RULES = 535, + NUM_RULES = 533, NUM_NONTERMINALS = 197, NUM_SYMBOLS = 320, SEGMENT_SIZE = 8192, - START_STATE = 4103, + START_STATE = 1291, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4827, - ERROR_ACTION = 5236; + ACCEPT_ACTION = 4862, + ERROR_ACTION = 5230; 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 7e02aa0d315..104d2bcdc38 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 @@ -16,71 +16,71 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPNoCastExpressionParsersym { public final static int TK_asm = 60, - TK_auto = 47, + TK_auto = 48, TK_bool = 14, TK_break = 77, TK_case = 78, TK_catch = 119, TK_char = 15, TK_class = 61, - TK_const = 45, - TK_const_cast = 31, + TK_const = 46, + TK_const_cast = 30, TK_continue = 79, TK_default = 80, TK_delete = 62, TK_do = 81, TK_double = 16, - TK_dynamic_cast = 32, + TK_dynamic_cast = 31, TK_else = 122, - TK_enum = 66, - TK_explicit = 48, + TK_enum = 65, + TK_explicit = 49, TK_export = 87, TK_extern = 17, - TK_false = 33, + TK_false = 32, TK_float = 18, TK_for = 82, - TK_friend = 49, + TK_friend = 50, TK_goto = 83, TK_if = 84, - TK_inline = 50, + TK_inline = 51, TK_int = 19, TK_long = 20, - TK_mutable = 51, + TK_mutable = 52, TK_namespace = 56, TK_new = 63, TK_operator = 7, - TK_private = 114, - TK_protected = 115, - TK_public = 116, - TK_register = 52, - TK_reinterpret_cast = 34, + TK_private = 103, + TK_protected = 104, + TK_public = 105, + TK_register = 53, + TK_reinterpret_cast = 33, TK_return = 85, TK_short = 21, TK_signed = 22, - TK_sizeof = 35, - TK_static = 53, - TK_static_cast = 36, - TK_struct = 67, + TK_sizeof = 34, + TK_static = 54, + TK_static_cast = 35, + TK_struct = 66, TK_switch = 86, - TK_template = 54, - TK_this = 37, + TK_template = 43, + TK_this = 36, TK_throw = 57, TK_try = 75, - TK_true = 38, + TK_true = 37, TK_typedef = 55, - TK_typeid = 39, + TK_typeid = 38, TK_typename = 10, - TK_union = 68, + TK_union = 67, TK_unsigned = 23, TK_using = 58, TK_virtual = 44, TK_void = 24, - TK_volatile = 46, + TK_volatile = 47, TK_wchar_t = 25, TK_while = 76, - TK_integer = 40, - TK_floating = 41, - TK_charconst = 42, + TK_integer = 39, + TK_floating = 40, + TK_charconst = 41, TK_stringlit = 28, TK_identifier = 1, TK_Completion = 2, @@ -89,8 +89,8 @@ public interface CPPNoCastExpressionParsersym { TK_LeftBracket = 59, TK_LeftParen = 3, TK_Dot = 120, - TK_DotStar = 96, - TK_Arrow = 103, + TK_DotStar = 92, + TK_Arrow = 106, TK_ArrowStar = 90, TK_PlusPlus = 26, TK_MinusMinus = 27, @@ -100,35 +100,35 @@ public interface CPPNoCastExpressionParsersym { TK_Minus = 12, TK_Tilde = 5, TK_Bang = 29, - TK_Slash = 91, - TK_Percent = 92, + TK_Slash = 93, + TK_Percent = 94, TK_RightShift = 88, TK_LeftShift = 89, - TK_LT = 30, - TK_GT = 65, - TK_LE = 93, - TK_GE = 94, + TK_LT = 45, + TK_GT = 68, + TK_LE = 95, + TK_GE = 96, TK_EQ = 97, TK_NE = 98, TK_Caret = 99, TK_Or = 100, TK_AndAnd = 101, TK_OrOr = 102, - TK_Question = 117, + TK_Question = 107, TK_Colon = 73, TK_ColonColon = 4, - TK_DotDotDot = 95, + TK_DotDotDot = 91, TK_Assign = 69, - 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_StarAssign = 108, + TK_SlashAssign = 109, + TK_PercentAssign = 110, + TK_PlusAssign = 111, + TK_MinusAssign = 112, + TK_RightShiftAssign = 113, + TK_LeftShiftAssign = 114, + TK_AndAssign = 115, + TK_CaretAssign = 116, + TK_OrAssign = 117, TK_Comma = 70, TK_RightBracket = 118, TK_RightParen = 74, @@ -136,7 +136,7 @@ public interface CPPNoCastExpressionParsersym { TK_SemiColon = 13, TK_LeftBrace = 64, TK_ERROR_TOKEN = 72, - TK_0 = 43, + TK_0 = 42, TK_EOF_TOKEN = 121; public final static String orderedTerminalSymbols[] = { @@ -170,7 +170,6 @@ public interface CPPNoCastExpressionParsersym { "MinusMinus", "stringlit", "Bang", - "LT", "const_cast", "dynamic_cast", "false", @@ -184,7 +183,9 @@ public interface CPPNoCastExpressionParsersym { "floating", "charconst", "0", + "template", "virtual", + "LT", "const", "volatile", "auto", @@ -194,7 +195,6 @@ public interface CPPNoCastExpressionParsersym { "mutable", "register", "static", - "template", "typedef", "namespace", "throw", @@ -205,10 +205,10 @@ public interface CPPNoCastExpressionParsersym { "delete", "new", "LeftBrace", - "GT", "enum", "struct", "union", + "GT", "Assign", "Comma", "RightBrace", @@ -231,19 +231,23 @@ public interface CPPNoCastExpressionParsersym { "RightShift", "LeftShift", "ArrowStar", + "DotDotDot", + "DotStar", "Slash", "Percent", "LE", "GE", - "DotDotDot", - "DotStar", "EQ", "NE", "Caret", "Or", "AndAnd", "OrOr", + "private", + "protected", + "public", "Arrow", + "Question", "StarAssign", "SlashAssign", "PercentAssign", @@ -254,10 +258,6 @@ public interface CPPNoCastExpressionParsersym { "AndAssign", "CaretAssign", "OrAssign", - "private", - "protected", - "public", - "Question", "RightBracket", "catch", "Dot", diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java index ae1727875b7..2e2cb8fefb6 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java @@ -416,1864 +416,1857 @@ public CPPNoFunctionDeclaratorParser(String[] mapFrom) { // constructor } // - // Rule 47: qualified_id_name ::= :: identifier_name + // Rule 47: qualified_id_name ::= :: unqualified_id_name // case 47: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 48: qualified_id_name ::= :: operator_function_id_name + // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // case 48: { action.builder. - consumeGlobalQualifiedId(); break; + consumeNestedNameSpecifier(true); break; } // - // Rule 49: qualified_id_name ::= :: template_id_name + // Rule 49: nested_name_specifier ::= class_or_namespace_name :: // case 49: { action.builder. - consumeGlobalQualifiedId(); break; + consumeNestedNameSpecifier(false); break; } // - // Rule 50: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // case 50: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 51: nested_name_specifier ::= class_or_namespace_name :: + // Rule 51: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // case 51: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 52: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name // case 52: { action.builder. - consumeNestedNameSpecifier(true); break; - } - - // - // Rule 53: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: - // - case 53: { action.builder. - consumeNestedNameSpecifier(false); break; - } - - // - // Rule 54: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name - // - case 54: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 56: nested_name_specifier_opt ::= $Empty + // Rule 54: nested_name_specifier_opt ::= $Empty // - case 56: { action.builder. + case 54: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 59: postfix_expression ::= postfix_expression [ expression ] + // Rule 57: postfix_expression ::= postfix_expression [ expression ] // - case 59: { action.builder. + case 57: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 60: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 60: { action.builder. + case 58: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 61: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 61: { action.builder. + case 59: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 62: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // + case 60: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // + case 61: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // case 62: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 63: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) - // - case 63: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 64: postfix_expression ::= postfix_expression . qualified_or_unqualified_name - // - case 64: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 65: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 65: { action.builder. + case 63: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 66: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 66: { action.builder. + case 64: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 67: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 67: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 68: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 68: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 69: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 69: { action.builder. + case 67: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 70: postfix_expression ::= postfix_expression ++ + // Rule 68: postfix_expression ::= postfix_expression ++ // - case 70: { action.builder. + case 68: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 71: postfix_expression ::= postfix_expression -- + // Rule 69: postfix_expression ::= postfix_expression -- // - case 71: { action.builder. + case 69: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 72: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 72: { action.builder. + case 70: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 73: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) // - case 73: { action.builder. + case 71: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 74: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 74: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 75: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) // - case 75: { action.builder. + case 73: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 76: postfix_expression ::= typeid ( expression ) + // Rule 74: postfix_expression ::= typeid ( expression ) // - case 76: { action.builder. + case 74: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 77: postfix_expression ::= typeid ( type_id ) + // Rule 75: postfix_expression ::= typeid ( type_id ) // - case 77: { action.builder. + case 75: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // + case 76: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // + case 77: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name // case 78: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 79: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name - // - case 79: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 80: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name - // - case 80: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 81: destructor_type_name ::= ~ identifier_token + // Rule 79: destructor_type_name ::= ~ identifier_token // - case 81: { action.builder. + case 79: { action.builder. consumeDestructorName(); break; } // - // Rule 82: destructor_type_name ::= ~ template_id_name + // Rule 80: destructor_type_name ::= ~ template_id_name // - case 82: { action.builder. + case 80: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 86: unary_expression ::= ++ cast_expression + // Rule 84: unary_expression ::= ++ cast_expression // - case 86: { action.builder. + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 87: unary_expression ::= -- cast_expression + // Rule 85: unary_expression ::= -- cast_expression // - case 87: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 88: unary_expression ::= & cast_expression + // Rule 86: unary_expression ::= & cast_expression // - case 88: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 89: unary_expression ::= * cast_expression + // Rule 87: unary_expression ::= * cast_expression // - case 89: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 90: unary_expression ::= + cast_expression + // Rule 88: unary_expression ::= + cast_expression // - case 90: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 91: unary_expression ::= - cast_expression + // Rule 89: unary_expression ::= - cast_expression // - case 91: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 92: unary_expression ::= ~ cast_expression + // Rule 90: unary_expression ::= ~ cast_expression // - case 92: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 93: unary_expression ::= ! cast_expression + // Rule 91: unary_expression ::= ! cast_expression // - case 93: { action.builder. + case 91: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 94: unary_expression ::= sizeof unary_expression + // Rule 92: unary_expression ::= sizeof unary_expression // - case 94: { action.builder. + case 92: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 95: unary_expression ::= sizeof ( type_id ) + // Rule 93: unary_expression ::= sizeof ( type_id ) // - case 95: { action.builder. + case 93: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } // - // Rule 96: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt + // Rule 94: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 96: { action.builder. + case 94: { action.builder. consumeExpressionNew(true); break; } // - // Rule 97: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt + // Rule 95: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt // - case 97: { action.builder. + case 95: { action.builder. consumeExpressionNew(false); break; } // - // Rule 99: new_placement_opt ::= $Empty + // Rule 97: new_placement_opt ::= $Empty // - case 99: { action.builder. + case 97: { action.builder. consumeEmpty(); break; } // - // Rule 100: new_type_id ::= type_specifier_seq + // Rule 98: new_type_id ::= type_specifier_seq // - case 100: { action.builder. + case 98: { action.builder. consumeTypeId(false); break; } // - // Rule 101: new_type_id ::= type_specifier_seq new_declarator + // Rule 99: new_type_id ::= type_specifier_seq new_declarator // - case 101: { action.builder. + case 99: { action.builder. consumeTypeId(true); break; } // - // Rule 102: new_declarator ::= new_pointer_operators + // Rule 100: new_declarator ::= new_pointer_operators // - case 102: { action.builder. + case 100: { action.builder. consumeNewDeclarator(); break; } // - // Rule 111: new_initializer_opt ::= $Empty + // Rule 109: new_initializer_opt ::= $Empty // - case 111: { action.builder. + case 109: { action.builder. consumeEmpty(); break; } // - // Rule 112: delete_expression ::= dcolon_opt delete cast_expression + // Rule 110: delete_expression ::= dcolon_opt delete cast_expression // - case 112: { action.builder. + case 110: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 113: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 111: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 113: { action.builder. + case 111: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 115: cast_expression ::= ( type_id ) cast_expression + // Rule 113: cast_expression ::= ( type_id ) cast_expression // - case 115: { action.builder. + case 113: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 117: pm_expression ::= pm_expression .* cast_expression + // Rule 115: pm_expression ::= pm_expression .* cast_expression // - case 117: { action.builder. + case 115: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 118: pm_expression ::= pm_expression ->* cast_expression + // Rule 116: pm_expression ::= pm_expression ->* cast_expression // - case 118: { action.builder. + case 116: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 120: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 118: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 120: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 121: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 119: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 121: { action.builder. + case 119: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 122: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 120: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 122: { action.builder. + case 120: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 124: additive_expression ::= additive_expression + multiplicative_expression + // Rule 122: additive_expression ::= additive_expression + multiplicative_expression // - case 124: { action.builder. + case 122: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 125: additive_expression ::= additive_expression - multiplicative_expression + // Rule 123: additive_expression ::= additive_expression - multiplicative_expression // - case 125: { action.builder. + case 123: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 127: shift_expression ::= shift_expression << additive_expression + // Rule 125: shift_expression ::= shift_expression << additive_expression // - case 127: { action.builder. + case 125: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 128: shift_expression ::= shift_expression >> additive_expression + // Rule 126: shift_expression ::= shift_expression >> additive_expression // - case 128: { action.builder. + case 126: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 130: relational_expression ::= relational_expression < shift_expression + // Rule 128: relational_expression ::= relational_expression < shift_expression // - case 130: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 131: relational_expression ::= relational_expression > shift_expression + // Rule 129: relational_expression ::= relational_expression > shift_expression // - case 131: { action.builder. + case 129: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 132: relational_expression ::= relational_expression <= shift_expression + // Rule 130: relational_expression ::= relational_expression <= shift_expression // - case 132: { action.builder. + case 130: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 133: relational_expression ::= relational_expression >= shift_expression + // Rule 131: relational_expression ::= relational_expression >= shift_expression // - case 133: { action.builder. + case 131: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 135: equality_expression ::= equality_expression == relational_expression + // Rule 133: equality_expression ::= equality_expression == relational_expression // - case 135: { action.builder. + case 133: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 136: equality_expression ::= equality_expression != relational_expression + // Rule 134: equality_expression ::= equality_expression != relational_expression // - case 136: { action.builder. + case 134: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 138: and_expression ::= and_expression & equality_expression + // Rule 136: and_expression ::= and_expression & equality_expression // - case 138: { action.builder. + case 136: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 140: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 138: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 140: { action.builder. + case 138: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 142: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 140: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 142: { action.builder. + case 140: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 144: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 142: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 144: { action.builder. + case 142: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 146: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 144: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 146: { action.builder. + case 144: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 148: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 146: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 148: { action.builder. + case 146: { action.builder. consumeExpressionConditional(); break; } // - // Rule 149: throw_expression ::= throw + // Rule 147: throw_expression ::= throw // - case 149: { action.builder. + case 147: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 150: throw_expression ::= throw assignment_expression + // Rule 148: throw_expression ::= throw assignment_expression // - case 150: { action.builder. + case 148: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 153: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 151: assignment_expression ::= logical_or_expression = assignment_expression // - case 153: { action.builder. + case 151: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 152: assignment_expression ::= logical_or_expression *= assignment_expression // - case 154: { action.builder. + case 152: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression /= assignment_expression // - case 155: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression %= assignment_expression // - case 156: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression += assignment_expression // - case 157: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 158: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression -= assignment_expression // - case 158: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 159: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 157: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 159: { action.builder. + case 157: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 160: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 158: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 160: { action.builder. + case 158: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 161: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 159: assignment_expression ::= logical_or_expression &= assignment_expression // - case 161: { action.builder. + case 159: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 162: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 160: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 162: { action.builder. + case 160: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 163: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 161: assignment_expression ::= logical_or_expression |= assignment_expression // - case 163: { action.builder. + case 161: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 165: expression_list ::= expression_list_actual + // Rule 163: expression_list ::= expression_list_actual // - case 165: { action.builder. + case 163: { action.builder. consumeExpressionList(); break; } // - // Rule 169: expression_list_opt ::= $Empty + // Rule 167: expression_list_opt ::= $Empty + // + case 167: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 169: expression_opt ::= $Empty // case 169: { action.builder. consumeEmpty(); break; } // - // Rule 171: expression_opt ::= $Empty + // Rule 172: constant_expression_opt ::= $Empty // - case 171: { action.builder. + case 172: { action.builder. consumeEmpty(); break; } // - // Rule 174: constant_expression_opt ::= $Empty + // Rule 181: statement ::= ERROR_TOKEN // - case 174: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 183: statement ::= ERROR_TOKEN - // - case 183: { action.builder. + case 181: { action.builder. consumeStatementProblem(); break; } // - // Rule 184: labeled_statement ::= identifier : statement + // Rule 182: labeled_statement ::= identifier : statement // - case 184: { action.builder. + case 182: { action.builder. consumeStatementLabeled(); break; } // - // Rule 185: labeled_statement ::= case constant_expression : statement + // Rule 183: labeled_statement ::= case constant_expression : statement // - case 185: { action.builder. + case 183: { action.builder. consumeStatementCase(); break; } // - // Rule 186: labeled_statement ::= default : statement + // Rule 184: labeled_statement ::= default : statement // - case 186: { action.builder. + case 184: { action.builder. consumeStatementDefault(); break; } // - // Rule 187: expression_statement ::= expression ; + // Rule 185: expression_statement ::= expression ; // - case 187: { action.builder. + case 185: { action.builder. consumeStatementExpression(); break; } // - // Rule 188: expression_statement ::= ; + // Rule 186: expression_statement ::= ; // - case 188: { action.builder. + case 186: { action.builder. consumeStatementNull(); break; } // - // Rule 189: compound_statement ::= { statement_seq } + // Rule 187: compound_statement ::= { statement_seq } // - case 189: { action.builder. + case 187: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 190: compound_statement ::= { } + // Rule 188: compound_statement ::= { } // - case 190: { action.builder. + case 188: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 193: selection_statement ::= if ( condition ) statement + // Rule 191: selection_statement ::= if ( condition ) statement // - case 193: { action.builder. + case 191: { action.builder. consumeStatementIf(false); break; } // - // Rule 194: selection_statement ::= if ( condition ) statement else statement + // Rule 192: selection_statement ::= if ( condition ) statement else statement // - case 194: { action.builder. + case 192: { action.builder. consumeStatementIf(true); break; } // - // Rule 195: selection_statement ::= switch ( condition ) statement + // Rule 193: selection_statement ::= switch ( condition ) statement // - case 195: { action.builder. + case 193: { action.builder. consumeStatementSwitch(); break; } // - // Rule 197: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 195: condition ::= type_specifier_seq declarator = assignment_expression // - case 197: { action.builder. + case 195: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 199: condition_opt ::= $Empty + // Rule 197: condition_opt ::= $Empty // - case 199: { action.builder. + case 197: { action.builder. consumeEmpty(); break; } // - // Rule 200: iteration_statement ::= while ( condition ) statement + // Rule 198: iteration_statement ::= while ( condition ) statement // - case 200: { action.builder. + case 198: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 201: iteration_statement ::= do statement while ( expression ) ; + // Rule 199: iteration_statement ::= do statement while ( expression ) ; // - case 201: { action.builder. + case 199: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 202: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 200: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 202: { action.builder. + case 200: { action.builder. consumeStatementForLoop(); break; } // - // Rule 204: for_init_statement ::= simple_declaration_with_declspec + // Rule 202: for_init_statement ::= simple_declaration_with_declspec // - case 204: { action.builder. + case 202: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 205: jump_statement ::= break ; + // Rule 203: jump_statement ::= break ; // - case 205: { action.builder. + case 203: { action.builder. consumeStatementBreak(); break; } // - // Rule 206: jump_statement ::= continue ; + // Rule 204: jump_statement ::= continue ; // - case 206: { action.builder. + case 204: { action.builder. consumeStatementContinue(); break; } // - // Rule 207: jump_statement ::= return expression ; + // Rule 205: jump_statement ::= return expression ; // - case 207: { action.builder. + case 205: { action.builder. consumeStatementReturn(true); break; } // - // Rule 208: jump_statement ::= return ; + // Rule 206: jump_statement ::= return ; // - case 208: { action.builder. + case 206: { action.builder. consumeStatementReturn(false); break; } // - // Rule 209: jump_statement ::= goto identifier_token ; + // Rule 207: jump_statement ::= goto identifier_token ; // - case 209: { action.builder. + case 207: { action.builder. consumeStatementGoto(); break; } // - // Rule 210: declaration_statement ::= block_declaration + // Rule 208: declaration_statement ::= block_declaration // - case 210: { action.builder. + case 208: { action.builder. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 211: declaration_statement ::= function_definition + // Rule 209: declaration_statement ::= function_definition // - case 211: { action.builder. + case 209: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 228: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 226: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // + case 226: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 227: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // + case 227: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 228: declaration_specifiers ::= simple_declaration_specifiers // case 228: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 229: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; - // - case 229: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 230: declaration_specifiers ::= simple_declaration_specifiers - // - case 230: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 231: declaration_specifiers ::= class_declaration_specifiers + // Rule 229: declaration_specifiers ::= class_declaration_specifiers + // + case 229: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 230: declaration_specifiers ::= elaborated_declaration_specifiers + // + case 230: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 231: declaration_specifiers ::= enum_declaration_specifiers // case 231: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 232: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 232: declaration_specifiers ::= type_name_declaration_specifiers // case 232: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 233: declaration_specifiers ::= enum_declaration_specifiers - // - case 233: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 234: declaration_specifiers ::= type_name_declaration_specifiers - // - case 234: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 235: declaration_specifiers_opt ::= $Empty + // Rule 234: declaration_specifiers_opt ::= $Empty // - case 235: { action.builder. + case 234: { action.builder. consumeEmpty(); break; } // - // Rule 240: no_type_declaration_specifier ::= friend + // Rule 238: no_type_declaration_specifier ::= friend // - case 240: { action.builder. + case 238: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 241: no_type_declaration_specifier ::= typedef + // Rule 239: no_type_declaration_specifier ::= typedef // - case 241: { action.builder. + case 239: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 261: storage_class_specifier ::= auto + // Rule 259: storage_class_specifier ::= auto + // + case 259: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 260: storage_class_specifier ::= register + // + case 260: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 261: storage_class_specifier ::= static // case 261: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 262: storage_class_specifier ::= register + // Rule 262: storage_class_specifier ::= extern // case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 263: storage_class_specifier ::= static + // Rule 263: storage_class_specifier ::= mutable // case 263: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 264: storage_class_specifier ::= extern + // Rule 264: function_specifier ::= inline // case 264: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 265: storage_class_specifier ::= mutable + // Rule 265: function_specifier ::= virtual // case 265: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 266: function_specifier ::= inline + // Rule 266: function_specifier ::= explicit // case 266: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 267: function_specifier ::= virtual + // Rule 267: simple_type_specifier ::= char // case 267: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 268: function_specifier ::= explicit + // Rule 268: simple_type_specifier ::= wchar_t // case 268: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 269: simple_type_specifier ::= char + // Rule 269: simple_type_specifier ::= bool // case 269: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 270: simple_type_specifier ::= wchar_t + // Rule 270: simple_type_specifier ::= short // case 270: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 271: simple_type_specifier ::= bool + // Rule 271: simple_type_specifier ::= int // case 271: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 272: simple_type_specifier ::= short + // Rule 272: simple_type_specifier ::= long // case 272: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 273: simple_type_specifier ::= int + // Rule 273: simple_type_specifier ::= signed // case 273: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 274: simple_type_specifier ::= long + // Rule 274: simple_type_specifier ::= unsigned // case 274: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 275: simple_type_specifier ::= signed + // Rule 275: simple_type_specifier ::= float // case 275: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 276: simple_type_specifier ::= unsigned + // Rule 276: simple_type_specifier ::= double // case 276: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 277: simple_type_specifier ::= float + // Rule 277: simple_type_specifier ::= void // case 277: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 278: simple_type_specifier ::= double + // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 278: { action.builder. - consumeDeclSpecToken(); break; + case 280: { action.builder. + consumeQualifiedId(false); break; } // - // Rule 279: simple_type_specifier ::= void + // Rule 281: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 279: { action.builder. - consumeDeclSpecToken(); break; + case 281: { action.builder. + consumeQualifiedId(false); break; } // - // Rule 282: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // case 282: { action.builder. consumeQualifiedId(false); break; } // - // Rule 283: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 283: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // case 283: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 284: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name - // - case 284: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 285: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name - // - case 285: { action.builder. consumeQualifiedId(true); break; } // - // Rule 287: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 285: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // + case 285: { action.builder. + consumeTypeSpecifierElaborated(false); break; + } + + // + // Rule 286: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // + case 286: { action.builder. + consumeTypeSpecifierElaborated(true); break; + } + + // + // Rule 287: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // case 287: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 288: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 288: enum_specifier ::= enum { enumerator_list_opt } // case 288: { action.builder. - consumeTypeSpecifierElaborated(true); break; - } - - // - // Rule 289: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name - // - case 289: { action.builder. - consumeTypeSpecifierElaborated(false); break; - } - - // - // Rule 290: enum_specifier ::= enum { enumerator_list_opt } - // - case 290: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 291: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 289: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 291: { action.builder. + case 289: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 296: enumerator_definition ::= identifier_token + // Rule 294: enumerator_definition ::= identifier_token // - case 296: { action.builder. + case 294: { action.builder. consumeEnumerator(false); break; } // - // Rule 297: enumerator_definition ::= identifier_token = constant_expression + // Rule 295: enumerator_definition ::= identifier_token = constant_expression // - case 297: { action.builder. + case 295: { action.builder. consumeEnumerator(true); break; } // - // Rule 301: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } + // Rule 299: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } // - case 301: { action.builder. + case 299: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 302: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 300: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 302: { action.builder. + case 300: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 303: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 301: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 303: { action.builder. + case 301: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 304: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 302: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 304: { action.builder. + case 302: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 305: typename_opt ::= typename + // Rule 303: typename_opt ::= typename // - case 305: { action.builder. + case 303: { action.builder. consumePlaceHolder(); break; } // - // Rule 306: typename_opt ::= $Empty + // Rule 304: typename_opt ::= $Empty // - case 306: { action.builder. + case 304: { action.builder. consumeEmpty(); break; } // - // Rule 307: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 305: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 307: { action.builder. + case 305: { action.builder. consumeUsingDirective(); break; } // - // Rule 308: asm_definition ::= asm ( stringlit ) ; + // Rule 306: asm_definition ::= asm ( stringlit ) ; // - case 308: { action.builder. + case 306: { action.builder. consumeDeclarationASM(); break; } // - // Rule 309: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 307: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 309: { action.builder. + case 307: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 310: linkage_specification ::= extern stringlit declaration + // Rule 308: linkage_specification ::= extern stringlit declaration // - case 310: { action.builder. + case 308: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 316: init_declarator ::= declarator initializer + // Rule 314: init_declarator ::= declarator initializer // - case 316: { action.builder. + case 314: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 318: declarator ::= ptr_operator_seq direct_declarator + // Rule 316: declarator ::= ptr_operator_seq direct_declarator + // + case 316: { action.builder. + consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 318: function_declarator ::= ptr_operator_seq direct_declarator // case 318: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 320: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 321: basic_direct_declarator ::= declarator_id_name // - case 320: { action.builder. - consumeDeclaratorWithPointer(true); break; - } - - // - // Rule 323: basic_direct_declarator ::= declarator_id_name - // - case 323: { action.builder. + case 321: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 324: basic_direct_declarator ::= ( declarator ) + // Rule 322: basic_direct_declarator ::= ( declarator ) // - case 324: { action.builder. + case 322: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 325: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 323: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 325: { action.builder. + case 323: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 326: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 324: array_direct_declarator ::= array_direct_declarator array_modifier + // + case 324: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 325: array_direct_declarator ::= basic_direct_declarator array_modifier + // + case 325: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 326: array_modifier ::= [ constant_expression ] // case 326: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 327: array_direct_declarator ::= basic_direct_declarator array_modifier - // - case 327: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 328: array_modifier ::= [ constant_expression ] - // - case 328: { action.builder. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 329: array_modifier ::= [ ] + // Rule 327: array_modifier ::= [ ] // - case 329: { action.builder. + case 327: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 330: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 328: ptr_operator ::= * cv_qualifier_seq_opt // - case 330: { action.builder. + case 328: { action.builder. consumePointer(); break; } // - // Rule 331: ptr_operator ::= & + // Rule 329: ptr_operator ::= & // - case 331: { action.builder. + case 329: { action.builder. consumeReferenceOperator(); break; } // - // Rule 332: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt // - case 332: { action.builder. + case 330: { action.builder. consumePointerToMember(); break; } // - // Rule 338: cv_qualifier ::= const + // Rule 336: cv_qualifier ::= const // - case 338: { action.builder. + case 336: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 339: cv_qualifier ::= volatile + // Rule 337: cv_qualifier ::= volatile + // + case 337: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 339: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // case 339: { action.builder. - consumeDeclSpecToken(); break; + consumeQualifiedId(false); break; } // - // Rule 341: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name + // Rule 340: type_id ::= type_specifier_seq // - case 341: { action.builder. - consumeQualifiedId(true); break; - } - - // - // Rule 342: type_id ::= type_specifier_seq - // - case 342: { action.builder. + case 340: { action.builder. consumeTypeId(false); break; } // - // Rule 343: type_id ::= type_specifier_seq abstract_declarator + // Rule 341: type_id ::= type_specifier_seq abstract_declarator // - case 343: { action.builder. + case 341: { action.builder. consumeTypeId(true); break; } // - // Rule 346: abstract_declarator ::= ptr_operator_seq + // Rule 344: abstract_declarator ::= ptr_operator_seq // - case 346: { action.builder. + case 344: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 347: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 345: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 347: { action.builder. + case 345: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 351: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 349: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 351: { action.builder. + case 349: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 352: basic_direct_abstract_declarator ::= ( ) + // Rule 350: basic_direct_abstract_declarator ::= ( ) // - case 352: { action.builder. + case 350: { action.builder. consumeAbstractDeclaratorEmpty(); break; } // - // Rule 353: array_direct_abstract_declarator ::= array_modifier + // Rule 351: array_direct_abstract_declarator ::= array_modifier // - case 353: { action.builder. + case 351: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 354: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 352: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // + case 352: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 353: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // + case 353: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 354: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // case 354: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 355: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier - // - case 355: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 356: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt - // - case 356: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 357: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 355: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 357: { action.builder. + case 355: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 356: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // + case 356: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 357: parameter_declaration_clause ::= parameter_declaration_list_opt + // + case 357: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 358: parameter_declaration_clause ::= parameter_declaration_list , ... // case 358: { action.builder. consumePlaceHolder(); break; } // - // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 364: abstract_declarator_opt ::= $Empty // - case 359: { action.builder. + case 364: { action.builder. consumeEmpty(); break; } // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 365: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 360: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 366: abstract_declarator_opt ::= $Empty - // - case 366: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator - // - case 367: { action.builder. + case 365: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 368: parameter_declaration ::= declaration_specifiers + // Rule 366: parameter_declaration ::= declaration_specifiers // - case 368: { action.builder. + case 366: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 370: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 368: parameter_init_declarator ::= declarator = parameter_initializer + // + case 368: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 370: parameter_init_declarator ::= abstract_declarator = parameter_initializer // case 370: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 372: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 371: parameter_init_declarator ::= = parameter_initializer // - case 372: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 373: parameter_init_declarator ::= = parameter_initializer - // - case 373: { action.builder. + case 371: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 374: parameter_initializer ::= assignment_expression + // Rule 372: parameter_initializer ::= assignment_expression // - case 374: { action.builder. + case 372: { action.builder. consumeInitializer(); break; } // - // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 373: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 375: { action.builder. + case 373: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 374: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 376: { action.builder. + case 374: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 379: initializer ::= ( expression_list ) + // Rule 377: initializer ::= ( expression_list ) // - case 379: { action.builder. + case 377: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 380: initializer_clause ::= assignment_expression + // Rule 378: initializer_clause ::= assignment_expression // - case 380: { action.builder. + case 378: { action.builder. consumeInitializer(); break; } // - // Rule 381: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list + // Rule 379: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list + // + case 379: { action.builder. + consumeInitializerList(); break; + } + + // + // Rule 380: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list + // + case 380: { action.builder. + consumeInitializerList(); break; + } + + // + // Rule 381: initializer_clause ::= { } // case 381: { action.builder. consumeInitializerList(); break; } // - // Rule 382: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list + // Rule 382: start_initializer_list ::= $Empty // case 382: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 383: initializer_clause ::= { } - // - case 383: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 384: start_initializer_list ::= $Empty - // - case 384: { action.builder. initializerListStart(); break; } // - // Rule 385: end_initializer_list ::= $Empty + // Rule 383: end_initializer_list ::= $Empty // - case 385: { action.builder. + case 383: { action.builder. initializerListEnd(); break; } // - // Rule 390: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 388: class_specifier ::= class_head { member_declaration_list_opt } // - case 390: { action.builder. + case 388: { action.builder. consumeClassSpecifier(); break; } // - // Rule 391: class_head ::= class_keyword identifier_name_opt base_clause_opt + // Rule 389: class_head ::= class_keyword identifier_name_opt base_clause_opt + // + case 389: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 390: class_head ::= class_keyword template_id_name base_clause_opt + // + case 390: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 391: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt // case 391: { action.builder. - consumeClassHead(false); break; + consumeClassHead(true); break; } // - // Rule 392: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 392: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // case 392: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 393: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt - // - case 393: { action.builder. consumeClassHead(true); break; } // - // Rule 394: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 394: identifier_name_opt ::= $Empty // case 394: { action.builder. - consumeClassHead(true); break; - } - - // - // Rule 396: identifier_name_opt ::= $Empty - // - case 396: { action.builder. consumeEmpty(); break; } // - // Rule 400: visibility_label ::= access_specifier_keyword : + // Rule 398: visibility_label ::= access_specifier_keyword : // - case 400: { action.builder. + case 398: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 401: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 399: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 401: { action.builder. + case 399: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 402: member_declaration ::= declaration_specifiers_opt ; + // Rule 400: member_declaration ::= declaration_specifiers_opt ; // - case 402: { action.builder. + case 400: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 403: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 405: { action.builder. + case 403: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 411: member_declaration ::= ERROR_TOKEN + // Rule 409: member_declaration ::= ERROR_TOKEN // - case 411: { action.builder. + case 409: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 419: member_declarator ::= declarator constant_initializer + // Rule 417: member_declarator ::= declarator constant_initializer // - case 419: { action.builder. + case 417: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 420: member_declarator ::= bit_field_declarator : constant_expression + // Rule 418: member_declarator ::= bit_field_declarator : constant_expression // - case 420: { action.builder. + case 418: { action.builder. consumeBitField(true); break; } // - // Rule 421: member_declarator ::= : constant_expression + // Rule 419: member_declarator ::= : constant_expression // - case 421: { action.builder. + case 419: { action.builder. consumeBitField(false); break; } // - // Rule 422: bit_field_declarator ::= identifier_name + // Rule 420: bit_field_declarator ::= identifier_name // - case 422: { action.builder. + case 420: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 423: constant_initializer ::= = constant_expression + // Rule 421: constant_initializer ::= = constant_expression // - case 423: { action.builder. + case 421: { action.builder. consumeInitializer(); break; } // - // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 427: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 429: { action.builder. + case 427: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 430: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 428: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // + case 428: { action.builder. + consumeBaseSpecifier(true, true); break; + } + + // + // Rule 429: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // + case 429: { action.builder. + consumeBaseSpecifier(true, true); break; + } + + // + // Rule 430: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // case 430: { action.builder. - consumeBaseSpecifier(true, true); break; - } - - // - // Rule 431: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name - // - case 431: { action.builder. - consumeBaseSpecifier(true, true); break; - } - - // - // Rule 432: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name - // - case 432: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 433: access_specifier_keyword ::= private + // Rule 431: access_specifier_keyword ::= private + // + case 431: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 432: access_specifier_keyword ::= protected + // + case 432: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 433: access_specifier_keyword ::= public // case 433: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 434: access_specifier_keyword ::= protected - // - case 434: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 435: access_specifier_keyword ::= public + // Rule 435: access_specifier_keyword_opt ::= $Empty // case 435: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 437: access_specifier_keyword_opt ::= $Empty - // - case 437: { action.builder. consumeEmpty(); break; } // - // Rule 439: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 437: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 439: { action.builder. + case 437: { action.builder. consumeTemplateId(); break; } // - // Rule 440: conversion_function_id ::= operator conversion_type_id + // Rule 438: conversion_function_id ::= operator conversion_type_id // - case 440: { action.builder. + case 438: { action.builder. consumeConversionName(); break; } // - // Rule 441: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 439: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 441: { action.builder. + case 439: { action.builder. consumeTypeId(true); break; } // - // Rule 442: conversion_type_id ::= type_specifier_seq + // Rule 440: conversion_type_id ::= type_specifier_seq // - case 442: { action.builder. + case 440: { action.builder. consumeTypeId(false); break; } // - // Rule 443: conversion_declarator ::= ptr_operator_seq + // Rule 441: conversion_declarator ::= ptr_operator_seq // - case 443: { action.builder. + case 441: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 449: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 447: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 449: { action.builder. + case 447: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 450: 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 450: { action.builder. + case 448: { action.builder. consumeQualifiedId(false); break; } // - // Rule 453: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 451: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 453: { action.builder. + case 451: { action.builder. consumeTemplateId(); break; } // - // Rule 454: operator_id_name ::= operator overloadable_operator + // Rule 452: operator_id_name ::= operator overloadable_operator // - case 454: { action.builder. + case 452: { action.builder. consumeOperatorName(); break; } // - // Rule 497: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 495: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 497: { action.builder. + case 495: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 498: export_opt ::= export + // Rule 496: export_opt ::= export // - case 498: { action.builder. + case 496: { action.builder. consumePlaceHolder(); break; } // - // Rule 499: export_opt ::= $Empty + // Rule 497: export_opt ::= $Empty // - case 499: { action.builder. + case 497: { action.builder. consumeEmpty(); break; } // - // Rule 503: template_parameter ::= parameter_declaration + // Rule 501: template_parameter ::= parameter_declaration // - case 503: { action.builder. + case 501: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 504: type_parameter ::= class identifier_name_opt + // Rule 502: type_parameter ::= class identifier_name_opt + // + case 502: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 503: type_parameter ::= class identifier_name_opt = type_id + // + case 503: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 504: type_parameter ::= typename identifier_name_opt // case 504: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 505: type_parameter ::= class identifier_name_opt = type_id + // Rule 505: type_parameter ::= typename identifier_name_opt = type_id // case 505: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 506: type_parameter ::= typename identifier_name_opt + // Rule 506: type_parameter ::= template < template_parameter_list > class identifier_name_opt // case 506: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 507: type_parameter ::= typename identifier_name_opt = type_id - // - case 507: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 508: type_parameter ::= template < template_parameter_list > class identifier_name_opt - // - case 508: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 509: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 507: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 509: { action.builder. + case 507: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 510: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 508: template_id_name ::= identifier_name < template_argument_list_opt > // - case 510: { action.builder. + case 508: { action.builder. consumeTemplateId(); break; } // - // Rule 516: template_argument ::= type_id + // Rule 513: template_argument ::= assignment_expression // - case 516: { action.builder. + case 513: { action.builder. + consumeTemplateArgumentExpression(); break; + } + + // + // Rule 514: template_argument ::= type_id + // + case 514: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 517: explicit_instantiation ::= template declaration + // Rule 515: explicit_instantiation ::= template declaration // - case 517: { action.builder. + case 515: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 518: explicit_specialization ::= template < > declaration + // Rule 516: explicit_specialization ::= template < > declaration // - case 518: { action.builder. + case 516: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 519: try_block ::= try compound_statement handler_seq + // Rule 517: try_block ::= try compound_statement handler_seq // - case 519: { action.builder. + case 517: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 522: handler ::= catch ( exception_declaration ) compound_statement + // Rule 520: handler ::= catch ( exception_declaration ) compound_statement // - case 522: { action.builder. + case 520: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 523: handler ::= catch ( ... ) compound_statement + // Rule 521: handler ::= catch ( ... ) compound_statement // - case 523: { action.builder. + case 521: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq declarator + // Rule 522: exception_declaration ::= type_specifier_seq declarator + // + case 522: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 523: exception_declaration ::= type_specifier_seq abstract_declarator + // + case 523: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 524: exception_declaration ::= type_specifier_seq // case 524: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 525: exception_declaration ::= type_specifier_seq abstract_declarator - // - case 525: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 526: exception_declaration ::= type_specifier_seq - // - case 526: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 528: exception_specification ::= throw ( ) + // Rule 526: exception_specification ::= throw ( ) // - case 528: { action.builder. + case 526: { action.builder. consumePlaceHolder(); break; } // - // Rule 534: no_function_declarator_start ::= ERROR_TOKEN + // Rule 532: no_function_declarator_start ::= ERROR_TOKEN // - case 534: { action.builder. + case 532: { action.builder. consumeDeclarationProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java index 15cfcc0baf6..2cc426b78e5 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java @@ -41,480 +41,487 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 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,2, - 1,1,0,1,0,4,2,2,2,3, - 2,3,2,2,1,0,1,1,4,4, - 4,8,8,3,3,4,4,3,3,2, - 2,7,7,7,7,4,4,5,6,3, - 2,2,1,1,1,2,2,2,2,2, - 2,2,2,2,4,7,9,3,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,2,1,3,1,0,1, - 0,1,1,0,1,1,1,1,1,1, - 1,1,1,3,4,3,2,1,4,2, - 1,2,5,7,5,1,4,1,0,5, - 7,8,1,1,2,2,3,2,3,1, + 1,1,0,1,0,4,2,3,2,3, + 2,2,1,0,1,1,4,4,4,8, + 8,3,3,4,4,3,3,2,2,7, + 7,7,7,4,4,5,6,3,2,2, + 1,1,1,2,2,2,2,2,2,2, + 2,2,4,7,9,3,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,2,1,3,1,0,1,0,1, + 1,0,1,1,1,1,1,1,1,1, + 1,3,4,3,2,1,4,2,1,2, + 5,7,5,1,4,1,0,5,7,8, + 1,1,2,2,3,2,3,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2,1,0,4,4,2, - 2,2,2,2,0,1,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,2,1,0,4,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,3,4,4,5,2,4,5,4,5, - 6,1,3,1,0,1,3,1,1,1, - 6,5,7,6,1,0,6,5,6,4, - 1,3,1,0,1,2,1,3,1,3, - 1,1,1,3,9,2,2,3,2,3, - 1,5,1,2,2,1,0,1,1,1, - 4,1,2,1,1,2,3,1,1,1, - 3,2,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, - 7,6,3,0,0,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, - 1,1,2,1,0,1,3,1,2,3, - 2,1,2,2,1,0,1,3,3,5, - 5,4,1,1,1,1,0,1,5,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,3, + 4,4,5,2,4,5,4,5,6,1, + 3,1,0,1,3,1,1,1,6,5, + 7,6,1,0,6,5,6,4,1,3, + 1,0,1,2,1,3,1,3,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,2, + 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,7,6, + 3,0,0,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,1,1, + 2,1,0,1,3,1,2,3,2,1, + 2,2,1,0,1,3,3,5,5,4, + 1,1,1,1,0,1,5,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,1,1,2,2,7,1,0,1, - 3,1,1,2,4,2,4,7,9,5, - 1,3,1,0,1,1,2,4,4,1, - 2,5,5,3,3,1,4,3,1,0, - 1,3,1,1,1,-109,0,0,0,-2, + 1,1,2,2,7,1,0,1,3,1, + 1,2,4,2,4,7,9,5,1,3, + 1,0,1,1,2,4,4,1,2,5, + 5,3,3,1,4,3,1,0,1,3, + 1,1,1,-109,0,0,0,-2,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,0,0,-264,0,-8,0,0, - 0,0,0,-231,0,0,0,0,-197,0, - 0,0,-4,0,0,0,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,-3,0,0,0,0,0,0, - 0,0,0,0,-386,0,0,-11,-276,0, - -50,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-115,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-10,0,0,0,-292,0,-18,0,0, - 0,0,0,0,-75,0,0,0,0,0, + 0,0,0,0,0,-7,0,0,0,0, + 0,0,0,-264,0,-111,0,0,0,0, + 0,-261,0,0,0,0,-197,0,0,0, + -4,0,0,0,0,0,0,0,0,-132, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-95,0,0,0,0,0, - 0,-227,0,0,-13,0,0,-5,0,0, - -22,-289,0,0,0,-6,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,-6,0,0,0,-123,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,-115,0,0,0,0, + 0,0,0,0,0,0,0,0,-312,0, + -86,0,0,0,0,0,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, - -19,0,0,0,0,0,0,-26,0,0, - 0,0,0,0,0,0,0,0,-24,0, - 0,0,0,0,-335,0,0,0,-116,0, + 0,0,-20,0,0,0,0,0,0,0, + -289,0,0,0,0,-14,-8,0,0,-32, + 0,-156,0,0,0,0,0,-75,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,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-399,0,-10, + 0,0,0,0,0,-191,0,0,0,0, + 0,-97,0,0,0,-232,0,0,0,0, + 0,0,0,0,-116,0,0,0,-235,0, + 0,0,0,0,0,0,0,0,-18,0, + -276,-335,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,0,0,0, + 0,0,0,0,-181,0,0,0,0,0, + 0,0,0,-154,-72,0,0,-19,0,0, + -5,-83,0,0,0,-26,0,0,0,-221, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-21, + 0,0,0,0,0,0,0,0,-371,-22, + 0,0,0,0,0,-112,-357,0,0,0, + -407,0,0,0,0,0,-230,0,0,0, + -12,0,0,0,0,0,0,0,0,0, + 0,0,-460,0,0,-40,-174,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-3,0,0,0,0,-277, + 0,0,0,-27,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-30,0,0,0,0,0,0,0,-28, + 0,0,0,0,0,0,0,-31,0,0, + 0,0,-16,0,0,0,-41,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-251,0,-42,0,0,0,0,0, + 0,0,0,0,0,-38,0,0,0,-257, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-308,0,-43,0,-88, + 0,0,0,0,0,-272,0,0,-391,0, + 0,0,-137,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-44,0,0,0,-322,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-36,0, + 0,0,0,0,0,0,-241,0,0,0, + 0,-92,0,0,0,0,-45,0,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,0,0,0,0, + 0,0,-39,0,-89,0,0,0,0,0, + -464,0,-418,0,0,-35,0,0,0,-362, + 0,0,0,-313,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-465,0,0,0,-439,0,0, + 0,0,-186,-17,0,0,0,-345,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-46,0,0, + 0,-47,0,-59,-70,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-170,0,0,0, + 0,0,0,0,0,0,0,0,-60,0, + 0,0,0,0,0,0,0,-79,-61,-138, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-62,0,0,0,0,0,0,0,0, + 0,0,0,-187,0,0,0,0,0,0, + 0,0,-139,0,0,0,-384,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-63,0,0,0,0,0, + 0,0,0,0,-64,0,-98,0,0,0, + 0,0,-65,0,0,-140,0,0,0,-66, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-155,0,-67,0,0, + 0,0,0,-68,-473,-69,0,0,-141,0, + 0,0,-448,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -71,0,0,0,0,0,0,0,-157,0, + -73,0,0,0,0,0,-94,-515,-96,0, + 0,-142,0,0,0,-501,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-114,0,0,0,0,0,0, + 0,0,0,-151,0,-159,0,0,0,0, + 0,-152,0,0,-143,0,0,0,-153,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-160,0,-162,0, + 0,0,0,-193,-166,0,0,-144,0,0, + 0,-167,0,0,0,0,0,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,0,0,-201,-168,0,0, + -145,0,0,0,-177,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-178,0,0,0,0,0,0,0, + -179,0,0,0,0,0,0,0,-180,-188, + -189,0,0,-146,0,0,0,-190,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-202,0,0,0,0, + 0,0,0,-203,0,-204,0,0,0,0, + 0,-205,-206,-207,0,0,-147,0,0,0, + -208,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-209,0, + 0,0,0,0,0,0,-223,0,-210,0, + 0,0,0,0,-211,-212,-213,0,0,-148, + 0,0,0,-214,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,-224, + 0,-216,0,0,0,0,0,-217,-218,-219, + 0,0,-173,0,0,0,-220,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-236,0,0,0,0,0, + 0,0,-228,0,-237,0,0,0,0,0, + -238,-239,-260,0,0,-256,0,0,0,-262, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-351,0,0, + 0,0,0,0,0,-245,0,-263,0,0, + 0,0,0,-408,0,0,0,0,-520,0, + 0,0,-273,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -247,0,0,0,0,0,0,0,-250,0, + -274,0,0,0,0,0,-282,-259,-283,0, + 0,-311,0,0,0,-285,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-287,0,0,0,0,0,0, + 0,-161,0,-294,0,0,0,0,0,-349, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-299, + 0,0,0,-108,0,0,0,0,-240,0, + 0,0,-300,-416,0,0,0,-369,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-301, + 0,0,0,0,0,-388,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-298,0,-292,0,0, + 0,0,0,-25,0,0,0,0,-270,0, + 0,0,0,-389,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-15,0,-347,0,0,0,0, + 0,-451,0,0,0,0,0,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,-275, + 0,0,0,-372,-310,-29,0,0,0,-150, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-305,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-33,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,0,0,0,0,0,0,0,0,-136, + 0,0,0,-306,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-133, + 0,0,0,-314,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-373,0,0,0,0,0,-134,0,0, + 0,-323,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-324, + 0,0,0,0,0,-126,0,0,0,-332, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-370,0,0, + 0,0,-127,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-336,0,0,0,0,-128, + 0,0,0,-255,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-225,0,0,0,0,-129,0,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,0, - -27,0,0,0,0,0,0,-28,-87,0, - 0,0,0,0,0,-251,-79,-29,0,0, - 0,0,-241,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,0,0, - 0,0,0,0,0,0,-104,0,0,0, - 0,0,0,-357,0,0,0,0,0,0, - 0,-46,0,0,0,-103,0,0,0,0, - -39,0,0,0,-293,-525,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-173,0,0,0, - -40,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-308,0, - 0,0,0,0,0,0,-41,0,0,0, - 0,0,0,0,-312,0,0,0,0,-277, - 0,0,0,-42,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-43, - 0,-156,0,0,0,0,0,-45,0,0, - 0,0,-36,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,0,0,0,0,0,0,0, - -44,0,0,0,0,0,-15,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-58,0, - 0,0,0,0,0,0,0,0,-334,0, - 0,0,0,0,0,0,0,0,0,-233, - 0,0,0,-322,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-59,0,0,0,0, - 0,0,0,-71,0,0,0,0,0,0, - -235,-190,0,0,0,0,0,0,-60,-135, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-61,0,0,0,0,0,0,0,-62, - 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,0,0,0, - 0,0,0,-180,0,0,0,0,0,0, - -240,0,0,0,0,0,0,0,-362,0, - 0,0,-63,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,-379,0, - -89,0,0,0,0,-25,-64,0,-74,0, - 0,-270,0,0,0,-16,0,0,0,0, - 0,0,0,0,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,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,0, - 0,0,0,0,-465,0,0,0,0,-444, - 0,0,0,0,0,-90,-259,0,-275,0, - 0,0,-138,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-66,0,0,0,0,0,0,-371, - 0,0,0,0,0,-139,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-67,0,0, - 0,0,0,0,0,-68,0,0,0,0, - 0,0,-290,0,0,0,0,0,-140,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -70,0,0,0,0,0,0,0,-367,0, - -72,0,0,0,0,-295,0,0,0,0, - 0,-141,0,0,0,-345,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-92,0,-94,0,0,0,0,-296,0, - 0,0,0,0,-142,0,0,0,-384,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-105,0,0,0, - 0,0,0,0,-114,0,-151,0,0,0, - 0,-329,0,0,0,0,0,-143,0,0, - 0,-153,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-154, - 0,0,0,0,0,0,0,-155,0,-162, - 0,0,0,0,0,-460,0,0,0,0, - -144,0,0,0,-168,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-169,0,0,0,0,0,0,0, - 0,0,-302,0,0,0,0,0,-473,0, - -38,0,0,-145,0,0,0,-176,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-177,0,0,0,0, - 0,0,0,0,0,-178,0,0,0,0, - 0,-515,0,-80,0,0,-146,0,0,0, - -179,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,-188,0,-189,0, - 0,0,0,0,-464,0,-163,0,0,-147, - 0,0,0,-202,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-203, - 0,-204,0,0,0,0,0,-205,-206,-299, - 0,0,-148,0,0,0,-207,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-208,0,-209,0,0,0,0,0, - -210,-211,-212,0,0,-172,0,0,0,-213, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-214,0,0, - 0,0,0,0,0,-215,0,-307,0,0, - 0,0,0,-418,-216,-217,0,0,-256,0, - 0,0,-218,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -219,0,0,0,0,0,0,0,-220,0, - -439,0,0,0,0,-313,-236,-237,-238,0, - 0,-520,0,0,0,-351,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-239,0,0,0,0,0,0, - 0,-260,0,-262,0,0,0,0,-257,-263, - -273,-274,0,0,-311,0,0,0,-282,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-283,0,0,0, - 0,0,0,0,-285,0,0,0,0,0, - 0,-349,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-287,0,0,0,0,0,0,-199,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-369,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-294,0,-300,0,0,0,0,-388,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-301,0, - -331,0,0,0,0,-73,0,0,0,-305, - -185,0,0,0,0,0,-31,-306,-389,0, - 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, - -323,0,0,0,0,-451,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-324,0,0, - 0,0,0,0,0,0,0,-332,0,0, - 0,0,-195,0,0,0,-336,-186,0,0, - 0,0,0,-35,-337,-150,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-192,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-348,-137,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-350,0,0,0,0,0, - 0,0,0,0,-366,0,-132,0,0,0, - -374,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-377,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,-272,0,0, - 0,0,0,-134,0,0,0,-201,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-370,0,0,0,0, - 0,-126,0,0,0,-401,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-402,0,0,0,0,-127,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -405,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,0,0,0,0, - 0,0,-129,0,0,0,-310,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-406,0,0,0,0,-433, - -226,-412,-385,0,-261,0,0,-376,0,0, - 0,0,-414,0,0,0,0,0,-98,-399, - -423,0,0,0,-338,0,0,0,-430,0, - 0,0,0,0,0,-431,-347,0,0,0, - 0,0,0,-373,0,0,0,0,0,0, - 0,0,0,-449,-438,0,-461,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-23,0,0,0, - -355,0,-356,0,-184,0,0,0,0,0, - -450,0,0,0,0,0,-448,-452,-454,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-81,0,-84,0,0,0,0,0, - 0,0,0,0,0,0,0,-455,-88,0, - 0,0,-130,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-20,-456,-457,-83, - 0,0,0,0,0,0,0,0,0,0, - -383,0,0,0,0,-459,0,0,0,0, - 0,0,-398,0,0,0,0,0,0,0, - 0,-112,-247,0,-512,0,0,0,0,0, - 0,0,0,0,0,-391,0,0,0,0, - 0,0,0,0,0,-131,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-458,0,0, - 0,0,0,0,-472,0,0,0,0,-21, - -106,0,0,0,-93,0,0,0,0,0, - -434,0,0,-474,0,0,-475,0,0,-30, - -117,-517,-518,0,0,0,0,0,-416,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-476,-411,0,-85,0,0,-77,0,0, - 0,0,0,-477,0,0,0,0,0,0, - 0,0,0,0,0,0,-387,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-167,0,0,0,0,0,0,0, - 0,0,0,0,0,-478,0,0,-242,0, - -372,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-502,0,0,-255,0, - 0,-482,-14,0,0,0,0,0,0,-486, - 0,0,0,0,0,0,0,-107,0,-491, - 0,0,0,0,0,0,0,0,0,-493, - -193,0,0,0,0,-501,-244,0,-297,0, - 0,0,0,0,0,0,0,0,0,0, - -34,0,0,0,0,0,0,0,0,0, - -183,0,-99,-499,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-508,0,0,-403,0,-382,-509, - -288,0,0,0,0,0,0,0,0,0, - 0,0,0,-516,0,0,0,0,0,-521, - 0,0,0,0,-171,-228,-492,0,0,0, - 0,0,0,0,-427,0,0,0,0,0, - 0,0,0,0,0,0,0,-510,0,0, - -425,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-37,0,0, - 0,0,-12,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-514,0,0,-409,0,0,0,0,-96, - -221,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-234,0,0,0,0,0,-360,0, - 0,0,0,-407,0,0,0,0,0,0, - 0,0,0,0,0,-526,-326,0,-157,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-108,0,0,0,0, - -495,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-100,0,0,0, - 0,0,0,0,0,0,0,0,0,-529, - -159,0,0,0,0,0,0,-161,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-422,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-230,0,0,0,0,0,0, - 0,0,0,0,-442,0,0,0,0,0, - 0,0,0,-121,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-267,0,0,-122,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, 0,0,0,-286,0,0,0,0,0,0, - 0,0,0,0,-325,0,0,0,0,-174, - 0,0,0,0,0,-49,0,0,0,-404, + 0,0,0,0,0,0,0,-325,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-160,0,0, - 0,0,-470,0,0,0,0,0,-101,-164, - 0,0,0,0,0,0,-271,0,0,-268, - -194,0,0,-175,0,0,0,0,0,-181, - 0,0,0,0,0,0,0,-170,0,0, - 0,0,0,0,0,0,0,0,0,-269, + -525,0,0,0,-502,0,0,0,0,0, + 0,0,0,0,0,-199,0,0,0,0, + 0,0,0,0,0,0,0,0,-77,0, + 0,-227,-9,-337,0,0,0,-417,0,0, + 0,0,-348,0,0,-350,0,0,0,0, + 0,0,-433,-327,0,-105,0,0,-302,0, + 0,0,-404,0,0,0,0,0,-307,-95, + -517,0,0,0,0,0,-366,0,0,0, + 0,0,0,0,0,0,0,-374,0,-321, + 0,0,0,0,-169,0,0,0,0,0, + 0,0,0,0,0,0,-355,0,-449,-377, + 0,0,0,0,0,0,0,-401,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-400,0,0,0,0, - 0,0,0,0,0,0,-123,0,0,0, + 0,-23,0,0,0,0,0,0,0,-185, + 0,0,0,0,0,-402,0,0,0,-411, + 0,-405,0,0,0,0,0,0,0,0, + 0,0,-406,0,-76,0,0,0,-78,0, + -412,0,0,0,0,0,0,0,0,0, + 0,-11,0,0,0,-414,-80,-130,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-423, + 0,0,0,0,0,0,0,0,0,0, + -430,0,-431,0,0,0,0,0,0,-379, + 0,0,0,0,-338,0,0,0,0,0, + 0,0,0,0,0,-469,0,0,0,0, + 0,0,0,0,0,0,-398,0,-400,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -196,-32,0,0,0,0,0,0,0,0, - 0,0,-47,-97,-118,0,0,0,0,0, - 0,0,0,0,0,-396,0,0,0,0, - 0,0,0,0,0,0,-224,-225,0,0, - 0,0,0,0,0,-232,0,0,0,0, + -131,0,0,0,-172,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-200,0,0,0,0,0,0,0,0, - 0,-124,0,0,0,0,0,0,0,0, + 0,0,-458,0,0,0,0,-386,0,0, + 0,-37,0,-106,0,0,-356,0,-330,0, + 0,0,0,-403,0,-244,-267,-107,0,0, + 0,0,0,-81,0,0,0,0,0,-438, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-304,0,0,0,0, - 0,0,0,0,0,0,-229,0,-243,0, - 0,0,0,-125,0,0,0,0,0,0, + 0,0,0,0,0,0,-476,0,-297,0, + 0,0,0,-450,-452,-175,0,0,0,0, + 0,0,0,0,0,-454,0,0,0,-382, + 0,0,0,0,0,-176,0,-182,-234,-378, + 0,0,-455,-353,0,0,0,0,0,-456, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-149,-113,-339, - 0,0,0,0,-254,0,0,0,-252,0, - 0,-381,0,0,0,0,0,0,0,-245, - 0,0,0,0,0,0,-250,0,0,0, - 0,-298,0,0,-363,0,0,0,0,0, + 0,0,-478,0,0,-457,0,0,-459,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-284,0,0,0,0,0, - 0,0,0,0,0,-165,0,0,0,-152, - 0,0,0,-291,0,0,0,0,0,0, - 0,-278,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-440,0,0, - -303,0,0,0,0,0,0,-469,0,-319, + 0,0,0,-472,0,0,0,-383,0,0, + 0,0,0,0,0,0,0,0,0,-474, + 0,0,0,-165,0,0,0,-409,0,0, + 0,0,0,0,0,0,-493,0,0,-475, + 0,-461,0,0,0,0,0,-477,0,0, + 0,0,0,0,0,0,0,0,0,-242, + -196,0,-482,0,0,0,0,-87,0,0, + 0,0,-486,-491,0,0,0,0,0,0, + 0,-499,0,0,0,0,0,0,0,0, + -508,0,0,-509,0,-290,0,0,0,-516, + 0,0,0,0,0,0,0,0,0,-521, + 0,0,0,-435,0,0,0,0,0,0, + 0,-93,0,0,0,0,0,-100,0,0, + 0,0,-268,0,0,-200,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,-321,0,0,0,0,0,0,0,-390, - -378,0,0,0,-417,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-519,0,0,0,0,0,0, - 0,0,0,0,-330,-249,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-51,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-453,0,0,0, - 0,0,0,0,0,0,0,-340,-342,0, - 0,0,0,0,0,-344,-352,0,0,0, - 0,0,0,0,0,0,0,0,-435,0, - 0,0,0,0,0,0,0,0,0,-52, + 0,0,0,-360,0,0,0,0,-243,-82, + 0,-252,0,0,0,-158,0,0,0,0, + 0,0,0,0,0,-194,-444,0,0,0, + 0,0,0,0,0,0,0,0,-514,0, + 0,-118,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-288,0,0, + 0,0,0,0,-254,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-53,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-367,0,-340, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-54,0,0,0,0,0,0, + 0,-519,0,0,0,0,0,0,0,0, + 0,0,0,0,-121,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-55,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-363, + -284,-195,0,0,0,0,-49,0,0,0, + 0,-427,0,0,0,0,-101,0,0,-291, + 0,0,0,0,-342,0,-526,0,0,-84, + 0,0,0,0,0,0,-315,-102,0,-117, + 0,0,-425,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-269,0,0, + 0,0,0,-103,0,0,0,0,0,0, + 0,-316,0,0,0,0,0,0,0,0, + -529,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-56,0,0, + 0,0,0,0,0,0,0,0,0,-317, + 0,-318,-233,-328,0,0,0,0,0,0, + 0,-295,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-470,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-57, + 0,0,0,-122,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-304,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-124,0,0,0,-358,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-104,0,0,0,-422, + 0,0,-481,-434,0,0,0,0,0,-226, + 0,0,-229,0,0,0,0,0,0,0, + 0,0,0,-344,0,0,0,0,0,0, + 0,0,0,-164,0,0,0,0,0,0, + 0,0,-125,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-359,0,0,0,-231,0, + 0,0,0,0,0,-339,0,0,-331,0, + 0,0,-364,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-50,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,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-184, + 0,0,0,0,0,0,-396,0,0,0, + 0,0,-522,0,0,-381,0,0,-397,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-119,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,0,0,-120,0,0,0,0, + 0,0,0,-296,0,0,0,-415,0,0, + 0,0,0,0,0,0,0,0,0,-329, + 0,0,0,-504,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-182,0,0, + 0,0,0,0,0,0,-352,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-248, - 0,0,0,-410,0,0,0,0,0,0, + 0,0,0,0,0,-512,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-364,0,0,0,-315,0,0,0,0, - 0,0,-408,0,0,-279,-316,-317,-462,0, - -446,-341,-479,0,0,0,0,0,-327,0, - -365,-375,0,-318,0,0,-394,0,0,0, - 0,0,0,0,0,0,0,-419,0,0, + 0,-163,0,0,0,-192,0,0,0,-198, + 0,0,0,0,0,0,0,-1,0,0, + 0,0,0,0,0,0,0,0,0,0, + -149,0,-48,-365,0,0,0,0,0,0, + -424,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-394,0,0, + 0,0,0,0,-419,0,0,0,0,0, + -293,0,0,0,0,0,-518,0,0,0, + -246,0,0,0,0,0,0,-442,0,0, + 0,-51,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-421,0,-429,0,0,-432,0, + 0,0,0,0,0,0,-437,0,-487,0, + 0,0,0,-52,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-53,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,-54,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-55,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-56,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-57,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -58,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-191,0,0,0,-198, + 0,0,-110,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,-380,0,0,0,0,0,-471, - -484,0,0,-420,0,-445,0,0,0,0, - 0,0,0,-428,0,0,-421,0,-280,0, - 0,0,0,0,0,0,-328,0,0,-429, - -432,-353,0,0,0,0,0,0,0,0, + 0,0,0,0,-119,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-120,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,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, + -248,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-341,-278,-271,0,0,0,-453,0, + -498,-466,-375,-489,0,-507,0,-279,0,0, + 0,0,-380,-395,0,0,0,-280,0,0, + 0,0,0,0,0,0,0,-281,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,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,-1, - 0,0,0,0,-359,0,0,0,0,0, - -86,0,0,0,0,0,-485,0,-441,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-78,0,0,0,-223,0,-320, - -437,0,0,0,0,-397,0,0,-522,-415, - -424,-487,0,0,0,0,0,0,0,0, - 0,0,-82,0,0,0,0,0,-466,0, + 0,0,0,-462,0,0,0,0,0,0, + 0,0,0,-385,0,0,0,-387,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-266,0,-490,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-511,-488,0,0,0,0,0,0,0, - 0,0,-395,0,0,0,0,0,0,0, - 0,0,0,0,-489,0,0,0,0,0, - 0,0,0,0,0,0,-494,0,0,0, - 0,-265,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-467,0,-309,0,0, - 0,-496,0,0,0,0,0,0,0,0, - -498,0,0,0,0,-346,0,0,0,0, - 0,0,0,0,0,0,-481,0,-281,0, - 0,-500,0,0,0,0,0,0,0,0, - 0,-523,0,-505,-343,0,0,0,0,0, - 0,-354,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-506,0,0,0, - 0,0,0,0,0,0,0,0,-507,0, - -524,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-527,0,0,0,-392, - 0,0,0,-393,0,0,0,0,-413,0, - 0,0,0,0,0,-426,0,0,0,0, - -443,0,0,0,-368,-497,0,0,0,0, - -33,0,0,0,0,0,0,0,-528,0, + 0,0,-463,0,-420,0,0,-494,0,-471, + -496,0,0,0,0,-428,0,0,0,0, + -484,-485,0,0,-249,0,0,0,0,0, + -334,0,-490,0,0,0,-511,0,0,0, + 0,-319,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-48, - 0,0,0,0,0,0,-102,0,0,0, - 0,-166,0,0,0,-246,0,0,0,0, - -504,0,0,0,0,-253,0,0,0,-258, - 0,0,0,-468,0,0,0,0,0,0, - 0,-480,0,0,0,0,-436,0,0,0, - 0,0,0,-483,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-9, - 0,0,0,0,0,0,0,0,-447,0, - 0,0,0,0,0,0,-503,0,0,-333, - 0,0,0,0,0,-513,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-500,0,0,0, + -441,0,0,0,0,0,0,0,0,0, + 0,0,0,-13,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-505,0,-85, + 0,0,0,-222,0,-506,0,0,0,0, + -524,0,0,-410,-309,0,0,0,0,0, + -253,0,0,0,-445,0,0,0,0,0, + -333,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-527,0,0,0,0, + 0,0,-320,0,0,0,0,-446,0,0, + 0,0,0,0,0,0,-523,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -368,0,0,-436,0,0,0,0,0,-34, 0,0,0,0,0,0,0,0,0,0, 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,-495, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-528, + 0,0,0,0,0,-346,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-266,0, + 0,0,0,0,0,0,0,-343,0,0, + 0,0,0,-354,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-376,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-392,0,0,0,0,0,-393,0, + 0,0,0,0,0,0,0,-326,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-413,0,0, + 0,-467,0,0,0,0,0,0,0,0, + 0,0,0,-426,0,0,0,-390,0,0, + 0,0,0,0,-497,0,0,0,0,0, + 0,0,-443,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-99,0, + 0,0,0,0,0,0,0,0,-113,0, + -492,0,0,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,0, + 0,0,0,0,0,0,-468,0,0,0, + 0,0,0,0,0,0,0,-479,0,-480, + -483,0,0,0,0,0,-447,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -513,0,0,0,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,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -538,539 +545,542 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface BaseAction { public final static char baseAction[] = { - 170,4,54,82,82,32,32,65,65,38, + 169,4,132,81,81,32,32,65,65,38, 38,40,40,193,193,194,194,195,195,1, 1,15,15,15,15,15,15,15,15,16, - 16,16,14,11,11,8,8,8,8,8, - 8,2,66,66,5,5,12,12,12,12, - 45,45,133,133,134,63,63,43,17,17, + 16,16,14,11,11,6,6,6,6,6, + 6,2,63,63,5,5,12,12,44,44, + 133,133,134,58,58,43,17,17,17,17, 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,135,135, - 135,114,114,18,18,18,18,18,18,18, - 18,18,18,18,18,18,19,19,171,171, - 172,172,173,138,138,139,139,136,136,140, - 137,137,20,20,21,21,23,23,23,24, - 24,24,24,25,25,25,26,26,26,27, - 27,27,27,27,28,28,28,29,29,31, - 31,33,33,34,34,35,35,36,36,42, - 42,41,41,41,41,41,41,41,41,41, - 41,41,41,41,39,30,141,141,96,96, - 174,174,91,196,196,67,67,67,67,67, - 67,67,67,67,68,68,68,64,64,56, - 56,175,175,69,69,69,102,102,176,176, - 70,70,70,177,177,71,71,71,71,71, - 72,72,83,83,83,83,83,83,83,49, - 49,49,49,49,115,115,116,116,50,178, - 22,22,22,22,22,48,48,86,86,86, - 86,86,148,148,143,143,143,143,143,144, - 144,144,145,145,145,146,146,146,147,147, - 147,87,87,87,87,87,88,88,88,13, - 13,13,13,13,13,13,13,13,13,13, - 99,120,120,120,120,120,120,118,118,118, - 119,119,150,150,149,149,122,122,103,78, - 78,79,80,52,47,151,151,53,51,85, - 85,152,152,142,142,105,105,74,74,153, - 153,61,61,57,57,154,62,62,75,75, - 59,59,59,89,89,98,97,97,60,60, - 58,58,55,55,44,100,100,100,92,92, - 92,93,93,94,94,94,95,95,106,106, - 106,108,108,107,107,197,197,90,90,180, - 180,180,180,180,124,46,46,156,179,179, - 125,125,125,125,126,158,181,181,37,37, - 117,127,127,127,127,109,109,121,121,121, - 159,160,160,160,160,160,160,160,160,160, - 160,160,184,184,182,182,183,183,161,161, - 161,161,162,185,111,110,110,186,186,163, - 163,163,163,101,101,101,187,187,9,9, - 10,188,188,189,164,155,155,165,165,166, - 167,167,6,6,7,168,168,168,168,168, - 168,168,168,168,168,168,168,168,168,168, - 168,168,168,168,168,168,168,168,168,168, - 168,168,168,168,168,168,168,168,168,168, - 168,168,168,168,168,168,168,76,81,81, - 169,169,129,129,130,130,130,130,130,130, - 3,131,131,128,128,112,112,84,77,73, - 157,157,113,113,190,190,190,132,132,123, - 123,191,191,170,170,104,1132,41,1769,1767, - 1227,4186,36,558,33,37,568,32,34,1759, - 31,29,58,1109,114,84,85,116,1213,1156, - 1202,1179,1263,1210,1336,1297,1229,1458,1527,1423, - 1466,1501,151,280,1114,41,289,166,152,1190, - 41,628,38,1287,4686,36,558,33,37,568, - 67,34,2459,41,628,38,239,4660,36,558, - 33,37,568,32,34,1038,31,29,58,1109, - 114,84,85,116,1858,1156,1202,1179,1263,1210, - 1336,1906,242,237,238,592,41,451,1539,55, - 4589,2459,41,628,38,281,4660,36,558,33, - 37,568,32,34,1038,31,29,58,1109,114, - 84,85,93,249,252,255,258,4383,327,2063, - 41,628,38,1734,4190,36,558,33,37,568, - 65,34,1114,868,858,40,2291,1554,66,4354, - 867,2633,2690,2825,4331,1604,41,628,38,2597, - 4660,36,558,33,37,568,32,34,1038,31, - 29,58,1109,114,84,85,116,344,1156,1202, - 1179,1263,1210,1336,1297,2262,1458,1683,1423,1466, - 1501,151,2816,41,287,327,515,152,1433,3166, - 4611,1715,2863,41,284,2828,1114,41,771,389, - 516,1604,41,628,38,2597,4660,36,558,33, - 37,568,32,34,1038,31,29,58,1109,114, - 84,85,116,344,1156,1202,1179,1263,1210,1336, - 1297,2100,1458,57,1423,1466,1501,151,1481,678, - 383,1281,515,152,333,3166,873,382,1302,1110, - 444,2522,2533,316,69,490,516,511,1602,2078, - 41,628,38,326,4190,36,558,33,37,568, - 64,34,2151,1612,3472,2238,1630,1114,41,3508, - 3507,1604,41,628,38,2597,4660,36,558,33, - 37,568,32,34,1038,31,29,58,1109,114, - 84,85,116,344,1156,1202,1179,1263,1210,1336, - 1297,1504,1458,511,1423,1466,1501,151,2204,592, - 41,286,515,152,4672,3166,2255,1230,1366,1638, - 935,496,1630,1114,41,2017,516,1936,41,628, - 38,2597,4660,36,558,33,37,568,32,34, - 1038,31,29,58,1109,114,84,85,116,344, - 1156,1202,1179,1263,1210,1336,1297,2206,1458,78, - 1423,1466,1501,151,1114,41,771,389,515,152, - 441,3166,1264,41,1587,49,2859,239,48,558, - 1043,71,516,511,68,327,1363,41,628,38, - 4611,4686,36,558,33,37,568,32,34,1673, - 509,429,1630,251,237,238,168,1871,41,628, - 38,2258,4660,36,558,33,37,568,32,34, - 1038,31,29,58,1109,114,84,85,116,1286, - 1156,1202,1179,1263,1210,1336,1297,2260,1458,512, - 1423,1466,1501,151,1119,1114,1991,3058,380,152, - 1670,41,628,38,2272,4660,36,558,33,37, - 568,32,34,1038,31,29,58,1109,114,84, - 85,116,3400,1156,1202,1179,1263,1210,1336,1297, - 2591,1458,1982,1423,1466,1501,151,4611,332,101, - 3058,380,152,2159,41,628,38,1407,4660,36, - 558,33,37,568,32,34,1038,31,29,58, - 1109,114,84,85,116,1946,1156,1202,1179,1263, - 1210,1336,1297,102,1458,454,1423,1466,1501,151, - 436,418,386,1691,166,152,4667,1742,41,628, - 38,334,4660,36,558,33,37,568,32,34, - 1038,31,29,58,1109,114,84,85,116,2554, - 1156,1202,1179,1263,1210,1336,1297,293,1458,2277, - 1423,1466,1501,151,4611,387,1691,3058,380,152, - 1114,41,858,283,2159,41,628,38,1171,4660, - 36,558,33,37,568,32,34,1038,31,29, - 58,1109,114,84,85,116,1772,1156,1202,1179, - 1263,1210,1336,1297,1110,1458,2603,1423,1466,1501, - 151,1796,592,41,286,374,152,4676,1119,1320, - 2459,41,628,38,1554,4660,36,558,33,37, - 568,32,34,1038,31,29,58,1109,114,84, - 85,116,414,1156,1202,1179,1263,1210,1336,1297, - 1901,1905,378,1691,2159,41,628,38,2931,4660, - 36,558,33,37,568,32,34,1038,31,29, - 58,1109,114,84,85,116,629,1156,1202,1179, - 1263,1210,1336,1297,2629,1458,328,1423,1466,1501, - 151,1114,41,858,1999,374,152,104,373,2159, - 41,628,38,1212,4660,36,558,33,37,568, - 32,34,1038,31,29,58,1109,114,84,85, - 116,1452,1156,1202,1179,1263,1210,1336,1297,1186, - 1458,1110,1423,1466,1501,151,2763,153,873,1352, - 374,152,1114,41,858,288,2000,41,628,38, - 1251,4660,36,558,33,37,568,32,34,1038, - 31,29,58,1109,114,84,85,116,495,1156, - 1202,1179,1263,1210,1336,1297,60,1458,372,1423, - 1466,1511,172,1807,41,628,38,2156,4660,36, - 558,33,37,568,32,34,1038,31,29,58, - 1109,114,84,85,116,3680,1156,1202,1179,1263, - 1210,1336,1297,458,1458,1926,1423,1466,1501,151, - 1114,41,298,370,150,152,1110,1710,329,1114, - 41,858,285,2159,41,628,38,1164,4660,36, - 558,33,37,568,32,34,1038,31,29,58, - 1109,114,84,85,116,2823,1156,1202,1179,1263, - 1210,1336,1297,1258,1458,403,1423,1466,1501,151, - 490,4372,50,1597,163,152,2159,41,628,38, - 1683,4660,36,558,33,37,568,32,34,1038, - 31,29,58,1109,114,84,85,116,408,1156, - 1202,1179,1263,1210,1336,1297,582,1458,457,1423, - 1466,1501,151,2623,41,858,283,162,152,2159, - 41,628,38,4220,4660,36,558,33,37,568, - 32,34,1038,31,29,58,1109,114,84,85, - 116,1411,1156,1202,1179,1263,1210,1336,1297,2291, - 1458,1408,1423,1466,1501,151,1114,2247,858,82, - 161,152,2159,41,628,38,1245,4660,36,558, - 33,37,568,32,34,1038,31,29,58,1109, - 114,84,85,116,79,1156,1202,1179,1263,1210, - 1336,1297,234,1458,855,1423,1466,1501,151,2623, - 41,858,2255,160,152,2159,41,628,38,1245, - 4660,36,558,33,37,568,32,34,1038,31, - 29,58,1109,114,84,85,116,2645,1156,1202, - 1179,1263,1210,1336,1297,1482,1458,419,1423,1466, - 1501,151,1114,41,858,2325,159,152,2159,41, - 628,38,1618,4660,36,558,33,37,568,32, - 34,1038,31,29,58,1109,114,84,85,116, - 1542,1156,1202,1179,1263,1210,1336,1297,1782,1458, - 1507,1423,1466,1501,151,3496,1114,4221,2238,158, - 152,2159,41,628,38,1976,4660,36,558,33, - 37,568,32,34,1038,31,29,58,1109,114, - 84,85,116,1932,1156,1202,1179,1263,1210,1336, - 1297,2523,1458,418,1423,1466,1501,151,4525,2736, - 445,1926,157,152,2159,41,628,38,2040,4660, - 36,558,33,37,568,32,34,1038,31,29, - 58,1109,114,84,85,116,2055,1156,1202,1179, - 1263,1210,1336,1297,4084,1458,2263,1423,1466,1501, - 151,3100,2902,445,1926,156,152,2159,41,628, - 38,2707,4660,36,558,33,37,568,32,34, - 1038,31,29,58,1109,114,84,85,116,1659, - 1156,1202,1179,1263,1210,1336,1297,2709,1458,2647, - 1423,1466,1501,151,3149,1114,2910,1926,155,152, - 2159,41,628,38,675,4660,36,558,33,37, - 568,32,34,1038,31,29,58,1109,114,84, - 85,116,521,1156,1202,1179,1263,1210,1336,1297, - 762,1458,2518,1423,1466,1501,151,3577,2750,2752, - 1926,154,152,2159,41,628,38,1732,4660,36, - 558,33,37,568,32,34,1038,31,29,58, - 1109,114,84,85,116,521,1156,1202,1179,1263, - 1210,1336,1297,2084,1458,2119,1423,1466,1501,151, - 3828,2473,1554,2273,153,152,2159,41,628,38, - 147,4660,36,558,33,37,568,32,34,1038, - 31,29,58,1109,114,84,85,116,1920,1156, - 1202,1179,1263,1210,1336,1297,2047,1458,2069,1423, - 1466,1501,151,4532,2499,1162,501,167,152,2159, - 41,628,38,1426,4660,36,558,33,37,568, - 32,34,1038,31,29,58,1109,114,84,85, - 116,248,1156,1202,1179,1263,1210,1336,1297,669, - 1458,2499,1423,1466,1501,151,55,2776,2919,2953, - 148,152,2365,41,628,38,2205,4660,36,558, - 33,37,568,32,34,1038,31,29,58,1109, - 114,84,85,116,2957,1156,1202,1179,1263,1210, - 1336,1297,944,1458,2751,1423,1466,1501,151,2262, - 2189,1119,1815,197,152,2459,41,628,38,2966, - 4660,36,558,33,37,568,32,34,1038,31, - 29,58,1109,114,84,85,116,2968,1156,1202, - 1179,1263,1210,1336,1297,1549,1458,357,1423,1466, - 1511,172,2459,41,628,38,529,4660,36,558, - 33,37,568,32,34,1038,31,29,58,1109, - 114,84,85,116,390,1156,1202,1179,1263,1210, - 1336,1297,1989,1458,356,1423,1466,1511,172,1190, - 41,628,38,529,4686,36,558,33,37,568, - 66,34,2459,41,628,38,297,4660,36,558, - 33,37,568,32,34,1038,31,29,58,1109, - 114,84,85,116,381,1156,1202,1179,1263,1210, - 1336,1297,1788,1458,2797,1423,1466,1511,172,2459, - 41,628,38,421,4660,36,558,33,37,568, - 32,34,1038,31,29,58,1109,114,84,85, - 116,419,1156,1202,1179,1263,1210,1336,1297,2934, - 1458,2973,1423,1466,1511,172,2577,41,628,38, - 2972,1601,36,558,341,37,568,2763,2210,2459, - 41,628,38,2713,4660,36,558,33,37,568, - 32,34,1038,31,29,58,1109,114,84,85, - 116,2575,1156,1202,1179,1263,1210,1336,1297,324, - 1458,1373,1423,1466,1511,172,2504,41,628,38, - 420,4660,36,558,33,37,568,32,34,1038, - 31,29,58,1109,114,84,85,116,1668,1156, - 1202,1179,1263,1210,1336,1297,354,1458,2301,1423, - 1466,1511,172,2577,41,628,38,2974,1260,36, - 558,46,37,568,2763,2955,2459,41,628,38, - 423,4660,36,558,33,37,568,32,34,1038, - 31,29,58,1109,114,84,85,116,1110,1156, - 1202,1179,1263,1210,1336,1297,379,1458,96,1423, - 1939,110,1351,2459,41,628,38,2834,4660,36, - 558,33,37,568,32,34,1038,31,29,58, - 1109,114,84,85,116,2214,1156,1202,1179,1263, - 1210,1336,1297,355,1458,2996,1913,2459,41,628, - 38,1371,4660,36,558,33,37,568,32,34, - 1038,31,29,58,1109,114,84,85,116,3000, - 1156,1202,1179,1263,1210,1870,2459,41,628,38, - 4080,4660,36,558,33,37,568,32,34,1038, - 31,29,58,1109,114,84,85,116,2262,1156, - 1202,1179,1263,1888,2459,41,628,38,1110,4660, - 36,558,33,37,568,32,34,1038,31,29, - 58,1109,114,84,85,116,1110,1156,1202,1179, - 1263,1896,2459,41,628,38,2444,4660,36,558, - 33,37,568,32,34,1038,31,29,58,1109, - 114,84,85,116,2489,1156,1202,1179,1827,2459, - 41,628,38,290,4660,36,558,33,37,568, - 32,34,1038,31,29,58,1109,114,84,85, - 116,1075,1156,1202,1179,1853,2459,41,628,38, - 59,4660,36,558,33,37,568,32,34,1038, - 31,29,58,1109,114,84,85,116,105,1156, - 1202,1179,1855,2459,41,628,38,2262,4660,36, - 558,33,37,568,32,34,1038,31,29,58, - 1109,114,84,85,116,2982,1156,1202,1179,1861, - 262,857,2941,1926,536,2229,41,298,1543,41, - 628,38,3436,3002,36,558,340,37,568,31, - 2103,2980,236,2597,4224,2577,41,628,38,2534, - 164,36,558,2881,37,568,2593,2740,188,3817, - 2823,344,291,2823,2262,3642,211,222,2528,210, - 219,220,221,223,1,3006,177,2853,536,377, - 4237,1043,736,3166,176,2160,323,191,175,178, - 179,180,181,182,1698,401,236,2549,41,771, - 389,418,2649,418,164,2552,4580,164,4584,2937, - 244,2672,188,3817,2823,208,4337,1684,2995,88, - 211,222,2528,210,219,220,221,223,1820,302, - 177,391,425,2046,280,2765,1777,352,176,189, - 3676,192,175,178,179,180,181,182,3013,1596, - 41,771,389,2459,41,628,38,239,4660,36, - 558,33,37,568,32,34,1038,31,29,58, - 1109,114,84,85,116,3380,1156,1202,1862,375, - 353,3711,319,242,237,238,57,31,3014,3015, - 2076,685,678,239,1655,2574,281,345,2248,2161, - 350,2577,41,628,38,3579,3019,36,558,3095, - 37,568,2863,1110,249,252,255,258,4383,254, - 237,238,1452,2834,1734,1916,41,628,38,725, - 520,36,558,340,37,568,1114,41,771,389, - 4354,867,2633,2690,2825,4331,2459,41,628,38, - 239,4660,36,558,33,37,568,32,34,1038, - 31,29,58,1109,114,84,85,116,349,1156, - 1202,1863,536,432,1689,2676,257,237,238,736, - 31,2763,583,323,741,1349,317,728,2243,2243, - 236,1027,41,451,3023,106,4589,175,164,614, - 31,2859,1926,1926,821,1043,188,3817,2823,1114, - 41,771,389,4058,211,222,2528,210,219,220, - 221,223,436,2830,177,2199,536,2520,327,311, - 535,168,176,4611,3001,2902,175,178,179,180, - 181,182,2823,2823,236,3015,431,2219,41,2292, - 38,725,164,36,558,340,37,568,523,522, - 188,3817,2823,1114,41,771,389,4522,211,222, - 2528,210,219,220,221,223,523,2541,177,1558, - 536,2053,330,336,4611,239,176,333,190,186, - 175,178,179,180,181,182,2499,3532,236,2742, - 280,736,588,31,583,323,164,1043,317,728, - 2701,260,237,238,188,3817,2823,1032,2763,405, - 2334,1956,211,222,2528,210,219,220,221,223, - 610,2774,177,2254,536,2597,1684,1789,334,1452, - 176,2597,4611,184,175,178,179,180,181,182, - 30,31,236,344,353,2785,448,2522,2533,3324, - 164,327,282,31,3025,2243,4611,2597,188,3817, - 2823,347,2248,2161,350,866,211,222,2528,210, - 219,220,221,223,697,344,177,418,536,2052, - 3008,2844,4596,2597,176,2597,333,185,175,178, - 179,180,181,182,3027,2545,236,3166,417,2315, - 727,3324,5326,3324,164,1349,857,3007,1716,325, - 333,2597,188,3817,2823,2052,2879,361,529,2597, - 211,222,2528,210,219,220,221,223,784,344, - 177,418,536,3665,2025,2062,4601,3324,176,520, - 2879,195,175,178,179,180,181,182,31,5326, - 236,4559,715,1427,41,628,38,725,164,36, - 558,340,37,568,5326,3015,188,3817,2823,503, - 5326,361,5326,5326,211,222,2528,210,219,220, - 221,223,871,1732,177,2053,536,4247,2025,2062, - 31,2680,176,3637,957,3010,175,178,179,180, - 181,182,335,336,236,503,5326,736,500,502, - 583,323,164,1349,317,728,392,425,5326,1349, - 188,3817,2823,304,2703,41,395,2167,211,222, - 2528,210,219,220,221,223,958,327,177,31, - 536,5326,4611,4358,501,502,176,5326,2461,200, - 175,178,179,180,181,182,1922,3680,236,5326, - 2961,1427,41,628,38,725,164,36,558,340, - 37,568,5326,3015,188,3817,2823,31,5326,3015, - 5326,2597,211,222,2528,210,219,220,221,223, - 1045,31,177,5326,536,2521,333,4547,680,344, - 176,5326,3016,194,175,178,179,180,181,182, - 332,336,236,5326,2053,736,4137,336,583,323, - 164,3166,317,728,52,1597,4102,5326,188,3817, - 2823,353,1726,2549,5326,2990,211,222,2528,210, - 219,220,221,223,2410,1991,177,5326,345,2248, - 2161,350,228,5326,176,2053,343,202,175,178, - 179,180,181,182,2459,41,628,38,5326,4660, - 36,558,33,37,568,32,34,1038,31,29, - 58,1109,114,84,85,116,857,1156,1784,2459, - 41,628,38,308,4660,36,558,33,37,568, - 32,34,1038,31,29,58,1109,114,84,85, - 116,5326,1156,1810,1321,41,628,38,3147,5326, - 36,558,340,37,568,1728,41,628,38,3645, - 2763,36,558,340,37,568,2414,41,628,38, - 2262,4660,36,558,33,37,568,32,34,1038, - 31,29,58,1109,94,84,85,352,2087,41, - 771,389,77,1114,41,298,292,5326,736,31, - 31,583,323,2597,3254,317,728,2410,1991,736, - 857,31,583,323,2763,1043,317,728,2228,353, - 2763,344,5326,2378,1992,57,394,425,31,2167, - 353,678,3123,55,5326,301,345,2248,2161,350, - 2735,3619,5326,3166,2201,4478,76,345,2248,2161, - 350,722,61,5326,1741,3579,1529,41,628,38, - 725,4611,36,558,340,37,568,2459,41,628, - 38,5326,4660,36,558,33,37,568,32,34, - 1038,31,29,58,1109,114,84,85,116,5326, - 1812,2763,1231,41,628,38,4409,4611,36,558, - 340,37,568,31,31,31,5326,536,536,1043, - 736,5326,5326,583,323,333,2973,317,728,5326, - 393,425,5326,95,367,344,344,31,2678,292, - 614,3296,3390,164,164,164,2816,41,284,5326, - 5326,1898,2918,3394,2388,4496,736,3166,3166,583, - 323,334,2763,318,728,5326,2497,1992,2781,3340, - 311,535,2459,41,628,38,5326,4660,36,558, - 33,37,568,32,34,1038,31,29,58,1109, - 114,84,85,116,60,1818,1649,41,2292,38, - 725,4611,36,558,340,37,568,31,3224,2763, - 5326,3387,1389,427,2459,41,628,38,2541,4660, - 36,558,33,37,568,32,34,1038,31,29, - 58,1109,114,84,85,116,2168,1819,31,31, - 2724,351,1043,536,2597,940,41,771,389,2763, - 736,5326,2819,583,323,333,2597,317,728,5326, - 31,344,236,97,2991,5326,110,31,164,164, - 1956,676,31,5326,236,1789,3610,1931,2918,2597, - 4611,98,280,3166,5326,4496,213,222,2528,212, - 219,220,221,223,3471,2763,5326,3324,213,222, - 2528,212,219,220,221,223,1596,41,771,389, - 1114,41,771,389,2763,5326,214,216,218,299, - 300,1990,31,224,215,217,1043,3732,214,216, - 218,299,300,1990,333,224,215,217,2891,5326, - 5326,1284,2597,57,2112,1526,3775,57,2262,678, - 2859,55,164,54,1043,4214,2564,416,2315,80, - 236,4106,31,5326,4102,361,3129,4214,3350,574, - 2844,2229,2434,298,2597,1114,41,771,389,2557, - 168,3665,2025,2062,213,222,2528,212,219,220, - 221,223,3324,5326,2585,41,628,38,3147,5326, - 36,558,340,37,568,31,31,5326,5326,1509, - 2597,3642,430,309,214,216,218,299,300,1990, - 5326,224,215,217,2459,868,628,1595,344,4660, - 36,558,33,37,568,32,34,1038,31,29, - 58,1109,114,84,85,92,4306,2053,736,5326, - 3166,583,323,4214,3718,317,728,5326,31,31, - 361,3684,3622,2989,5326,5326,31,31,524,353, - 1569,3740,5326,5326,1820,5326,4370,2025,2062,1114, - 41,771,389,5326,5326,187,345,2248,2161,350, - 2459,41,628,38,525,4660,36,558,33,37, - 568,32,34,1038,31,29,58,1109,114,84, - 85,91,2459,41,628,38,450,4660,36,558, - 33,37,568,32,34,1038,31,29,58,1109, - 114,84,85,90,2459,41,628,38,5326,4660, - 36,558,33,37,568,32,34,1038,31,29, - 58,1109,114,84,85,89,2459,41,628,38, - 5326,4660,36,558,33,37,568,32,34,1038, - 31,29,58,1109,114,84,85,88,2459,41, - 628,38,5326,4660,36,558,33,37,568,32, - 34,1038,31,29,58,1109,114,84,85,87, - 2459,41,628,38,5326,4660,36,558,33,37, - 568,32,34,1038,31,29,58,1109,114,84, - 85,86,2320,41,628,38,5326,4660,36,558, - 33,37,568,32,34,1038,31,29,58,1109, - 114,84,85,112,2459,41,628,38,5326,4660, - 36,558,33,37,568,32,34,1038,31,29, - 58,1109,114,84,85,118,2459,41,628,38, - 5326,4660,36,558,33,37,568,32,34,1038, - 31,29,58,1109,114,84,85,117,2459,41, - 628,38,5326,4660,36,558,33,37,568,32, - 34,1038,31,29,58,1109,114,84,85,115, - 2459,41,628,38,1926,4660,36,558,33,37, - 568,32,34,1038,31,29,58,1109,114,84, - 85,113,1382,41,628,38,2763,4611,36,558, - 340,37,568,2703,41,395,31,2763,2763,2053, - 1043,31,2907,31,2823,2597,2597,536,5326,2517, - 5326,31,2785,2597,2763,4433,2597,31,75,5326, - 377,1904,5326,344,236,344,164,5326,31,74, - 73,3324,1941,164,236,4117,736,206,5326,583, - 323,334,196,318,728,3166,72,3171,213,222, - 2528,212,219,220,221,223,507,353,213,222, - 2528,212,219,220,221,223,1738,41,771,389, - 2240,41,771,389,347,2248,2161,350,214,216, - 218,299,300,1990,2053,518,215,217,214,216, - 218,299,300,1990,2800,517,215,217,2597,362, - 2053,2053,2556,57,2923,4457,2228,57,2597,678, - 2597,2723,5326,678,2984,2899,236,31,2597,31, - 4251,3708,205,1043,5326,5326,236,2763,3324,2863, - 31,31,2735,3615,4226,2617,236,4478,307,209, - 213,222,2528,212,219,220,221,223,5326,164, - 213,222,2528,212,219,220,221,223,4118,4131, - 213,222,2528,212,219,220,221,223,5326,5326, - 214,216,218,299,300,1990,5326,225,215,217, - 214,216,218,299,300,1990,2763,310,215,217, - 214,216,218,299,300,1990,503,497,215,217, - 1496,41,628,38,725,2763,36,558,340,37, - 568,2618,41,771,389,5326,2649,2053,63,1427, - 41,628,38,725,245,36,558,340,37,568, - 5326,5326,5326,1898,1398,500,502,62,1201,5326, - 2859,31,2597,4690,1043,4476,2763,246,280,2950, - 2763,2763,31,1043,736,207,2936,583,323,5326, - 236,317,728,2605,41,1640,3208,5326,3368,2763, - 168,239,5326,736,614,2775,583,323,109,164, - 317,728,4361,3265,1387,406,4462,1289,170,2053, - 5326,2597,4690,614,239,428,5326,243,237,238, - 57,449,2053,31,533,535,678,2896,817,236, - 281,5326,5326,1349,407,408,409,299,300,1990, - 247,237,238,312,535,2868,5326,303,250,253, - 256,259,4383,1387,406,4462,4325,2763,1734,1982, - 4369,5326,1852,41,628,38,3566,5326,36,558, - 340,37,568,5326,5326,5326,1349,527,2688,41, - 771,389,2763,407,408,409,299,300,1990,2984, - 540,31,3201,3015,5326,2725,1231,41,628,38, - 402,4611,36,558,340,37,568,2853,1982,31, - 5326,536,2763,1043,3038,57,736,410,412,2160, - 323,678,2053,55,2763,2240,41,771,389,4491, - 4148,336,2688,41,771,389,3015,164,5326,164, - 1989,914,4407,4576,3092,188,3817,2763,4134,5326, - 736,5326,5326,583,323,334,2802,320,728,2946, - 229,2763,57,3764,5326,5326,410,413,678,57, - 55,203,5326,4423,336,678,2763,55,5326,2803, - 2688,41,771,389,2688,41,771,389,2701,2688, - 41,771,389,4619,5326,2736,2880,41,771,389, - 5326,2883,41,771,389,2859,2935,5326,3200,1043, - 536,1114,41,771,389,3711,319,57,5326,2053, - 5326,57,5326,678,5326,55,57,678,344,55, - 5326,5326,678,57,55,168,164,5326,57,678, - 5326,55,5326,2809,678,196,55,3745,57,5326, - 3171,5326,3849,5326,678,5326,1552,201,5326,1380, - 1663,41,771,389,3373,5326,5326,1114,41,771, - 389,5326,1114,41,771,389,1114,41,771,389, - 5326,2703,41,395,4606,204,1114,41,771,389, - 1114,41,771,389,2878,5326,5326,57,2597,5326, - 5326,4366,31,678,57,2722,536,2859,198,57, - 678,1043,1244,57,31,678,344,3516,536,678, - 5326,732,5326,57,344,5326,528,57,5326,678, - 2045,2722,164,678,2597,2939,344,168,3166,31, - 5326,196,5326,2597,164,5326,3171,31,5326,531, - 31,2597,344,196,1043,5326,31,5326,3171,5326, - 1043,344,5326,5326,5326,5326,5326,5326,5326,344, - 5326,5326,5326,5326,731,5326,5326,5326,5326,5326, - 164,5326,4422,3166,5326,5326,164,5326,5326,2406, - 3004,3166,5326,5326,505,4561,5326,5326,5326,5326, - 5326,5326,532,4389,4482,5326,5326,5326,5326,5326, - 5326,5326,5326,5326,5326,5326,4512,5326,5326,5326, - 5326,5326,5326,5326,5326,5326,5326,5326,5326,5326, - 5326,5326,5326,5326,5326,5326,5326,5326,5326,5326, - 5326,5326,5326,5326,5326,5326,5326,5326,5326,5326, - 5326,5326,5326,5326,5326,5326,5326,5326,5326,5326, - 5326,5326,5326,5326,5326,5326,5326,5326,5326,5326, - 5326,5326,5326,5326,5326,5326,5326,5326,5326,5326, - 5326,5326,5326,5326,5326,4445,5326,5326,5326,5326, - 5326,5326,5326,5326,5326,5326,5326,5326,454,5326, - 5326,5326,5326,5326,5326,5326,5326,5326,5326,5326, - 5326,5326,5326,5326,5326,5326,5326,5326,440,5326, - 0,5346,2,1,0,5345,2,1,0,452, - 2687,0,438,2780,0,2800,35,0,5338,384, - 0,5337,384,0,45,5346,0,45,5345,0, - 2800,388,0,1,442,0,456,1291,0,455, - 1386,0,41,39,0,45,5346,2,0,45, - 5345,2,0,44,5346,0,44,5345,0,2466, - 134,0,51,5368,0,51,43,0,1,1081, - 0,1,5605,0,1,5604,0,1,5603,0, - 1,5602,0,1,5601,0,1,5600,0,1, - 5599,0,1,5598,0,1,5597,0,1,5596, - 0,1,5595,0,45,5346,1,0,45,5345, - 1,0,922,1,0,5567,248,0,5566,248, - 0,5665,248,0,5664,248,0,5594,248,0, - 5593,248,0,5592,248,0,5591,248,0,5590, - 248,0,5589,248,0,5588,248,0,5587,248, - 0,5605,248,0,5604,248,0,5603,248,0, - 5602,248,0,5601,248,0,5600,248,0,5599, - 248,0,5598,248,0,5597,248,0,5596,248, - 0,5595,248,0,45,248,5346,0,45,248, - 5345,0,5370,248,0,56,5346,0,56,5345, - 0,2800,47,0,3391,99,0,38,40,0, - 45,672,0,5657,443,0,2951,443,0,5332, - 1,0,5331,1,0,244,926,0,389,38, - 0,38,389,0,388,35,0,35,388,0, - 5346,56,0,5345,56,0,2466,136,0,2466, - 135,0,5368,53,0,53,43,0,499,1984, - 0,5370,235,1,0,45,235,1,0,235, - 415,0,43,5346,0,43,5345,0,5370,1, - 0,45,1,0,55,43,0,1,100,0, - 43,55,0,5336,404,0,5335,404,0,3063, - 1,0,672,1,0,4730,1,0,235,414, - 0,2191,384,0,43,5346,2,0,43,5345, - 2,0,5346,42,0,5345,42,0,1,5657, - 0,1,2951,0,45,5346,2,1,0,45, - 5345,2,1,0,8,12,0,5657,103,0, - 2951,103,0,41,81,0,499,4132,0,235, - 1,0,235,227,0,285,3720,0,235,226, - 0,1,3134,0,1,4113,0,5338,1,0, - 5334,1,0,235,1,2618,0,5335,235,0, - 2619,235,0,2797,235,0,10,12,0,8, - 10,12,0,193,3146,0 + 17,17,17,17,17,17,135,135,135,113, + 113,18,18,18,18,18,18,18,18,18, + 18,18,18,18,19,19,170,170,171,171, + 172,138,138,139,139,136,136,140,137,137, + 20,20,21,21,23,23,23,24,24,24, + 24,25,25,25,26,26,26,27,27,27, + 27,27,28,28,28,29,29,31,31,33, + 33,35,35,36,36,37,37,42,42,41, + 41,41,41,41,41,41,41,41,41,41, + 41,41,39,30,141,141,95,95,173,173, + 90,196,196,66,66,66,66,66,66,66, + 66,66,67,67,67,64,64,55,55,174, + 174,68,68,68,101,101,175,175,69,69, + 69,176,176,70,70,70,70,70,71,71, + 82,82,82,82,82,82,82,49,49,49, + 49,49,114,114,115,115,50,177,22,22, + 22,22,22,48,48,85,85,85,85,85, + 148,148,143,143,143,143,143,144,144,144, + 145,145,145,146,146,146,147,147,147,86, + 86,86,86,86,87,87,87,13,13,13, + 13,13,13,13,13,13,13,13,96,119, + 119,119,119,119,119,117,117,117,118,118, + 150,150,149,149,121,121,102,77,77,78, + 79,52,47,151,151,53,51,84,84,152, + 152,142,142,104,104,73,73,153,153,61, + 61,56,56,154,62,62,74,74,59,59, + 59,88,88,98,97,97,60,60,57,57, + 54,54,45,99,99,99,91,91,91,92, + 92,93,93,93,94,94,105,105,105,107, + 107,106,106,197,197,89,89,179,179,179, + 179,179,123,46,46,156,178,178,124,124, + 124,124,125,158,180,180,34,34,116,126, + 126,126,126,108,108,120,120,120,159,160, + 160,160,160,160,160,160,160,160,160,160, + 183,183,181,181,182,182,161,161,161,161, + 162,184,110,109,109,185,185,163,163,163, + 163,100,100,100,186,186,8,8,9,187, + 187,188,164,155,155,165,165,166,167,167, + 7,7,10,189,189,189,189,189,189,189, + 189,189,189,189,189,189,189,189,189,189, + 189,189,189,189,189,189,189,189,189,189, + 189,189,189,189,189,189,189,189,189,189, + 189,189,189,189,189,75,80,80,168,168, + 128,128,129,129,129,129,129,129,3,130, + 130,127,127,111,111,83,76,72,157,157, + 112,112,190,190,190,131,131,122,122,191, + 191,169,169,103,1132,41,1738,1731,733,3766, + 33,36,37,727,770,32,34,1730,31,29, + 56,1344,112,82,83,114,1213,1379,1412,1389, + 1465,1455,1480,1473,1895,1514,2051,1508,278,1516, + 1541,149,2041,41,296,164,150,1976,41,556, + 38,1656,4431,33,36,37,727,770,65,34, + 2334,41,556,38,237,3287,33,36,37,727, + 770,32,34,1342,31,29,56,1344,112,82, + 83,114,2146,1379,1412,1389,1465,1455,1817,240, + 235,236,156,858,809,40,2334,41,556,38, + 279,3287,33,36,37,727,770,32,34,1342, + 31,29,56,1344,112,82,83,114,1720,1766, + 247,250,253,256,2874,325,2453,41,556,38, + 1388,3770,33,36,37,727,770,63,34,156, + 1953,331,41,284,2060,1559,3534,2569,2709,2727, + 3140,3310,4410,1590,41,556,38,2672,3287,33, + 36,37,727,770,32,34,1342,31,29,56, + 1344,112,82,83,114,342,1379,1412,1389,1465, + 1455,1480,1473,37,1514,2599,1508,683,1516,1541, + 149,2915,41,282,513,150,1344,1312,2064,494, + 1508,1256,156,41,1850,1807,3156,514,1590,41, + 556,38,2672,3287,33,36,37,727,770,32, + 34,1342,31,29,56,1344,112,82,83,114, + 342,1379,1412,1389,1465,1455,1480,1473,2668,1514, + 1478,1508,4285,1516,1541,149,331,41,284,513, + 150,3841,1847,2064,3700,331,156,41,809,281, + 291,67,514,1202,509,2608,41,556,38,1168, + 3770,33,36,37,727,770,62,34,3874,1602, + 1594,45,853,1602,4510,1590,41,556,38,2672, + 3287,33,36,37,727,770,32,34,1342,31, + 29,56,1344,112,82,83,114,342,1379,1412, + 1389,1465,1455,1480,1473,2617,1514,381,1508,509, + 1516,1541,149,1197,2046,1720,513,150,1349,1256, + 2064,1871,1705,2022,811,1609,1915,3762,1602,514, + 1922,41,556,38,2672,3287,33,36,37,727, + 770,32,34,1342,31,29,56,1344,112,82, + 83,114,342,1379,1412,1389,1465,1455,1480,1473, + 37,1514,1639,1508,738,1516,1541,149,2069,853, + 1307,513,150,332,2705,2064,1227,156,41,1028, + 387,2858,41,393,514,76,509,156,41,287, + 66,2091,41,556,38,324,326,47,36,37, + 727,770,1652,156,4301,1602,1081,1859,41,556, + 38,427,3287,33,36,37,727,770,32,34, + 1342,31,29,56,1344,112,82,83,114,380, + 1379,1412,1389,1465,1455,1480,1473,1197,1514,1202, + 1508,510,1516,1541,149,1333,1467,1243,378,150, + 1659,41,556,38,2059,3287,33,36,37,727, + 770,32,34,1342,31,29,56,1344,112,82, + 83,114,941,1379,1412,1389,1465,1455,1480,1473, + 37,1514,77,1508,815,1516,1541,149,1655,2761, + 1243,378,150,1731,41,556,38,594,3287,33, + 36,37,727,770,32,34,1342,31,29,56, + 1344,112,82,83,114,1264,1379,1412,1389,1465, + 1455,1480,1473,2063,1514,2587,1508,3831,1516,1541, + 149,384,946,1243,378,150,2149,41,556,38, + 1847,3287,33,36,37,727,770,32,34,1342, + 31,29,56,1344,112,82,83,114,439,1379, + 1412,1389,1465,1455,1480,1473,1140,1514,2649,1508, + 1720,1516,1541,149,385,946,1847,164,150,156, + 41,1028,387,2334,41,556,38,799,3287,33, + 36,37,727,770,32,34,1342,31,29,56, + 1344,112,82,83,114,388,1379,1412,1389,1465, + 1455,1480,1473,430,1514,2685,1859,376,946,2149, + 41,556,38,314,3287,33,36,37,727,770, + 32,34,1342,31,29,56,1344,112,82,83, + 114,288,1379,1412,1389,1465,1455,1480,1473,37, + 1514,456,1508,2610,1516,1541,149,156,41,1989, + 372,150,2541,41,556,38,434,2745,46,36, + 37,727,770,2149,41,556,38,1559,3287,33, + 36,37,727,770,32,34,1342,31,29,56, + 1344,112,82,83,114,99,1379,1412,1389,1465, + 1455,1480,1473,37,1514,1720,1508,782,1516,1541, + 149,156,3043,75,372,150,156,41,1028,387, + 2149,41,556,38,45,3287,33,36,37,727, + 770,32,34,1342,31,29,56,1344,112,82, + 83,114,371,1379,1412,1389,1465,1455,1480,1473, + 55,1514,2857,1508,1081,1516,1541,149,75,1012, + 1557,372,150,2241,1987,41,556,38,1598,3287, + 33,36,37,727,770,32,34,1342,31,29, + 56,1344,112,82,83,114,455,1379,1412,1389, + 1465,1455,1480,1473,2690,1514,370,1508,1519,1516, + 1551,170,768,3496,2850,1794,41,556,38,3889, + 3287,33,36,37,727,770,32,34,1342,31, + 29,56,1344,112,82,83,114,2673,1379,1412, + 1389,1465,1455,1480,1473,355,1514,352,1508,417, + 1516,1541,149,368,527,327,148,150,1081,1492, + 2149,41,556,38,855,3287,33,36,37,727, + 770,32,34,1342,31,29,56,1344,112,82, + 83,114,1712,1379,1412,1389,1465,1455,1480,1473, + 354,1514,379,1508,1903,1516,1541,149,1506,527, + 1202,161,150,2149,41,556,38,1598,3287,33, + 36,37,727,770,32,34,1342,31,29,56, + 1344,112,82,83,114,2752,1379,1412,1389,1465, + 1455,1480,1473,4264,1514,504,1508,37,1516,1541, + 149,947,443,321,160,150,2149,41,556,38, + 408,3287,33,36,37,727,770,32,34,1342, + 31,29,56,1344,112,82,83,114,353,1379, + 1412,1389,1465,1455,1480,1473,37,1514,1473,1508, + 4414,1516,1541,149,930,2705,60,159,150,2149, + 41,556,38,2434,3287,33,36,37,727,770, + 32,34,1342,31,29,56,1344,112,82,83, + 114,1319,1379,1412,1389,1465,1455,1480,1473,37, + 1514,1373,1508,2482,1516,1541,149,1113,2992,1850, + 158,150,2149,41,556,38,2434,3287,33,36, + 37,727,770,32,34,1342,31,29,56,1344, + 112,82,83,114,1468,1379,1412,1389,1465,1455, + 1480,1473,4424,1514,1270,1508,1771,1516,1541,149, + 2572,443,2053,157,150,2149,41,556,38,1404, + 3287,33,36,37,727,770,32,34,1342,31, + 29,56,1344,112,82,83,114,519,1379,1412, + 1389,1465,1455,1480,1473,518,1514,1626,1508,37, + 1516,1541,149,3513,1720,1301,156,150,2149,41, + 556,38,2039,3287,33,36,37,727,770,32, + 34,1342,31,29,56,1344,112,82,83,114, + 519,1379,1412,1389,1465,1455,1480,1473,518,1514, + 1515,1508,37,1516,1541,149,2929,1720,1913,155, + 150,2149,41,556,38,2070,3287,33,36,37, + 727,770,32,34,1342,31,29,56,1344,112, + 82,83,114,2089,1379,1412,1389,1465,1455,1480, + 1473,2185,1514,1558,1508,4141,1516,1541,149,2278, + 2073,2574,154,150,2149,41,556,38,2514,3287, + 33,36,37,727,770,32,34,1342,31,29, + 56,1344,112,82,83,114,2708,1379,1412,1389, + 1465,1455,1480,1473,2791,1514,591,1508,57,1516, + 1541,149,765,852,939,153,150,2149,41,556, + 38,1026,3287,33,36,37,727,770,32,34, + 1342,31,29,56,1344,112,82,83,114,1845, + 1379,1412,1389,1465,1455,1480,1473,37,1514,2483, + 1508,2867,1516,1541,149,1511,1729,669,152,150, + 2149,41,556,38,2784,3287,33,36,37,727, + 770,32,34,1342,31,29,56,1344,112,82, + 83,114,2786,1379,1412,1389,1465,1455,1480,1473, + 2863,1514,1017,1508,3103,1516,1541,149,1634,2324, + 770,151,150,2149,41,556,38,147,3287,33, + 36,37,727,770,32,34,1342,31,29,56, + 1344,112,82,83,114,2388,1379,1412,1389,1465, + 1455,1480,1473,37,1514,2456,1508,4165,1516,1541, + 149,2495,2589,1318,165,150,2149,41,556,38, + 2908,3287,33,36,37,727,770,32,34,1342, + 31,29,56,1344,112,82,83,114,2954,1379, + 1412,1389,1465,1455,1480,1473,37,1514,2203,1508, + 3188,1516,1541,149,2858,41,393,146,150,2242, + 41,556,38,2370,3287,33,36,37,727,770, + 32,34,1342,31,29,56,1344,112,82,83, + 114,2869,1379,1412,1389,1465,1455,1480,1473,37, + 1514,2161,1508,2148,1516,1541,149,2686,2027,2933, + 195,150,2334,41,556,38,1392,3287,33,36, + 37,727,770,32,34,1342,31,29,56,1344, + 112,82,83,114,2392,1379,1412,1389,1465,1455, + 1480,1473,1081,1514,2189,1508,401,1516,1551,170, + 2334,41,556,38,1202,3287,33,36,37,727, + 770,32,34,1342,31,29,56,1344,112,82, + 83,114,2763,1379,1412,1389,1465,1455,1480,1473, + 1081,1514,1893,1508,1649,1516,1551,170,3630,156, + 41,809,1987,2429,156,41,1028,387,2334,41, + 556,38,295,3287,33,36,37,727,770,32, + 34,1342,31,29,56,1344,112,82,83,114, + 3230,1379,1412,1389,1465,1455,1480,1473,429,1514, + 2918,1508,417,1516,1551,170,2334,41,556,38, + 419,3287,33,36,37,727,770,32,34,1342, + 31,29,56,1344,112,82,83,114,351,1379, + 1412,1389,1465,1455,1480,1473,37,1514,2557,1508, + 3576,1516,1551,170,1188,343,1424,1303,348,156, + 41,809,286,341,2334,41,556,38,2797,3287, + 33,36,37,727,770,32,34,1342,31,29, + 56,1344,112,82,83,114,493,1379,1412,1389, + 1465,1455,1480,1473,37,1514,1714,1508,1076,1516, + 1551,170,2380,41,556,38,418,3287,33,36, + 37,727,770,32,34,1342,31,29,56,1344, + 112,82,83,114,2852,1379,1412,1389,1465,1455, + 1480,1473,1958,1514,399,1508,1308,1516,1551,170, + 156,41,809,283,2669,1847,156,41,1028,387, + 2334,41,556,38,421,3287,33,36,37,727, + 770,32,34,1342,31,29,56,1344,112,82, + 83,114,2935,1379,1412,1389,1465,1455,1480,1473, + 278,1514,403,1508,3579,1867,1188,2410,2334,41, + 556,38,3018,3287,33,36,37,727,770,32, + 34,1342,31,29,56,1344,112,82,83,114, + 289,1379,1412,1389,1465,1455,1480,1473,322,1852, + 2334,41,556,38,2647,3287,33,36,37,727, + 770,32,34,1342,31,29,56,1344,112,82, + 83,114,339,1379,1412,1389,1465,1455,1480,1858, + 2334,41,556,38,1848,3287,33,36,37,727, + 770,32,34,1342,31,29,56,1344,112,82, + 83,114,1847,1379,1412,1389,1465,1824,2334,41, + 556,38,2913,3287,33,36,37,727,770,32, + 34,1342,31,29,56,1344,112,82,83,114, + 2937,1379,1412,1389,1465,1842,2334,41,556,38, + 2767,3287,33,36,37,727,770,32,34,1342, + 31,29,56,1344,112,82,83,114,1720,1379, + 1412,1389,1774,2334,41,556,38,300,3287,33, + 36,37,727,770,32,34,1342,31,29,56, + 1344,112,82,83,114,2953,1379,1412,1389,1781, + 2334,41,556,38,2682,3287,33,36,37,727, + 770,32,34,1342,31,29,56,1344,112,82, + 83,114,1031,1379,1412,1389,1799,2334,41,556, + 38,2511,3287,33,36,37,727,770,32,34, + 1342,31,29,56,1344,112,82,83,114,103, + 1379,1412,1389,1809,1484,41,556,38,4678,2722, + 33,36,37,727,770,338,34,1202,1513,41, + 556,38,3280,2722,33,36,37,727,770,338, + 34,2463,41,556,38,75,4431,33,36,37, + 727,770,32,34,2635,507,1976,41,556,38, + 350,4431,33,36,37,727,770,64,34,2062, + 581,321,1031,2031,2282,315,861,2672,156,41, + 1028,387,244,1651,581,321,2559,2400,351,315, + 861,389,423,262,2378,342,1703,534,2672,1519, + 1076,2286,351,1847,4618,343,1424,1303,348,1830, + 1195,1081,428,2382,4624,233,2514,2964,910,343, + 1424,1303,348,162,48,1688,166,3139,1331,237, + 37,186,4169,2690,3134,156,41,1028,387,209, + 220,4639,208,217,218,219,221,1519,175,1, + 2965,2690,4663,534,245,235,236,174,2207,189, + 173,176,177,178,179,180,521,323,299,55, + 2825,233,2426,41,1028,387,527,3038,52,162, + 2720,390,423,360,2866,242,2955,186,4169,2690, + 2716,2928,1571,365,2593,209,220,4639,208,217, + 218,219,221,2959,175,1344,278,328,334,2710, + 1256,2725,350,174,187,190,173,176,177,178, + 179,180,243,41,1028,387,2966,2849,2334,41, + 556,38,237,3287,33,36,37,727,770,32, + 34,1342,31,29,56,1344,112,82,83,114, + 2746,1379,1412,1815,351,188,55,240,235,236, + 438,2971,452,2972,331,1012,730,2649,279,237, + 1259,343,1424,1303,348,2541,41,556,38,3139, + 2246,2244,36,37,727,770,1847,237,247,250, + 253,256,2874,854,249,235,236,1720,1388,1545, + 41,556,38,726,3092,33,36,37,727,770, + 338,34,252,235,236,2569,2709,2727,3140,3310, + 4410,2334,41,556,38,1195,3287,33,36,37, + 727,770,32,34,1342,31,29,56,1344,112, + 82,83,114,349,1379,1412,1816,534,331,41, + 449,307,1188,4698,1188,581,321,1519,331,37, + 315,861,4669,3228,1519,233,1636,1031,1188,4714, + 2672,1256,985,162,1190,41,1637,1596,104,3146, + 2973,186,4169,2690,377,2825,4119,4576,2514,209, + 220,4639,208,217,218,219,221,436,175,1227, + 30,534,309,533,2712,2974,1188,174,55,3033, + 173,176,177,178,179,180,88,1012,732,233, + 1354,2599,333,334,2672,331,1188,162,1188,1195, + 2041,2686,296,2975,1302,186,4169,2690,75,4425, + 2977,3500,2514,209,220,4639,208,217,218,219, + 221,2750,175,523,3030,359,2981,534,74,2983, + 59,174,2775,184,173,176,177,178,179,180, + 2146,3281,1996,2014,1998,233,392,423,2541,41, + 556,38,1549,162,2998,36,37,727,770,2825, + 2985,186,4169,2690,156,41,1028,387,2669,209, + 220,4639,208,217,218,219,221,610,175,501, + 175,534,2867,442,2711,2726,1076,174,2979,182, + 173,176,177,178,179,180,330,334,278,233, + 1840,1188,2060,1650,2609,1256,302,162,243,41, + 1028,387,162,2987,2989,186,4169,2690,498,500, + 206,4302,2990,209,220,4639,208,217,218,219, + 221,697,175,93,2991,534,2798,41,809,281, + 2994,174,55,183,173,176,177,178,179,180, + 1526,1012,1645,233,156,41,1028,387,2692,332, + 280,162,243,41,1028,387,2994,426,37,186, + 4169,2690,2672,1031,351,5355,1188,209,220,4639, + 208,217,218,219,221,784,175,5355,448,534, + 342,345,1424,1303,348,174,55,193,173,176, + 177,178,179,180,1195,1012,1367,233,58,1188, + 2874,5355,1188,2064,5355,162,678,41,1028,387, + 2246,5355,1695,186,4169,2690,2342,156,41,296, + 2672,209,220,4639,208,217,218,219,221,871, + 175,349,37,534,96,5355,1076,5355,342,174, + 55,3080,173,176,177,178,179,180,1260,1012, + 53,233,2672,5355,2825,69,41,1028,387,162, + 237,1063,162,5355,3510,5355,5355,186,4169,2690, + 2514,1687,391,423,5355,209,220,4639,208,217, + 218,219,221,5355,175,255,235,236,2557,278, + 37,3818,334,174,3646,198,173,176,177,178, + 179,180,1907,41,556,38,4678,2722,33,36, + 37,727,770,338,34,2334,41,556,38,4290, + 3287,33,36,37,727,770,32,34,1342,31, + 29,56,1344,112,82,83,114,359,1379,1756, + 1636,1188,37,5355,2672,1256,1076,1790,41,1028, + 387,2024,1354,3394,1996,2014,2672,37,581,321, + 1188,2672,2514,315,861,37,5355,958,78,2920, + 2894,534,3142,2630,2514,522,351,1188,37,342, + 1703,55,2672,1519,1076,5355,5355,1979,4733,233, + 1012,916,2859,343,1424,1303,348,162,1302,331, + 342,523,2064,4425,37,186,4169,2690,2672,73, + 166,1713,1188,209,220,4639,208,217,218,219, + 221,1045,175,2064,3637,534,342,2410,3583,359, + 237,174,1721,192,173,176,177,178,179,180, + 5355,501,5355,233,72,3281,1996,2014,5355,2064, + 1188,162,1188,2821,1188,258,235,236,1729,186, + 4169,2690,156,2455,809,80,5355,209,220,4639, + 208,217,218,219,221,3106,175,156,41,296, + 499,500,71,5355,70,174,3794,200,173,176, + 177,178,179,180,2334,41,556,38,2609,3287, + 33,36,37,727,770,32,34,1342,31,29, + 56,1344,112,82,83,114,2635,1379,1764,1380, + 41,2583,38,726,3092,33,36,37,727,770, + 338,34,2334,41,556,38,1188,3287,33,36, + 37,727,770,32,34,1342,31,29,56,1344, + 112,82,83,114,5355,1772,156,41,1028,387, + 2669,425,5355,2867,418,41,449,534,61,4698, + 2747,41,285,2134,1953,581,321,5355,331,4313, + 315,861,5355,2324,37,4171,50,1688,1437,5355, + 55,5355,1928,162,156,41,1028,387,226,1012, + 845,186,4169,2334,41,556,38,4576,3287,33, + 36,37,727,770,32,34,1342,31,29,56, + 1344,112,82,83,114,1188,1773,201,55,2747, + 41,282,5355,2159,5355,5355,2594,1012,3569,2960, + 2672,5355,5355,1365,41,556,38,5355,3092,33, + 36,37,727,770,338,34,5355,60,233,2288, + 41,556,38,5355,3287,33,36,37,727,770, + 32,34,1342,31,29,56,1344,92,82,83, + 414,2586,211,220,4639,210,217,218,219,221, + 1344,5355,2240,5355,290,1256,5355,2960,5355,581, + 321,2196,332,2883,316,861,2695,1076,5355,1188, + 2672,212,214,216,297,298,1938,351,222,213, + 215,2732,1116,1981,5355,2672,5355,5355,233,446, + 2711,2726,5355,162,345,1424,1303,348,5355,4725, + 202,107,168,233,2798,41,809,2574,1188,331, + 4183,2372,211,220,4639,210,217,218,219,221, + 156,41,809,2617,2858,41,393,211,220,4639, + 210,217,218,219,221,5355,94,5355,3030,108, + 3887,212,214,216,297,298,1938,37,222,213, + 215,4718,5355,5355,5355,5355,212,214,216,297, + 298,1938,5355,222,213,215,1778,41,556,38, + 726,2722,33,36,37,727,770,338,34,5355, + 4183,2603,243,41,1028,387,2527,41,1028,387, + 678,41,1028,387,95,4183,2786,108,1228,41, + 556,38,726,2722,33,36,37,727,770,338, + 34,37,5355,37,37,1076,55,534,4184,5355, + 55,1188,581,321,55,1012,53,315,861,1012, + 1971,5355,3070,1012,2464,342,4466,5355,37,985, + 927,162,1253,162,2994,37,5355,5355,3195,1298, + 1860,1344,2868,3848,581,321,1256,1081,2064,315, + 861,156,41,1028,387,5355,5355,2854,2669,309, + 533,985,2334,41,556,38,5355,3287,33,36, + 37,727,770,32,34,1342,31,29,56,1344, + 112,82,83,91,37,55,37,2690,3661,37, + 4435,531,533,1523,1012,721,306,37,4487,37, + 4311,4702,520,1566,2334,858,556,1584,2750,3287, + 33,36,37,727,770,32,34,1342,31,29, + 56,1344,112,82,83,90,2334,41,556,38, + 5355,3287,33,36,37,727,770,32,34,1342, + 31,29,56,1344,112,82,83,89,37,5355, + 5355,5355,2545,2334,41,556,38,538,3287,33, + 36,37,727,770,32,34,1342,31,29,56, + 1344,112,82,83,88,2334,41,556,38,100, + 3287,33,36,37,727,770,32,34,1342,31, + 29,56,1344,112,82,83,87,2334,41,556, + 38,5355,3287,33,36,37,727,770,32,34, + 1342,31,29,56,1344,112,82,83,86,2334, + 41,556,38,5355,3287,33,36,37,727,770, + 32,34,1342,31,29,56,1344,112,82,83, + 85,2334,41,556,38,5355,3287,33,36,37, + 727,770,32,34,1342,31,29,56,1344,112, + 82,83,84,2195,41,556,38,5355,3287,33, + 36,37,727,770,32,34,1342,31,29,56, + 1344,112,82,83,110,2334,41,556,38,5355, + 3287,33,36,37,727,770,32,34,1342,31, + 29,56,1344,112,82,83,116,2334,41,556, + 38,5355,3287,33,36,37,727,770,32,34, + 1342,31,29,56,1344,112,82,83,115,2334, + 41,556,38,5355,3287,33,36,37,727,770, + 32,34,1342,31,29,56,1344,112,82,83, + 113,2334,41,556,38,5355,3287,33,36,37, + 727,770,32,34,1342,31,29,56,1344,112, + 82,83,111,2769,37,2134,1953,2672,1076,2669, + 5355,37,1188,2634,2482,3746,2865,2672,37,5355, + 3242,5355,1076,2655,1195,233,5355,2672,37,5355, + 5355,5355,1076,5355,162,233,5355,5355,37,5355, + 5355,5355,1076,3317,447,233,525,185,162,211, + 220,4639,210,217,218,219,221,3352,162,211, + 220,4639,210,217,218,219,221,3390,162,211, + 220,4639,210,217,218,219,221,3392,212,214, + 216,297,298,1938,2825,516,213,215,212,214, + 216,297,298,1938,2669,515,213,215,212,214, + 216,297,298,1938,1081,223,213,215,1528,41, + 2583,38,726,2722,33,36,37,727,770,338, + 34,3825,334,2669,5355,2806,290,5355,1188,2672, + 2669,1188,204,5355,5355,5355,2832,5355,5355,5355, + 2672,2669,2669,5355,2690,37,5355,233,5355,2672, + 5355,2431,5355,2669,2245,1981,1256,2669,233,375, + 3061,203,1703,3115,581,321,1076,342,305,315, + 861,211,220,4639,210,217,218,219,221,207, + 205,1928,211,220,4639,210,217,218,219,221, + 2064,301,166,5355,5355,3643,5355,5355,5355,3300, + 212,214,216,297,298,1938,5355,308,213,215, + 4311,212,214,216,297,298,1938,1188,495,213, + 215,1409,41,556,38,726,2722,33,36,37, + 727,770,338,34,1409,41,556,38,726,2722, + 33,36,37,727,770,338,34,5355,1188,3169, + 2484,41,1028,387,1200,3038,1188,3476,2672,4784, + 373,1188,5355,243,1081,243,41,1028,387,415, + 2586,156,41,1028,387,2061,233,581,321,2672, + 2611,37,315,861,278,1076,5355,5355,3837,102, + 581,321,5355,4570,985,315,861,2514,5355,55, + 1988,404,4537,5355,2690,55,1188,2286,1012,53, + 237,162,5355,1703,1012,916,5355,1076,37,375, + 2428,5355,2672,917,310,533,5355,2669,5355,405, + 406,407,297,298,1938,241,235,236,3361,5355, + 342,1703,5355,166,1703,1076,279,5355,1076,5355, + 1394,41,556,38,1903,3092,33,36,37,727, + 770,338,34,2064,501,227,248,251,254,257, + 2874,166,505,5355,166,5355,1388,1496,41,556, + 38,3459,2722,33,36,37,727,770,338,34, + 1409,41,556,38,726,2722,33,36,37,727, + 770,338,34,498,500,5355,581,321,3565,332, + 2669,316,861,408,410,400,1394,41,556,38, + 3879,3092,33,36,37,727,770,338,34,5355, + 5355,5355,5355,2272,321,1080,3649,4609,5355,4172, + 5355,5355,5355,2974,5355,5355,581,321,199,1274, + 5355,315,861,2672,4784,5355,5355,5355,678,41, + 1028,387,5355,3064,243,41,1028,387,5355,5355, + 5355,233,581,321,5355,332,5355,318,861,1968, + 41,556,38,2799,2722,33,36,37,727,770, + 338,34,55,5355,5355,1988,404,4537,55,5355, + 5355,1012,53,243,41,1028,387,1012,53,243, + 41,1028,387,5355,5355,5355,2978,5355,1344,5355, + 5355,5355,1119,1256,405,406,407,297,298,1938, + 2232,317,5355,5355,5355,2272,321,55,243,41, + 1028,387,1195,55,5355,5355,1012,53,5355,1903, + 5355,5355,1012,53,2910,41,1028,387,1260,5355, + 5355,2074,2672,5355,5355,2950,5355,2578,5355,534, + 5355,5355,55,2930,41,1028,387,331,5355,5355, + 2514,1012,53,5355,5355,5355,5355,342,55,37, + 5355,5355,5355,534,5355,162,3084,1012,53,37, + 5355,2754,2825,534,194,2672,3583,55,408,411, + 4550,342,3157,5355,5355,5355,1012,53,5355,162, + 5355,342,5355,342,156,41,1028,387,2926,162, + 5355,3417,2232,317,2064,5355,5355,2719,2868,3938, + 334,2672,5355,2906,2064,5355,4176,359,37,5355, + 37,37,534,3031,534,534,5355,37,55,342, + 5355,2672,5355,3688,1996,2014,196,1012,2899,526, + 342,37,342,342,5355,1076,5355,5355,162,342, + 162,162,2064,5355,37,5355,5355,194,2672,194, + 194,529,5355,4550,5355,4550,4550,5355,5355,5355, + 5355,162,2064,5355,5355,5355,342,5355,5355,5355, + 4421,503,5355,5355,5355,5355,5355,5355,5355,5355, + 5355,5355,5355,5355,5355,5355,5355,5355,5355,2064, + 5355,5355,5355,5355,5355,5355,5355,5355,530,5355, + 4317,5355,5355,5355,5355,5355,5355,5355,5355,4288, + 5355,4291,4377,5355,5355,5355,5355,5355,5355,5355, + 5355,5355,5355,5355,5355,5355,5355,5355,5355,5355, + 5355,5355,5355,5355,5355,5355,5355,5355,5355,5355, + 5355,5355,5355,5355,5355,5355,5355,5355,5355,5355, + 5355,4416,5355,5355,5355,5355,5355,5355,5355,5355, + 5355,5355,5355,5355,5355,5355,5355,5355,5355,5355, + 5355,5355,5355,5355,5355,5355,5355,5355,5355,5355, + 5355,5355,5355,5355,5355,5355,5355,5355,4174,5355, + 0,45,5375,1,0,45,5374,1,0,931, + 1,0,713,35,0,436,900,0,450,1020, + 0,5375,54,0,5374,54,0,44,622,0, + 44,5375,0,44,5374,0,5367,382,0,5366, + 382,0,45,5375,0,45,5374,0,41,39, + 0,1,440,0,454,1110,0,453,1245,0, + 713,386,0,53,43,0,2460,132,0,1, + 1338,0,1,5632,0,1,5631,0,1,5630, + 0,1,5629,0,1,5628,0,1,5627,0, + 1,5626,0,1,5625,0,1,5624,0,1, + 5623,0,1,5622,0,5594,246,0,5593,246, + 0,5692,246,0,5691,246,0,5621,246,0, + 5620,246,0,5619,246,0,5618,246,0,5617, + 246,0,5616,246,0,5615,246,0,5614,246, + 0,5632,246,0,5631,246,0,5630,246,0, + 5629,246,0,5628,246,0,5627,246,0,5626, + 246,0,5625,246,0,5624,246,0,5623,246, + 0,5622,246,0,45,5375,246,0,45,5374, + 246,0,5399,246,0,49,5397,0,49,43, + 0,3282,97,0,38,40,0,45,622,0, + 5684,441,0,1189,441,0,5361,1,0,5360, + 1,0,242,2596,0,38,387,0,35,386, + 0,2460,134,0,2460,133,0,497,1910,0, + 5399,1,234,0,45,1,234,0,234,413, + 0,5375,43,0,5374,43,0,5397,51,0, + 43,51,0,5399,1,0,45,1,0,1, + 98,0,5365,402,0,5364,402,0,4394,1, + 0,2573,1,0,622,1,0,234,412,0, + 2354,382,0,5375,2,43,0,5374,2,43, + 0,5375,42,0,5374,42,0,1,5684,0, + 1,1189,0,8,12,0,5684,101,0,1189, + 101,0,41,79,0,497,4173,0,1,234, + 0,234,225,0,283,4322,0,234,224,0, + 1,921,0,1,1944,0,5367,1,0,5363, + 1,0,1,234,2905,0,5364,234,0,2916, + 234,0,3010,234,0,10,12,0,8,10, + 12,0,191,3307,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1083,319 +1093,316 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 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, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,0,55,56,57,58,0, - 60,61,62,63,64,0,66,67,68,4, - 0,71,72,3,0,75,76,77,78,79, + 30,31,32,33,34,35,0,37,38,39, + 40,41,42,43,0,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 60,61,62,63,64,65,66,67,0,1, + 2,71,72,5,0,75,76,77,78,79, 80,81,82,83,84,85,86,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,0,31,32, - 33,34,35,36,37,38,39,40,41,42, - 43,44,45,46,47,48,49,50,51,52, - 53,0,55,56,57,58,0,60,61,62, - 63,64,0,66,67,68,97,98,71,72, - 0,9,75,76,77,78,79,80,81,82, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,0,37,38,39,40,41,42, + 43,57,45,46,47,48,49,50,51,52, + 53,54,55,56,57,58,0,60,61,62, + 63,64,65,66,67,0,1,2,71,72, + 101,0,75,76,77,78,79,80,81,82, 83,84,85,86,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,0,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 46,47,48,49,50,51,52,53,0,55, - 56,57,58,0,60,61,62,63,64,6, - 66,67,68,97,98,71,72,0,0,75, + 26,27,28,29,30,31,32,33,34,35, + 0,37,38,39,40,41,42,43,0,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,0,60,61,62,63,64,65, + 66,67,0,1,2,71,72,101,0,75, 76,77,78,79,80,81,82,83,84,85, 86,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,0,31,32,33,34,35,36,37,38, - 39,40,41,42,43,44,45,46,47,48, - 49,50,51,52,53,0,55,56,57,58, - 73,60,61,62,63,64,0,66,67,68, - 4,0,6,72,3,9,75,76,77,78, + 29,30,31,32,33,34,35,0,37,38, + 39,40,41,42,43,0,45,46,47,48, + 49,50,51,52,53,54,55,56,57,58, + 0,60,61,62,63,64,65,66,67,9, + 0,1,2,72,4,0,75,76,77,78, 79,80,81,82,83,84,85,86,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,0,31, - 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,47,48,49,50,51, - 52,53,0,55,56,57,58,0,60,61, - 62,63,64,0,66,67,68,0,0,6, - 72,4,4,75,76,77,78,79,80,81, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,0,37,38,39,40,41, + 42,43,0,45,46,47,48,49,50,51, + 52,53,54,55,56,57,58,0,60,61, + 62,63,64,65,66,67,0,0,1,2, + 72,4,0,75,76,77,78,79,80,81, 82,83,84,85,86,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,0,31,32,33,34, - 35,36,37,38,39,40,41,42,43,44, - 45,46,47,48,49,50,51,52,53,0, - 55,56,57,58,5,60,61,62,63,64, - 0,66,67,68,91,92,99,72,0,9, + 25,26,27,28,29,30,31,32,33,34, + 35,0,37,38,39,40,41,42,43,0, + 45,46,47,48,49,50,51,52,53,54, + 55,56,57,58,0,60,61,62,63,64, + 65,66,67,0,97,98,90,72,92,0, 75,76,77,78,79,80,81,82,83,84, 85,86,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,0,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,0,55,56,57, - 58,0,60,61,62,63,64,0,66,67, - 68,0,1,2,72,4,0,75,76,77, + 28,29,30,31,32,33,34,35,0,37, + 38,39,40,41,42,43,0,45,46,47, + 48,49,50,51,52,53,54,55,56,57, + 58,0,60,61,62,63,64,65,66,67, + 0,88,89,0,72,0,3,75,76,77, 78,79,80,81,82,83,84,85,86,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,0, - 31,32,33,34,35,36,37,38,39,40, - 41,42,43,44,45,46,47,48,49,50, - 51,52,53,76,55,56,57,58,0,60, - 61,62,63,64,0,66,67,68,0,0, - 6,72,101,4,75,76,77,78,79,80, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,0,37,38,39,40, + 41,42,43,0,45,46,47,48,49,50, + 51,52,53,54,55,56,57,58,0,60, + 61,62,63,64,65,66,67,0,1,2, + 90,72,92,0,75,76,77,78,79,80, 81,82,83,84,85,86,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,0,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 0,55,56,57,58,0,60,61,62,63, - 64,0,66,67,68,91,92,6,72,101, - 0,75,76,77,78,79,80,81,82,83, + 24,25,26,27,28,29,30,31,32,33, + 34,35,0,37,38,39,40,41,42,43, + 0,45,46,47,48,49,50,51,52,53, + 54,55,56,57,58,0,60,61,62,63, + 64,65,66,67,0,97,98,0,72,0, + 3,75,76,77,78,79,80,81,82,83, 84,85,86,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,0,31,32,33,34,35,36, - 37,38,39,40,41,42,43,44,45,46, - 47,48,49,50,51,52,53,0,55,56, - 57,58,0,60,61,62,63,64,122,66, - 67,68,91,92,0,72,0,0,75,76, + 27,28,29,30,31,32,33,34,35,0, + 37,38,39,40,41,42,43,0,45,46, + 47,48,49,50,51,52,53,54,55,56, + 57,58,73,60,61,62,63,64,65,66, + 67,0,0,121,90,72,92,5,75,76, 77,78,79,80,81,82,83,84,85,86, 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, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,70,55,56,57,58,73, - 60,61,62,63,64,0,66,67,68,0, - 1,2,72,0,5,75,76,77,78,79, + 30,31,32,33,34,35,0,37,38,39, + 40,41,42,43,0,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 60,61,62,63,64,65,66,67,0,0, + 0,90,72,92,4,75,76,77,78,79, 80,81,82,83,84,85,86,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,0,31,32, - 33,34,35,36,37,38,39,40,41,42, - 43,44,45,46,47,48,49,50,51,52, - 53,0,55,56,57,58,73,60,61,62, - 63,64,0,66,67,68,0,1,2,72, - 4,0,75,76,77,78,79,80,81,82, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,0,37,38,39,40,41,42, + 43,0,45,46,47,48,49,50,51,52, + 53,54,55,56,57,58,0,60,61,62, + 63,64,65,66,67,0,88,89,99,72, + 0,0,75,76,77,78,79,80,81,82, 83,84,85,86,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,0,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 46,47,48,49,50,51,52,53,0,55, - 56,57,58,0,60,61,62,63,64,0, - 66,67,68,0,1,2,72,8,0,75, + 26,27,28,29,30,31,32,33,34,35, + 0,37,38,39,40,41,42,43,8,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,73,60,61,62,63,64,65, + 66,67,0,88,89,99,72,0,6,75, 76,77,78,79,80,81,82,83,84,85, - 86,0,1,2,3,4,5,6,7,65, - 9,10,11,12,70,14,15,16,17,18, + 86,0,1,2,3,4,5,6,7,0, + 9,10,62,12,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, - 29,0,31,32,33,34,35,36,37,38, - 39,40,41,42,43,44,45,46,47,48, - 49,50,51,52,53,0,55,69,57,0, - 1,2,61,4,5,10,7,66,67,68, - 0,1,2,3,4,5,6,7,8,9, - 10,0,0,13,14,15,16,17,18,19, - 20,21,22,23,24,25,0,118,0,0, - 0,1,2,3,4,5,6,7,10,9, - 40,56,30,14,0,45,46,47,48,49, - 50,51,52,53,54,55,56,0,58,0, - 99,61,3,0,1,2,66,67,68,40, - 7,71,72,73,45,46,47,48,49,50, - 51,52,53,0,55,0,0,87,0,1, - 2,3,4,5,6,7,8,9,10,88, - 89,13,14,15,16,17,18,19,20,21, - 22,23,24,25,114,115,116,73,59,0, - 0,1,2,3,4,5,6,7,40,9, - 11,12,0,45,46,47,48,49,50,51, - 52,53,54,55,56,59,58,121,0,61, - 0,0,1,2,66,67,68,100,75,71, - 72,73,0,1,2,0,4,5,3,7, - 0,6,0,8,9,87,11,12,13,59, - 30,0,1,2,3,4,5,6,7,69, - 9,26,27,45,46,30,0,0,28,114, - 115,116,114,115,116,54,0,0,0,3, - 0,14,15,16,17,18,19,20,21,22, - 23,24,25,73,59,0,0,1,2,3, - 65,5,0,7,69,70,71,40,73,74, - 59,69,45,46,47,48,49,50,51,52, - 53,0,55,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,69, - 0,0,117,118,3,120,121,6,0,8, - 9,59,11,12,13,0,1,2,3,4, - 5,6,7,0,9,54,0,26,27,102, - 4,30,102,0,104,105,106,107,108,109, - 110,111,112,113,117,100,0,117,0,1, - 2,3,4,5,6,7,30,9,0,59, - 59,0,0,1,2,3,65,5,0,7, - 69,70,71,0,73,74,30,0,1,2, - 3,4,59,6,11,12,9,72,30,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,0,1,2,117,118, - 0,120,121,0,1,2,3,4,5,6, - 7,70,9,10,11,12,59,0,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,0,31,32,33,34,35,36, - 37,38,39,95,41,42,43,44,0,1, - 2,3,4,5,6,7,0,9,0,59, - 57,3,0,1,2,62,63,0,65,0, + 29,30,31,32,33,34,35,0,37,38, + 39,40,41,42,43,8,45,46,47,48, + 49,50,51,52,53,54,55,0,57,0, + 1,2,61,4,0,8,65,66,67,0, 1,2,3,4,5,6,7,8,9,10, - 11,12,65,0,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,0, - 31,32,33,34,35,36,37,38,39,0, - 41,42,43,44,0,1,2,8,4,0, - 6,73,13,9,62,63,57,0,1,2, - 3,0,5,64,7,8,69,0,1,2, - 71,0,1,2,3,4,5,6,7,8, - 9,10,11,12,0,0,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,0,31,32,33,34,35,36,37,38, - 39,0,41,42,43,44,59,0,0,1, - 2,4,4,0,6,0,8,9,57,62, - 63,74,119,8,0,64,0,1,2,3, - 4,5,6,7,0,9,10,11,12,88, - 89,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,0,31,32,33, - 34,35,36,37,38,39,65,41,42,43, - 44,0,1,2,3,0,5,0,7,8, - 3,90,74,57,13,70,71,96,62,63, + 11,12,0,0,15,16,17,18,19,20, + 21,22,23,24,25,36,0,0,1,2, + 3,4,5,6,7,36,9,70,71,40, + 46,47,103,104,105,46,47,48,49,50, + 51,52,53,54,55,56,44,58,0,0, + 61,74,36,0,65,66,67,8,10,0, + 71,72,73,0,1,2,3,4,5,6, + 7,8,9,10,11,12,87,0,15,16, + 17,18,19,20,21,22,23,24,25,72, + 0,0,103,104,105,4,0,1,2,36, + 4,0,6,40,56,9,0,0,0,46, + 47,48,49,50,51,52,53,54,55,56, + 0,58,0,74,61,3,36,68,65,66, + 67,40,0,0,71,72,73,4,0,6, + 91,3,9,0,6,44,8,9,28,11, + 87,13,14,10,0,1,2,3,4,5, + 6,7,0,9,26,27,103,104,105,0, + 1,2,3,4,5,6,7,69,9,36, + 73,0,44,0,1,2,3,4,5,6, + 7,69,9,0,103,104,105,59,0,1, + 2,3,4,5,61,7,68,69,70,71, + 102,73,74,59,0,107,108,109,110,111, + 112,113,114,115,116,117,88,89,90,91, + 92,93,94,95,96,97,98,99,100,101, + 102,0,73,0,106,107,108,109,110,111, + 112,113,114,115,116,117,118,0,120,121, + 3,68,0,6,102,8,9,0,11,107, + 13,14,91,0,1,2,3,4,5,6, + 7,0,9,26,27,0,1,2,3,4, + 5,0,7,8,13,14,11,0,1,2, + 0,44,0,1,2,3,4,5,0,7, + 8,44,4,13,14,0,59,0,1,2, + 3,4,5,0,7,68,69,70,71,0, + 73,74,59,36,0,1,2,3,4,5, + 6,7,69,9,0,88,89,90,91,92, + 93,94,95,96,97,98,99,100,101,102, + 0,59,100,106,107,108,109,110,111,112, + 113,114,115,116,117,118,74,120,121,0, + 1,2,3,4,5,6,7,0,9,10, + 73,0,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,0,37,38,39,4, + 41,42,43,0,45,0,1,2,68,4, + 70,6,9,8,9,44,57,122,0,0, + 0,3,63,64,0,0,8,68,0,1, + 2,3,4,5,6,7,8,9,10,44, + 73,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,44,37,38,39,44,41, + 42,43,0,45,0,1,2,59,4,74, + 8,0,8,0,59,57,68,6,70,0, + 62,8,74,73,11,76,91,8,0,71, 0,1,2,3,4,5,6,7,8,9, - 10,11,12,95,70,15,16,17,18,19, + 10,13,14,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29, - 0,31,32,33,34,35,36,37,38,39, - 0,41,42,43,44,0,1,2,3,0, - 5,0,7,8,3,0,69,57,13,8, - 30,0,0,8,64,0,1,2,3,4, - 5,6,7,0,9,10,11,12,0,30, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,28,29,65,31,32,33,34, - 35,36,37,38,39,0,41,42,43,44, - 59,0,1,2,65,4,65,6,0,64, - 9,70,57,93,94,74,65,62,63,0, - 1,2,3,4,5,6,7,8,9,10, - 11,12,93,94,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,54, - 31,32,33,34,35,36,37,38,39,0, - 41,42,43,44,0,0,0,3,0,5, - 6,0,0,9,0,11,12,0,70,14, - 8,10,0,1,2,13,4,5,0,7, - 26,27,4,29,30,0,30,0,1,2, - 0,4,5,0,7,40,0,1,2,14, - 45,46,47,48,49,50,51,52,53,0, - 55,0,0,59,65,54,62,63,40,65, - 8,65,61,69,70,40,54,118,0,65, - 45,46,47,48,49,50,51,52,53,30, - 55,54,88,89,90,91,92,93,94,93, - 94,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,64,9,10,11, - 12,88,89,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,0,31, - 32,33,34,35,36,37,38,39,0,41, - 42,43,44,0,0,0,88,89,3,0, - 5,6,14,0,9,57,11,12,0,1, - 2,3,0,5,0,7,4,0,0,1, - 2,26,27,30,29,30,8,10,40,0, - 1,2,54,45,46,47,48,49,50,51, - 52,53,30,55,0,1,2,0,4,0, - 6,0,0,9,59,0,0,62,63,8, - 65,0,0,69,69,70,0,1,2,70, - 4,54,6,11,12,9,73,30,61,30, - 0,73,64,88,89,90,91,92,93,94, - 0,30,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,65,9,10, - 11,12,71,0,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,29,59, - 31,32,33,34,35,36,37,38,39,59, - 41,42,43,44,0,1,2,3,4,5, - 6,7,0,9,10,11,12,0,59,15, + 30,31,32,33,34,35,62,37,38,39, + 0,41,42,43,4,45,74,0,1,2, + 3,4,5,70,7,8,0,57,11,0, + 1,2,62,0,1,2,3,4,5,6, + 7,0,9,10,93,94,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,29,30,31,32,33,34,35,0, + 37,38,39,4,41,42,43,118,45,0, + 1,2,3,4,0,6,0,0,9,0, + 57,0,63,64,8,8,63,64,0,1, + 2,3,4,5,6,7,8,9,10,40, + 0,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,0,37,38,39,59,41, + 42,43,0,45,10,3,0,1,2,3, + 4,5,0,7,0,57,4,71,71,70, + 62,0,1,2,3,4,5,6,7,59, + 9,10,88,89,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,0,37,38, + 39,59,41,42,43,59,45,0,1,2, + 3,4,5,59,7,0,1,2,57,4, + 5,0,7,0,63,64,0,1,2,3, + 4,5,6,7,8,9,10,0,0,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,29,30,31,32,33, + 34,35,0,37,38,39,0,41,42,43, + 0,45,75,3,8,5,6,11,0,9, + 0,1,2,13,14,0,1,2,8,4, + 0,6,0,3,9,0,26,27,0,29, + 0,0,0,1,2,68,4,70,6,0, + 10,9,0,12,44,3,15,16,17,18, + 19,20,21,22,23,24,25,0,0,59, + 0,1,2,63,64,5,36,7,68,69, + 70,40,62,0,118,0,68,46,47,48, + 49,50,51,52,53,54,55,59,88,89, + 90,61,70,93,94,95,96,97,98,99, + 100,101,102,0,1,2,106,68,108,109, + 110,111,112,113,114,115,116,117,0,1, + 2,3,4,5,6,7,68,9,10,0, + 0,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,29,30,31, + 32,33,34,35,0,37,38,39,0,41, + 42,43,4,45,0,1,2,3,4,5, + 6,7,0,9,10,57,0,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,61,31,32,33,34,35, - 36,37,38,39,0,41,42,43,44,0, - 1,2,0,0,1,2,3,4,5,6, - 7,57,9,10,11,12,0,0,15,16, + 26,27,28,29,30,31,32,33,34,35, + 70,37,38,39,28,41,42,43,36,45, + 0,0,1,2,3,4,5,6,7,0, + 9,10,68,59,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28, + 29,30,31,32,33,34,35,0,37,38, + 39,0,41,42,43,4,45,0,1,2, + 3,4,5,6,7,0,9,10,57,59, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,29,30,31,32, + 33,34,35,0,37,38,39,0,41,42, + 43,0,45,0,1,2,3,4,5,6, + 7,0,9,10,3,68,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, - 27,28,29,0,31,32,33,34,35,36, - 37,38,39,0,41,42,43,44,0,1, - 2,3,4,5,6,7,0,9,10,11, - 12,28,0,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,0,31, - 32,33,34,35,36,37,38,39,0,41, - 42,43,44,0,1,2,3,4,5,6, - 7,0,9,10,11,12,0,0,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,29,0,31,32,33,34,35,36, - 37,38,39,0,41,42,43,44,0,1, - 2,0,4,0,3,57,3,69,10,8, - 88,89,14,15,16,17,18,19,20,21, - 22,23,24,25,0,0,0,1,2,26, - 27,5,8,7,0,1,2,3,40,5, - 0,7,0,45,46,47,48,49,50,51, - 52,53,69,55,0,1,2,90,4,61, - 59,95,59,96,66,67,68,0,1,2, - 30,4,0,1,2,74,0,10,0,1, - 2,14,15,16,17,18,19,20,21,22, - 23,24,25,59,0,71,0,1,2,3, - 4,5,6,7,8,9,103,40,54,13, - 14,69,45,46,47,48,49,50,51,52, - 53,0,55,120,30,0,30,0,61,0, - 1,2,54,66,67,68,40,0,1,2, - 0,45,46,47,48,49,50,51,52,53, - 0,55,0,1,2,59,0,30,0,1, - 2,3,4,5,6,7,8,9,28,0, - 74,13,14,0,1,2,3,4,5,6, - 7,8,9,54,0,0,13,14,4,0, - 65,0,1,2,73,70,5,8,40,0, - 0,0,13,45,46,47,48,49,50,51, - 52,53,0,55,0,1,2,59,4,69, - 8,65,8,0,40,0,3,54,3,56, - 30,58,74,60,0,1,2,3,4,5, - 6,7,8,9,71,54,0,13,14,0, - 1,2,3,4,5,6,7,8,9,70, - 87,0,13,14,30,0,1,2,0,1, - 2,3,4,5,6,7,8,9,64,0, - 0,13,14,0,1,2,74,8,54,90, - 56,90,58,0,60,96,0,96,114,115, - 116,8,0,54,119,56,0,58,0,60, - 8,65,0,1,2,13,8,0,0,54, - 71,87,54,0,56,8,58,0,60,0, - 1,2,0,1,2,8,87,54,0,71, - 0,1,2,3,4,5,6,7,8,9, - 71,0,0,13,14,87,0,1,2,3, - 4,5,6,7,8,9,54,74,0,13, - 14,3,0,1,2,3,4,5,6,7, - 8,9,74,0,0,13,14,70,95,0, - 0,74,8,4,54,0,56,13,58,0, - 60,74,0,8,0,3,0,8,4,3, - 54,71,56,30,58,0,60,0,3,30, - 3,0,0,0,3,3,54,87,56,0, - 58,0,60,0,1,2,3,4,5,6, - 7,8,9,87,0,0,13,14,3,0, - 0,0,3,30,3,0,0,0,3,87, - 70,30,0,0,0,3,3,3,0,74, - 119,3,0,74,0,3,0,3,0,0, - 0,0,0,0,0,0,0,54,0,56, - 0,58,0,60,0,0,0,0,0,70, - 0,0,0,0,0,0,0,0,30,0, - 0,0,0,0,0,0,0,73,0,0, - 87,0,0,73,0,0,69,0,0,0, + 27,28,29,30,31,32,33,34,35,0, + 37,38,39,0,41,42,43,0,45,0, + 1,2,3,4,5,6,7,0,9,10, + 3,0,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,29,30, + 31,32,33,34,35,0,37,38,39,0, + 41,42,43,100,45,0,1,2,0,4, + 0,1,2,0,4,10,6,12,69,9, + 15,16,17,18,19,20,21,22,23,24, + 25,0,0,1,2,0,4,5,3,7, + 0,70,0,1,2,40,4,5,91,7, + 0,46,47,48,49,50,51,52,53,54, + 55,0,0,0,1,2,61,4,36,8, + 65,66,67,10,0,12,68,3,15,16, + 17,18,19,20,21,22,23,24,25,0, + 0,1,2,0,1,2,3,4,5,6, + 7,8,9,40,11,12,0,1,2,46, + 47,48,49,50,51,52,53,54,55,0, + 0,1,2,4,61,5,36,7,65,66, + 67,70,119,40,0,74,0,44,0,46, + 47,48,49,50,51,52,53,54,55,0, + 88,89,59,0,1,2,3,4,5,6, + 7,8,9,44,11,12,0,74,0,63, + 64,3,0,0,1,2,3,4,5,6, + 7,8,9,0,11,12,0,0,1,2, + 4,4,5,40,7,59,0,1,2,46, + 47,48,49,50,51,52,53,54,55,36, + 44,73,59,0,1,2,3,4,5,6, + 7,8,9,36,11,12,0,74,0,56, + 44,58,36,60,0,1,2,3,4,5, + 6,7,8,9,71,11,12,0,0,36, + 0,0,0,1,2,8,8,44,6,11, + 87,0,1,2,0,0,5,0,3,56, + 36,58,44,60,0,1,2,3,4,5, + 6,7,8,9,0,11,12,0,36,0, + 56,0,58,6,60,0,70,36,0,0, + 87,12,3,8,0,71,8,8,44,62, + 36,0,1,2,3,4,5,6,7,8, + 9,87,11,12,0,0,0,1,2,40, + 56,0,58,0,60,46,47,48,49,50, + 51,52,53,54,55,71,0,36,0,1, + 2,3,4,5,6,7,8,9,59,11, + 12,87,36,0,73,0,71,56,44,58, + 0,60,74,74,70,44,6,0,1,2, + 93,94,71,0,36,0,1,2,3,4, + 5,6,7,8,9,70,11,12,87,68, + 0,1,2,119,56,59,58,44,60,44, + 0,0,1,2,3,4,5,6,7,8, + 9,36,11,12,91,0,95,96,0,0, + 0,68,3,68,0,87,36,0,1,2, + 12,56,0,58,0,60,0,36,0,1, + 2,0,8,0,8,26,27,11,95,96, + 95,96,0,93,94,12,0,56,40,58, + 8,60,87,0,46,47,48,49,50,51, + 52,53,54,55,36,12,44,0,59,0, + 1,2,0,40,0,1,2,0,87,46, + 47,48,49,50,51,52,53,54,55,0, + 1,2,0,40,0,3,0,3,74,46, + 47,48,49,50,51,52,53,54,55,0, + 36,44,0,0,0,106,74,8,0,0, + 11,44,3,0,0,0,3,3,3,120, + 0,0,0,0,0,3,0,3,0,3, + 0,69,0,3,0,3,0,3,0,0, + 0,0,3,0,0,0,44,0,0,0, + 0,0,44,0,0,69,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,69,0,0,0,0, - 0,95,0,0,0,0,0,0,0,0, + 0,0,69,69,0,28,0,0,0,0, + 0,0,0,0,0,0,0,0,44,69, + 69,0,0,0,0,0,73,0,0,61, + 0,73,0,0,0,69,0,0,0,69, + 0,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,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,0,0,0,0, + 0 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -1403,317 +1410,318 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface TermAction { public final static char termAction[] = {0, - 5326,5303,5279,5279,5279,5279,5279,5279,5313,5279, - 1,1,1,5307,1,1,1,1,1,1, + 5355,5332,5308,5308,5308,5308,5308,5308,5342,5308, + 1,5336,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,383,1,1,1,1,1, + 1,1,1,1,1,1,1251,1,2770,143, + 2650,1,5366,1,1,1,1,1,5355,5374, + 5375,5362,5536,3402,528,1294,2959,4283,2202,4254, + 2904,2843,2956,943,2940,3012,2933,10,5345,5345, + 5345,5345,5345,5345,5345,5345,5345,5345,5345,5345, + 5345,5345,5345,5345,5345,5345,5345,5345,5345,5345, + 5345,5345,5345,5345,5345,5345,5345,5345,5345,5345, + 5345,5345,5345,5355,5345,5345,5345,5345,5345,5345, + 5345,2880,5345,5345,5345,5345,5345,5345,5345,5345, + 5345,5345,5345,5345,5345,5345,144,5345,5345,5345, + 5345,5345,5345,5345,5345,5355,5374,5375,5345,5345, + 1123,5355,5345,5345,5345,5345,5345,5345,5345,5345, + 5345,5345,5345,5345,8,5348,5348,5348,5348,5348, + 5348,5348,5348,5348,5348,5348,5348,5348,5348,5348, + 5348,5348,5348,5348,5348,5348,5348,5348,5348,5348, + 5348,5348,5348,5348,5348,5348,5348,5348,5348,5348, + 5355,5348,5348,5348,5348,5348,5348,5348,5355,5348, + 5348,5348,5348,5348,5348,5348,5348,5348,5348,5348, + 5348,5348,5348,5355,5348,5348,5348,5348,5348,5348, + 5348,5348,5355,5014,5011,5348,5348,1123,5355,5348, + 5348,5348,5348,5348,5348,5348,5348,5348,5348,5348, + 5348,5355,5332,5308,5308,5308,5308,5308,5308,5339, + 5308,1,5336,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,385,1,1775,1,1289,137, - 2349,1,1,1,5337,5326,1,1,1,1299, - 5326,5333,5509,3484,5326,1375,2706,4204,2206,4119, - 2611,2768,2689,1646,2688,2577,2648,10,5316,5316, - 5316,5316,5316,5316,5316,5316,5316,5316,5316,5316, - 5316,5316,5316,5316,5316,5316,5316,5316,5316,5316, - 5316,5316,5316,5316,5316,5316,5316,5326,5316,5316, - 5316,5316,5316,5316,5316,5316,5316,5316,5316,5316, - 5316,5316,5316,5316,5316,5316,5316,5316,5316,5316, - 5316,5326,5316,5316,5316,5316,138,5316,5316,5316, - 5316,5316,139,5316,5316,5316,2384,2356,5316,5316, - 5326,2327,5316,5316,5316,5316,5316,5316,5316,5316, - 5316,5316,5316,5316,8,5319,5319,5319,5319,5319, - 5319,5319,5319,5319,5319,5319,5319,5319,5319,5319, - 5319,5319,5319,5319,5319,5319,5319,5319,5319,5319, - 5319,5319,5319,5319,5326,5319,5319,5319,5319,5319, - 5319,5319,5319,5319,5319,5319,5319,5319,5319,5319, - 5319,5319,5319,5319,5319,5319,5319,5319,5326,5319, - 5319,5319,5319,5326,5319,5319,5319,5319,5319,3408, - 5319,5319,5319,2384,2356,5319,5319,5326,5326,5319, - 5319,5319,5319,5319,5319,5319,5319,5319,5319,5319, - 5319,5326,5303,5279,5279,5279,5279,5279,5279,5310, - 5279,1,1,1,5307,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5326,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5326,1,1775,1,1289, - 1909,2349,1,1,1,5337,45,1,1,1, - 5370,5326,2951,5509,926,5657,1375,2706,4204,2206, - 4119,2611,2768,2689,1646,2688,2577,2648,5326,5303, - 5279,5279,5279,5279,5279,5279,5310,5279,1,1, - 1,5307,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5326,1, + 1,1,1,1,1,1,1,5355,1,1, + 1,1,1,1,1,5355,1,1,1,1, + 1,1,1,1,1,1,1,1251,1,2770, + 137,2650,1,5366,1,1,1,1,1,590, + 5355,5035,5032,5536,5399,5355,1294,2959,4283,2202, + 4254,2904,2843,2956,943,2940,3012,2933,5355,5332, + 5308,5308,5308,5308,5308,5308,5339,5308,1,5336, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5326,1,1775,1,1289,141,2349,1, - 1,1,5337,123,1,1,1,45,5326,3584, - 5509,5370,3101,1375,2706,4204,2206,4119,2611,2768, - 2689,1646,2688,2577,2648,5326,5303,5279,5279,5279, - 5279,5279,5279,5310,5279,1,1,1,5307,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5326,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5326, - 1,1775,1,1289,1516,2349,1,1,1,5337, - 140,1,1,1,3542,3447,592,5509,5326,2327, - 1375,2706,4204,2206,4119,2611,2768,2689,1646,2688, - 2577,2648,5326,5303,5279,5279,5279,5279,5279,5279, - 5310,5279,1,1,1,5307,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,5326,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5326,1,1775,1, - 1289,145,2349,1,1,1,5337,5326,1,1, - 1,5326,4947,4944,5509,5370,5326,1375,2706,4204, - 2206,4119,2611,2768,2689,1646,2688,2577,2648,5326, - 5303,5279,5279,5279,5279,5279,5279,5310,5279,1, - 1,1,5307,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5326, + 1,1,1,1,5355,1,1,1,1,1, + 1,1,5355,1,1,1,1,1,1,1, + 1,1,1,1,1251,1,2770,135,2650,1, + 5366,1,1,1,1,1,117,5355,5035,5032, + 5536,5399,5355,1294,2959,4283,2202,4254,2904,2843, + 2956,943,2940,3012,2933,5355,5332,5308,5308,5308, + 5308,5308,5308,5339,5308,1,5336,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,2964,1,1775,1,1289,146,2349, - 1,1,1,5337,125,1,1,1,5326,1, - 3584,5509,2293,389,1375,2706,4204,2206,4119,2611, - 2768,2689,1646,2688,2577,2648,5326,5303,5279,5279, - 5279,5279,5279,5279,5310,5279,1,1,1,5307, + 1,5355,1,1,1,1,1,1,1,5355, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,193,1,1,1, + 1,1251,1,2770,5355,2650,1,5366,1,1, + 1,1,1,127,2378,2350,4075,5536,4097,5355, + 1294,2959,4283,2202,4254,2904,2843,2956,943,2940, + 3012,2933,5355,5332,5308,5308,5308,5308,5308,5308, + 5339,5308,1,5336,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5355,1, + 1,1,1,1,1,1,5355,1,1,1, + 1,1,1,1,1,1,1,1,1251,1, + 2770,5355,2650,1,5366,1,1,1,1,1, + 120,2728,2821,5355,5536,5355,4749,1294,2959,4283, + 2202,4254,2904,2843,2956,943,2940,3012,2933,5355, + 5332,5308,5308,5308,5308,5308,5308,5339,5308,1, + 5336,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5355,1,1,1,1, + 1,1,1,5355,1,1,1,1,1,1, + 1,1,1,1,1,1251,1,2770,136,2650, + 1,5366,1,1,1,1,1,54,5014,5011, + 4075,5536,4097,5355,1294,2959,4283,2202,4254,2904, + 2843,2956,943,2940,3012,2933,5355,5332,5308,5308, + 5308,5308,5308,5308,5339,5308,1,5336,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5326,1,1775,1,1289,5326,2349,1,1,1, - 5337,124,1,1,1,3542,3447,3584,5509,2293, - 5326,1375,2706,4204,2206,4119,2611,2768,2689,1646, - 2688,2577,2648,5326,5303,5279,5279,5279,5279,5279, - 5279,5310,5279,1,1,1,5307,1,1,1, + 1,1,5355,1,1,1,1,1,1,1, + 5355,1,1,1,1,1,1,1,1,1, + 1,1,1251,1,2770,5355,2650,1,5366,1, + 1,1,1,1,119,2378,2350,5355,5536,5355, + 2596,1294,2959,4283,2202,4254,2904,2843,2956,943, + 2940,3012,2933,5355,5332,5308,5308,5308,5308,5308, + 5308,5339,5308,1,5336,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5326,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5355, + 1,1,1,1,1,1,1,5355,1,1, + 1,1,1,1,1,1,1,1,1,1251, + 1,2770,1906,2650,1,5366,1,1,1,1, + 1,118,5355,4990,4075,5536,4097,3402,1294,2959, + 4283,2202,4254,2904,2843,2956,943,2940,3012,2933, + 5355,5332,5308,5308,5308,5308,5308,5308,5339,5308, + 1,5336,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5326,1,1775, - 1,1289,5326,2349,1,1,1,5337,5323,1, - 1,1,3542,3447,165,5509,426,5326,1375,2706, - 4204,2206,4119,2611,2768,2689,1646,2688,2577,2648, - 5326,5303,5279,5279,5279,5279,5279,5279,5310,5279, - 1,1,1,5307,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 5326,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1866,1,1775,1,1289,3420, - 2349,1,1,1,5337,5326,1,1,1,5326, - 5345,5346,5509,5326,1516,1375,2706,4204,2206,4119, - 2611,2768,2689,1646,2688,2577,2648,5326,5303,5279, - 5279,5279,5279,5279,5279,5310,5279,1,1,1, - 5307,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5326,1,1, + 1,1,1,1,1,1,5355,1,1,1, + 1,1,1,1,5355,1,1,1,1,1, + 1,1,1,1,1,1,1251,1,2770,139, + 2650,1,5366,1,1,1,1,1,131,5355, + 5355,4075,5536,4097,2491,1294,2959,4283,2202,4254, + 2904,2843,2956,943,2940,3012,2933,5355,5332,5308, + 5308,5308,5308,5308,5308,5339,5308,1,5336,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5326,1,1775,1,1289,5726,2349,1,1, - 1,5337,5326,1,1,1,5326,4947,4944,5509, - 5370,5326,1375,2706,4204,2206,4119,2611,2768,2689, - 1646,2688,2577,2648,5326,2618,1,1,1,1, - 1,1,2619,1,1,1,1,5335,1,1, + 1,1,1,5355,1,1,1,1,1,1, + 1,5355,1,1,1,1,1,1,1,1, + 1,1,1,1251,1,2770,140,2650,1,5366, + 1,1,1,1,1,130,2728,2821,2320,5536, + 424,5355,1294,2959,4283,2202,4254,2904,2843,2956, + 943,2940,3012,2933,5355,2905,1,1,1,1, + 1,1,2916,1,1,5364,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5326,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5326,1, - 1775,1,1289,5326,2349,1,1,1,5337,5326, - 1,1,1,5326,5345,5346,5509,5330,296,1375, - 2706,4204,2206,4119,2611,2768,2689,1646,2688,2577, - 2648,45,4947,4944,3483,922,3794,3904,4730,4234, - 3926,1172,3882,3860,3025,5590,5597,5595,5604,5603, - 5599,5600,5598,5601,5602,5605,5596,3970,3948,5351, - 631,142,961,1030,5353,987,3346,1004,5354,5352, - 931,5593,5347,5349,5350,5348,5664,5665,5587,5594, - 5566,5592,5591,5588,5589,306,5567,1995,1343,5326, - 4947,4944,5723,922,672,5631,4730,2635,5724,5725, - 5326,5185,5185,235,5181,235,235,235,5189,235, - 1,129,452,235,1,1,1,1,1,1, - 1,1,1,1,1,1,5326,5329,306,231, - 5326,4969,4965,3063,5370,672,2951,4730,5631,5657, - 1,2987,4929,5590,446,1,1,1,1,1, - 1,1,1,1,5178,1,2525,143,566,348, - 592,1,3630,44,4976,4973,1,1,1,5593, - 907,415,5737,235,5664,5665,5587,5594,5566,5592, - 5591,5588,5589,1,5567,437,321,5824,5326,5185, - 5185,235,5181,235,235,235,5228,235,1,2653, - 2746,235,1,1,1,1,1,1,1,1, - 1,1,1,1,5759,5760,5761,625,1306,126, - 368,4925,4921,3335,1,672,1,4730,1,1, - 3299,3274,5326,1,1,1,1,1,1,1, - 1,1,5178,1,2525,1306,566,4920,337,1, - 35,51,4985,4985,1,1,1,1180,3836,414, - 5737,235,5326,4947,4944,39,922,672,4962,4730, - 5326,4962,371,4962,4962,5824,4962,4962,4962,1306, - 2800,346,4969,4965,3335,5370,672,2951,4730,1134, - 5657,4962,4962,5664,5665,4962,5326,230,2540,5759, - 5760,5761,5759,5760,5761,4982,99,147,5326,5124, - 147,5590,5597,5595,5604,5603,5599,5600,5598,5601, - 5602,5605,5596,422,4962,144,1,4925,4921,3063, - 4962,672,322,4730,4962,4962,4962,5593,4962,4962, - 1306,1214,5664,5665,5587,5594,5566,5592,5591,5588, - 5589,43,5567,4962,4962,4962,4962,4962,4962,4962, - 4962,4962,4962,4962,4962,4962,4962,4962,4962,4962, - 4962,4962,4962,4962,4962,4962,4962,4962,4962,1823, - 456,5326,4962,4962,5127,4962,4962,5127,5326,5127, - 5127,1306,5127,5127,5127,5326,4925,4921,3063,1, - 672,1,4730,455,1,5368,395,5127,5127,2256, - 388,5127,2256,5326,1780,1737,1694,1651,1608,1565, - 1522,1479,1436,1393,3608,1180,438,3608,314,5259, - 5254,3063,5198,672,5251,4730,2800,5248,35,4956, - 5127,513,1,4925,4921,5219,5127,5222,359,5225, - 5127,5127,5127,128,5127,5127,4932,346,45,45, - 2605,5370,4959,2951,3299,3274,5657,5860,4935,5127, - 5127,5127,5127,5127,5127,5127,5127,5127,5127,5127, - 5127,5127,5127,5127,5127,5127,5127,5127,5127,5127, - 5127,5127,5127,5127,5127,5326,5118,5115,5127,5127, - 349,5127,5127,1,5028,5024,3483,5032,3794,3904, - 4730,877,3926,4988,3882,3860,1306,5326,5015,5021, - 4994,4997,5009,5006,5012,5003,5000,4991,5018,3970, - 3948,5351,631,5326,961,1030,5353,987,3346,1004, - 5354,5352,931,5684,5347,5349,5350,5348,5326,5259, - 5254,3063,5198,672,5251,4730,5326,5248,244,1306, - 1343,5145,5326,5345,5346,45,45,369,514,45, - 4947,4944,3483,922,3794,3904,4730,5231,3926,1081, - 3882,3860,5779,5326,5597,5595,5604,5603,5599,5600, - 5598,5601,5602,5605,5596,3970,3948,5351,631,5326, - 961,1030,5353,987,3346,1004,5354,5352,931,404, - 5347,5349,5350,5348,442,1,1,5213,1,5326, - 4953,2032,5216,4953,3992,1047,1343,1,4925,4921, - 3335,133,672,4941,4730,5139,1259,5326,5118,5115, - 5333,45,4947,4944,3483,922,3794,3904,4730,4938, - 3926,1081,3882,3860,5326,5326,5597,5595,5604,5603, - 5599,5600,5598,5601,5602,5605,5596,3970,3948,5351, - 631,119,961,1030,5353,987,3346,1004,5354,5352, - 931,5326,5347,5349,5350,5348,1306,5326,1,5201, - 5201,795,5198,5326,2951,5326,364,5657,1343,3992, - 1047,5142,2794,5334,5326,4941,149,4947,4944,3483, - 922,3794,3904,4730,294,3926,1081,3882,3860,2653, - 2746,5597,5595,5604,5603,5599,5600,5598,5601,5602, - 5605,5596,3970,3948,5351,631,5326,961,1030,5353, - 987,3346,1004,5354,5352,931,5765,5347,5349,5350, - 5348,1,4925,4921,5219,5326,5222,315,5225,5336, - 2903,4014,364,1343,5335,1000,5333,4036,45,45, - 45,4947,4944,3483,922,3794,3904,4730,4938,3926, - 1081,3882,3860,364,995,5597,5595,5604,5603,5599, - 5600,5598,5601,5602,5605,5596,3970,3948,5351,631, - 134,961,1030,5353,987,3346,1004,5354,5352,931, - 5326,5347,5349,5350,5348,1,4925,4921,3063,136, - 672,1,4730,314,2605,5326,1087,1343,314,342, - 2493,5326,5326,5338,4941,1,5028,5024,3483,5032, - 3794,3904,4730,5326,3926,4988,3882,3860,5326,2493, - 5015,5021,4994,4997,5009,5006,5012,5003,5000,4991, - 5018,3970,3948,5351,631,4979,961,1030,5353,987, - 3346,1004,5354,5352,931,55,5347,5349,5350,5348, - 1306,443,45,45,5166,5370,342,5136,363,5337, - 5133,342,1343,2439,2412,342,5836,45,45,45, - 4947,4944,3483,922,3794,3904,4730,5330,3926,1081, - 3882,3860,2439,2412,5597,5595,5604,5603,5599,5600, - 5598,5601,5602,5605,5596,3970,3948,5351,631,1130, - 961,1030,5353,987,3346,1004,5354,5352,931,5326, - 5347,5349,5350,5348,1,232,135,1296,5326,5793, - 5787,1,5326,5791,5326,5785,5786,5326,4129,5590, - 5336,5291,5326,4947,4944,5335,922,5130,45,4730, - 5816,5817,5370,5794,5796,233,2493,5326,4947,4944, - 5326,922,5130,132,4730,5593,56,5118,5115,5590, - 5664,5665,5587,5594,5566,5592,5591,5588,5589,388, - 5567,5326,1,789,1947,2515,778,851,2601,5797, - 5297,5169,5294,5795,5818,5593,579,5329,131,1948, - 5664,5665,5587,5594,5566,5592,5591,5588,5589,4950, - 5567,2069,5807,5806,5819,5788,5789,5812,5813,2439, - 2412,5810,5811,5790,5792,5814,5815,5820,5800,5801, - 5802,5798,5799,5808,5809,5804,5803,5805,45,4947, - 4944,3483,922,3794,3904,4730,5337,3926,1081,3882, - 3860,2653,2746,5597,5595,5604,5603,5599,5600,5598, - 5601,5602,5605,5596,3970,3948,5351,631,5326,961, - 1030,5353,987,3346,1004,5354,5352,931,234,5347, - 5349,5350,5348,5326,418,5326,2653,2746,1296,424, - 5793,5787,5590,5326,5791,1343,5785,5786,1,4925, - 4921,3063,56,672,5326,4730,5346,1,5326,5345, - 5346,5816,5817,2800,5794,5796,5338,5291,5593,56, - 5163,5160,2149,5664,5665,5587,5594,5566,5592,5591, - 5588,5589,5346,5567,100,1,1,5326,1,5326, - 5207,5326,5326,5207,789,5326,5326,778,851,5334, - 5797,5326,127,2169,5795,5818,103,45,45,4252, - 5370,2515,5270,3299,3274,5267,2119,2539,5294,2963, - 108,2032,5337,5807,5806,5819,5788,5789,5812,5813, - 107,3187,5810,5811,5790,5792,5814,5815,5820,5800, - 5801,5802,5798,5799,5808,5809,5804,5803,5805,45, - 4947,4944,3483,922,3794,3904,4730,1949,3926,1081, - 3882,3860,5333,5326,5597,5595,5604,5603,5599,5600, - 5598,5601,5602,5605,5596,3970,3948,5351,631,4750, - 961,1030,5353,987,3346,1004,5354,5352,931,2082, - 5347,5349,5350,5348,45,4947,4944,3483,922,3794, - 3904,4730,5326,3926,1081,3882,3860,5326,2278,5597, - 5595,5604,5603,5599,5600,5598,5601,5602,5605,5596, - 3970,3948,5351,631,4681,961,1030,5353,987,3346, - 1004,5354,5352,931,5326,5347,5349,5350,5348,295, - 5345,5346,5326,45,4947,4944,3609,922,3794,3904, - 4730,1343,3926,1081,3882,3860,5326,5326,5597,5595, - 5604,5603,5599,5600,5598,5601,5602,5605,5596,3970, - 3948,5351,631,5326,961,1030,5353,987,3346,1004, - 5354,5352,931,5326,5347,5349,5350,5348,45,4947, - 4944,3483,922,3794,3904,4730,5326,3926,1081,3882, - 3860,4371,130,5597,5595,5604,5603,5599,5600,5598, - 5601,5602,5605,5596,3970,3948,5351,631,41,961, - 1030,5353,987,3346,1004,5354,5352,931,530,5347, - 5349,5350,5348,45,4947,4944,3483,922,3794,3904, - 4730,5326,3926,1081,3882,3860,1,122,5597,5595, - 5604,5603,5599,5600,5598,5601,5602,5605,5596,3970, - 3948,5351,631,506,961,1030,5353,987,3346,1004, - 5354,5352,931,5326,5347,5349,5350,5348,5326,4947, - 4944,1,5370,83,2605,2575,2801,3041,859,5139, - 2653,2746,5590,5597,5595,5604,5603,5599,5600,5598, - 5601,5602,5605,5596,8,5326,5326,5345,5346,5396, - 5397,672,5264,4730,1,4925,4921,3335,5593,672, - 5326,4730,504,5664,5665,5587,5594,5566,5592,5591, - 5588,5589,4121,5567,396,4947,4944,4014,5370,5723, - 1306,5686,3485,4036,2635,5724,5725,248,5108,5104, - 3379,5112,42,5245,5242,5142,5326,859,5326,8890, - 8890,5059,5095,5101,5074,5077,5089,5086,5092,5083, - 5080,5071,5098,1306,47,5264,35,388,388,5154, - 388,388,5154,388,5157,5154,659,5050,45,5154, - 388,4739,5044,5041,5068,5047,5038,5053,5056,5065, - 5062,5326,5035,799,5121,5326,4935,1,5723,53, - 5175,5175,5368,2635,5724,5725,388,5326,5163,5160, - 1,388,388,388,388,388,388,388,388,388, - 5326,388,396,5345,5346,5157,5326,2800,38,389, - 389,5148,389,389,5148,389,5151,5148,2331,5326, - 5157,5148,389,1,5279,5279,235,5279,235,235, - 235,5282,235,5172,45,376,235,8552,5370,5326, - 2920,43,5210,5210,2822,3025,5210,5336,389,121, - 5326,120,5335,389,389,389,389,389,389,389, - 389,389,5326,389,5326,4947,4944,5151,5370,3041, - 5332,1974,5338,1,979,5326,3776,5276,3692,3741, - 2114,1289,5151,2349,1,5279,5279,235,5279,235, - 235,235,235,235,227,1559,5326,235,8552,1, - 5279,5279,235,5279,235,235,235,5288,235,2847, - 5824,5326,235,8552,2114,5326,5195,5192,1,5279, - 5279,235,5279,235,235,235,5282,235,5337,1, - 5326,235,8552,43,5204,5204,5331,5300,5276,4014, - 3741,4014,1289,1,2349,4036,5326,4036,5759,5760, - 5761,364,1,5276,2794,3741,5326,1289,1,2349, - 5336,4122,5326,5238,5234,5335,169,5326,5326,5368, - 226,5824,5276,5326,3741,5332,1289,1,2349,5326, - 8801,8084,5326,8801,8084,5332,5824,1473,5326,227, - 1,5279,5279,235,5279,235,235,235,5282,235, - 5333,519,5326,235,8552,5824,1,5279,5279,235, - 5279,235,235,235,235,235,5368,364,5326,235, - 8552,4116,1,5279,5279,235,5279,235,235,235, - 235,235,169,5326,1,235,8552,4747,364,56, - 447,5331,199,5345,5276,1,3741,199,1289,1, - 2349,5331,5326,526,5326,4239,5326,171,1430,4509, - 5276,227,3741,3829,1289,5326,2349,5326,3720,5345, - 4360,5326,111,81,3837,4605,5276,5824,3741,313, - 1289,5326,2349,1,5279,5279,235,5279,235,235, - 235,235,235,5824,5326,285,235,8552,5285,5326, - 5326,5326,2416,5273,4707,5326,1,5326,4694,5824, - 2791,4250,5326,5326,5326,4123,4702,4507,5326,526, - 2794,4714,5326,171,5326,3017,508,4756,2,5326, - 5326,5326,5326,5326,5326,5326,5326,5276,5326,3741, - 5326,1289,5326,2349,5326,5326,5326,5326,5326,4339, - 5326,5326,5326,5326,5326,5326,5326,5326,43,5326, - 5326,5326,5326,5326,5326,5326,5326,2876,5326,5326, - 5824,5326,5326,2930,5326,5326,1952,5326,5326,5326, - 5326,5326,5326,5326,5326,5326,5326,5326,5326,5326, - 5326,5326,5326,5326,5326,936,5326,5326,5326,5326, - 5326,4524 + 5355,1,1,1,1,1,1,1,5367,1, + 1,1,1,1,1,1,1,1,1,1, + 1251,1,2770,3338,2650,1,5366,1,1,1, + 1,1,5355,2728,2821,2320,5536,5355,1682,1294, + 2959,4283,2202,4254,2904,2843,2956,943,2940,3012, + 2933,45,5035,5032,3793,931,3894,3965,2573,435, + 3987,776,5366,5617,3943,3916,5624,5622,5631,5630, + 5626,5627,5625,5628,5629,5632,5623,4031,4009,5380, + 3852,1065,1207,5382,1108,3599,1155,5355,5383,5381, + 1037,5620,5376,5378,5379,5363,5377,5691,5692,5614, + 5621,5593,5619,5618,5615,5616,5594,5355,1345,394, + 5035,5032,5750,5399,335,5361,862,5751,5752,5355, + 5224,5224,234,5220,234,234,234,5228,234,1, + 234,1,35,5355,1,1,1,1,1,1, + 1,1,1,1,1,45,43,5355,4995,4991, + 4394,4999,622,1,2573,5217,1,990,5362,1, + 5691,5692,5786,5787,5788,1,1,1,1,1, + 1,1,1,1,1,572,5002,564,304,1, + 1,5360,5397,5355,1,1,1,362,5658,5355, + 413,5764,234,5355,5224,5224,234,5220,234,234, + 234,5267,234,1,234,1,5851,5355,1,1, + 1,1,1,1,1,1,1,1,1,5887, + 53,45,5786,5787,5788,5399,440,1,1,5217, + 1,436,5041,1,2864,5041,5355,5355,145,1, + 1,1,1,1,1,1,1,1,1,572, + 5355,564,313,362,1,2194,786,5863,1,1, + 1,1106,5355,45,412,5764,234,5399,39,1189, + 362,5038,5684,1,5038,5005,5038,5038,768,5038, + 5851,5038,5038,5320,344,5035,5032,2528,931,622, + 1189,2573,145,5684,5038,5038,5786,5787,5788,5355, + 4995,4991,4394,4999,622,5290,2573,1820,5287,2703, + 5753,357,5038,5355,5035,5032,4394,931,622,1189, + 2573,1033,5684,5355,5786,5787,5788,5038,1,4995, + 4991,4394,4999,622,5323,2573,5038,5038,5038,5038, + 2250,5038,5038,1304,5355,3791,1777,1734,1691,1648, + 1605,1562,1519,1476,1433,1390,5038,5038,5038,5038, + 5038,5038,5038,5038,5038,5038,5038,5038,5038,5038, + 5038,5355,2030,5355,5038,5038,5038,5038,5038,5038, + 5038,5038,5038,5038,5038,5038,5038,5355,5038,5038, + 5184,5792,141,5184,2250,5184,5184,450,5184,3791, + 5184,5184,5711,366,4995,4991,2528,4999,622,1, + 2573,124,1,5184,5184,1,4995,4991,5258,4999, + 5264,5355,5261,5365,3434,3255,5364,43,5053,5053, + 126,5184,1,4995,4991,2528,4999,622,45,2573, + 5196,5008,5399,3434,3255,191,5184,1,4995,4991, + 4394,4999,622,5355,2573,5184,5184,5184,5184,5355, + 5184,5184,1304,5397,312,4995,4991,4394,4999,622, + 5290,2573,1159,5287,5355,5184,5184,5184,5184,5184, + 5184,5184,5184,5184,5184,5184,5184,5184,5184,5184, + 5355,1304,2288,5184,5184,5184,5184,5184,5184,5184, + 5184,5184,5184,5184,5184,5184,5199,5184,5184,1, + 4995,4991,3793,4999,3894,3965,2573,444,3987,5059, + 2030,5355,3943,3916,5086,5092,5065,5068,5080,5077, + 5083,5074,5071,5062,5089,4031,4009,5380,3852,1065, + 1207,5382,1108,3599,1155,393,5383,5381,1037,386, + 5376,5378,5379,138,5377,1,5246,5246,4296,5243, + 3292,1189,590,362,5684,713,1345,5352,1,5355, + 35,2680,45,45,386,319,340,512,45,5035, + 5032,3793,931,3894,3965,2573,5270,3987,1338,713, + 2848,3943,3916,5624,5622,5631,5630,5626,5627,5625, + 5628,5629,5632,5623,4031,4009,5380,3852,1065,1207, + 5382,1108,3599,1155,713,5383,5381,1037,5050,5376, + 5378,5379,1,5377,5355,5035,5032,1304,5399,362, + 167,121,5367,5355,1304,1345,340,3543,340,5355, + 5029,5365,340,420,5364,3052,362,5359,125,5362, + 45,5035,5032,3793,931,3894,3965,2573,5026,3987, + 1338,3434,3255,3943,3916,5624,5622,5631,5630,5626, + 5627,5625,5628,5629,5632,5623,4031,4009,5380,3852, + 1065,1207,5382,1108,3599,1155,5366,5383,5381,1037, + 1,5376,5378,5379,387,5377,167,1,4995,4991, + 4394,4999,622,4268,2573,312,5355,1345,312,5355, + 5374,5375,5029,147,5035,5032,3793,931,3894,3965, + 2573,5355,3987,1338,3472,626,3943,3916,5624,5622, + 5631,5630,5626,5627,5625,5628,5629,5632,5623,4031, + 4009,5380,3852,1065,1207,5382,1108,3599,1155,45, + 5383,5381,1037,5399,5376,5378,5379,5358,5377,344, + 45,45,2680,5399,129,1189,5355,8,5684,163, + 1345,5355,4053,566,5363,5293,45,45,45,5035, + 5032,3793,931,3894,3965,2573,5026,3987,1338,2647, + 320,3943,3916,5624,5622,5631,5630,5626,5627,5625, + 5628,5629,5632,5623,4031,4009,5380,3852,1065,1207, + 5382,1108,3599,1155,304,5383,5381,1037,1304,5376, + 5378,5379,346,5377,5658,1936,1,4995,4991,2528, + 4999,622,5355,2573,454,1345,3393,5362,5293,1863, + 5029,1,4995,4991,3793,4999,3894,3965,2573,1304, + 3987,5059,2728,2821,3943,3916,5086,5092,5065,5068, + 5080,5077,5083,5074,5071,5062,5089,4031,4009,5380, + 3852,1065,1207,5382,1108,3599,1155,1,5383,5381, + 1037,1304,5376,5378,5379,1304,5377,1,4995,4991, + 5258,4999,5264,5044,5261,5355,5035,5032,1345,931, + 622,5355,2573,5355,45,45,45,5035,5032,3793, + 931,3894,3965,2573,5359,3987,1338,5355,5355,3943, + 3916,5624,5622,5631,5630,5626,5627,5625,5628,5629, + 5632,5623,4031,4009,5380,3852,1065,1207,5382,1108, + 3599,1155,5355,5383,5381,1037,402,5376,5378,5379, + 1,5377,3524,2154,5252,5820,5814,5255,5355,5818, + 5355,5374,5375,5812,5813,441,45,45,5367,5399, + 97,5193,511,5181,5190,5355,5843,5844,453,5821, + 1,228,98,1,1,3044,1,3292,5249,5355, + 5320,5249,242,5617,5823,5202,5624,5622,5631,5630, + 5626,5627,5625,5628,5629,5632,5623,5355,5355,648, + 44,5023,5020,866,994,5017,2703,2573,5824,5822, + 5845,5620,5366,5355,5358,5355,5806,5691,5692,5614, + 5621,5593,5619,5618,5615,5616,5594,5047,5834,5833, + 5846,5323,870,5815,5816,5839,5840,5837,5838,5817, + 5819,5841,5842,293,5374,5375,5847,1885,5827,5828, + 5829,5825,5826,5835,5836,5831,5830,5832,45,5035, + 5032,3793,931,3894,3965,2573,1895,3987,1338,5355, + 292,3943,3916,5624,5622,5631,5630,5626,5627,5625, + 5628,5629,5632,5623,4031,4009,5380,3852,1065,1207, + 5382,1108,3599,1155,5355,5383,5381,1037,5355,5376, + 5378,5379,812,5377,45,5035,5032,3793,931,3894, + 3965,2573,5355,3987,1338,1345,5355,3943,3916,5624, + 5622,5631,5630,5626,5627,5625,5628,5629,5632,5623, + 4031,4009,5380,3852,1065,1207,5382,1108,3599,1155, + 669,5383,5381,1037,3801,5376,5378,5379,2110,5377, + 347,45,5035,5032,3793,931,3894,3965,2573,5355, + 3987,1338,1901,1644,3943,3916,5624,5622,5631,5630, + 5626,5627,5625,5628,5629,5632,5623,4031,4009,5380, + 3852,1065,1207,5382,1108,3599,1155,5355,5383,5381, + 1037,5355,5376,5378,5379,909,5377,45,5035,5032, + 4759,931,3894,3965,2573,5355,3987,1338,1345,1304, + 3943,3916,5624,5622,5631,5630,5626,5627,5625,5628, + 5629,5632,5623,4031,4009,5380,3852,1065,1207,5382, + 1108,3599,1155,142,5383,5381,1037,5355,5376,5378, + 5379,5355,5377,45,5035,5032,3793,931,3894,3965, + 2573,1,3987,1338,4305,1902,3943,3916,5624,5622, + 5631,5630,5626,5627,5625,5628,5629,5632,5623,4031, + 4009,5380,3852,1065,1207,5382,1108,3599,1155,294, + 5383,5381,1037,5355,5376,5378,5379,1,5377,45, + 5035,5032,3793,931,3894,3965,2573,5355,3987,1338, + 4164,361,3943,3916,5624,5622,5631,5630,5626,5627, + 5625,5628,5629,5632,5623,4031,4009,5380,3852,1065, + 1207,5382,1108,3599,1155,5355,5383,5381,1037,5355, + 5376,5378,5379,2288,5377,5355,5035,5032,5355,5399, + 101,45,45,5355,5399,671,5299,5617,1992,5296, + 5624,5622,5631,5630,5626,5627,5625,5628,5629,5632, + 5623,5355,5355,5035,5032,5355,931,5187,4178,2573, + 5355,2594,5355,5035,5032,5620,931,622,5713,2573, + 5355,5691,5692,5614,5621,5593,5619,5618,5615,5616, + 5594,5355,128,246,5168,5164,5750,5172,577,5361, + 862,5751,5752,671,5355,5119,4163,4188,5155,5161, + 5134,5137,5149,5146,5152,5143,5140,5131,5158,5355, + 49,5178,5178,35,386,386,5208,386,386,5208, + 386,5208,5208,5110,5208,386,5355,5014,5011,5104, + 5101,5128,5107,5098,5113,5116,5125,5122,5095,54, + 5355,5374,5375,5375,5750,622,5175,2573,862,5751, + 5752,4844,2990,386,5355,5360,106,5002,5355,386, + 386,386,386,386,386,386,386,386,386,5355, + 2728,2821,5208,38,387,387,5205,387,387,5205, + 387,5205,5205,5375,5205,387,5355,5208,5355,4053, + 566,4198,5355,1,5308,5308,234,5308,234,234, + 234,5311,234,5355,234,8886,54,5355,5035,5032, + 5374,931,5187,387,2573,4441,5355,8883,8883,387, + 387,387,387,387,387,387,387,387,387,5305, + 3098,2116,5205,1,5308,5308,234,5308,234,234, + 234,234,234,2556,234,8886,422,5205,5355,2930, + 5374,2770,5397,2650,1,5308,5308,234,5308,234, + 234,234,5317,234,225,234,8886,1,5355,5305, + 5355,5355,43,5053,5053,5326,5365,2073,1682,5364, + 5851,43,5053,5053,5355,5355,5053,5355,4322,2930, + 5305,2770,3297,2650,1,5308,5308,234,5308,234, + 234,234,5311,234,374,234,8886,123,5397,229, + 2930,5355,2770,3543,2650,1,2934,3684,1,1, + 5851,5617,2680,5329,445,224,5361,5196,3318,5366, + 5305,1,5308,5308,234,5308,234,234,234,5311, + 234,5851,234,8886,5355,311,5355,5234,5231,5620, + 2930,132,2770,1,2650,5691,5692,5614,5621,5593, + 5619,5618,5615,5616,5594,225,105,5305,1,5308, + 5308,234,5308,234,234,234,234,234,1304,234, + 8886,5851,5397,134,2897,133,5362,2930,3344,2770, + 122,2650,5360,5199,3504,2487,3543,42,5284,5281, + 3472,626,225,5355,5305,1,5308,5308,234,5308, + 234,234,234,234,234,4381,234,8886,5851,5056, + 51,5240,5240,2990,2930,2078,2770,2487,2650,2487, + 5355,1,5308,5308,234,5308,234,234,234,234, + 234,5305,234,8886,4408,5355,2433,2406,230,81, + 5355,5211,3320,5214,5355,5851,5237,394,5374,5375, + 5617,2930,1,2770,1,2650,1,5305,43,5053, + 5053,5355,524,231,5365,5423,5424,5364,2433,2406, + 2433,2406,1,3472,626,5617,5355,2930,5620,2770, + 169,2650,5851,232,5691,5692,5614,5621,5593,5619, + 5618,5615,5616,5594,3066,5617,713,5355,3172,5355, + 8495,8428,369,5620,5355,5277,5273,5355,5851,5691, + 5692,5614,5621,5593,5619,5618,5615,5616,5594,5355, + 8495,8428,5355,5620,5355,4473,367,3727,524,5691, + 5692,5614,5621,5593,5619,5618,5615,5616,5594,1, + 5397,2073,79,416,41,656,169,197,5355,109, + 197,3305,4501,283,5355,5355,5314,2658,4504,795, + 504,502,5355,5355,5355,4797,5355,4808,5355,4810, + 5355,1213,5355,3503,5355,4811,5355,4761,5355,5355, + 5355,517,4831,506,2,5355,5302,1,5355,5355, + 5355,5355,3876,5355,5355,1260,5355,5355,5355,5355, + 5355,5355,5355,5355,5355,5355,5355,5355,5355,5355, + 5355,5355,2164,3323,5355,2628,5355,5355,5355,5355, + 5355,5355,5355,5355,5355,5355,5355,5355,43,4478, + 4817,5355,5355,5355,5355,5355,2953,5355,5355,3704, + 5355,3007,5355,5355,5355,3323,5355,5355,5355,1949, + 5355,5355,2541,5355,5355,5355,5355,5355,5355,5355, + 5355,5355,5355,5355,5355,5355,5355,5355,5355,5355, + 5355,5355,5355,5355,5355,5355,5355,5355,5355,5355, + 5355,5355,5355,5355,5355,5355,5355,5355,5355,5355, + 5355,5355,5355,5355,5355,5355,5355,5355,5355,5355, + 2990 }; }; public final static char termAction[] = TermAction.termAction; @@ -1721,59 +1729,59 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Asb { public final static char asb[] = {0, - 888,1,10,3,3,355,530,530,1009,355, - 530,349,975,315,116,161,880,979,914,460, - 460,527,488,202,67,530,530,409,530,460, - 67,349,355,523,67,315,20,986,392,409, - 409,409,409,977,392,108,299,110,316,316, - 316,316,316,316,316,316,316,532,538,543, - 540,547,545,552,550,554,553,555,205,556, - 202,571,353,748,460,460,975,903,914,986, - 914,989,914,991,914,898,977,355,202,202, - 460,753,523,258,20,116,299,488,488,488, - 488,355,70,1040,532,67,67,58,299,765, - 487,880,299,532,879,879,70,315,316,316, - 316,316,316,316,316,316,316,316,316,316, - 316,316,316,316,316,316,316,315,315,315, - 315,315,315,315,315,315,315,315,315,316, - 979,355,1079,1078,1079,527,586,355,985,631, - 635,265,986,697,355,355,355,631,1079,523, - 522,315,116,67,67,1079,1079,1079,1079,631, - 67,316,975,658,648,647,358,921,921,977, - 110,202,487,315,353,67,352,354,352,67, - 202,540,540,538,538,538,545,545,545,545, - 543,543,550,547,547,553,552,554,1007,555, - 748,299,586,985,266,985,631,985,697,697, - 355,631,355,523,19,392,392,392,392,355, - 355,58,67,660,662,355,880,316,488,536, - 23,67,355,354,880,315,20,355,586,1007, - 992,409,633,154,997,586,985,985,702,355, - 697,20,394,19,355,17,115,315,315,315, - 315,392,392,67,652,640,651,662,631,353, - 67,536,975,979,355,353,880,710,986,1079, - 409,352,984,999,392,399,515,703,355,20, - 316,355,17,17,67,67,67,67,70,70, - 755,315,649,649,656,975,808,67,355,536, - 537,536,315,23,256,532,979,353,710,710, - 416,602,353,985,985,349,576,403,316,1007, - 12,662,702,355,977,977,355,67,67,755, - 315,315,660,640,755,956,536,70,316,202, - 256,577,20,806,841,247,392,992,452,710, - 710,602,353,985,986,977,999,316,316,662, - 355,355,355,757,755,537,67,202,415,247, - 806,411,977,20,1078,409,580,580,577,986, - 279,399,355,392,67,355,355,757,757,416, - 710,577,576,67,977,355,602,416,602,1077, - 1077,886,280,977,355,70,981,392,757,710, - 349,577,355,355,602,488,488,886,279,1007, - 316,1007,577,278,392,392,392,280,392,355, - 213,577,577,355,986,67,981,663,20,355, - 577,1078,271,392,271,280,1007,280,299,299, - 297,520,299,577,577,15,886,983,66,577, - 695,808,280,67,349,67,297,247,392,67, - 886,983,488,580,67,67,969,280,15,280, - 577,247,315,280,277,1077,986,986,971,315, - 278,70,577,67,352,280,67,577,280 + 878,1,10,3,3,457,810,810,630,810, + 457,173,451,1063,417,135,227,708,810,17, + 17,807,670,268,224,810,810,17,457,1067, + 1002,980,224,451,457,803,224,417,125,895, + 939,708,708,708,708,1065,939,401,175,418, + 418,418,418,418,418,418,418,418,812,818, + 823,820,827,825,832,830,834,833,835,271, + 836,268,851,17,17,1063,991,1002,895,1002, + 860,1002,862,1002,986,1065,457,268,268,17, + 562,455,457,322,803,460,125,135,401,670, + 670,670,670,457,743,224,224,215,401,898, + 669,980,401,812,979,979,743,417,418,418, + 418,418,418,418,418,418,418,418,418,418, + 418,418,418,418,418,418,418,417,417,417, + 417,417,417,417,417,417,417,417,417,418, + 796,795,796,807,324,457,894,369,467,472, + 895,478,457,457,457,369,796,1067,457,562, + 803,802,417,135,224,224,796,796,796,796, + 369,224,418,1063,591,581,580,483,1009,1009, + 1065,175,268,669,417,224,454,456,454,224, + 268,820,820,818,818,818,825,825,825,825, + 823,823,830,827,827,833,832,834,1079,835, + 401,324,894,473,894,369,894,478,478,457, + 369,457,562,803,124,939,939,939,939,457, + 457,215,224,593,595,457,980,418,670,816, + 180,224,457,456,980,417,125,457,324,1079, + 863,708,371,70,1069,324,894,894,870,457, + 478,125,519,124,457,122,134,417,417,417, + 417,939,939,224,585,573,584,595,369,455, + 224,816,1063,1067,457,455,980,524,895,796, + 708,454,893,1071,939,569,697,871,457,125, + 418,457,122,122,224,224,224,224,743,743, + 788,417,582,582,589,1063,710,224,457,816, + 817,816,417,180,75,812,1067,455,524,524, + 78,340,455,894,894,451,856,702,418,1079, + 12,595,870,457,1065,1065,457,224,224,788, + 417,417,593,573,788,1044,816,743,418,268, + 75,857,125,786,941,313,939,863,114,524, + 524,340,455,894,895,1065,1071,418,418,595, + 457,457,457,790,788,817,224,268,77,313, + 786,798,1065,125,795,708,128,128,857,895, + 381,569,457,939,224,457,457,790,790,78, + 524,857,856,224,1065,457,340,78,340,794, + 794,888,382,1065,457,743,890,939,790,524, + 451,857,457,457,340,670,670,888,381,1079, + 418,1079,857,380,939,939,939,382,939,457, + 279,857,857,457,895,224,890,596,125,457, + 857,795,373,939,373,382,1079,382,401,401, + 399,868,401,857,857,15,888,892,223,857, + 628,710,382,224,451,224,399,313,939,224, + 888,892,670,128,224,224,1057,382,15,382, + 857,313,417,382,379,794,895,895,1059,417, + 380,743,857,224,454,382,224,857,382 }; }; public final static char asb[] = Asb.asb; @@ -1781,114 +1789,114 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Asr { public final static byte asr[] = {0, - 121,0,75,65,73,95,74,64,59,121, - 3,8,70,13,69,0,13,121,70,8, - 71,0,96,90,11,12,91,92,88,89, - 30,93,94,97,98,99,100,101,102,117, - 73,95,69,104,105,106,107,108,109,110, - 111,112,113,118,71,13,121,65,1,2, - 9,6,4,3,59,70,74,8,0,8, - 74,15,16,31,17,32,33,18,19,20, - 34,21,22,35,36,37,57,38,39,10, - 23,24,25,41,42,43,28,3,26,27, - 9,6,11,12,29,4,44,5,7,1, - 2,63,62,0,71,62,63,57,26,27, - 9,6,11,12,29,35,3,41,44,42, - 43,28,38,33,37,16,25,15,21,19, - 20,22,23,18,17,24,32,36,34,31, - 39,64,8,7,1,2,5,4,10,0, - 62,63,3,10,32,36,34,31,39,16, - 25,15,21,19,20,22,23,18,17,24, - 41,44,42,43,28,38,33,37,5,7, - 4,26,27,9,6,11,12,29,35,1, - 2,118,8,0,65,73,95,70,118,74, - 71,121,15,16,31,62,17,32,33,18, - 19,20,63,34,21,22,35,36,37,57, - 38,39,10,23,24,25,41,42,43,28, - 26,27,11,12,29,44,8,9,6,4, - 13,1,2,7,3,5,0,8,73,118, - 74,13,70,0,4,8,73,64,30,0, - 87,114,115,116,54,73,119,122,71,72, - 75,58,56,60,77,79,85,83,76,81, - 82,84,86,64,78,80,13,8,47,61, - 45,66,48,14,49,50,51,52,53,67, - 55,68,40,46,57,62,63,10,32,36, - 34,31,39,16,25,15,21,19,20,22, - 23,18,17,24,41,44,42,43,28,38, - 33,37,26,27,11,12,29,35,9,6, - 3,4,7,5,1,2,0,47,15,16, - 45,17,48,14,18,49,50,19,20,51, - 7,52,21,22,53,55,23,40,24,46, - 25,1,2,8,59,9,6,5,4,74, - 13,3,0,8,70,71,69,0,8,64, - 70,0,73,8,59,69,70,13,30,0, - 8,64,69,0,64,61,45,17,66,48, - 18,49,50,19,20,51,52,21,22,53, - 67,55,68,23,40,24,46,25,16,15, - 47,8,3,9,6,13,58,60,87,14, - 54,7,1,2,5,4,10,56,0,31, - 62,32,33,63,7,34,35,36,37,57, - 38,39,41,42,43,28,26,27,9,6, - 11,12,5,29,65,44,3,10,66,61, - 67,68,16,25,15,21,19,20,22,23, - 18,17,24,47,52,53,14,51,50,48, - 45,46,49,55,1,2,4,40,0,76, - 0,57,45,7,46,5,1,2,4,75, - 64,120,103,26,27,59,3,96,90,6, - 91,92,11,12,89,88,30,93,94,97, - 98,9,99,100,101,65,95,74,121,69, - 104,105,106,107,108,109,110,111,112,113, - 73,118,71,102,117,70,13,8,0,65, - 69,70,1,2,0,87,56,7,114,115, - 116,58,8,3,9,6,5,73,71,13, - 72,47,15,16,61,45,17,66,48,14, - 18,49,50,19,20,51,52,21,22,53, - 67,55,10,68,23,40,24,46,25,4, - 1,2,54,0,4,8,73,64,0,9, - 6,4,5,7,1,2,3,59,65,69, - 70,8,74,95,0,7,5,3,59,6, - 9,95,47,15,16,45,17,66,48,14, - 18,49,50,19,20,51,52,21,22,53, - 67,55,10,68,23,40,24,46,25,1, - 2,4,74,8,61,0,1,2,8,71, - 0,40,1,2,4,114,115,116,0,60, - 47,15,16,61,45,17,66,48,87,14, - 18,49,50,19,20,51,56,52,21,22, - 53,67,55,10,68,23,58,40,24,46, - 25,8,3,9,4,71,13,7,5,1, - 2,54,6,0,45,46,57,8,65,95, - 69,70,74,0,62,63,26,27,9,6, - 11,12,5,29,35,3,4,7,41,44, - 42,43,38,33,37,16,25,15,21,19, - 20,22,23,18,17,24,10,32,36,34, - 31,39,59,1,2,28,0,47,15,16, - 61,45,17,66,48,14,18,49,50,19, - 20,51,52,21,22,53,67,55,10,68, - 23,40,24,46,25,1,2,4,95,0, - 61,45,17,66,48,18,49,50,19,20, - 51,52,21,22,53,67,55,10,68,23, - 40,24,46,25,16,15,47,8,3,9, - 6,13,58,56,60,87,14,30,4,7, - 1,2,5,54,0,119,0,9,6,4, - 3,5,7,72,1,2,0,10,66,61, - 67,68,16,25,15,21,19,20,22,23, - 18,17,24,75,73,95,118,71,64,121, - 120,96,103,90,26,27,11,12,91,92, - 88,89,30,65,93,94,97,98,99,100, - 101,102,117,69,104,105,106,107,108,109, - 110,111,112,113,70,47,45,48,14,49, - 50,51,52,53,55,40,46,13,8,74, - 3,59,7,5,6,9,1,2,4,0, - 45,46,57,75,73,64,8,0,54,73, - 4,64,8,1,2,0,13,8,7,5, - 3,1,2,6,9,4,73,0,47,15, - 16,61,45,17,66,48,14,18,49,50, - 19,20,51,52,21,22,53,67,55,10, - 68,23,40,24,46,25,1,2,4,63, - 62,11,12,6,91,92,99,9,100,5, - 29,30,107,108,104,105,106,112,111,113, - 89,88,109,110,97,98,93,94,101,102, - 26,27,90,103,3,59,69,70,65,0 + 121,0,75,68,73,91,74,62,59,121, + 3,8,70,11,69,0,48,15,16,61, + 46,30,63,17,31,65,49,12,32,18, + 50,51,19,20,52,64,53,33,21,22, + 34,54,35,66,37,57,38,55,39,67, + 23,40,24,47,25,41,42,43,28,3, + 26,27,9,6,13,14,29,68,45,7, + 1,2,4,10,5,0,62,61,46,17, + 65,49,18,50,51,19,20,52,53,21, + 22,54,66,55,67,23,40,24,47,25, + 16,15,48,8,3,9,6,11,58,60, + 87,12,36,7,1,2,5,4,10,56, + 0,11,121,70,8,71,0,68,69,70, + 1,2,0,71,57,26,27,9,6,13, + 14,29,34,3,4,41,45,42,43,28, + 38,32,37,16,25,15,21,19,20,22, + 23,18,17,24,10,31,35,33,30,39, + 62,8,7,5,1,2,64,63,0,92, + 90,13,14,93,94,88,89,44,95,96, + 97,98,99,100,101,102,107,73,91,69, + 108,109,110,111,112,113,114,115,116,117, + 118,71,11,121,68,1,2,9,6,4, + 3,59,70,74,8,0,63,64,3,10, + 31,35,33,30,39,16,25,15,21,19, + 20,22,23,18,17,24,41,45,42,43, + 28,38,32,37,5,7,4,26,27,9, + 6,13,14,29,34,1,2,118,8,0, + 68,73,91,70,118,74,71,121,15,16, + 30,63,17,31,32,18,19,20,64,33, + 21,22,34,35,37,57,38,39,10,23, + 24,25,41,42,43,28,26,27,13,14, + 29,45,8,9,11,5,7,1,2,4, + 3,6,0,87,56,7,103,104,105,58, + 8,3,9,6,5,73,71,11,72,48, + 15,16,61,46,17,65,49,12,18,50, + 51,19,20,52,53,21,22,54,66,55, + 10,67,23,40,24,47,25,4,1,2, + 36,0,87,103,104,105,36,73,119,122, + 71,72,75,58,56,60,77,79,85,83, + 76,81,82,84,86,62,78,80,11,8, + 48,61,46,65,49,12,50,51,52,53, + 54,66,55,67,40,47,57,63,64,10, + 31,35,33,30,39,16,25,15,21,19, + 20,22,23,18,17,24,41,45,42,43, + 28,38,32,37,26,27,13,14,29,34, + 9,6,3,4,7,5,1,2,0,8, + 73,118,74,11,70,0,4,8,73,62, + 0,4,8,73,62,44,0,1,2,8, + 71,0,48,15,16,46,17,49,12,18, + 50,51,19,20,52,7,53,21,22,54, + 55,23,40,24,47,25,1,2,8,59, + 9,6,5,4,74,11,3,0,8,70, + 71,69,0,60,48,15,16,61,46,17, + 65,49,87,12,18,50,51,19,20,52, + 56,53,21,22,54,66,55,10,67,23, + 58,40,24,47,25,8,3,9,4,71, + 11,7,6,5,1,2,36,0,8,62, + 70,0,9,6,7,5,4,1,2,3, + 59,68,69,70,8,74,91,0,5,7, + 3,59,6,9,91,48,15,16,46,17, + 65,49,12,18,50,51,19,20,52,53, + 21,22,54,66,55,10,67,23,40,24, + 47,25,1,2,4,74,8,61,0,64, + 63,13,14,6,93,94,99,9,100,5, + 29,69,44,68,111,112,108,109,110,116, + 115,117,89,88,113,114,97,98,95,96, + 101,102,26,27,70,90,106,59,3,10, + 65,61,66,67,16,25,15,21,19,20, + 22,23,18,17,24,48,53,54,12,52, + 51,49,46,47,50,55,1,2,4,40, + 0,73,8,59,69,70,11,44,0,48, + 15,16,61,46,17,65,49,12,18,50, + 51,19,20,52,53,21,22,54,66,55, + 10,67,23,40,24,47,25,1,2,4, + 91,0,8,74,15,16,30,63,17,31, + 32,18,19,20,64,7,33,21,22,34, + 35,37,57,38,39,10,23,24,25,41, + 42,43,1,2,3,26,27,9,6,13, + 14,5,29,4,45,28,0,46,47,57, + 8,91,74,69,70,68,0,8,62,69, + 0,57,46,7,47,5,1,2,4,75, + 62,120,106,26,27,59,3,92,90,6, + 93,94,13,14,89,88,44,95,96,97, + 98,9,99,100,101,68,91,74,121,69, + 108,109,110,111,112,113,114,115,116,117, + 73,118,71,102,107,70,11,8,0,36, + 73,4,62,8,1,2,0,76,0,40, + 1,2,4,103,104,105,0,9,6,3, + 7,5,72,4,1,2,0,119,0,46, + 47,57,75,73,62,8,0,63,64,26, + 27,9,6,13,14,5,29,34,4,7, + 41,45,42,43,28,38,32,37,16,25, + 15,21,19,20,22,23,18,17,24,10, + 31,35,33,30,39,59,1,2,3,0, + 61,46,17,65,49,18,50,51,19,20, + 52,53,21,22,54,66,55,10,67,23, + 40,24,47,25,16,15,48,8,3,9, + 6,11,58,56,60,87,12,44,4,7, + 5,36,1,2,0,10,65,61,66,67, + 16,25,15,21,19,20,22,23,18,17, + 24,75,73,91,118,71,62,121,120,92, + 106,90,26,27,13,14,93,94,88,89, + 44,68,95,96,97,98,99,100,101,102, + 107,69,108,109,110,111,112,113,114,115, + 116,117,70,48,46,49,12,50,51,52, + 53,54,55,40,47,11,8,74,3,59, + 5,7,6,9,1,2,4,0,11,8, + 5,7,3,1,2,4,6,9,73,0 }; }; public final static byte asr[] = Asr.asr; @@ -1896,59 +1904,59 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Nasb { public final static char nasb[] = {0, - 160,12,17,15,15,48,12,12,270,199, - 12,160,184,147,64,81,46,12,12,165, - 165,41,5,86,268,12,12,12,12,165, - 268,204,48,165,268,66,165,120,12,12, - 12,12,12,185,12,54,174,48,66,66, - 195,66,66,66,66,66,66,12,12,12, - 12,12,12,12,12,12,12,12,66,12, - 86,12,208,77,33,33,184,231,232,120, - 232,244,232,133,232,225,10,48,86,86, - 33,12,137,12,140,165,174,38,38,38, - 38,48,58,272,12,268,268,127,1,66, - 72,46,174,12,25,25,58,104,66,66, - 66,66,66,66,66,66,66,66,66,66, - 66,66,66,66,66,66,66,66,66,66, - 66,66,66,66,66,66,66,66,104,66, - 12,11,12,12,12,144,165,246,165,167, - 165,12,120,165,167,48,11,12,12,165, - 137,66,64,268,268,12,12,12,12,74, - 268,66,184,126,15,15,12,12,12,10, - 48,86,38,147,208,268,207,48,207,268, - 86,12,12,12,12,12,12,12,12,12, + 104,12,54,20,20,221,12,12,111,12, + 141,107,104,186,92,57,75,12,12,254, + 254,49,5,80,262,12,12,254,109,12, + 12,38,262,203,141,254,262,59,254,131, + 12,12,12,12,12,11,12,213,141,59, + 59,217,59,59,59,59,59,59,12,12, + 12,12,12,12,12,12,12,12,12,59, + 12,80,12,28,28,186,238,239,131,239, + 153,239,45,239,232,10,141,80,80,28, + 97,107,141,12,124,12,139,254,213,33, + 33,33,33,141,121,262,262,134,1,59, + 15,38,213,12,22,22,121,118,59,59, + 59,59,59,59,59,59,59,59,59,59, + 59,59,59,59,59,59,59,59,59,59, + 59,59,59,59,59,59,59,59,118,59, + 12,12,12,207,254,155,254,171,254,12, + 131,254,171,141,109,12,12,12,109,38, + 254,124,59,57,262,262,12,12,12,12, + 42,262,59,186,133,20,20,12,12,12, + 10,141,80,33,92,262,106,141,106,262, + 80,12,12,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 77,33,234,165,165,107,45,107,165,200, - 11,45,246,137,140,12,12,12,12,246, - 11,142,268,150,165,48,46,66,38,165, - 51,268,48,192,46,66,140,48,124,12, - 112,12,12,13,249,234,107,107,170,246, - 200,140,12,12,246,23,63,104,104,104, - 104,12,12,268,12,158,12,259,44,246, - 268,31,144,12,199,246,46,165,120,12, - 12,185,165,178,12,12,185,61,167,140, - 66,200,23,12,268,268,268,268,58,58, - 165,66,12,12,157,184,259,268,246,165, - 99,12,104,144,193,12,12,208,187,165, - 212,165,167,165,91,204,124,12,66,12, - 97,165,221,167,185,185,11,268,268,137, - 66,66,150,202,165,12,31,58,66,86, - 193,124,140,12,212,250,12,134,13,212, - 187,259,208,91,109,19,160,66,66,259, - 11,167,167,165,137,99,268,86,119,178, - 12,12,185,140,12,12,155,155,124,109, - 139,12,167,12,268,11,11,95,165,212, - 165,124,12,268,185,167,259,212,165,12, - 12,165,101,19,11,58,165,12,95,187, - 160,124,167,113,259,38,38,131,115,12, - 66,12,124,12,12,12,12,116,12,200, - 122,124,124,200,88,268,137,266,140,113, - 124,12,93,12,12,116,12,116,217,217, - 257,12,217,124,124,12,165,165,268,124, - 12,38,116,268,160,268,262,165,12,268, - 131,95,38,155,268,268,165,116,12,116, - 124,160,104,116,93,12,88,88,158,66, - 12,241,124,268,207,116,268,124,116 + 28,241,254,254,95,37,95,254,222,109, + 37,155,97,124,139,12,12,12,12,155, + 109,166,262,148,254,141,38,59,33,254, + 65,262,141,174,38,59,139,141,164,12, + 17,12,12,13,248,241,95,95,177,155, + 222,139,12,12,155,40,56,118,118,118, + 118,12,12,262,12,102,12,191,36,155, + 262,90,207,12,221,155,38,254,131,12, + 12,11,254,181,12,12,11,68,171,139, + 59,222,40,12,262,262,262,262,121,121, + 254,59,12,12,101,186,191,262,155,254, + 199,12,118,207,175,12,12,107,194,254, + 224,254,171,254,82,203,164,12,59,12, + 88,254,158,171,11,11,109,262,262,124, + 59,59,148,201,254,12,90,121,59,80, + 175,164,139,12,224,249,12,46,13,224, + 194,191,107,82,229,144,104,59,59,191, + 109,171,171,254,124,199,262,80,130,181, + 12,12,11,139,12,12,52,52,164,229, + 138,12,171,12,262,109,109,70,254,224, + 254,164,12,262,11,171,191,224,254,12, + 12,254,115,144,109,121,254,12,70,194, + 104,164,171,18,191,33,33,86,126,12, + 59,12,164,12,12,12,12,127,12,222, + 162,164,164,222,72,262,124,260,139,18, + 164,12,84,12,12,127,12,127,264,264, + 189,12,264,164,164,12,254,254,262,164, + 12,33,127,262,104,262,256,254,12,262, + 86,70,33,52,262,262,254,127,12,127, + 164,104,118,127,84,12,72,72,102,59, + 12,210,164,262,106,127,262,164,127 }; }; public final static char nasb[] = Nasb.nasb; @@ -1956,34 +1964,33 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Nasr { public final static char nasr[] = {0, - 3,13,7,10,148,146,121,145,144,5, - 2,0,151,0,75,0,179,0,167,5, - 166,0,158,0,5,2,10,7,135,0, - 139,0,5,7,10,2,13,4,44,0, - 4,189,0,54,2,66,0,2,45,0, - 4,173,0,2,7,3,0,4,96,0, - 187,0,65,126,40,5,7,10,2,13, - 0,171,0,54,66,0,66,134,133,0, - 13,2,10,7,5,82,0,40,56,0, - 155,0,113,0,123,0,185,0,137,0, - 48,40,175,4,39,0,110,0,40,156, - 0,40,103,0,65,39,48,67,4,40, - 0,4,39,38,0,32,93,94,4,0, - 157,0,5,1,40,0,60,0,4,65, - 0,94,93,5,59,0,4,30,0,22, - 4,5,89,0,109,0,32,94,93,2, - 10,7,54,62,4,0,2,63,0,5, - 101,186,0,4,44,39,0,2,62,54, - 7,10,4,89,5,0,115,4,48,81, - 0,2,114,0,5,7,10,13,3,1, - 0,94,93,54,62,59,5,7,10,2, - 0,4,48,81,83,0,4,44,102,0, - 5,101,163,0,2,5,121,117,118,119, - 13,86,0,4,48,81,101,46,5,0, - 4,174,0,5,45,2,3,0,38,54, - 7,10,2,4,153,0,39,177,22,4, - 0,44,4,176,0,44,4,32,0,4, - 44,168,0 + 3,13,10,9,148,146,120,145,144,2, + 5,0,151,0,170,0,40,102,0,74, + 0,5,2,9,10,135,0,5,10,9, + 2,13,4,45,0,132,2,63,0,158, + 0,132,63,0,5,1,40,0,4,188, + 0,108,0,178,0,65,125,40,5,10, + 9,2,13,0,4,172,0,186,0,122, + 0,40,55,0,13,2,9,10,5,81, + 0,155,0,112,0,157,0,184,0,139, + 0,4,30,0,109,0,63,134,133,0, + 32,93,92,4,62,5,10,9,2,0, + 4,45,189,0,48,40,174,4,39,0, + 4,95,0,60,0,65,39,48,66,4, + 40,0,32,92,93,4,0,4,65,0, + 44,2,0,167,5,166,0,22,4,5, + 88,0,5,44,2,3,0,5,100,163, + 0,4,39,38,0,93,92,5,59,0, + 2,58,0,2,113,0,5,100,185,0, + 2,62,9,10,4,5,88,0,39,176, + 22,4,0,114,4,48,80,0,137,0, + 93,92,10,9,2,62,5,59,0,4, + 173,0,4,45,39,0,5,10,9,13, + 3,1,0,4,48,80,82,0,40,156, + 0,2,5,120,116,117,118,13,85,0, + 4,48,80,100,46,5,0,38,5,2, + 9,10,153,4,0,45,4,175,0,45, + 4,32,0,4,45,101,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1992,17 +1999,17 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface TerminalIndex { public final static char terminalIndex[] = {0, 113,114,2,31,13,10,79,115,9,100, - 11,12,120,66,48,52,60,68,74,75, - 86,87,102,105,107,7,8,112,14,19, - 55,61,67,84,88,90,94,97,99,104, - 109,110,111,123,54,106,47,64,70,73, - 76,83,89,93,98,77,95,103,1,46, - 53,58,78,121,20,63,91,101,33,44, + 120,66,11,12,48,52,60,68,74,75, + 86,87,102,105,107,7,8,112,14,55, + 61,67,84,88,90,93,94,97,99,104, + 109,110,111,19,123,54,106,47,64,70, + 73,76,83,89,98,77,95,103,1,46, + 53,121,58,78,63,91,101,20,33,44, 119,122,30,118,96,108,49,50,56,57, 59,69,71,72,85,92,65,17,18,6, - 15,16,21,22,32,4,23,24,25,26, - 27,28,5,34,35,36,37,38,39,40, - 41,42,43,80,81,82,29,117,51,3, + 32,4,15,16,21,22,23,24,25,26, + 27,28,80,81,82,5,29,34,35,36, + 37,38,39,40,41,42,43,117,51,3, 124,62,116 }; }; @@ -2011,26 +2018,26 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 132,137,139,0,0,138,236,136,0,230, - 135,0,146,134,0,0,145,151,0,0, - 152,182,161,162,163,164,165,166,167,154, - 168,127,169,170,171,0,144,129,133,130, - 172,0,141,155,140,180,0,0,0,0, - 0,0,0,0,148,175,205,0,158,189, - 202,206,0,0,128,0,174,0,0,0, - 0,0,0,178,207,0,0,0,0,0, - 0,126,131,0,0,188,0,0,203,213, - 160,209,210,211,0,0,0,0,149,208, - 221,177,198,200,0,0,0,212,0,0, - 0,241,242,150,181,0,191,192,193,194, - 195,197,0,215,218,0,220,0,239,0, - 240,0,142,143,147,0,0,157,159,0, - 173,0,183,184,185,186,187,190,0,196, - 0,199,204,0,0,216,217,0,0,222, - 225,227,229,0,233,234,235,237,238,125, - 0,153,156,0,176,0,179,0,201,214, - 219,0,223,224,226,228,0,231,232,243, - 244,0,0,0,0,0,0 + 132,137,138,0,0,136,0,0,229,235, + 135,0,145,134,0,0,144,150,0,0, + 151,181,160,161,162,163,164,165,166,153, + 167,127,168,143,169,170,0,129,133,130, + 171,0,140,139,154,179,0,0,0,0, + 0,0,0,147,174,204,0,0,157,188, + 201,205,0,0,128,173,0,0,0,0, + 0,0,177,206,0,0,0,0,0,0, + 126,131,0,0,187,0,0,202,212,159, + 208,209,210,0,0,148,0,0,207,220, + 176,197,199,0,0,0,211,0,0,0, + 240,241,149,180,0,190,191,192,193,194, + 196,0,214,217,0,219,0,238,0,239, + 0,0,141,142,146,0,0,156,158,0, + 172,0,182,183,184,185,186,189,0,195, + 0,198,203,0,0,215,216,0,0,221, + 224,226,228,0,232,233,234,237,125,0, + 152,155,0,175,0,178,0,200,213,218, + 0,222,223,225,227,0,230,231,236,242, + 243,0,0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2038,18 +2045,18 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopePrefix { public final static char scopePrefix[] = { - 156,578,597,529,545,556,567,361,266,280, - 302,308,42,291,381,419,164,586,472,20, - 51,71,80,85,90,127,192,297,314,325, - 336,141,272,286,500,27,141,371,336,605, - 27,214,245,1,14,61,76,106,227,319, - 332,341,350,354,437,465,494,521,525,615, - 619,623,97,7,97,399,415,428,449,513, - 428,536,552,563,574,204,483,56,56,153, - 219,222,240,261,222,222,56,358,462,469, - 153,56,636,110,233,403,443,456,116,116, - 233,56,233,390,174,104,441,627,634,627, - 634,65,409,134,104,104,250 + 156,572,591,523,539,550,561,355,262,276, + 298,304,42,287,375,413,164,580,466,20, + 51,71,80,85,90,127,192,293,310,321, + 332,141,268,282,494,27,141,365,332,599, + 27,214,241,1,14,61,76,106,315,328, + 337,344,348,431,459,488,515,519,609,613, + 617,97,7,97,393,409,422,443,507,422, + 530,546,557,568,204,477,56,56,153,219, + 222,56,236,257,222,222,56,352,456,463, + 153,56,632,110,229,397,437,450,116,116, + 229,56,229,384,174,104,435,621,628,621, + 628,65,403,134,104,104,246 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2057,18 +2064,18 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,5,5,5,5,368,132,95, - 132,132,48,277,387,425,170,67,478,25, - 25,25,59,59,95,132,197,132,132,330, - 330,146,277,101,505,38,149,376,592,610, - 32,208,208,5,18,5,59,95,231,323, - 323,323,95,95,132,243,5,5,5,5, - 5,243,231,11,101,368,368,368,453,505, - 432,540,540,540,540,208,487,59,59,5, - 5,225,243,5,264,264,348,95,5,243, - 5,498,5,113,345,406,446,459,119,123, - 236,517,508,393,177,95,95,629,629,631, - 631,67,411,136,199,184,252 + 18,5,5,5,5,5,5,362,132,95, + 132,132,48,273,381,419,170,67,472,25, + 25,25,59,59,95,132,197,132,132,326, + 326,146,273,101,499,38,149,370,586,604, + 32,208,208,5,18,5,59,95,319,319, + 319,95,95,132,239,5,5,5,5,5, + 239,630,11,101,362,362,362,447,499,426, + 534,534,534,534,208,481,59,59,5,5, + 225,227,239,5,260,260,227,95,5,239, + 5,492,5,113,341,400,440,453,119,123, + 232,511,502,387,177,95,95,623,623,625, + 625,67,405,136,199,184,248 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2076,18 +2083,18 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeLhs { public final static char scopeLhs[] = { - 46,17,17,17,17,17,17,70,85,47, - 79,119,76,52,70,69,46,17,19,3, - 6,9,163,163,160,117,46,80,119,118, - 120,125,53,47,135,130,125,70,17,17, - 130,95,154,132,73,166,163,160,58,118, - 118,120,178,50,56,139,18,17,17,17, - 17,17,12,113,160,70,69,69,36,135, - 69,17,17,17,17,95,19,167,163,179, - 93,100,75,57,153,74,120,71,140,139, - 171,135,16,160,120,102,68,21,127,127, - 59,135,135,70,46,160,64,133,45,133, - 45,166,102,117,46,46,154 + 46,17,17,17,17,17,17,69,84,47, + 78,118,75,52,69,68,46,17,19,3, + 7,8,163,163,160,116,46,79,118,117, + 119,124,53,47,135,129,124,69,17,17, + 129,94,154,131,72,166,163,160,117,117, + 119,177,50,55,139,18,17,17,17,17, + 17,12,112,160,69,68,68,37,135,68, + 17,17,17,17,94,19,167,163,178,92, + 99,57,74,56,153,73,119,70,140,139, + 170,135,16,160,119,101,67,21,126,126, + 59,135,135,69,46,160,64,133,44,133, + 44,166,101,116,46,46,154 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2095,18 +2102,18 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeLa { public final static byte scopeLa[] = { - 119,74,74,74,74,74,74,74,71,13, - 71,71,65,1,74,122,64,3,74,65, - 65,65,1,1,13,71,64,71,71,1, - 1,71,1,1,4,65,70,13,1,1, - 65,74,74,74,119,74,1,13,1,1, - 1,1,13,13,71,118,74,74,74,74, - 74,118,1,74,1,74,74,74,73,4, - 74,65,65,65,65,74,3,1,1,74, - 74,3,118,74,1,1,1,13,74,118, - 74,5,74,1,54,69,73,74,1,1, - 6,1,54,76,75,13,13,4,4,4, - 4,3,1,64,1,1,3 + 119,74,74,74,74,74,74,74,71,11, + 71,71,68,1,74,122,62,3,74,68, + 68,68,1,1,11,71,62,71,71,1, + 1,71,1,1,4,68,70,11,1,1, + 68,74,74,74,119,74,1,11,1,1, + 1,11,11,71,118,74,74,74,74,74, + 118,1,74,1,74,74,74,73,4,74, + 68,68,68,68,74,3,1,1,74,74, + 3,1,118,74,1,1,1,11,74,118, + 74,5,74,1,36,69,73,74,1,1, + 6,1,36,76,75,11,11,4,4,4, + 4,3,1,62,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2114,16 +2121,16 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeStateSet { public final static char scopeStateSet[] = { - 78,250,250,250,250,250,250,88,69,78, - 67,108,67,80,88,88,78,250,250,182, - 224,225,58,58,64,108,78,67,108,108, - 108,313,80,78,100,48,313,88,250,250, - 48,155,61,24,88,28,58,64,165,108, - 108,108,22,80,31,55,250,250,250,250, - 250,250,245,6,64,88,88,88,282,100, - 88,250,250,250,250,155,250,28,58,163, - 155,157,151,165,61,170,108,88,52,55, - 103,100,250,64,108,1,88,251,108,108, + 78,252,252,252,252,252,252,88,69,78, + 67,108,67,80,88,88,78,252,252,183, + 227,227,58,58,64,108,78,67,108,108, + 108,315,80,78,100,48,315,88,252,252, + 48,156,61,24,88,28,58,64,108,108, + 108,22,80,31,55,252,252,252,252,252, + 252,231,6,64,88,88,88,284,100,88, + 252,252,252,252,156,252,28,58,164,156, + 158,166,152,166,61,171,108,88,52,55, + 103,100,252,64,108,1,88,253,108,108, 112,100,100,88,78,64,11,105,128,105, 128,28,1,108,78,78,61 }; @@ -2134,69 +2141,69 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeRhs { public final static char scopeRhs[] = {0, 314,3,57,0,127,0,313,3,119,0, - 127,175,0,127,179,75,0,217,0,251, - 127,30,125,0,20,0,292,127,30,54, + 127,174,0,127,178,75,0,216,0,250, + 127,44,125,0,20,0,291,127,44,36, 0,20,53,0,33,134,0,20,53,0, - 0,292,127,30,54,204,0,20,131,0, - 251,127,30,130,0,186,128,0,144,0, - 219,3,290,0,290,0,2,0,127,0, - 251,127,30,133,0,186,128,224,0,186, - 128,40,224,0,186,128,310,40,0,131, - 189,168,128,0,129,0,189,168,128,0, - 136,129,0,171,0,306,127,171,0,127, - 171,0,223,129,0,168,244,0,139,0, - 0,0,137,0,0,0,305,127,163,250, - 0,128,0,250,0,130,0,0,128,0, - 304,127,163,249,0,128,0,0,44,128, + 0,291,127,44,36,203,0,20,131,0, + 250,127,44,133,0,181,128,0,143,0, + 218,3,290,0,290,0,2,0,127,0, + 250,127,44,132,0,181,128,223,0,181, + 128,40,223,0,181,128,309,40,0,129, + 186,167,128,0,129,0,186,167,128,0, + 136,129,0,171,0,305,127,171,0,127, + 171,0,222,129,0,167,243,0,138,0, + 0,0,137,0,0,0,304,127,163,249, + 0,128,0,249,0,130,0,0,128,0, + 303,127,163,248,0,128,0,0,44,128, 0,0,153,3,0,127,279,278,127,75, - 276,171,0,278,127,75,276,171,0,216, - 0,217,0,276,171,0,96,0,0,216, - 0,217,0,204,96,0,0,216,0,217, - 0,278,127,276,171,0,216,0,204,0, - 0,216,0,229,127,3,0,127,0,0, - 0,0,0,229,127,3,216,0,223,3, - 0,212,127,0,209,0,189,168,177,0, - 136,0,168,128,0,10,0,0,0,214, - 59,0,126,0,229,127,3,180,0,180, - 0,2,0,0,127,0,0,0,0,0, - 197,3,0,202,0,239,127,163,28,14, - 0,186,128,56,58,0,198,129,0,131, - 186,128,274,58,0,186,128,274,58,0, - 186,128,69,124,56,0,239,127,163,56, - 0,239,127,163,226,56,0,272,127,163, - 124,66,0,272,127,163,66,0,186,128, - 66,0,137,0,189,186,128,244,0,139, - 0,186,128,244,0,189,168,128,10,0, - 168,128,10,0,93,139,0,149,0,265, - 127,145,0,265,127,171,0,162,85,0, - 297,161,299,300,3,82,0,127,174,0, - 299,300,3,82,0,129,0,127,174,0, - 162,3,76,190,81,0,127,129,0,190, - 81,0,108,2,133,127,129,0,225,3, - 76,0,197,167,0,33,172,0,167,0, - 178,33,172,0,225,3,86,0,190,155, - 225,3,84,0,62,174,0,225,3,84, - 0,127,174,62,174,0,298,127,163,0, - 162,0,214,78,0,30,174,0,162,117, - 158,0,30,172,0,178,3,0,127,152, - 0,219,3,0,214,59,262,0,162,59, - 0,178,3,294,63,128,0,127,0,0, - 0,0,294,63,128,0,2,148,127,0, - 0,0,0,178,3,35,0,150,0,126, - 54,168,128,0,31,150,0,93,139,31, - 150,0,222,186,128,0,149,31,150,0, - 178,3,39,0,162,3,39,0,162,3, - 65,178,30,31,0,178,30,31,0,20, - 2,133,127,0,162,3,65,178,30,34, - 0,178,30,34,0,162,3,65,178,30, - 36,0,178,30,36,0,162,3,65,178, - 30,32,0,178,30,32,0,219,3,126, - 189,168,128,10,0,126,189,168,128,10, - 0,139,2,0,127,0,219,3,125,177, - 168,128,10,0,177,168,128,10,0,137, - 2,0,127,0,219,3,136,0,219,3, - 140,0,162,59,140,0,257,0,31,0, - 31,142,0,166,0,162,3,0 + 276,171,0,278,127,75,276,171,0,215, + 0,216,0,276,171,0,96,0,0,215, + 0,216,0,203,96,0,0,215,0,216, + 0,278,127,276,171,0,215,0,203,0, + 0,215,0,228,127,3,0,127,0,0, + 0,0,0,228,127,3,215,0,222,3, + 0,211,127,0,208,0,148,0,167,128, + 0,10,0,0,0,213,59,0,126,0, + 228,127,3,179,0,179,0,2,0,0, + 127,0,0,0,0,0,196,3,0,201, + 0,238,127,163,28,12,0,181,128,56, + 58,0,197,129,0,129,181,128,274,58, + 0,181,128,274,58,0,181,128,69,124, + 56,0,238,127,163,56,0,238,127,163, + 225,56,0,272,127,163,124,65,0,272, + 127,163,65,0,181,128,65,0,137,0, + 186,181,128,243,0,138,0,181,128,243, + 0,186,167,128,10,0,167,128,10,0, + 93,138,0,265,127,145,0,265,127,171, + 0,162,85,0,296,161,298,299,3,82, + 0,127,173,0,298,299,3,82,0,129, + 0,127,173,0,162,3,76,189,81,0, + 127,129,0,189,81,0,108,2,133,127, + 129,0,224,3,76,0,196,168,0,33, + 171,0,168,0,177,33,171,0,224,3, + 86,0,189,155,224,3,84,0,62,173, + 0,224,3,84,0,127,173,62,173,0, + 297,127,163,0,162,0,213,78,0,30, + 173,0,162,107,159,0,30,171,0,177, + 3,0,127,151,0,218,3,0,213,59, + 262,0,162,59,0,177,3,293,64,128, + 0,127,0,0,0,0,293,64,128,0, + 2,147,127,0,0,0,0,177,3,34, + 0,149,0,126,36,167,128,0,31,149, + 0,93,138,31,149,0,219,181,128,0, + 148,31,149,0,177,3,39,0,162,3, + 39,0,162,3,68,177,44,30,0,177, + 44,30,0,20,2,133,127,0,162,3, + 68,177,44,33,0,177,44,33,0,162, + 3,68,177,44,35,0,177,44,35,0, + 162,3,68,177,44,31,0,177,44,31, + 0,218,3,126,186,167,128,10,0,126, + 186,167,128,10,0,138,2,0,127,0, + 218,3,125,255,167,128,10,0,255,167, + 128,10,0,137,2,0,127,0,218,3, + 136,0,218,3,140,0,162,59,140,0, + 257,0,31,0,31,141,0,166,0,136, + 0,162,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2204,38 +2211,38 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeState { public final static char scopeState[] = {0, - 4606,4714,4702,4123,0,1732,2936,1689,2617,0, - 3200,3146,3092,3038,2984,2930,2876,2822,2768,2574, - 2520,4507,0,2896,1941,1904,0,2791,625,0, - 3200,3146,2803,2802,3092,3038,2984,2930,2876,2822, - 1375,2768,2574,2520,4084,2523,0,4226,3025,2989, - 0,3496,2151,0,1509,676,0,4252,3420,0, - 2528,4462,0,4407,4358,0,4407,4358,3708,4234, - 4224,3622,4214,4132,4122,3610,0,4407,4358,3708, - 4234,4224,3622,4214,4132,4122,3610,3200,3146,3092, - 3038,2984,2930,2876,2822,2768,2574,2520,0,799, - 659,0,1047,0,3101,1299,0,536,4331,2597, - 0,3436,4102,3645,4496,1119,3147,3566,935,2937, - 2879,2961,1032,2828,3472,725,0,4601,4596,4589, - 4584,4580,4532,4525,4478,4690,4686,4676,4190,4186, - 4672,3676,3368,4667,2649,4383,4660,4611,736,0, - 2248,2161,728,583,4102,2879,3764,3335,3324,2605, - 3166,0,614,0,2528,4102,4496,4462,3472,3764, - 2725,3171,4339,3436,2847,3335,3566,3324,3063,4320, - 0,4601,3849,4596,3745,2809,4589,4584,4580,2736, - 914,4532,4525,1602,4478,1559,1516,1473,1389,1302, - 4690,3615,4686,4676,1251,1130,4190,4186,2863,4672, - 3676,3368,817,3680,4667,2649,4331,4383,4660,4611, - 2597,672,736,922,3764,2725,3171,4339,3436,2847, - 2701,2528,4102,4496,2545,3335,3566,3324,4462,2243, - 2156,3472,3063,4320,936,2069,579,799,659,3346, - 4080,4058,2256,2293,592,1180,2384,2356,2327,2746, - 2653,2493,2466,2439,2412,3584,3542,3447,3299,3274, - 4036,4014,3992,3970,3948,3926,3904,3882,3860,3794, - 631,1952,2206,2169,2119,2082,1259,1214,2032,1134, - 1995,1909,877,1866,1823,1780,1737,1694,1651,1608, - 1565,1522,1479,1436,1393,536,821,741,685,1343, - 1043,1306,1000,957,1087,0 + 4725,4811,4810,4808,0,1558,1566,1515,1523,0, + 3361,3307,3169,3115,3061,3007,2953,2897,2843,2649, + 2593,3503,0,2545,1298,1253,0,3504,2848,0, + 3361,3307,3837,2611,3169,3115,3061,3007,2953,2897, + 1294,2843,2649,2593,4424,4264,0,4435,3292,2920, + 0,3637,3579,0,3228,2148,0,2934,3338,0, + 4639,4537,0,4609,4414,0,4609,4414,3661,4296, + 4285,3646,4183,4173,4163,3576,0,4609,4414,3661, + 4296,4285,3646,4183,4173,4163,3576,3361,3307,3169, + 3115,3061,3007,2953,2897,2843,2649,2593,0,795, + 656,0,566,0,3393,2491,0,534,4410,2672, + 0,2799,3583,3280,4576,4311,4678,3459,3831,2866, + 3030,3630,854,2705,4510,726,0,4733,4714,4698, + 4669,4663,4624,4618,4425,4784,4431,3841,3770,3766, + 3534,3762,3146,3496,3092,3038,2874,3287,1256,2722, + 0,1424,1303,861,581,3583,3030,3242,2528,2514, + 2680,2064,0,985,0,4639,3583,4576,4537,4510, + 3242,3746,4550,4381,2799,4268,2528,3459,2514,4394, + 3778,0,4733,3084,4714,2578,2074,4698,4669,4663, + 1119,917,4624,4618,3700,4425,3684,3402,3066,2240, + 2159,4784,3195,4431,3841,2069,786,3770,3766,2635, + 2994,3534,3762,3146,732,3496,3092,3038,4410,2874, + 3287,1256,2246,2672,2722,622,2978,2775,1202,931, + 2541,3242,3746,4550,4381,2799,4268,4639,3583,4576, + 2528,3459,2514,4537,2556,577,795,656,4510,4394, + 3778,3599,4141,4119,2250,1123,2320,2288,2378,2350, + 590,2821,2728,2487,2460,2433,2406,3543,3472,626, + 3434,3255,4097,4075,4053,4031,4009,3987,3965,3943, + 3916,3894,3852,1949,2202,2164,2116,2078,1260,1213, + 2030,1159,1992,1906,870,1863,1820,1777,1734,1691, + 1648,1605,1562,1519,1476,1433,1390,534,815,738, + 683,1345,1076,1304,990,947,1033,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2243,59 +2250,59 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface InSymb { public final static char inSymb[] = {0, - 0,293,197,180,185,177,130,133,7,5, - 125,3,127,3,69,59,168,166,125,30, - 30,167,127,59,3,62,63,125,124,30, - 197,212,128,6,153,127,163,249,39,31, - 34,36,32,10,136,4,3,128,35,29, - 5,12,11,6,9,27,26,140,146,148, - 147,150,149,152,151,156,154,157,57,158, - 214,158,189,4,127,127,127,266,267,250, - 268,244,269,66,270,271,10,128,59,59, - 127,168,127,264,127,163,3,30,30,30, - 30,128,3,7,125,178,162,167,127,62, - 63,168,3,126,103,120,3,59,90,96, - 12,11,92,91,6,94,93,65,30,88, - 89,9,98,97,100,99,101,113,112,111, - 110,109,108,107,106,105,104,69,117,102, - 257,189,251,254,251,212,163,168,232,128, - 126,125,124,163,128,128,186,168,251,6, - 183,70,127,178,162,178,178,178,178,168, - 219,155,127,3,217,216,136,126,125,10, - 128,59,294,3,189,178,54,128,54,219, + 0,292,196,179,185,5,125,132,7,133, + 128,4,3,127,3,69,59,125,124,44, + 44,168,127,59,3,63,64,44,181,166, + 125,167,196,211,128,6,153,127,163,248, + 39,30,33,35,31,10,136,3,128,34, + 29,5,14,13,6,9,27,26,140,146, + 148,147,150,149,152,151,156,154,158,57, + 159,213,159,127,127,127,266,267,249,268, + 243,269,65,270,271,10,128,59,59,127, + 4,186,128,167,127,264,127,163,3,44, + 44,44,44,128,3,177,162,168,127,63, + 64,167,3,126,106,120,3,59,90,92, + 14,13,94,93,6,96,95,68,44,88, + 89,9,98,97,100,99,101,117,116,115, + 114,113,112,111,110,109,108,69,107,102, + 250,253,250,211,163,167,231,128,126,125, + 124,163,128,128,181,167,250,257,186,167, + 6,183,70,127,177,162,177,177,177,177, + 167,218,155,127,3,216,215,136,126,125, + 10,128,59,293,3,177,36,128,36,218, 162,147,147,146,146,146,149,149,149,149, - 148,148,151,150,150,154,152,156,162,157, - 4,70,127,126,125,127,186,127,163,127, - 186,168,54,127,304,65,65,65,65,189, - 177,212,223,127,3,128,168,205,3,295, - 167,153,128,186,168,73,305,128,169,224, - 56,54,204,58,171,307,127,127,73,189, - 127,272,124,273,189,188,70,3,3,3, - 3,126,125,229,230,145,231,127,168,54, - 178,127,127,222,5,54,168,163,226,30, - 54,274,276,127,180,309,224,40,128,272, + 148,148,151,150,150,154,152,156,162,158, + 70,127,126,125,127,181,127,163,127,181, + 167,36,4,127,303,68,68,68,68,186, + 255,211,222,127,3,128,167,204,3,294, + 168,153,128,181,167,73,304,128,169,223, + 56,36,203,58,171,306,127,127,73,186, + 127,272,124,273,186,188,70,3,3,3, + 3,126,125,228,229,145,230,127,167,36, + 177,127,127,219,5,36,167,163,225,44, + 36,274,276,127,179,308,223,40,128,272, 69,70,188,8,162,162,162,162,3,3, - 155,69,223,197,3,127,70,229,189,155, - 259,262,59,182,4,124,126,189,127,163, - 65,30,128,75,127,212,306,125,73,285, - 197,3,70,128,40,310,186,219,219,127, - 69,69,127,212,155,126,127,3,59,162, - 4,131,239,14,54,171,60,56,58,238, - 127,127,186,127,278,73,70,73,69,127, - 186,128,128,220,127,259,219,214,28,127, - 3,124,56,239,292,54,10,61,131,278, - 163,289,128,290,229,186,186,127,220,127, - 163,265,275,28,69,128,70,65,30,232, - 232,279,127,70,186,3,155,57,127,127, - 70,155,128,186,127,69,69,127,298,80, + 155,69,222,196,3,127,70,228,186,155, + 259,262,59,182,4,124,126,186,127,163, + 68,44,128,75,127,211,305,125,73,285, + 196,3,70,128,40,309,181,218,218,127, + 69,69,127,211,155,126,127,3,59,162, + 4,129,238,12,36,171,60,56,58,237, + 127,127,181,127,278,73,70,73,69,127, + 181,128,128,220,127,259,218,213,28,127, + 3,124,56,238,291,36,10,61,129,278, + 163,289,128,290,228,181,181,127,220,127, + 163,265,275,28,69,128,70,68,44,231, + 231,279,127,70,181,3,155,57,127,127, + 70,155,128,181,127,69,69,127,297,80, 78,1,162,8,86,84,82,81,76,83, - 85,79,77,56,75,219,127,3,239,186, - 226,292,280,119,8,73,214,73,3,3, - 3,190,3,124,162,124,179,220,314,226, - 65,3,73,225,167,225,300,145,76,225, - 127,127,70,61,95,313,167,155,197,155, - 299,127,3,155,280,232,155,155,127,69, - 190,161,265,162,69,122,297,155,155 + 85,79,77,56,75,218,127,3,238,181, + 225,291,280,119,8,73,213,73,3,3, + 3,189,3,124,162,124,178,220,314,225, + 68,3,73,224,168,224,299,145,76,224, + 127,127,70,61,91,313,168,155,196,155, + 298,127,3,155,280,231,155,155,127,69, + 189,161,265,162,69,122,296,155,155 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2441,7 +2448,6 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars "qualified_or_unqualified_name", "unqualified_id_name", "identifier_name", - "operator_function_id_name", "template_id_name", "nested_name_specifier", "class_or_namespace_name", @@ -2573,18 +2579,18 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public final static int NUM_STATES = 529, NT_OFFSET = 123, - LA_STATE_OFFSET = 5861, + LA_STATE_OFFSET = 5888, MAX_LA = 2147483647, - NUM_RULES = 535, + NUM_RULES = 533, NUM_NONTERMINALS = 197, NUM_SYMBOLS = 320, SEGMENT_SIZE = 8192, - START_STATE = 4320, + START_STATE = 3778, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4920, - ERROR_ACTION = 5326; + ACCEPT_ACTION = 4990, + ERROR_ACTION = 5355; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java index 67a7c9e9f76..001560b68bf 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java @@ -16,53 +16,53 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPNoFunctionDeclaratorParsersym { public final static int TK_asm = 60, - TK_auto = 47, + TK_auto = 48, TK_bool = 15, TK_break = 77, TK_case = 78, TK_catch = 119, TK_char = 16, TK_class = 61, - TK_const = 45, - TK_const_cast = 31, + TK_const = 46, + TK_const_cast = 30, TK_continue = 79, TK_default = 80, - TK_delete = 62, + TK_delete = 63, TK_do = 81, TK_double = 17, - TK_dynamic_cast = 32, + TK_dynamic_cast = 31, TK_else = 122, - TK_enum = 66, - TK_explicit = 48, + TK_enum = 65, + TK_explicit = 49, TK_export = 87, - TK_extern = 14, - TK_false = 33, + TK_extern = 12, + TK_false = 32, TK_float = 18, TK_for = 82, - TK_friend = 49, + TK_friend = 50, TK_goto = 83, TK_if = 84, - TK_inline = 50, + TK_inline = 51, TK_int = 19, TK_long = 20, - TK_mutable = 51, + TK_mutable = 52, TK_namespace = 56, - TK_new = 63, + TK_new = 64, TK_operator = 7, - TK_private = 114, - TK_protected = 115, - TK_public = 116, - TK_register = 52, - TK_reinterpret_cast = 34, + TK_private = 103, + TK_protected = 104, + TK_public = 105, + TK_register = 53, + TK_reinterpret_cast = 33, TK_return = 85, TK_short = 21, TK_signed = 22, - TK_sizeof = 35, - TK_static = 53, - TK_static_cast = 36, - TK_struct = 67, + TK_sizeof = 34, + TK_static = 54, + TK_static_cast = 35, + TK_struct = 66, TK_switch = 86, - TK_template = 54, + TK_template = 36, TK_this = 37, TK_throw = 57, TK_try = 75, @@ -70,12 +70,12 @@ public interface CPPNoFunctionDeclaratorParsersym { TK_typedef = 55, TK_typeid = 39, TK_typename = 10, - TK_union = 68, + TK_union = 67, TK_unsigned = 23, TK_using = 58, TK_virtual = 40, TK_void = 24, - TK_volatile = 46, + TK_volatile = 47, TK_wchar_t = 25, TK_while = 76, TK_integer = 41, @@ -89,54 +89,54 @@ public interface CPPNoFunctionDeclaratorParsersym { TK_LeftBracket = 59, TK_LeftParen = 3, TK_Dot = 120, - TK_DotStar = 96, - TK_Arrow = 103, + TK_DotStar = 92, + TK_Arrow = 106, TK_ArrowStar = 90, TK_PlusPlus = 26, TK_MinusMinus = 27, TK_And = 9, TK_Star = 6, - TK_Plus = 11, - TK_Minus = 12, + TK_Plus = 13, + TK_Minus = 14, TK_Tilde = 5, TK_Bang = 29, - TK_Slash = 91, - TK_Percent = 92, + TK_Slash = 93, + TK_Percent = 94, TK_RightShift = 88, TK_LeftShift = 89, - TK_LT = 30, - TK_GT = 65, - TK_LE = 93, - TK_GE = 94, + TK_LT = 44, + TK_GT = 68, + TK_LE = 95, + TK_GE = 96, TK_EQ = 97, TK_NE = 98, TK_Caret = 99, TK_Or = 100, TK_AndAnd = 101, TK_OrOr = 102, - TK_Question = 117, + TK_Question = 107, TK_Colon = 73, TK_ColonColon = 4, - TK_DotDotDot = 95, + TK_DotDotDot = 91, TK_Assign = 69, - 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_StarAssign = 108, + TK_SlashAssign = 109, + TK_PercentAssign = 110, + TK_PlusAssign = 111, + TK_MinusAssign = 112, + TK_RightShiftAssign = 113, + TK_LeftShiftAssign = 114, + TK_AndAssign = 115, + TK_CaretAssign = 116, + TK_OrAssign = 117, TK_Comma = 70, TK_RightBracket = 118, TK_RightParen = 74, TK_RightBrace = 71, - TK_SemiColon = 13, - TK_LeftBrace = 64, + TK_SemiColon = 11, + TK_LeftBrace = 62, TK_ERROR_TOKEN = 72, - TK_0 = 44, + TK_0 = 45, TK_EOF_TOKEN = 121; public final static String orderedTerminalSymbols[] = { @@ -151,10 +151,10 @@ public interface CPPNoFunctionDeclaratorParsersym { "EndOfCompletion", "And", "typename", - "Plus", - "Minus", "SemiColon", "extern", + "Plus", + "Minus", "bool", "char", "double", @@ -170,13 +170,13 @@ public interface CPPNoFunctionDeclaratorParsersym { "MinusMinus", "stringlit", "Bang", - "LT", "const_cast", "dynamic_cast", "false", "reinterpret_cast", "sizeof", "static_cast", + "template", "this", "true", "typeid", @@ -184,6 +184,7 @@ public interface CPPNoFunctionDeclaratorParsersym { "integer", "floating", "charconst", + "LT", "0", "const", "volatile", @@ -194,7 +195,6 @@ public interface CPPNoFunctionDeclaratorParsersym { "mutable", "register", "static", - "template", "typedef", "namespace", "throw", @@ -202,13 +202,13 @@ public interface CPPNoFunctionDeclaratorParsersym { "LeftBracket", "asm", "class", + "LeftBrace", "delete", "new", - "LeftBrace", - "GT", "enum", "struct", "union", + "GT", "Assign", "Comma", "RightBrace", @@ -231,19 +231,23 @@ public interface CPPNoFunctionDeclaratorParsersym { "RightShift", "LeftShift", "ArrowStar", + "DotDotDot", + "DotStar", "Slash", "Percent", "LE", "GE", - "DotDotDot", - "DotStar", "EQ", "NE", "Caret", "Or", "AndAnd", "OrOr", + "private", + "protected", + "public", "Arrow", + "Question", "StarAssign", "SlashAssign", "PercentAssign", @@ -254,10 +258,6 @@ public interface CPPNoFunctionDeclaratorParsersym { "AndAssign", "CaretAssign", "OrAssign", - "private", - "protected", - "public", - "Question", "RightBracket", "catch", "Dot", 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 c1225a9b329..1bb9c414797 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 @@ -416,1864 +416,1857 @@ public CPPParser(String[] mapFrom) { // constructor } // - // Rule 47: qualified_id_name ::= :: identifier_name + // Rule 47: qualified_id_name ::= :: unqualified_id_name // case 47: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 48: qualified_id_name ::= :: operator_function_id_name + // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // case 48: { action.builder. - consumeGlobalQualifiedId(); break; + consumeNestedNameSpecifier(true); break; } // - // Rule 49: qualified_id_name ::= :: template_id_name + // Rule 49: nested_name_specifier ::= class_or_namespace_name :: // case 49: { action.builder. - consumeGlobalQualifiedId(); break; + consumeNestedNameSpecifier(false); break; } // - // Rule 50: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // case 50: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 51: nested_name_specifier ::= class_or_namespace_name :: + // Rule 51: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // case 51: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 52: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name // case 52: { action.builder. - consumeNestedNameSpecifier(true); break; - } - - // - // Rule 53: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: - // - case 53: { action.builder. - consumeNestedNameSpecifier(false); break; - } - - // - // Rule 54: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name - // - case 54: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 56: nested_name_specifier_opt ::= $Empty + // Rule 54: nested_name_specifier_opt ::= $Empty // - case 56: { action.builder. + case 54: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 59: postfix_expression ::= postfix_expression [ expression ] + // Rule 57: postfix_expression ::= postfix_expression [ expression ] // - case 59: { action.builder. + case 57: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 60: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 60: { action.builder. + case 58: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 61: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 61: { action.builder. + case 59: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 62: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // + case 60: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // + case 61: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // case 62: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 63: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) - // - case 63: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 64: postfix_expression ::= postfix_expression . qualified_or_unqualified_name - // - case 64: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 65: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 65: { action.builder. + case 63: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 66: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 66: { action.builder. + case 64: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 67: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 67: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 68: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 68: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 69: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 69: { action.builder. + case 67: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 70: postfix_expression ::= postfix_expression ++ + // Rule 68: postfix_expression ::= postfix_expression ++ // - case 70: { action.builder. + case 68: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 71: postfix_expression ::= postfix_expression -- + // Rule 69: postfix_expression ::= postfix_expression -- // - case 71: { action.builder. + case 69: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 72: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 72: { action.builder. + case 70: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 73: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) // - case 73: { action.builder. + case 71: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 74: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 74: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 75: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) // - case 75: { action.builder. + case 73: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 76: postfix_expression ::= typeid ( expression ) + // Rule 74: postfix_expression ::= typeid ( expression ) // - case 76: { action.builder. + case 74: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 77: postfix_expression ::= typeid ( type_id ) + // Rule 75: postfix_expression ::= typeid ( type_id ) // - case 77: { action.builder. + case 75: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // + case 76: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // + case 77: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name // case 78: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 79: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name - // - case 79: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 80: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name - // - case 80: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 81: destructor_type_name ::= ~ identifier_token + // Rule 79: destructor_type_name ::= ~ identifier_token // - case 81: { action.builder. + case 79: { action.builder. consumeDestructorName(); break; } // - // Rule 82: destructor_type_name ::= ~ template_id_name + // Rule 80: destructor_type_name ::= ~ template_id_name // - case 82: { action.builder. + case 80: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 86: unary_expression ::= ++ cast_expression + // Rule 84: unary_expression ::= ++ cast_expression // - case 86: { action.builder. + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 87: unary_expression ::= -- cast_expression + // Rule 85: unary_expression ::= -- cast_expression // - case 87: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 88: unary_expression ::= & cast_expression + // Rule 86: unary_expression ::= & cast_expression // - case 88: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 89: unary_expression ::= * cast_expression + // Rule 87: unary_expression ::= * cast_expression // - case 89: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 90: unary_expression ::= + cast_expression + // Rule 88: unary_expression ::= + cast_expression // - case 90: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 91: unary_expression ::= - cast_expression + // Rule 89: unary_expression ::= - cast_expression // - case 91: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 92: unary_expression ::= ~ cast_expression + // Rule 90: unary_expression ::= ~ cast_expression // - case 92: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 93: unary_expression ::= ! cast_expression + // Rule 91: unary_expression ::= ! cast_expression // - case 93: { action.builder. + case 91: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 94: unary_expression ::= sizeof unary_expression + // Rule 92: unary_expression ::= sizeof unary_expression // - case 94: { action.builder. + case 92: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 95: unary_expression ::= sizeof ( type_id ) + // Rule 93: unary_expression ::= sizeof ( type_id ) // - case 95: { action.builder. + case 93: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } // - // Rule 96: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt + // Rule 94: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 96: { action.builder. + case 94: { action.builder. consumeExpressionNew(true); break; } // - // Rule 97: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt + // Rule 95: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt // - case 97: { action.builder. + case 95: { action.builder. consumeExpressionNew(false); break; } // - // Rule 99: new_placement_opt ::= $Empty + // Rule 97: new_placement_opt ::= $Empty // - case 99: { action.builder. + case 97: { action.builder. consumeEmpty(); break; } // - // Rule 100: new_type_id ::= type_specifier_seq + // Rule 98: new_type_id ::= type_specifier_seq // - case 100: { action.builder. + case 98: { action.builder. consumeTypeId(false); break; } // - // Rule 101: new_type_id ::= type_specifier_seq new_declarator + // Rule 99: new_type_id ::= type_specifier_seq new_declarator // - case 101: { action.builder. + case 99: { action.builder. consumeTypeId(true); break; } // - // Rule 102: new_declarator ::= new_pointer_operators + // Rule 100: new_declarator ::= new_pointer_operators // - case 102: { action.builder. + case 100: { action.builder. consumeNewDeclarator(); break; } // - // Rule 111: new_initializer_opt ::= $Empty + // Rule 109: new_initializer_opt ::= $Empty // - case 111: { action.builder. + case 109: { action.builder. consumeEmpty(); break; } // - // Rule 112: delete_expression ::= dcolon_opt delete cast_expression + // Rule 110: delete_expression ::= dcolon_opt delete cast_expression // - case 112: { action.builder. + case 110: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 113: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 111: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 113: { action.builder. + case 111: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 115: cast_expression ::= ( type_id ) cast_expression + // Rule 113: cast_expression ::= ( type_id ) cast_expression // - case 115: { action.builder. + case 113: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 117: pm_expression ::= pm_expression .* cast_expression + // Rule 115: pm_expression ::= pm_expression .* cast_expression // - case 117: { action.builder. + case 115: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 118: pm_expression ::= pm_expression ->* cast_expression + // Rule 116: pm_expression ::= pm_expression ->* cast_expression // - case 118: { action.builder. + case 116: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 120: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 118: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 120: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 121: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 119: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 121: { action.builder. + case 119: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 122: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 120: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 122: { action.builder. + case 120: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 124: additive_expression ::= additive_expression + multiplicative_expression + // Rule 122: additive_expression ::= additive_expression + multiplicative_expression // - case 124: { action.builder. + case 122: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 125: additive_expression ::= additive_expression - multiplicative_expression + // Rule 123: additive_expression ::= additive_expression - multiplicative_expression // - case 125: { action.builder. + case 123: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 127: shift_expression ::= shift_expression << additive_expression + // Rule 125: shift_expression ::= shift_expression << additive_expression // - case 127: { action.builder. + case 125: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 128: shift_expression ::= shift_expression >> additive_expression + // Rule 126: shift_expression ::= shift_expression >> additive_expression // - case 128: { action.builder. + case 126: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 130: relational_expression ::= relational_expression < shift_expression + // Rule 128: relational_expression ::= relational_expression < shift_expression // - case 130: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 131: relational_expression ::= relational_expression > shift_expression + // Rule 129: relational_expression ::= relational_expression > shift_expression // - case 131: { action.builder. + case 129: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 132: relational_expression ::= relational_expression <= shift_expression + // Rule 130: relational_expression ::= relational_expression <= shift_expression // - case 132: { action.builder. + case 130: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 133: relational_expression ::= relational_expression >= shift_expression + // Rule 131: relational_expression ::= relational_expression >= shift_expression // - case 133: { action.builder. + case 131: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 135: equality_expression ::= equality_expression == relational_expression + // Rule 133: equality_expression ::= equality_expression == relational_expression // - case 135: { action.builder. + case 133: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 136: equality_expression ::= equality_expression != relational_expression + // Rule 134: equality_expression ::= equality_expression != relational_expression // - case 136: { action.builder. + case 134: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 138: and_expression ::= and_expression & equality_expression + // Rule 136: and_expression ::= and_expression & equality_expression // - case 138: { action.builder. + case 136: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 140: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 138: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 140: { action.builder. + case 138: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 142: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 140: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 142: { action.builder. + case 140: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 144: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 142: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 144: { action.builder. + case 142: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 146: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 144: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 146: { action.builder. + case 144: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 148: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 146: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 148: { action.builder. + case 146: { action.builder. consumeExpressionConditional(); break; } // - // Rule 149: throw_expression ::= throw + // Rule 147: throw_expression ::= throw // - case 149: { action.builder. + case 147: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 150: throw_expression ::= throw assignment_expression + // Rule 148: throw_expression ::= throw assignment_expression // - case 150: { action.builder. + case 148: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 153: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 151: assignment_expression ::= logical_or_expression = assignment_expression // - case 153: { action.builder. + case 151: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 152: assignment_expression ::= logical_or_expression *= assignment_expression // - case 154: { action.builder. + case 152: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression /= assignment_expression // - case 155: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression %= assignment_expression // - case 156: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression += assignment_expression // - case 157: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 158: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression -= assignment_expression // - case 158: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 159: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 157: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 159: { action.builder. + case 157: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 160: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 158: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 160: { action.builder. + case 158: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 161: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 159: assignment_expression ::= logical_or_expression &= assignment_expression // - case 161: { action.builder. + case 159: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 162: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 160: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 162: { action.builder. + case 160: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 163: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 161: assignment_expression ::= logical_or_expression |= assignment_expression // - case 163: { action.builder. + case 161: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 165: expression_list ::= expression_list_actual + // Rule 163: expression_list ::= expression_list_actual // - case 165: { action.builder. + case 163: { action.builder. consumeExpressionList(); break; } // - // Rule 169: expression_list_opt ::= $Empty + // Rule 167: expression_list_opt ::= $Empty + // + case 167: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 169: expression_opt ::= $Empty // case 169: { action.builder. consumeEmpty(); break; } // - // Rule 171: expression_opt ::= $Empty + // Rule 172: constant_expression_opt ::= $Empty // - case 171: { action.builder. + case 172: { action.builder. consumeEmpty(); break; } // - // Rule 174: constant_expression_opt ::= $Empty + // Rule 181: statement ::= ERROR_TOKEN // - case 174: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 183: statement ::= ERROR_TOKEN - // - case 183: { action.builder. + case 181: { action.builder. consumeStatementProblem(); break; } // - // Rule 184: labeled_statement ::= identifier : statement + // Rule 182: labeled_statement ::= identifier : statement // - case 184: { action.builder. + case 182: { action.builder. consumeStatementLabeled(); break; } // - // Rule 185: labeled_statement ::= case constant_expression : statement + // Rule 183: labeled_statement ::= case constant_expression : statement // - case 185: { action.builder. + case 183: { action.builder. consumeStatementCase(); break; } // - // Rule 186: labeled_statement ::= default : statement + // Rule 184: labeled_statement ::= default : statement // - case 186: { action.builder. + case 184: { action.builder. consumeStatementDefault(); break; } // - // Rule 187: expression_statement ::= expression ; + // Rule 185: expression_statement ::= expression ; // - case 187: { action.builder. + case 185: { action.builder. consumeStatementExpression(); break; } // - // Rule 188: expression_statement ::= ; + // Rule 186: expression_statement ::= ; // - case 188: { action.builder. + case 186: { action.builder. consumeStatementNull(); break; } // - // Rule 189: compound_statement ::= { statement_seq } + // Rule 187: compound_statement ::= { statement_seq } // - case 189: { action.builder. + case 187: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 190: compound_statement ::= { } + // Rule 188: compound_statement ::= { } // - case 190: { action.builder. + case 188: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 193: selection_statement ::= if ( condition ) statement + // Rule 191: selection_statement ::= if ( condition ) statement // - case 193: { action.builder. + case 191: { action.builder. consumeStatementIf(false); break; } // - // Rule 194: selection_statement ::= if ( condition ) statement else statement + // Rule 192: selection_statement ::= if ( condition ) statement else statement // - case 194: { action.builder. + case 192: { action.builder. consumeStatementIf(true); break; } // - // Rule 195: selection_statement ::= switch ( condition ) statement + // Rule 193: selection_statement ::= switch ( condition ) statement // - case 195: { action.builder. + case 193: { action.builder. consumeStatementSwitch(); break; } // - // Rule 197: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 195: condition ::= type_specifier_seq declarator = assignment_expression // - case 197: { action.builder. + case 195: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 199: condition_opt ::= $Empty + // Rule 197: condition_opt ::= $Empty // - case 199: { action.builder. + case 197: { action.builder. consumeEmpty(); break; } // - // Rule 200: iteration_statement ::= while ( condition ) statement + // Rule 198: iteration_statement ::= while ( condition ) statement // - case 200: { action.builder. + case 198: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 201: iteration_statement ::= do statement while ( expression ) ; + // Rule 199: iteration_statement ::= do statement while ( expression ) ; // - case 201: { action.builder. + case 199: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 202: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 200: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 202: { action.builder. + case 200: { action.builder. consumeStatementForLoop(); break; } // - // Rule 204: for_init_statement ::= simple_declaration_with_declspec + // Rule 202: for_init_statement ::= simple_declaration_with_declspec // - case 204: { action.builder. + case 202: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 205: jump_statement ::= break ; + // Rule 203: jump_statement ::= break ; // - case 205: { action.builder. + case 203: { action.builder. consumeStatementBreak(); break; } // - // Rule 206: jump_statement ::= continue ; + // Rule 204: jump_statement ::= continue ; // - case 206: { action.builder. + case 204: { action.builder. consumeStatementContinue(); break; } // - // Rule 207: jump_statement ::= return expression ; + // Rule 205: jump_statement ::= return expression ; // - case 207: { action.builder. + case 205: { action.builder. consumeStatementReturn(true); break; } // - // Rule 208: jump_statement ::= return ; + // Rule 206: jump_statement ::= return ; // - case 208: { action.builder. + case 206: { action.builder. consumeStatementReturn(false); break; } // - // Rule 209: jump_statement ::= goto identifier_token ; + // Rule 207: jump_statement ::= goto identifier_token ; // - case 209: { action.builder. + case 207: { action.builder. consumeStatementGoto(); break; } // - // Rule 210: declaration_statement ::= block_declaration + // Rule 208: declaration_statement ::= block_declaration // - case 210: { action.builder. + case 208: { action.builder. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 211: declaration_statement ::= function_definition + // Rule 209: declaration_statement ::= function_definition // - case 211: { action.builder. + case 209: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 228: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 226: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // + case 226: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 227: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // + case 227: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 228: declaration_specifiers ::= simple_declaration_specifiers // case 228: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 229: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; - // - case 229: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 230: declaration_specifiers ::= simple_declaration_specifiers - // - case 230: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 231: declaration_specifiers ::= class_declaration_specifiers + // Rule 229: declaration_specifiers ::= class_declaration_specifiers + // + case 229: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 230: declaration_specifiers ::= elaborated_declaration_specifiers + // + case 230: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 231: declaration_specifiers ::= enum_declaration_specifiers // case 231: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 232: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 232: declaration_specifiers ::= type_name_declaration_specifiers // case 232: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 233: declaration_specifiers ::= enum_declaration_specifiers - // - case 233: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 234: declaration_specifiers ::= type_name_declaration_specifiers - // - case 234: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 235: declaration_specifiers_opt ::= $Empty + // Rule 234: declaration_specifiers_opt ::= $Empty // - case 235: { action.builder. + case 234: { action.builder. consumeEmpty(); break; } // - // Rule 240: no_type_declaration_specifier ::= friend + // Rule 238: no_type_declaration_specifier ::= friend // - case 240: { action.builder. + case 238: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 241: no_type_declaration_specifier ::= typedef + // Rule 239: no_type_declaration_specifier ::= typedef // - case 241: { action.builder. + case 239: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 261: storage_class_specifier ::= auto + // Rule 259: storage_class_specifier ::= auto + // + case 259: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 260: storage_class_specifier ::= register + // + case 260: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 261: storage_class_specifier ::= static // case 261: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 262: storage_class_specifier ::= register + // Rule 262: storage_class_specifier ::= extern // case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 263: storage_class_specifier ::= static + // Rule 263: storage_class_specifier ::= mutable // case 263: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 264: storage_class_specifier ::= extern + // Rule 264: function_specifier ::= inline // case 264: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 265: storage_class_specifier ::= mutable + // Rule 265: function_specifier ::= virtual // case 265: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 266: function_specifier ::= inline + // Rule 266: function_specifier ::= explicit // case 266: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 267: function_specifier ::= virtual + // Rule 267: simple_type_specifier ::= char // case 267: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 268: function_specifier ::= explicit + // Rule 268: simple_type_specifier ::= wchar_t // case 268: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 269: simple_type_specifier ::= char + // Rule 269: simple_type_specifier ::= bool // case 269: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 270: simple_type_specifier ::= wchar_t + // Rule 270: simple_type_specifier ::= short // case 270: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 271: simple_type_specifier ::= bool + // Rule 271: simple_type_specifier ::= int // case 271: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 272: simple_type_specifier ::= short + // Rule 272: simple_type_specifier ::= long // case 272: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 273: simple_type_specifier ::= int + // Rule 273: simple_type_specifier ::= signed // case 273: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 274: simple_type_specifier ::= long + // Rule 274: simple_type_specifier ::= unsigned // case 274: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 275: simple_type_specifier ::= signed + // Rule 275: simple_type_specifier ::= float // case 275: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 276: simple_type_specifier ::= unsigned + // Rule 276: simple_type_specifier ::= double // case 276: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 277: simple_type_specifier ::= float + // Rule 277: simple_type_specifier ::= void // case 277: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 278: simple_type_specifier ::= double + // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 278: { action.builder. - consumeDeclSpecToken(); break; + case 280: { action.builder. + consumeQualifiedId(false); break; } // - // Rule 279: simple_type_specifier ::= void + // Rule 281: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 279: { action.builder. - consumeDeclSpecToken(); break; + case 281: { action.builder. + consumeQualifiedId(false); break; } // - // Rule 282: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // case 282: { action.builder. consumeQualifiedId(false); break; } // - // Rule 283: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 283: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // case 283: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 284: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name - // - case 284: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 285: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name - // - case 285: { action.builder. consumeQualifiedId(true); break; } // - // Rule 287: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 285: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // + case 285: { action.builder. + consumeTypeSpecifierElaborated(false); break; + } + + // + // Rule 286: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // + case 286: { action.builder. + consumeTypeSpecifierElaborated(true); break; + } + + // + // Rule 287: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // case 287: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 288: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 288: enum_specifier ::= enum { enumerator_list_opt } // case 288: { action.builder. - consumeTypeSpecifierElaborated(true); break; - } - - // - // Rule 289: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name - // - case 289: { action.builder. - consumeTypeSpecifierElaborated(false); break; - } - - // - // Rule 290: enum_specifier ::= enum { enumerator_list_opt } - // - case 290: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 291: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 289: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 291: { action.builder. + case 289: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 296: enumerator_definition ::= identifier_token + // Rule 294: enumerator_definition ::= identifier_token // - case 296: { action.builder. + case 294: { action.builder. consumeEnumerator(false); break; } // - // Rule 297: enumerator_definition ::= identifier_token = constant_expression + // Rule 295: enumerator_definition ::= identifier_token = constant_expression // - case 297: { action.builder. + case 295: { action.builder. consumeEnumerator(true); break; } // - // Rule 301: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } + // Rule 299: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } // - case 301: { action.builder. + case 299: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 302: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 300: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 302: { action.builder. + case 300: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 303: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 301: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 303: { action.builder. + case 301: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 304: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 302: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 304: { action.builder. + case 302: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 305: typename_opt ::= typename + // Rule 303: typename_opt ::= typename // - case 305: { action.builder. + case 303: { action.builder. consumePlaceHolder(); break; } // - // Rule 306: typename_opt ::= $Empty + // Rule 304: typename_opt ::= $Empty // - case 306: { action.builder. + case 304: { action.builder. consumeEmpty(); break; } // - // Rule 307: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 305: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 307: { action.builder. + case 305: { action.builder. consumeUsingDirective(); break; } // - // Rule 308: asm_definition ::= asm ( stringlit ) ; + // Rule 306: asm_definition ::= asm ( stringlit ) ; // - case 308: { action.builder. + case 306: { action.builder. consumeDeclarationASM(); break; } // - // Rule 309: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 307: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 309: { action.builder. + case 307: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 310: linkage_specification ::= extern stringlit declaration + // Rule 308: linkage_specification ::= extern stringlit declaration // - case 310: { action.builder. + case 308: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 315: init_declarator_complete ::= init_declarator + // Rule 313: init_declarator_complete ::= init_declarator // - case 315: { action.builder. + case 313: { action.builder. consumeInitDeclaratorComplete(); break; } // - // Rule 317: init_declarator ::= declarator initializer + // Rule 315: init_declarator ::= declarator initializer // - case 317: { action.builder. + case 315: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 319: declarator ::= ptr_operator_seq direct_declarator + // Rule 317: declarator ::= ptr_operator_seq direct_declarator + // + case 317: { action.builder. + consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 319: function_declarator ::= ptr_operator_seq direct_declarator // case 319: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 321: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 323: basic_direct_declarator ::= declarator_id_name // - case 321: { action.builder. - consumeDeclaratorWithPointer(true); break; - } - - // - // Rule 325: basic_direct_declarator ::= declarator_id_name - // - case 325: { action.builder. + case 323: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 326: basic_direct_declarator ::= ( declarator ) + // Rule 324: basic_direct_declarator ::= ( declarator ) // - case 326: { action.builder. + case 324: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 327: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 325: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 327: { action.builder. + case 325: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 328: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 326: array_direct_declarator ::= array_direct_declarator array_modifier + // + case 326: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 327: array_direct_declarator ::= basic_direct_declarator array_modifier + // + case 327: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 328: array_modifier ::= [ constant_expression ] // case 328: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 329: array_direct_declarator ::= basic_direct_declarator array_modifier - // - case 329: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 330: array_modifier ::= [ constant_expression ] - // - case 330: { action.builder. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 331: array_modifier ::= [ ] + // Rule 329: array_modifier ::= [ ] // - case 331: { action.builder. + case 329: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 332: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 330: ptr_operator ::= * cv_qualifier_seq_opt // - case 332: { action.builder. + case 330: { action.builder. consumePointer(); break; } // - // Rule 333: ptr_operator ::= & + // Rule 331: ptr_operator ::= & // - case 333: { action.builder. + case 331: { action.builder. consumeReferenceOperator(); break; } // - // Rule 334: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // Rule 332: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt // - case 334: { action.builder. + case 332: { action.builder. consumePointerToMember(); break; } // - // Rule 340: cv_qualifier ::= const + // Rule 338: cv_qualifier ::= const // - case 340: { action.builder. + case 338: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 341: cv_qualifier ::= volatile + // Rule 339: cv_qualifier ::= volatile + // + case 339: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 341: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // case 341: { action.builder. - consumeDeclSpecToken(); break; + consumeQualifiedId(false); break; } // - // Rule 343: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name + // Rule 342: type_id ::= type_specifier_seq // - case 343: { action.builder. - consumeQualifiedId(true); break; - } - - // - // Rule 344: type_id ::= type_specifier_seq - // - case 344: { action.builder. + case 342: { action.builder. consumeTypeId(false); break; } // - // Rule 345: type_id ::= type_specifier_seq abstract_declarator + // Rule 343: type_id ::= type_specifier_seq abstract_declarator // - case 345: { action.builder. + case 343: { action.builder. consumeTypeId(true); break; } // - // Rule 348: abstract_declarator ::= ptr_operator_seq + // Rule 346: abstract_declarator ::= ptr_operator_seq // - case 348: { action.builder. + case 346: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 349: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 347: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 349: { action.builder. + case 347: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 353: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 351: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 353: { action.builder. + case 351: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 354: basic_direct_abstract_declarator ::= ( ) + // Rule 352: basic_direct_abstract_declarator ::= ( ) // - case 354: { action.builder. + case 352: { action.builder. consumeAbstractDeclaratorEmpty(); break; } // - // Rule 355: array_direct_abstract_declarator ::= array_modifier + // Rule 353: array_direct_abstract_declarator ::= array_modifier // - case 355: { action.builder. + case 353: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 356: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 354: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // + case 354: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 355: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // + case 355: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 356: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // case 356: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 357: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier - // - case 357: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 358: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt - // - case 358: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 359: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 357: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 359: { action.builder. + case 357: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // + case 358: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt + // + case 359: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 360: parameter_declaration_clause ::= parameter_declaration_list , ... // case 360: { action.builder. consumePlaceHolder(); break; } // - // Rule 361: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 366: abstract_declarator_opt ::= $Empty // - case 361: { action.builder. + case 366: { action.builder. consumeEmpty(); break; } // - // Rule 362: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 362: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 368: abstract_declarator_opt ::= $Empty - // - case 368: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 369: parameter_declaration ::= declaration_specifiers parameter_init_declarator - // - case 369: { action.builder. + case 367: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 370: parameter_declaration ::= declaration_specifiers + // Rule 368: parameter_declaration ::= declaration_specifiers // - case 370: { action.builder. + case 368: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 372: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 370: parameter_init_declarator ::= declarator = parameter_initializer + // + case 370: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 372: parameter_init_declarator ::= abstract_declarator = parameter_initializer // case 372: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 374: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 373: parameter_init_declarator ::= = parameter_initializer // - case 374: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 375: parameter_init_declarator ::= = parameter_initializer - // - case 375: { action.builder. + case 373: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 376: parameter_initializer ::= assignment_expression + // Rule 374: parameter_initializer ::= assignment_expression // - case 376: { action.builder. + case 374: { action.builder. consumeInitializer(); break; } // - // Rule 377: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 377: { action.builder. + case 375: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 378: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 378: { action.builder. + case 376: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 381: initializer ::= ( expression_list ) + // Rule 379: initializer ::= ( expression_list ) // - case 381: { action.builder. + case 379: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 382: initializer_clause ::= assignment_expression + // Rule 380: initializer_clause ::= assignment_expression // - case 382: { action.builder. + case 380: { action.builder. consumeInitializer(); break; } // - // Rule 383: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list + // Rule 381: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list + // + case 381: { action.builder. + consumeInitializerList(); break; + } + + // + // Rule 382: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list + // + case 382: { action.builder. + consumeInitializerList(); break; + } + + // + // Rule 383: initializer_clause ::= { } // case 383: { action.builder. consumeInitializerList(); break; } // - // Rule 384: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list + // Rule 384: start_initializer_list ::= $Empty // case 384: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 385: initializer_clause ::= { } - // - case 385: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 386: start_initializer_list ::= $Empty - // - case 386: { action.builder. initializerListStart(); break; } // - // Rule 387: end_initializer_list ::= $Empty + // Rule 385: end_initializer_list ::= $Empty // - case 387: { action.builder. + case 385: { action.builder. initializerListEnd(); break; } // - // Rule 392: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 390: class_specifier ::= class_head { member_declaration_list_opt } // - case 392: { action.builder. + case 390: { action.builder. consumeClassSpecifier(); break; } // - // Rule 393: class_head ::= class_keyword identifier_name_opt base_clause_opt + // Rule 391: class_head ::= class_keyword identifier_name_opt base_clause_opt + // + case 391: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 392: class_head ::= class_keyword template_id_name base_clause_opt + // + case 392: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 393: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt // case 393: { action.builder. - consumeClassHead(false); break; + consumeClassHead(true); break; } // - // Rule 394: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 394: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // case 394: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 395: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt - // - case 395: { action.builder. consumeClassHead(true); break; } // - // Rule 396: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 396: identifier_name_opt ::= $Empty // case 396: { action.builder. - consumeClassHead(true); break; - } - - // - // Rule 398: identifier_name_opt ::= $Empty - // - case 398: { action.builder. consumeEmpty(); break; } // - // Rule 402: visibility_label ::= access_specifier_keyword : + // Rule 400: visibility_label ::= access_specifier_keyword : // - case 402: { action.builder. + case 400: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 403: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 401: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 403: { action.builder. + case 401: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 404: member_declaration ::= declaration_specifiers_opt ; + // Rule 402: member_declaration ::= declaration_specifiers_opt ; // - case 404: { action.builder. + case 402: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 407: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 407: { action.builder. + case 405: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 413: member_declaration ::= ERROR_TOKEN + // Rule 411: member_declaration ::= ERROR_TOKEN // - case 413: { action.builder. + case 411: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 421: member_declarator ::= declarator constant_initializer + // Rule 419: member_declarator ::= declarator constant_initializer // - case 421: { action.builder. + case 419: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 422: member_declarator ::= bit_field_declarator : constant_expression + // Rule 420: member_declarator ::= bit_field_declarator : constant_expression // - case 422: { action.builder. + case 420: { action.builder. consumeBitField(true); break; } // - // Rule 423: member_declarator ::= : constant_expression + // Rule 421: member_declarator ::= : constant_expression // - case 423: { action.builder. + case 421: { action.builder. consumeBitField(false); break; } // - // Rule 424: bit_field_declarator ::= identifier_name + // Rule 422: bit_field_declarator ::= identifier_name // - case 424: { action.builder. + case 422: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 425: constant_initializer ::= = constant_expression + // Rule 423: constant_initializer ::= = constant_expression // - case 425: { action.builder. + case 423: { action.builder. consumeInitializer(); break; } // - // Rule 431: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 431: { action.builder. + case 429: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 432: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 430: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // + case 430: { action.builder. + consumeBaseSpecifier(true, true); break; + } + + // + // Rule 431: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // + case 431: { action.builder. + consumeBaseSpecifier(true, true); break; + } + + // + // Rule 432: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // case 432: { action.builder. - consumeBaseSpecifier(true, true); break; - } - - // - // Rule 433: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name - // - case 433: { action.builder. - consumeBaseSpecifier(true, true); break; - } - - // - // Rule 434: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name - // - case 434: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 435: access_specifier_keyword ::= private + // Rule 433: access_specifier_keyword ::= private + // + case 433: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 434: access_specifier_keyword ::= protected + // + case 434: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 435: access_specifier_keyword ::= public // case 435: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 436: access_specifier_keyword ::= protected - // - case 436: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 437: access_specifier_keyword ::= public + // Rule 437: access_specifier_keyword_opt ::= $Empty // case 437: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 439: access_specifier_keyword_opt ::= $Empty - // - case 439: { action.builder. consumeEmpty(); break; } // - // Rule 441: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 439: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 441: { action.builder. + case 439: { action.builder. consumeTemplateId(); break; } // - // Rule 442: conversion_function_id ::= operator conversion_type_id + // Rule 440: conversion_function_id ::= operator conversion_type_id // - case 442: { action.builder. + case 440: { action.builder. consumeConversionName(); break; } // - // Rule 443: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 441: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 443: { action.builder. + case 441: { action.builder. consumeTypeId(true); break; } // - // Rule 444: conversion_type_id ::= type_specifier_seq + // Rule 442: conversion_type_id ::= type_specifier_seq // - case 444: { action.builder. + case 442: { action.builder. consumeTypeId(false); break; } // - // Rule 445: conversion_declarator ::= ptr_operator_seq + // Rule 443: conversion_declarator ::= ptr_operator_seq // - case 445: { action.builder. + case 443: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 451: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 449: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 451: { action.builder. + case 449: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 452: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 450: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 452: { action.builder. + case 450: { action.builder. consumeQualifiedId(false); break; } // - // Rule 455: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 453: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 455: { action.builder. + case 453: { action.builder. consumeTemplateId(); break; } // - // Rule 456: operator_id_name ::= operator overloadable_operator + // Rule 454: operator_id_name ::= operator overloadable_operator // - case 456: { action.builder. + case 454: { action.builder. consumeOperatorName(); break; } // - // Rule 499: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 497: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 499: { action.builder. + case 497: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 500: export_opt ::= export + // Rule 498: export_opt ::= export // - case 500: { action.builder. + case 498: { action.builder. consumePlaceHolder(); break; } // - // Rule 501: export_opt ::= $Empty + // Rule 499: export_opt ::= $Empty // - case 501: { action.builder. + case 499: { action.builder. consumeEmpty(); break; } // - // Rule 505: template_parameter ::= parameter_declaration + // Rule 503: template_parameter ::= parameter_declaration // - case 505: { action.builder. + case 503: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 506: type_parameter ::= class identifier_name_opt + // Rule 504: type_parameter ::= class identifier_name_opt + // + case 504: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 505: type_parameter ::= class identifier_name_opt = type_id + // + case 505: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 506: type_parameter ::= typename identifier_name_opt // case 506: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 507: type_parameter ::= class identifier_name_opt = type_id + // Rule 507: type_parameter ::= typename identifier_name_opt = type_id // case 507: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 508: type_parameter ::= typename identifier_name_opt + // Rule 508: type_parameter ::= template < template_parameter_list > class identifier_name_opt // case 508: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 509: type_parameter ::= typename identifier_name_opt = type_id - // - case 509: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 510: type_parameter ::= template < template_parameter_list > class identifier_name_opt - // - case 510: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 511: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 509: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 511: { action.builder. + case 509: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 512: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 510: template_id_name ::= identifier_name < template_argument_list_opt > // - case 512: { action.builder. + case 510: { action.builder. consumeTemplateId(); break; } // - // Rule 518: template_argument ::= type_id + // Rule 515: template_argument ::= assignment_expression // - case 518: { action.builder. + case 515: { action.builder. + consumeTemplateArgumentExpression(); break; + } + + // + // Rule 516: template_argument ::= type_id + // + case 516: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 519: explicit_instantiation ::= template declaration + // Rule 517: explicit_instantiation ::= template declaration // - case 519: { action.builder. + case 517: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 520: explicit_specialization ::= template < > declaration + // Rule 518: explicit_specialization ::= template < > declaration // - case 520: { action.builder. + case 518: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 521: try_block ::= try compound_statement handler_seq + // Rule 519: try_block ::= try compound_statement handler_seq // - case 521: { action.builder. + case 519: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 524: handler ::= catch ( exception_declaration ) compound_statement + // Rule 522: handler ::= catch ( exception_declaration ) compound_statement // - case 524: { action.builder. + case 522: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 525: handler ::= catch ( ... ) compound_statement + // Rule 523: handler ::= catch ( ... ) compound_statement // - case 525: { action.builder. + case 523: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 526: exception_declaration ::= type_specifier_seq declarator + // Rule 524: exception_declaration ::= type_specifier_seq declarator + // + case 524: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 525: exception_declaration ::= type_specifier_seq abstract_declarator + // + case 525: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 526: exception_declaration ::= type_specifier_seq // case 526: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 527: exception_declaration ::= type_specifier_seq abstract_declarator - // - case 527: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 528: exception_declaration ::= type_specifier_seq - // - case 528: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 530: exception_specification ::= throw ( ) + // Rule 528: exception_specification ::= throw ( ) // - case 530: { action.builder. + case 528: { action.builder. consumePlaceHolder(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java index 1438afb20bd..c411f754cc9 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java @@ -41,503 +41,492 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 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,2, - 1,1,0,1,0,4,2,2,2,3, - 2,3,2,2,1,0,1,1,4,4, - 4,8,8,3,3,4,4,3,3,2, - 2,7,7,7,7,4,4,5,6,3, - 2,2,1,1,1,2,2,2,2,2, - 2,2,2,2,4,7,9,3,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,2,1,3,1,0,1, - 0,1,1,0,1,1,1,1,1,1, - 1,1,1,3,4,3,2,1,4,2, - 1,2,5,7,5,1,4,1,0,5, - 7,8,1,1,2,2,3,2,3,1, + 1,1,0,1,0,4,2,3,2,3, + 2,2,1,0,1,1,4,4,4,8, + 8,3,3,4,4,3,3,2,2,7, + 7,7,7,4,4,5,6,3,2,2, + 1,1,1,2,2,2,2,2,2,2, + 2,2,4,7,9,3,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,2,1,3,1,0,1,0,1, + 1,0,1,1,1,1,1,1,1,1, + 1,3,4,3,2,1,4,2,1,2, + 5,7,5,1,4,1,0,5,7,8, + 1,1,2,2,3,2,3,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2,1,0,4,4,2, - 2,2,2,2,0,1,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,2,1,0,4,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,3,4,4,5,2,4,5,4,5, - 6,1,3,1,0,1,3,1,1,1, - 6,5,7,6,1,0,6,5,6,4, - 1,3,1,0,1,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,4,1,2,1,1,2,3,1, - 1,1,3,2,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,7,6,3,0,0,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,1,1,2,1,0,1,3,1, - 2,3,2,1,2,2,1,0,1,3, - 3,5,5,4,1,1,1,1,0,1, - 5,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,3, + 4,4,5,2,4,5,4,5,6,1, + 3,1,0,1,3,1,1,1,6,5, + 7,6,1,0,6,5,6,4,1,3, + 1,0,1,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,2,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, + 7,6,3,0,0,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, + 1,1,2,1,0,1,3,1,2,3, + 2,1,2,2,1,0,1,3,3,5, + 5,4,1,1,1,1,0,1,5,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,1,1,2,2,7,1, - 0,1,3,1,1,2,4,2,4,7, - 9,5,1,3,1,0,1,1,2,4, - 4,1,2,5,5,3,3,1,4,3, - 1,0,1,3,-238,0,0,0,-76,0, + 1,1,1,1,2,2,7,1,0,1, + 3,1,1,2,4,2,4,7,9,5, + 1,3,1,0,1,1,2,4,4,1, + 2,5,5,3,3,1,4,3,1,0, + 1,3,-239,0,0,0,-98,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-2,0,0,0, - 0,0,0,0,-3,0,-64,0,0,0, - 0,0,-90,0,0,0,0,-510,0,0, - 0,0,-4,0,0,0,0,0,-97,0, - 0,-265,0,0,0,0,0,0,0,0, + 0,0,0,0,-2,0,0,0,0,0, + 0,0,-3,0,-462,0,0,0,0,0, + -25,0,0,0,0,0,-510,0,0,0, + 0,0,0,0,0,0,0,0,0,-262, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-96,0,0,0,0,0,0, - 0,0,0,0,0,-12,-35,0,0,0, - 0,0,-7,-13,0,0,0,0,0,-9, - 0,0,-159,0,0,0,-234,0,0,0, - 0,0,0,0,0,-104,0,0,0,-98, - 0,0,0,0,-30,0,0,0,-81,0, - 0,0,0,0,0,-17,0,0,0,0, - 0,0,0,0,0,-103,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-67,0,0,0,0,0,0,0,0, + 0,-373,0,-19,0,0,0,-101,0,0, + -58,0,0,0,0,0,0,-76,0,0, + -46,-110,0,0,0,0,0,0,0,0, + 0,0,-4,-444,0,0,0,0,0,0, + -12,-103,0,-7,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-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,0,0,-325,0,0,0,0,0,0, + 0,-64,0,0,0,0,0,-464,0,-241, + 0,-34,0,0,0,0,0,0,-119,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-114,0, + -9,0,0,0,0,0,-14,0,0,0, + 0,0,-24,0,-377,0,0,-48,0,0, + 0,0,0,0,-245,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-31,-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,-15,-89,0,0,0,0, - 0,-16,0,-476,-21,0,-14,0,-24,0, - 0,0,-116,0,0,0,0,0,0,0, + 0,0,0,0,-99,0,0,0,0,0, + -204,0,-13,-21,0,0,0,0,0,0, + 0,-281,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-118,0,0,0,0,0,0,-284, - 0,0,0,0,0,0,0,-27,-108,0, - 0,0,0,0,0,0,0,0,-244,0, - 0,0,-31,0,0,0,0,0,0,0, + 0,0,0,0,0,-17,0,0,0,-331, + 0,0,0,0,0,-128,0,0,0,-92, + 0,0,-104,0,0,0,0,-527,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-120,0,0,0,0,0,0,0,0, + -32,0,-27,-35,0,0,0,0,-42,-381, + 0,0,0,-16,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-220,0,0,0,0,0,0,0,-41, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-463,0,0,0,-37,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-66,0,0,0,0,0,0,0,-25, - 0,0,0,0,0,0,-47,0,0,0, - -41,0,0,-40,0,0,0,0,-280,0, + 0,0,0,0,-309,0,-410,0,0,0, + 0,-65,0,0,0,-107,0,0,0,0, + 0,0,-265,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, - 0,0,0,0,0,0,0,0,-32,0, - 0,0,0,0,0,-313,0,0,0,0, - 0,-34,0,-65,-394,0,0,0,-105,0, - 0,0,0,0,-36,0,-217,-527,0,0, - 0,-62,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-381,0,0, + 0,0,0,0,0,0,-404,0,0,-115, + 0,0,0,-39,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-43,0,0,0,0,0,0,0,-40, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-66,-112,0,0,0,-197,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-37,0,0, - 0,0,0,0,-102,0,0,0,0,0, - -463,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-45,0,0,0,0,0,0,0, - -137,0,0,0,0,0,0,-213,0,-38, - 0,0,0,-145,0,0,0,-404,0,0, - -264,0,0,0,0,0,0,0,0,0, + 0,-47,0,0,0,0,0,0,0,0, + -267,0,0,0,-83,0,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,0,0,0,0,0,-292,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-51,0, + 0,0,0,0,0,0,-49,0,0,0, + 0,0,0,0,-53,-134,-189,0,0,-100, + 0,-60,-69,0,0,0,-72,0,0,0, + 0,0,0,0,0,-54,-383,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-92,0,0,-42,0,-464,-112,0, - 0,0,-50,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-53,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-434,0,0,0,-480,-194,0,0,0, + 0,0,0,0,0,0,-52,0,-68,0, + 0,0,0,0,0,0,-78,0,0,0, + 0,0,0,0,0,0,-77,0,0,-106, + 0,0,-135,0,0,0,-384,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-125,0,0,0, - 0,0,0,-143,0,0,0,0,0,-279, + 0,0,0,0,0,0,0,0,-140,0, + -75,0,0,0,0,0,0,0,0,-91, + -246,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-113,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-117,0, + 0,0,0,0,0,0,-55,0,-122,0, + 0,0,0,0,-163,0,0,0,-184,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,-52,0,0,0,0,0,0,0,-59, - 0,0,0,0,0,0,-291,0,0,0, - 0,0,0,0,0,0,0,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,0,-185,0,0,0,0,0,-129, - -67,-63,-245,0,0,0,0,0,0,0, - 0,0,0,0,0,-383,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-72,0,-520,0,0, - 0,0,-435,0,0,0,0,0,0,-384, - 0,0,0,-73,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-403,0,0,0, - 0,0,-110,0,0,0,-225,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-78,0,0,0,0,0, - 0,0,-79,0,-119,0,0,0,0,0, - 0,-182,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-99,0,0,0,0,0,0, - 0,-114,0,-117,0,0,0,0,0,-308, - -223,-134,0,0,0,0,0,0,0,0, - -267,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-191,0,0,0,0,0,0,0, - 0,0,-332,0,0,0,0,-130,-222,0, + -79,0,-80,0,0,0,-518,0,0,0, 0,0,0,-268,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,0,-416,0,0,0,0, + 0,0,0,0,0,-81,0,0,0,0, + 0,0,-225,0,0,0,-269,0,0,0, + -137,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-493,0, + 0,0,0,0,0,0,-139,0,-147,0, + 0,0,0,0,-228,-507,-151,0,0,-270, + 0,0,0,-152,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-507,0,0,0,0,-269,0,0,0, - -416,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-136,0,0,0, - 0,0,0,-445,0,0,0,0,0,-270, - 0,0,0,-493,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-506,0,0,0,0,-450,0,0,0, + 0,-153,0,0,0,0,0,0,0,0, + 0,0,0,-57,0,0,0,0,0,-123, 0,0,-271,0,0,0,0,0,0,0, 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,-451, - 0,0,0,0,0,-272,0,0,0,-144, - 0,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, - 0,0,-474,0,0,0,0,0,-273,0, - 0,0,-149,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -150,0,0,0,0,0,0,0,-152,0, - 0,0,0,0,0,-133,-240,-153,-196,0, - 0,-274,0,0,0,-154,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-155,0,0,0,0,0,0, - 0,-156,0,0,0,0,0,0,0,-373, - 0,-158,0,0,-275,0,0,0,-171,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-172,0,0,0, - 0,0,0,0,-173,0,-157,0,0,0, - 0,0,-377,0,-174,0,0,-276,0,0, - 0,-175,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-176, - 0,0,0,0,0,0,0,-177,0,-216, - 0,0,0,0,0,-178,-179,-180,0,0, - -277,0,0,0,-181,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-183,0,0,0,0,0,0,0, - -184,0,-188,0,0,0,0,-226,-190,0, - -192,0,0,-380,0,0,0,-199,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-201,0,0,0,0, - 0,0,0,-203,0,-205,0,0,0,0, - -518,-206,-207,-215,0,0,-415,0,0,0, - -235,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-243,0, - 0,0,0,0,0,0,-286,0,0,0, - 0,0,0,-208,0,0,-528,0,0,-511, - 0,0,0,-494,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,-293, - 0,-311,0,0,0,0,0,-131,-300,-147, - 0,0,-221,0,0,0,-301,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-305,0,0,0,0,0, - 0,0,-307,0,0,0,0,0,0,-306, + 0,0,0,0,-155,0,0,0,0,0, + 0,0,0,0,0,0,-61,0,0,0, + 0,-63,-194,0,0,-272,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-156,0,-157,0,0, + 0,0,0,-229,0,-333,0,0,-273,0, + 0,0,-158,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-337,0,0,0, + -159,0,0,0,0,0,0,0,-71,0, + -161,0,0,0,0,0,-173,0,-341,0, + 0,-274,0,0,0,-174,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -364,0,0,0,0,0,0,0,0,0, + 0,0,0,-175,0,0,0,0,0,0, + 0,-73,0,0,0,0,0,0,0,-176, + 0,-506,0,0,-275,0,0,0,-177,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-320,0,0,0,0,0,0,0, - -321,0,0,0,0,0,0,-392,0,0, + 0,0,0,0,0,0,-178,0,0,0, + 0,0,0,0,-74,0,-179,0,0,0, + 0,0,-180,0,-522,0,0,-276,0,0, + 0,-181,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-182, + 0,0,0,0,0,0,0,-84,0,-183, + 0,0,0,0,0,-185,0,-186,0,0, + -277,0,0,0,-190,0,0,0,0,0, 0,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,-323,0,-327, - 0,0,0,0,-339,0,0,0,-71,0, - 0,0,0,0,0,0,0,-328,-393,0, + 0,0,-192,0,0,0,0,0,0,0, + -85,0,-193,0,0,0,0,0,-195,0, + -202,0,0,-278,0,0,0,-203,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,-88,0,-208,0,0,0,0, + 0,-209,-210,-218,0,0,-380,0,0,0, + -244,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-287,0, + 0,0,0,0,0,0,-90,0,-293,0, + 0,0,0,0,-294,-94,-301,0,0,-415, + 0,0,0,-302,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-329,0, - -342,0,0,0,0,-505,0,0,0,0, + 0,-306,0,0,0,0,0,0,0,-308, + 0,-321,0,0,0,0,0,-322,-323,-324, + 0,0,-511,0,0,0,-361,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,-96,0,-329,0,0,0,0,0, + -330,-150,-342,0,0,-224,0,0,0,-132, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,-343,0,0, - 0,0,0,0,0,-344,0,-345,0,0, - 0,0,-91,0,0,0,-77,-346,0,0, - 0,0,0,-302,-347,-348,-266,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-39,0,-410,0, - 0,0,0,-261,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-349,0,0,0,0, - 0,0,-262,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-350,0,0,0,0,0, - -263,0,0,0,-351,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-352,0,0,0,0,0,-255,0, - 0,0,-210,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -140,0,0,0,0,-256,0,0,0,-211, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-220,0,0, - 0,0,-257,0,0,0,-353,0,0,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,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-282,-354,-355,-447, - 0,-209,0,0,-29,0,0,0,0,0, - 0,0,0,0,0,-444,0,0,0,0, - 0,-121,0,0,0,-18,0,0,0,0, - 0,0,-356,-193,0,0,0,-212,0,0, - -46,0,0,0,0,0,0,0,0,0, - -48,-304,0,-51,0,-362,-61,0,0,0, - -361,0,0,0,0,0,-287,0,0,0, - 0,0,0,0,0,0,0,0,-5,0, - 0,0,-357,0,-358,0,0,0,0,0, - -366,0,-359,0,0,0,-10,0,0,-452, - 0,0,0,0,0,0,0,0,0,0, - -431,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, - 0,0,-503,0,-58,0,0,0,-202,-360, - -28,0,0,0,0,0,0,0,0,0, - 0,-135,0,0,-375,0,0,0,-413,0, - 0,0,0,0,-19,0,0,0,0,0, - 0,0,0,-204,0,0,0,0,-363,0, - 0,0,0,0,0,0,0,0,0,-233, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-111,-75,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -160,-227,-513,0,0,0,0,0,-365,-367, - 0,0,0,0,0,0,0,0,-335,0, - 0,0,0,0,0,0,0,0,0,-54, - 0,0,0,0,0,0,0,-368,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-312,-283,0, - 0,0,0,0,0,-369,0,-497,0,0, - -259,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-370,0,0,0,-260,0,0,0, - -372,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-399,0, - 0,0,-294,0,0,0,0,-400,0,0, - 0,0,0,-115,-401,0,-402,-490,0,0, - 0,0,-417,0,0,0,0,0,-418,-420, - -250,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-461,0,0,0,0,0,0,-425, - 0,0,0,-374,-106,0,0,0,-20,-371, - -378,0,-429,0,0,0,0,0,-56,-295, - 0,0,0,0,0,0,-433,-57,0,0, - 0,0,-442,0,-443,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-60,0,0,0,0,0,0, - 0,0,0,-187,0,0,0,0,-419,0, - 0,-449,0,-236,0,0,0,-296,-33,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-26,0,0,0,0,0,0,0,0, - 0,0,-101,0,0,0,0,0,0,0, - -459,0,-70,0,0,0,0,0,0,0, - 0,0,0,-198,0,-247,-22,-421,0,0, - -289,0,-424,0,0,0,0,-74,-465,0, - -477,0,0,0,0,0,0,0,0,0, - 0,-146,0,0,0,0,-237,0,-481,-246, - 0,-482,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-487,0,0,0,0, - 0,-80,-495,0,0,0,-453,0,0,0, - 0,0,0,-314,-330,0,0,0,0,0, - -219,0,0,0,0,0,0,0,0,-43, - 0,0,0,0,0,0,0,-496,-502,-382, - -241,0,0,0,0,0,0,-324,0,0, - -82,0,0,0,0,0,0,0,0,0, - -278,-512,0,-142,0,-486,0,0,0,0, - 0,0,0,0,0,-333,0,0,-406,0, - 0,0,0,0,0,0,0,0,0,-376, - 0,0,0,0,0,0,-107,0,-83,0, + 0,0,0,0,0,-335,0,-133,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,0,0, - 0,0,0,0,-488,-517,-186,0,0,-285, - 0,0,0,0,-390,-315,0,0,0,0, - 0,0,0,0,0,0,0,-44,0,0, - 0,0,0,-200,0,0,0,-466,0,0, - 0,0,0,0,0,0,0,0,-508,0, - 0,0,0,0,0,0,0,0,-427,-428, - 0,-438,0,-492,0,0,-448,0,-86,0, - 0,0,0,-88,0,0,0,0,0,0, - 0,0,0,0,0,0,-318,-309,0,0, - 0,0,0,0,0,-439,0,0,0,0, - 0,0,0,0,0,-141,0,0,0,0, - 0,0,0,0,0,0,0,-94,0,0, - -440,0,-523,0,0,0,0,-489,0,0, - 0,0,-319,0,0,0,0,0,0,0, - 0,0,0,0,0,-49,0,0,0,-499, - 0,-479,0,-441,-334,0,0,0,0,0, - 0,0,0,0,0,0,-95,0,0,0, - 0,0,0,0,0,0,-100,0,0,0, - 0,-529,0,0,0,0,-472,0,0,0, - 0,-195,0,0,0,0,0,0,0,0, - 0,0,0,0,-325,-478,0,0,0,0, - 0,0,0,-491,0,0,0,0,-1,0, - 0,0,0,-414,0,-197,0,0,0,0, - 0,0,0,0,0,0,0,0,-281,0, - 0,-288,0,0,0,0,0,0,0,-290, - -299,0,0,0,0,0,0,0,0,0, - 0,0,-317,0,0,0,0,0,0,0, - 0,0,-214,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -409,0,0,0,0,-430,0,-509,0,0, - 0,-336,0,0,-251,0,0,0,0,0, + 0,-30,0,0,0,-344,-345,0,0,0, + 0,0,-364,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-136,0,0,0,0,0, + 0,0,-97,0,0,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,-87,0,0,0,0,-6, 0,0,0,0,0,0,0,0,0,0, - -340,0,0,0,0,0,0,0,-162,0, + -102,0,-447,0,0,0,0,0,-93,0, + 0,0,-346,-347,0,0,0,0,0,-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,0,0,0,0,-379,0, - 0,-297,-124,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-432,0,-224,-514, - 0,-228,0,0,0,0,0,0,0,0, - 0,-68,0,0,0,0,0,0,0,0, - 0,0,-397,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-127,0,0,0, - 0,-411,-436,0,-437,0,0,0,0,0, - 0,0,0,0,0,-458,0,-467,0,0, - -525,0,0,-446,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-454,-456,0, + 0,-303,0,0,0,0,0,0,0,-198, + 0,-199,0,0,0,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, + 0,0,0,0,0,0,0,-348,0,-349, + 0,0,0,0,0,-124,0,0,0,-62, + -350,0,0,0,0,0,-280,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-460,-468,0,-469,0,0, - 0,0,-252,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-305,0, + 0,0,0,0,0,0,-351,0,-200,0, + 0,0,0,0,-266,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-473,0,0,0,0,0, - 0,0,-253,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-254,0,0,0, - -470,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-471,0, - -386,0,0,0,-483,0,0,0,0,0, - 0,-484,0,-55,0,0,0,-475,-485,-498, - -11,0,0,0,0,-519,0,0,0,0, - 0,0,0,0,0,0,0,-128,0,0, - 0,0,0,0,-500,-501,-515,-521,0,0, - 0,-524,-526,0,0,0,0,0,0,0, + 0,0,0,0,-207,0,0,0,0,0, + 0,0,0,0,0,0,0,-263,0,0, + 0,-352,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-353, + 0,0,0,0,0,-337,0,0,0,-366, + 0,0,0,0,0,0,0,0,-59,0, + 0,0,0,0,0,-503,0,0,-339,0, + 0,0,-461,0,0,0,0,0,0,0, + 0,-215,0,0,0,0,0,0,-285,0, + 0,0,0,-528,0,-354,0,0,0,0, + -264,0,0,0,0,0,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,0,0,0,0,0,0, + 0,-213,-28,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-256,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-355,0, + 0,0,0,0,0,0,0,0,0,-214, + 0,0,-82,0,0,0,-216,-196,-242,0, + 0,0,0,0,0,0,0,-160,0,-356, + 0,-282,0,0,-33,0,0,-357,0,-358, + 0,0,0,0,0,0,0,-359,0,0, + 0,0,-257,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-163,0,0,0, + 0,0,0,0,-360,0,0,0,0,0, + 0,0,0,0,0,-164,0,0,0,-223, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-164,0, + 0,0,0,0,0,0,0,-18,-363,0, + -365,-205,-258,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-367,0,0,0,0,-259, 0,0,0,0,0,0,0,0,0,0, - -165,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,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-167,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,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,-169,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -170,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-239,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-248,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-249,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-326,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -407,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-8,0,0,0,0,0,-122,-151, - 0,-84,0,0,0,0,0,0,-316,0, - 0,-398,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,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,-504,0, - 0,0,0,0,-126,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-298,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-113,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-391,0,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,0,0,0, - 0,0,0,-229,0,0,-93,0,0,0, - 0,0,0,-69,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-109, - 0,0,0,0,0,0,0,0,0,0, - -230,-242,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-457,0,0,0,0,0,0,0, - -455,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-283,-368,0,-369, + 0,-146,0,0,0,-29,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-375, + -10,0,0,0,0,0,0,-219,-5,0, 0,0,0,0,0,0,0,-138,0,0, + -370,0,0,0,0,0,0,0,0,0, + -20,0,-374,0,-362,0,0,0,0,-372, + 0,0,0,0,0,0,-399,0,0,0, + 0,0,0,0,0,0,0,0,-26,0, + 0,0,0,-312,0,-237,-238,0,0,0, + 0,0,0,0,0,-187,0,0,0,-288, + 0,0,0,0,0,0,0,0,-118,0, + -316,0,0,-400,0,0,0,0,0,0, + -289,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-291,0,0,0,0, + 0,-401,0,0,0,0,0,0,-300,-284, + 0,0,0,-402,0,0,-217,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -385,0,0,0,0,0,0,0,0,-139, + -406,0,0,0,0,0,0,0,0,-260, + 0,0,0,-417,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-418,0,0,0,-227,0,0,-319,0, + -201,-420,-121,0,0,0,0,0,0,0, + -425,-490,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-109,-143,0,0,-108, + 0,-261,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-313,0,0,0,-429,0,0, + -22,0,-424,-297,-371,0,0,0,0,0, + 0,0,-433,0,0,0,-211,0,0,-442, + 0,-212,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-378,-476,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-15,0, + -443,0,-419,-449,-513,-459,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-95,0,0,0,0, + 0,0,0,0,0,0,-497,0,0,-222, + 0,0,0,0,-465,0,-477,0,0,0, + 0,0,0,0,0,0,-481,0,-482,0, + -421,-487,0,0,0,0,-376,0,0,-149, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-142,0,0,0,0,0,-390, + 0,0,0,0,0,0,0,-318,0,0, + 0,0,-495,0,0,0,0,0,0,0, + 0,0,0,0,-496,0,0,-414,-453,0, + 0,0,0,-320,-144,0,0,0,-409,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-502,-512,0,-36,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-403, + 0,0,0,-427,0,0,0,0,0,0, + 0,0,-517,0,0,0,-486,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-123,0,0,0, + 0,0,-44,0,0,0,0,-326,0,-520, + 0,0,0,-317,0,0,0,0,0,-428, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-488,0,0,-290,0,0, + -489,0,0,0,0,0,0,-336,0,0, + 0,0,0,0,0,0,0,0,0,-304, + 0,0,0,0,0,0,0,0,0,0, + 0,-385,0,0,0,0,0,-514,0,0, + 0,0,0,0,0,0,0,0,-340,0, + -431,0,-492,0,-188,-226,0,0,0,0, + 0,-231,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-296,0,0,-315,0,0,-379,0,0, + 0,0,0,-430,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -523,0,0,-397,0,0,0,0,0,0, + 0,0,0,-411,0,0,0,0,0,0, + 0,0,0,-525,-437,0,0,0,0,-432, + 0,0,-508,0,0,0,0,0,0,0, + 0,-445,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-382,-529,-154, + 0,0,0,0,0,0,0,0,0,0, + -446,-454,0,0,0,0,0,0,0,0, + 0,0,-45,0,0,0,0,0,0,0, + -314,0,0,0,0,-1,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-450, + 0,0,0,0,0,0,0,-451,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -189,0,0,0,0,0,0,-218,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-310,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-331,0, + 0,0,0,0,0,0,0,-474,0,0, + 0,-413,0,0,0,0,0,0,0,0, + -251,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-387,0,0,-231,0,0, + 0,0,0,0,0,0,-448,-252,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,-395,0,0, - 0,-396,0,0,0,-132,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-161,0,0,0,0, + 0,0,-386,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-457,-126, + -89,-298,0,0,0,0,-436,-458,-467,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-388,0,0, + 0,0,0,0,-394,0,0,0,0,-50, + 0,0,0,0,-475,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-232,0,0,0,0,0, - 0,0,0,0,-405,0,0,0,-412,0, - 0,0,0,0,-422,0,-423,0,0,0, - 0,0,0,0,0,0,-389,0,0,0, - 0,0,0,0,0,-426,0,0,0,0, + 0,0,0,0,-456,-485,-127,-236,0,0, + 0,0,0,0,0,-460,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-468, + 0,0,0,0,0,0,0,0,-334,0, + -452,0,0,0,0,-130,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -516,0,0,0,0,0,0,0,0,0, - 0,0,0,-408,0,0,0,0,0,-530, + 0,0,0,0,0,0,0,0,-434,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-498,0,-519,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,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, + -253,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-469,0,0,0, + -254,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-470,0,-255,0,0,0,0,0, + 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,-235,0,0, + 0,0,0,0,0,-232,-233,-509,0,0, + 0,0,0,-116,0,0,0,0,0,0, + 0,0,0,0,0,0,-125,0,0,-471, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-483,-435,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-484,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-405, + 0,0,0,-500,-56,0,0,0,0,-501, + 0,-165,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,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,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-167,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,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,-169,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-170,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-171,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,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -240,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-249,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-250,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-327,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-391,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-407,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-515,-248,0,-8,-247,0, + -398,0,0,-279,0,-86,-521,0,0,0, + 0,-286,0,0,0,0,0,0,0,0, + 0,0,0,0,-466,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,0,0,0,0,-70, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-145,0,-87, + 0,0,0,0,0,0,0,-129,0,0, + 0,0,-526,0,0,0,-387,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-438,-439,0,0,0,0,0,-499, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-299,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,-455,0, 0,0,0,0,0,0,0,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,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-310,0,0,0,0,0,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,-191,0,0,0,0,0,0,0, + -141,0,0,0,0,0,0,0,0,0, + 0,0,0,-6,0,0,0,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,-311,0,0,0,0,0, + 0,-332,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,-395, + 0,0,0,0,0,0,0,0,0,0, + -396,0,0,0,0,0,0,-162,-230,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-412,0,0,0,0, + 0,0,0,0,0,0,-243,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -422,-516,0,0,0,0,0,0,0,0, + 0,0,0,-423,0,0,0,0,0,0, + -426,0,0,0,0,0,0,0,0,0, + 0,0,-234,0,-388,0,0,-440,0,0, + 0,0,0,0,-389,0,0,-408,0,-530, + 0,0,0,0,0,0,0,-441,0,0, + -472,0,0,-479,0,0,0,0,0,0, + -473,0,0,0,0,0,0,0,-478,0, + -491,-504,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -559,560 +548,545 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface BaseAction { public final static char baseAction[] = { - 171,4,54,86,86,32,32,72,72,38, - 38,40,40,171,171,172,172,134,134,1, + 170,4,133,85,85,32,32,72,72,38, + 38,40,40,170,170,171,171,134,134,1, 1,15,15,15,15,15,15,15,15,16, - 16,16,14,11,11,8,8,8,8,8, - 8,2,73,73,5,5,12,12,12,12, - 48,48,135,135,136,62,62,43,17,17, + 16,16,14,11,11,6,6,6,6,6, + 6,2,64,64,5,5,12,12,44,44, + 135,135,136,56,56,43,17,17,17,17, 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,137,137, - 137,113,113,18,18,18,18,18,18,18, - 18,18,18,18,18,18,19,19,173,173, - 174,174,175,140,140,141,141,138,138,142, - 139,139,20,20,21,21,23,23,23,24, - 24,24,24,25,25,25,26,26,26,27, - 27,27,27,27,28,28,28,29,29,31, - 31,33,33,34,34,35,35,36,36,42, - 42,41,41,41,41,41,41,41,41,41, - 41,41,41,41,39,30,143,143,97,97, - 176,176,92,195,195,74,74,74,74,74, - 74,74,74,74,75,75,75,65,65,56, - 56,177,177,76,76,76,103,103,178,178, - 77,77,77,179,179,78,78,78,78,78, - 79,79,82,82,82,82,82,82,82,49, - 49,49,49,49,114,114,115,115,50,180, - 22,22,22,22,22,47,47,87,87,87, - 87,87,150,150,145,145,145,145,145,146, - 146,146,147,147,147,148,148,148,149,149, - 149,88,88,88,88,88,89,89,89,13, - 13,13,13,13,13,13,13,13,13,13, - 100,119,119,119,119,119,119,117,117,117, - 118,118,152,152,151,151,121,121,104,68, - 68,69,70,52,46,153,153,53,51,85, - 85,154,154,144,144,122,123,123,83,83, - 155,155,63,63,63,59,59,58,64,64, - 81,81,57,57,57,90,90,99,98,98, - 61,61,60,60,55,55,44,101,101,101, - 93,93,93,94,94,95,95,95,96,96, - 105,105,105,107,107,106,106,196,196,91, - 91,182,182,182,182,182,125,45,45,157, - 181,181,126,126,126,126,127,159,183,183, - 37,37,116,128,128,128,128,108,108,120, - 120,120,160,161,161,161,161,161,161,161, - 161,161,161,161,186,186,184,184,185,185, - 162,162,162,162,163,187,110,109,109,188, - 188,164,164,164,164,102,102,102,189,189, - 9,9,10,190,190,191,165,156,156,166, - 166,167,168,168,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,66, - 71,71,170,170,130,130,131,131,131,131, - 131,131,3,132,132,129,129,111,111,84, - 67,80,158,158,112,112,192,192,192,133, - 133,124,124,193,193,1132,41,2259,2228,1106, - 4759,36,922,33,37,909,32,34,2210,31, - 29,58,1799,114,84,85,116,1019,1817,1835, - 1825,1860,1842,1876,1868,1312,1878,248,1877,1885, - 1903,151,280,243,41,298,166,152,2789,41, - 803,38,2980,419,36,922,342,37,909,1603, - 41,287,2631,41,803,38,239,4836,36,922, - 33,37,909,32,34,1792,31,29,58,1799, - 114,84,85,116,149,1817,1835,1825,1860,1842, - 1876,2633,242,237,238,498,1113,243,41,739, - 391,3170,627,1342,1113,281,323,924,325,3288, - 1115,318,567,1589,41,1971,49,2338,328,48, - 922,249,252,255,258,2725,1603,41,284,355, - 1905,526,1174,676,57,243,1324,1306,40,1975, - 1093,347,1918,1367,352,669,1323,1260,1997,527, - 725,732,2576,2969,3087,4502,1702,41,803,38, - 2629,4836,36,922,33,37,909,32,34,1792, - 31,29,58,1799,114,84,85,116,346,1817, - 1835,1825,1860,1842,1876,1868,2591,1878,634,1877, - 1885,1903,151,393,427,2933,1113,517,152,1254, - 4270,3908,2851,1044,2718,2099,1119,1399,246,1163, - 3884,518,2572,1702,41,803,38,2629,4836,36, - 922,33,37,909,32,34,1792,31,29,58, - 1799,114,84,85,116,346,1817,1835,1825,1860, - 1842,1876,1868,1106,1878,2810,1877,1885,1903,151, - 243,41,739,391,517,152,239,4270,161,330, - 41,453,2607,239,4721,50,1670,513,518,1694, - 41,803,38,1242,4792,36,922,33,37,909, - 65,34,247,237,238,1731,456,452,1911,251, - 237,238,1702,41,803,38,2629,4836,36,922, - 33,37,909,32,34,1792,31,29,58,1799, - 114,84,85,116,346,1817,1835,1825,1860,1842, - 1876,1868,1282,1878,513,1877,1885,1903,151,460, - 330,41,286,517,152,2988,4270,243,41,3427, - 3378,1323,1928,96,32,1911,110,518,3595,1977, - 41,803,38,2629,4836,36,922,33,37,909, - 32,34,1792,31,29,58,1799,114,84,85, - 116,346,1817,1835,1825,1860,1842,1876,1868,1414, - 1878,3334,1877,1885,1903,151,243,41,739,391, - 517,152,1416,4270,1223,243,41,739,391,243, - 41,1306,283,513,518,680,69,1620,3032,41, - 803,38,410,4889,36,922,33,37,909,32, - 34,1946,511,431,1911,446,1913,1919,2042,41, - 803,38,434,4836,36,922,33,37,909,32, - 34,1792,31,29,58,1799,114,84,85,116, - 228,1817,1835,1825,1860,1842,1876,1868,1500,1878, - 514,1877,1885,1903,151,243,41,289,3452,382, - 152,1771,41,803,38,329,4836,36,922,33, - 37,909,32,34,1792,31,29,58,1799,114, - 84,85,116,1237,1817,1835,1825,1860,1842,1876, - 1868,1438,1878,317,1877,1885,1903,151,1975,438, - 1675,3452,382,152,243,41,739,391,243,41, - 2995,2631,41,803,38,1083,4836,36,922,33, - 37,909,32,34,1792,31,29,58,1799,114, - 84,85,116,2014,1817,1835,1825,1860,1842,1876, - 1868,57,2583,410,388,1749,1179,54,1816,1844, - 41,803,38,1230,4836,36,922,33,37,909, - 32,34,1792,31,29,58,1799,114,84,85, - 116,2667,1817,1835,1825,1860,1842,1876,1868,1323, - 1878,308,1877,1885,1903,151,2838,389,1749,3452, - 382,152,243,41,739,391,2724,2282,41,803, - 38,2661,4836,36,922,33,37,909,32,34, - 1792,31,29,58,1799,114,84,85,116,3437, - 1817,1835,1825,1860,1842,1876,1868,1598,1878,433, - 1877,1885,1903,151,243,41,1306,288,166,152, - 2631,41,803,38,634,4836,36,922,33,37, - 909,32,34,1792,31,29,58,1799,114,84, - 85,116,1498,1817,1835,1825,1860,1842,1876,1868, - 1842,1878,327,1877,2700,380,1749,2282,41,803, - 38,531,4836,36,922,33,37,909,32,34, - 1792,31,29,58,1799,114,84,85,116,302, - 1817,1835,1825,1860,1842,1876,1868,48,1878,78, - 1877,1885,1903,151,243,41,1306,285,376,152, - 410,1833,1257,2371,41,803,38,4534,4792,36, - 922,33,37,909,64,34,2282,41,803,38, - 1997,4836,36,922,33,37,909,32,34,1792, - 31,29,58,1799,114,84,85,116,307,1817, - 1835,1825,1860,1842,1876,1868,1752,1878,2718,1877, - 1885,1903,151,243,41,739,391,376,152,335, - 2282,41,803,38,1361,4836,36,922,33,37, - 909,32,34,1792,31,29,58,1799,114,84, - 85,116,375,1817,1835,1825,1860,1842,1876,1868, - 432,1878,4550,1877,1885,1903,151,243,41,1306, - 2993,376,152,2110,41,803,38,1031,4836,36, - 922,33,37,909,32,34,1792,31,29,58, - 1799,114,84,85,116,335,1817,1835,1825,1860, - 1842,1876,1868,596,1878,1106,1877,1885,1921,172, - 68,374,1912,41,803,38,384,4836,36,922, - 33,37,909,32,34,1792,31,29,58,1799, - 114,84,85,116,149,1817,1835,1825,1860,1842, - 1876,1868,1878,1878,1257,1877,1885,1903,151,4534, - 2424,1257,497,150,152,372,4534,97,356,331, - 110,2282,41,803,38,1473,4836,36,922,33, - 37,909,32,34,1792,31,29,58,1799,114, - 84,85,116,1106,1817,1835,1825,1860,1842,1876, - 1868,459,1878,1106,1877,1885,1903,151,410,243, - 1688,335,163,152,2282,41,803,38,335,4836, - 36,922,33,37,909,32,34,1792,31,29, - 58,1799,114,84,85,116,1106,1817,1835,1825, - 1860,1842,1876,1868,3294,1878,304,1877,1885,1903, - 151,3154,2724,394,427,162,152,2282,41,803, - 38,2546,4836,36,922,33,37,909,32,34, - 1792,31,29,58,1799,114,84,85,116,330, - 1817,1835,1825,1860,1842,1876,1868,2121,1878,4241, - 1877,1885,1903,151,2225,41,1306,283,161,152, - 2282,41,803,38,2678,4836,36,922,33,37, - 909,32,34,1792,31,29,58,1799,114,84, - 85,116,59,1817,1835,1825,1860,1842,1876,1868, - 293,1878,1106,1877,1885,1903,151,243,3119,1306, - 82,160,152,2282,41,803,38,421,4836,36, - 922,33,37,909,32,34,1792,31,29,58, - 1799,114,84,85,116,79,1817,1835,1825,1860, - 1842,1876,1868,523,1878,1106,1877,1885,1903,151, - 2225,41,1306,3122,159,152,2282,41,803,38, - 2071,4836,36,922,33,37,909,32,34,1792, - 31,29,58,1799,114,84,85,116,1749,1817, - 1835,1825,1860,1842,1876,1868,523,1878,105,1877, - 1885,1903,151,243,41,1306,3179,158,152,2282, - 41,803,38,1949,4836,36,922,33,37,909, - 32,34,1792,31,29,58,1799,114,84,85, - 116,1856,1817,1835,1825,1860,1842,1876,1868,1674, - 1878,106,1877,1885,1903,151,671,2167,2141,1323, - 157,152,2282,41,803,38,2144,4836,36,922, - 33,37,909,32,34,1792,31,29,58,1799, - 114,84,85,116,2214,1817,1835,1825,1860,1842, - 1876,1868,2220,1878,405,1877,1885,1903,151,3502, - 243,3319,1959,156,152,2282,41,803,38,1561, - 4836,36,922,33,37,909,32,34,1792,31, - 29,58,1799,114,84,85,116,1566,1817,1835, - 1825,1860,1842,1876,1868,1243,1878,1113,1877,1885, - 1903,151,4875,243,2973,417,155,152,2282,41, - 803,38,1585,4836,36,922,33,37,909,32, - 34,1792,31,29,58,1799,114,84,85,116, - 1030,1817,1835,1825,1860,1842,1876,1868,758,1878, - 1710,1877,1885,1903,151,4743,1482,932,1562,154, - 152,2282,41,803,38,483,4836,36,922,33, - 37,909,32,34,1792,31,29,58,1799,114, - 84,85,116,2074,1817,1835,1825,1860,1842,1876, - 1868,2087,1878,2223,1877,1885,1903,151,1425,2024, - 3216,1480,153,152,2282,41,803,38,2054,4836, - 36,922,33,37,909,32,34,1792,31,29, - 58,1799,114,84,85,116,2079,1817,1835,1825, - 1860,1842,1876,1868,1250,1878,2243,1877,1885,1903, - 151,1816,1584,2233,2252,167,152,2282,41,803, - 38,2314,4836,36,922,33,37,909,32,34, - 1792,31,29,58,1799,114,84,85,116,1415, - 1817,1835,1825,1860,1842,1876,1868,2254,1878,357, - 1877,1885,1903,151,1839,41,397,1816,148,152, - 2514,41,803,38,48,4836,36,922,33,37, - 909,32,34,1792,31,29,58,1799,114,84, - 85,116,2323,1817,1835,1825,1860,1842,1876,1868, - 2327,1878,1113,1877,1885,1903,151,4808,1598,2332, - 1598,197,152,2631,41,803,38,2395,4836,36, - 922,33,37,909,32,34,1792,31,29,58, - 1799,114,84,85,116,1196,1817,1835,1825,1860, - 1842,1876,1868,845,1878,359,1877,1885,1921,172, - 2631,41,803,38,531,4836,36,922,33,37, - 909,32,34,1792,31,29,58,1799,114,84, - 85,116,2049,1817,1835,1825,1860,1842,1876,1868, - 392,1878,290,1877,1885,1921,172,2934,41,803, - 38,358,4889,36,922,33,37,909,67,34, - 531,2631,41,803,38,297,4836,36,922,33, - 37,909,32,34,1792,31,29,58,1799,114, - 84,85,116,2092,1817,1835,1825,1860,1842,1876, - 1868,2366,1878,383,1877,1885,1921,172,2631,41, - 803,38,423,4836,36,922,33,37,909,32, - 34,1792,31,29,58,1799,114,84,85,116, - 2413,1817,1835,1825,1860,1842,1876,1868,2483,1878, - 2231,1877,1885,1921,172,2934,41,803,38,1237, - 4889,36,922,33,37,909,66,34,2870,2631, - 41,803,38,2930,4836,36,922,33,37,909, - 32,34,1792,31,29,58,1799,114,84,85, - 116,326,1817,1835,1825,1860,1842,1876,1868,2348, - 1878,678,1877,1885,1921,172,2687,41,803,38, - 422,4836,36,922,33,37,909,32,34,1792, - 31,29,58,1799,114,84,85,116,765,1817, - 1835,1825,1860,1842,1876,1868,1731,1878,1920,1877, - 1885,1921,172,1803,41,803,38,1237,2008,36, - 922,1488,37,909,410,1247,1260,2631,41,803, - 38,425,4836,36,922,33,37,909,32,34, - 1792,31,29,58,1799,114,84,85,116,497, - 1817,1835,1825,1860,1842,1876,1868,1330,1878,3076, - 2635,4346,303,3327,2631,41,803,38,1655,4836, - 36,922,33,37,909,32,34,1792,31,29, - 58,1799,114,84,85,116,1530,1817,1835,1825, - 1860,1842,2497,2631,41,803,38,3329,4836,36, - 922,33,37,909,32,34,1792,31,29,58, - 1799,114,84,85,116,1900,1817,1835,1825,1860, - 2548,2631,41,803,38,1600,4836,36,922,33, - 37,909,32,34,1792,31,29,58,1799,114, - 84,85,116,2224,1817,1835,1825,1860,2549,2631, - 41,803,38,1598,4836,36,922,33,37,909, - 32,34,1792,31,29,58,1799,114,84,85, - 116,149,1817,1835,1825,2315,2631,41,803,38, - 1598,4836,36,922,33,37,909,32,34,1792, - 31,29,58,1799,114,84,85,116,1598,1817, - 1835,1825,2316,2631,41,803,38,1985,4836,36, - 922,33,37,909,32,34,1792,31,29,58, - 1799,114,84,85,116,309,1817,1835,1825,2376, - 2631,41,803,38,101,4836,36,922,33,37, - 909,32,34,1792,31,29,58,1799,114,84, - 85,116,301,1817,1835,1825,2405,262,1877,2222, - 1560,535,1839,41,397,1758,41,803,38,1262, - 291,36,922,342,37,909,2570,41,284,236, - 396,427,1803,41,803,38,3226,164,36,922, - 343,37,909,2403,1237,188,2641,3024,243,41, - 298,32,211,222,3600,4527,210,219,220,221, - 223,32,2006,177,1881,614,1,62,1424,627, - 535,2367,176,323,924,325,381,1598,318,567, - 1048,191,175,178,179,180,181,182,236,2743, - 41,739,391,2374,3052,1700,164,239,2219,1703, - 403,410,244,1782,188,2641,3024,1251,1086,298, - 2397,211,222,3600,2629,210,219,220,221,223, - 2057,1672,177,254,237,238,280,1803,41,803, - 38,176,346,36,922,3275,37,909,189,187, - 192,175,178,179,180,181,182,874,734,385, - 239,3101,2314,1560,3889,243,41,739,391,1237, - 2319,1404,41,803,38,1262,4534,36,922,342, - 37,909,1251,41,298,410,242,237,238,69, - 41,739,391,522,2606,1686,41,1202,2604,281, - 3406,3510,280,1247,1375,41,803,38,2980,2543, - 36,922,342,37,909,249,252,255,258,2725, - 1363,871,874,206,1137,627,280,676,335,323, - 924,325,57,3237,318,567,32,2410,1093,1541, - 1137,1434,447,867,725,732,2576,2969,3087,4502, - 168,32,32,2386,852,535,535,1137,627,2547, - 88,3682,323,924,325,282,2584,318,567,1803, - 41,803,38,346,346,36,922,46,37,909, - 32,164,164,164,3063,355,871,2040,2545,3032, - 3117,3393,170,311,315,4270,4270,347,1918,1367, - 352,1308,80,2601,3101,2032,3034,3347,1113,330, - 41,453,3882,4812,4721,942,2556,3465,1839,41, - 397,2631,41,803,38,1261,4836,36,922,33, - 37,909,32,34,1792,31,29,58,1799,114, - 84,85,116,2561,1817,1835,2415,2631,41,803, - 38,2604,4836,36,922,33,37,909,32,34, - 1792,31,29,58,1799,114,84,85,116,2606, - 1817,1835,2433,3059,41,803,38,4661,2612,36, - 922,342,37,909,1333,2622,369,2639,2239,41, - 803,38,1262,2660,36,922,342,37,909,175, - 2608,2631,41,803,38,354,4836,36,922,33, - 37,909,32,34,1792,31,29,58,1799,114, - 84,85,116,2367,1817,2261,3266,627,443,3922, - 2586,323,924,325,1563,62,318,567,1137,3245, - 349,1323,627,2668,535,3084,323,924,325,32, - 1257,318,567,686,355,4534,2219,1941,243,41, - 739,391,236,2670,164,2695,347,1918,1367,352, - 164,852,208,3320,3276,450,1913,1919,188,2641, - 3024,3024,332,338,32,211,222,3600,2965,210, - 219,220,221,223,1901,57,177,3556,2547,436, - 239,1093,2672,535,1237,176,656,335,1477,2168, - 311,315,2629,2629,2960,175,178,179,180,181, - 182,236,156,41,739,391,257,237,238,164, - 2734,346,3670,943,1688,522,4219,188,2641,3024, - 3871,2716,1261,32,211,222,3600,2914,210,219, - 220,221,223,2767,1333,177,32,3269,523,57, - 1137,1333,535,1563,176,1093,190,535,32,1475, - 1210,2512,743,186,175,178,179,180,181,182, - 236,1584,943,1688,2695,3726,164,1237,164,2720, - 1363,3267,2728,164,1137,1516,188,2641,3024,364, - 447,188,2641,211,222,3600,2699,210,219,220, - 221,223,32,1946,177,3084,822,610,239,30, - 168,535,3084,176,2855,591,41,286,203,4534, - 4885,2149,184,175,178,179,180,181,182,236, - 504,41,739,391,260,237,238,164,2746,2767, - 1333,1975,337,338,292,188,2641,3024,2188,334, - 338,32,211,222,3600,4269,210,219,220,221, - 223,32,2664,177,1225,1137,697,57,456,4728, - 535,336,176,1093,2050,1713,2494,3611,55,2508, - 2629,185,175,178,179,180,181,182,236,442, - 410,164,573,292,1044,355,164,1323,346,32, - 2643,3084,1048,4697,188,2641,3024,349,1918,1367, - 352,211,222,3600,2799,210,219,220,221,223, - 2349,1357,177,2488,1713,784,2726,1323,205,535, - 1363,176,4623,204,1137,410,1237,3024,3667,338, - 195,175,178,179,180,181,182,236,852,41, - 739,391,2799,379,2917,164,52,1670,1333,4534, - 168,5535,5535,188,2641,3024,1870,3024,353,1323, - 211,222,3600,407,210,219,220,221,223,410, - 410,177,32,379,871,57,1137,1257,535,32, - 176,1093,4534,3653,32,5535,55,5535,3707,3202, - 175,178,179,180,181,182,236,1237,1225,3024, - 2303,336,164,4728,164,5535,32,209,207,3084, - 1137,3786,188,2641,3024,525,149,3649,429,211, - 222,3600,5535,210,219,220,221,223,32,77, - 177,32,2461,958,3412,1137,164,535,410,176, - 3551,5535,1964,1237,377,3788,3890,338,200,175, - 178,179,180,181,182,236,939,41,739,391, - 1333,164,3148,164,32,32,5535,4534,1137,1137, - 3851,188,2641,3024,3499,76,2783,2108,211,222, - 3600,3366,210,219,220,221,223,32,5535,177, - 5535,3112,1045,57,164,3712,535,1363,176,1093, - 1870,1137,32,3869,55,5535,2617,194,175,178, - 179,180,181,182,236,1237,32,102,589,3412, - 1137,3084,164,5535,32,395,427,168,1137,1536, - 188,2641,3024,2629,1188,5535,32,211,222,3600, - 3091,210,219,220,221,223,164,61,177,32, - 5535,236,32,2611,164,1612,958,176,3896,338, - 32,32,430,3917,3180,4775,202,175,178,179, - 180,181,182,32,213,222,3600,4282,212,219, - 220,221,223,1274,41,2075,38,1262,4534,36, - 922,342,37,909,3915,214,216,218,299,300, - 633,32,104,5535,5535,2550,32,2799,1323,5535, - 2953,17,1237,215,217,2631,41,803,38,5535, - 4836,36,922,33,37,909,32,34,1792,31, - 29,58,1799,114,84,85,116,627,1817,2288, - 335,323,924,325,95,2997,318,567,3024,2629, - 1393,41,803,38,2701,5535,36,922,342,37, - 909,1237,5535,15,524,5535,1440,236,5535,2575, - 41,803,38,3682,4836,36,922,33,37,909, - 32,34,1792,31,29,58,1799,94,84,85, - 213,222,3600,60,212,219,220,221,223,1237, - 557,3891,1373,3016,627,5535,2629,2629,320,935, - 325,214,216,218,299,300,633,32,5535,2081, - 410,1088,32,4279,2734,236,2629,224,5535,215, - 217,451,1490,41,803,38,5535,4534,36,922, - 342,37,909,1237,346,418,2083,5535,213,222, - 3600,354,212,219,220,221,223,3106,229,4355, - 1167,2629,1237,32,5535,1237,4270,3298,2602,214, - 216,218,299,300,633,3713,32,2163,32,236, - 2918,410,3410,5535,1237,224,627,215,217,336, - 323,924,325,505,98,321,567,3728,1237,1237, - 355,5535,213,222,3600,788,212,219,220,221, - 223,5535,347,1918,1367,352,3888,4355,2443,201, - 3276,5535,5535,214,216,218,299,300,633,5535, - 3206,3265,503,504,5535,1237,1237,5535,1237,224, - 5535,215,217,2631,41,803,38,5535,4836,36, - 922,33,37,909,32,34,1792,31,29,58, - 1799,114,84,85,116,1363,2296,3324,75,1137, - 74,4355,2470,2631,41,803,38,5535,4836,36, - 922,33,37,909,32,34,1792,31,29,58, - 1799,114,84,85,116,168,2298,2631,41,803, - 38,1237,4836,36,922,33,37,909,32,34, - 1792,31,29,58,1799,114,84,85,116,1237, - 2308,1608,41,803,38,1237,4534,36,922,342, - 37,909,1237,73,156,41,739,391,32,2255, - 32,1626,2693,578,1961,2629,32,5535,5535,5535, - 2007,72,5535,5535,5535,5535,5535,3309,1026,41, - 739,391,3916,236,3558,1237,1237,1237,1237,5535, - 5535,57,1237,2415,5535,627,5535,1093,336,323, - 924,325,55,5535,319,567,213,222,3600,5535, - 212,219,220,221,223,57,995,63,62,3731, - 109,1093,355,5535,3442,529,55,214,216,218, - 299,300,633,5535,349,1918,1367,352,5535,5535, - 2588,5535,5535,17,5535,215,217,2631,41,803, - 38,5535,4836,36,922,33,37,909,32,34, - 1792,31,29,58,1799,114,84,85,93,2631, - 1324,803,1989,5535,4836,36,922,33,37,909, - 32,34,1792,31,29,58,1799,114,84,85, - 92,2631,41,803,38,16,4836,36,922,33, - 37,909,32,34,1792,31,29,58,1799,114, - 84,85,91,2631,41,803,38,5535,4836,36, - 922,33,37,909,32,34,1792,31,29,58, - 1799,114,84,85,90,2631,41,803,38,5535, - 4836,36,922,33,37,909,32,34,1792,31, - 29,58,1799,114,84,85,89,2631,41,803, - 38,5535,4836,36,922,33,37,909,32,34, - 1792,31,29,58,1799,114,84,85,88,2631, - 41,803,38,5535,4836,36,922,33,37,909, - 32,34,1792,31,29,58,1799,114,84,85, - 87,2631,41,803,38,5535,4836,36,922,33, - 37,909,32,34,1792,31,29,58,1799,114, - 84,85,86,2452,41,803,38,5535,4836,36, - 922,33,37,909,32,34,1792,31,29,58, - 1799,114,84,85,112,2631,41,803,38,5535, - 4836,36,922,33,37,909,32,34,1792,31, - 29,58,1799,114,84,85,118,2631,41,803, - 38,5535,4836,36,922,33,37,909,32,34, - 1792,31,29,58,1799,114,84,85,117,2631, - 41,803,38,5535,4836,36,922,33,37,909, - 32,34,1792,31,29,58,1799,114,84,85, - 115,2631,41,803,38,5535,4836,36,922,33, - 37,909,32,34,1792,31,29,58,1799,114, - 84,85,113,2984,5535,5535,5535,2629,5535,1317, - 1883,5535,3123,2629,1441,5535,2629,5535,5535,1828, - 5535,5535,1317,2629,4534,236,2629,5535,5535,5535, - 5535,2734,5535,5535,236,5535,5535,5535,5535,5535, - 5535,2734,5535,5535,2734,5535,5535,5535,213,222, - 3600,5535,212,219,220,221,223,213,222,3600, - 5535,212,219,220,221,223,5535,5535,5535,214, - 216,218,299,300,633,5535,335,5535,214,216, - 218,299,300,633,5535,519,3183,215,217,1363, - 2629,355,5535,1137,520,3089,215,217,5535,2629, - 363,5535,5535,347,1918,1367,352,5535,236,3154, - 363,345,5535,363,2699,1954,1956,236,5535,168, - 5535,5535,5535,5535,3693,1954,1956,3715,1954,1956, - 5535,213,222,3600,5535,212,219,220,221,223, - 213,222,3600,5535,212,219,220,221,223,5535, - 5535,5535,214,216,218,299,300,633,5535,5535, - 5535,214,216,218,299,300,633,5535,310,3196, - 215,217,5535,2629,5535,5535,5535,225,5535,215, - 217,5535,5535,5535,5535,5535,3918,5535,5535,5535, - 5535,236,5535,5535,5535,5535,5535,5535,1758,41, - 803,38,1262,5535,36,922,342,37,909,5535, - 5535,5535,5535,5535,213,222,3600,5535,212,219, - 220,221,223,5535,2033,41,2075,38,1262,5535, - 36,922,342,37,909,214,216,218,299,300, - 633,5535,2803,41,739,391,5535,3052,5535,5535, - 5535,499,627,215,217,245,323,924,325,5535, - 5535,318,567,5535,32,5535,5535,1199,2629,5535, - 5535,2629,4816,5535,243,41,739,391,627,280, - 5535,852,323,924,325,5535,346,318,567,236, - 2200,41,803,38,5535,4534,36,922,342,37, - 909,32,32,239,5535,2629,535,1440,4270,5535, - 5535,57,1746,408,4648,5535,5535,1093,5535,2171, - 312,315,1432,346,346,5535,5535,5535,5535,243, - 237,238,164,409,410,411,299,300,633,5535, - 5535,3117,281,5535,627,4270,4270,336,323,924, - 325,5535,5535,319,567,5535,2200,3562,250,253, - 256,259,2725,2208,5535,5535,5535,535,5535,1442, - 676,1758,41,803,38,1262,5535,36,922,342, - 37,909,5535,5535,5535,346,419,2083,2210,41, - 803,38,3533,164,36,922,342,37,909,5535, - 5535,1828,196,5535,5535,2629,4534,4631,5535,5535, - 1287,5535,5535,5535,2629,4816,5535,5535,5535,5535, - 5535,5535,5535,2734,5535,627,404,412,414,323, - 924,325,236,5535,318,567,5535,1373,5535,5535, - 5535,2629,627,5535,5535,5535,320,935,325,5535, - 5535,2048,5535,4670,3136,1746,408,4648,335,2734, - 5535,1767,41,739,391,5535,198,5535,1767,41, - 739,391,5535,5535,5535,5535,409,410,411,299, - 300,633,5535,1767,41,739,391,5535,5535,5535, - 5535,3871,363,5535,5535,5535,5535,5535,57,1811, - 41,739,391,5535,1093,57,3693,1954,1956,55, - 5535,1093,1442,5535,5535,2311,55,5535,32,2629, - 57,5535,2629,780,5535,5535,1093,5535,505,5535, - 916,55,852,41,739,391,57,2734,5535,5535, - 346,3388,1093,788,5535,925,5535,3219,1767,41, - 739,391,1767,41,739,391,243,41,739,391, - 5535,2695,4270,5535,5535,5535,5535,502,504,57, - 412,415,5535,2208,5535,1093,1355,41,739,391, - 3484,5535,5535,5535,5535,57,5535,5535,5535,57, - 5535,1093,5535,57,2719,1093,55,5535,32,1093, - 55,5535,2629,5535,1038,5535,505,1962,5535,5535, - 1132,5535,5535,57,1313,243,41,739,391,1093, - 346,5535,5535,5535,3181,243,41,739,391,243, - 41,739,391,5535,5535,32,5535,32,5535,535, - 5535,535,4270,5535,5535,502,504,32,5535,5535, - 5535,2629,57,509,5535,5535,32,346,1093,346, - 535,5535,57,3188,5535,164,57,164,1093,346, - 5535,2417,1093,2566,196,2629,196,3181,346,4631, - 5535,4631,5535,5535,32,2987,164,5535,2629,5535, - 32,4270,5535,346,2629,196,5535,5535,5535,5535, - 4631,5535,507,530,5535,5535,346,5535,5535,5535, - 5535,5535,346,5535,5535,4270,5535,5535,5535,5535, - 5535,5535,5535,5535,5535,5535,533,5535,4270,5535, - 5535,5535,5535,5535,4270,5535,5535,5535,3748,3734, - 3749,5535,5535,5535,5535,534,5535,5535,5535,5535, - 5535,5535,5535,5535,5535,5535,5535,5535,5535,3785, - 5535,5535,5535,5535,5535,5535,5535,5535,5535,5535, - 5535,5535,5535,5535,5535,5535,5535,5535,5535,5535, - 5535,5535,5535,5535,5535,5535,5535,5535,5535,5535, - 5535,5535,5535,5535,5535,5535,5535,5535,5535,5535, - 5535,5535,5535,5535,5535,5535,5535,5535,5535,5535, - 5535,5535,5535,5535,5535,5535,5535,5535,5535,5535, - 5535,5535,5535,5535,5535,5535,5535,5535,5535,5535, - 5535,5535,5535,5535,5535,5535,5535,5535,5535,5535, - 5535,5535,5535,5535,5535,5535,5535,5535,5535,5535, - 5535,5535,5535,5535,5535,5535,5535,5535,5535,5535, - 5535,5535,5535,5535,3923,5535,0,501,4263,0, - 235,1,0,45,5555,0,45,5554,0,1, - 2555,0,1,665,0,1,3039,0,1,5555, - 2,0,1,5554,2,0,5776,248,0,5775, - 248,0,5876,248,0,5875,248,0,5803,248, - 0,5802,248,0,5801,248,0,5800,248,0, - 5799,248,0,5798,248,0,5797,248,0,5796, - 248,0,5814,248,0,5813,248,0,5812,248, - 0,5811,248,0,5810,248,0,5809,248,0, - 5808,248,0,5807,248,0,5806,248,0,5805, - 248,0,5804,248,0,45,248,5555,0,45, - 248,5554,0,5579,248,0,2979,390,0,56, - 5555,0,56,5554,0,45,1,5555,2,0, - 45,1,5554,2,0,5579,1,0,1,5868, - 0,1,3073,0,2979,35,0,440,3098,0, - 454,3142,0,5547,1,0,5555,56,0,5554, - 56,0,3191,322,0,45,5555,2,0,45, - 5554,2,0,41,39,0,1,444,0,458, - 773,0,457,1395,0,235,227,0,501,1567, - 0,5579,235,1,0,45,235,1,0,235, - 417,0,43,5555,0,43,5554,0,51,5577, - 0,51,43,0,1,1827,0,1,5814,0, - 1,5813,0,1,5812,0,1,5811,0,1, - 5810,0,1,5809,0,1,5808,0,1,5807, - 0,1,5806,0,1,5805,0,1,5804,0, - 45,1,5555,0,45,1,5554,0,643,1, - 0,5547,386,0,5546,386,0,1,2004,0, - 1,2552,0,235,226,0,5545,406,0,5544, - 406,0,235,416,0,44,5555,0,44,5554, - 0,2493,134,0,5543,1,0,5868,445,0, - 3073,445,0,5577,53,0,53,43,0,5541, - 1,0,5540,1,0,2979,47,0,3415,99, - 0,38,40,0,45,665,0,235,1,2789, - 0,5544,235,0,2790,235,0,45,1,0, - 244,2750,0,391,38,0,38,391,0,390, - 35,0,35,390,0,2493,136,0,2493,135, - 0,2929,235,0,10,12,0,55,43,0, - 1,100,0,43,55,0,8,10,12,0, - 43,5555,2,0,43,5554,2,0,5555,42, - 0,5554,42,0,3143,386,0,5868,103,0, - 3073,103,0,41,81,0,8,12,0,285, - 3447,0,193,3383,0 + 17,17,17,17,17,17,137,137,137,112, + 112,18,18,18,18,18,18,18,18,18, + 18,18,18,18,19,19,172,172,173,173, + 174,140,140,141,141,138,138,142,139,139, + 20,20,21,21,23,23,23,24,24,24, + 24,25,25,25,26,26,26,27,27,27, + 27,27,28,28,28,29,29,31,31,33, + 33,35,35,36,36,37,37,42,42,41, + 41,41,41,41,41,41,41,41,41,41, + 41,41,39,30,143,143,96,96,175,175, + 91,195,195,73,73,73,73,73,73,73, + 73,73,74,74,74,65,65,55,55,176, + 176,75,75,75,102,102,177,177,76,76, + 76,178,178,77,77,77,77,77,78,78, + 81,81,81,81,81,81,81,49,49,49, + 49,49,113,113,114,114,50,179,22,22, + 22,22,22,48,48,86,86,86,86,86, + 150,150,145,145,145,145,145,146,146,146, + 147,147,147,148,148,148,149,149,149,87, + 87,87,87,87,88,88,88,13,13,13, + 13,13,13,13,13,13,13,13,97,118, + 118,118,118,118,118,116,116,116,117,117, + 152,152,151,151,120,120,103,68,68,69, + 70,52,47,153,153,53,51,84,84,154, + 154,144,144,121,122,122,82,82,155,155, + 62,62,62,59,59,58,63,63,80,80, + 57,57,57,89,89,99,98,98,61,61, + 60,60,54,54,45,100,100,100,92,92, + 92,93,93,94,94,94,95,95,104,104, + 104,106,106,105,105,196,196,90,90,181, + 181,181,181,181,124,46,46,157,180,180, + 125,125,125,125,126,159,182,182,34,34, + 115,127,127,127,127,107,107,119,119,119, + 160,161,161,161,161,161,161,161,161,161, + 161,161,185,185,183,183,184,184,162,162, + 162,162,163,186,109,108,108,187,187,164, + 164,164,164,101,101,101,188,188,8,8, + 9,189,189,190,165,156,156,166,166,167, + 168,168,7,7,10,191,191,191,191,191, + 191,191,191,191,191,191,191,191,191,191, + 191,191,191,191,191,191,191,191,191,191, + 191,191,191,191,191,191,191,191,191,191, + 191,191,191,191,191,191,191,66,71,71, + 169,169,129,129,130,130,130,130,130,130, + 3,131,131,128,128,110,110,83,67,79, + 158,158,111,111,192,192,192,132,132,123, + 123,193,193,1132,41,2071,2065,504,4722,33, + 36,37,941,816,32,34,2055,31,29,56, + 1727,112,82,83,114,1392,1736,1770,1754,1797, + 1779,1813,1807,1373,1840,62,1822,278,1850,1856, + 149,332,41,284,164,150,631,3057,41,944, + 38,3402,3225,33,36,37,941,816,340,34, + 2597,41,944,38,237,1425,33,36,37,941, + 816,32,34,1721,31,29,56,1727,112,82, + 83,114,72,1736,1770,1754,1797,1779,2440,240, + 235,236,680,3244,1399,41,1245,1297,504,3710, + 279,680,41,783,389,321,1123,323,1546,316, + 1032,1565,332,41,451,391,425,4663,247,250, + 253,256,624,71,2397,41,282,353,55,524, + 906,158,941,1557,1427,55,3283,1229,788,345, + 1684,1555,350,1986,1229,1320,1969,525,3079,954, + 2688,2801,3021,4543,1775,41,944,38,2779,1425, + 33,36,37,941,816,32,34,1721,31,29, + 56,1727,112,82,83,114,344,1736,1770,1754, + 1797,1779,1813,1807,2148,1840,863,1822,3598,1850, + 1856,149,1410,496,382,515,150,1124,2450,3490, + 2449,1237,680,1506,1463,40,392,425,516,1775, + 41,944,38,2779,1425,33,36,37,941,816, + 32,34,1721,31,29,56,1727,112,82,83, + 114,344,1736,1770,1754,1797,1779,1813,1807,55, + 1840,1566,1822,1128,1850,1856,149,1884,3240,333, + 515,150,290,1770,3490,680,3018,1077,680,41, + 2193,2063,315,516,511,1349,41,944,38,2598, + 4736,33,36,37,941,816,63,34,444,1865, + 1883,4642,1582,2072,1564,1858,2037,1775,41,944, + 38,2779,1425,33,36,37,941,816,32,34, + 1721,31,29,56,1727,112,82,83,114,344, + 1736,1770,1754,1797,1779,1813,1807,1077,1840,511, + 1822,325,1850,1856,149,1723,41,285,515,150, + 529,1745,3490,158,1263,1266,1124,1901,3513,4035, + 1858,516,2051,41,944,38,2779,1425,33,36, + 37,941,816,32,34,1721,31,29,56,1727, + 112,82,83,114,344,1736,1770,1754,1797,1779, + 1813,1807,3769,1840,1417,1822,1409,1850,1856,149, + 506,41,284,515,150,4030,1654,3490,334,2752, + 680,41,296,680,41,287,516,511,2108,41, + 944,38,67,4786,33,36,37,941,816,32, + 34,2224,509,335,2243,1908,1162,2330,1858,1409, + 2119,41,944,38,1381,1425,33,36,37,941, + 816,32,34,1721,31,29,56,1727,112,82, + 83,114,316,1736,1770,1754,1797,1779,1813,1807, + 55,1840,512,1822,3681,1850,1856,149,300,1977, + 2280,380,150,1844,41,944,38,1115,1425,33, + 36,37,941,816,32,34,1721,31,29,56, + 1727,112,82,83,114,237,1736,1770,1754,1797, + 1779,1813,1807,2080,1840,2581,1822,3024,1850,1856, + 149,3637,1235,2280,380,150,680,41,1463,281, + 249,235,236,2597,41,944,38,2394,1425,33, + 36,37,941,816,32,34,1721,31,29,56, + 1727,112,82,83,114,1433,1736,1770,1754,1797, + 1779,1813,1807,436,2610,386,2282,680,41,3081, + 1917,41,944,38,422,1425,33,36,37,941, + 816,32,34,1721,31,29,56,1727,112,82, + 83,114,1225,1736,1770,1754,1797,1779,1813,1807, + 1511,1840,326,1822,4450,1850,1856,149,387,2282, + 2280,380,150,1532,680,41,783,389,2357,41, + 944,38,3371,1425,33,36,37,941,816,32, + 34,1721,31,29,56,1727,112,82,83,114, + 1934,1736,1770,1754,1797,1779,1813,1807,55,1840, + 3014,1822,55,1850,1856,149,3106,1229,1893,164, + 150,2597,41,944,38,1329,1425,33,36,37, + 941,816,32,34,1721,31,29,56,1727,112, + 82,83,114,1692,1736,1770,1754,1797,1779,1813, + 1807,99,1840,327,2620,378,2282,2357,41,944, + 38,419,1425,33,36,37,941,816,32,34, + 1721,31,29,56,1727,112,82,83,114,245, + 1736,1770,1754,1797,1779,1813,1807,55,1840,2326, + 1822,537,1850,1856,149,1783,1654,1906,374,150, + 1805,2747,1507,2825,41,944,38,1565,4430,33, + 36,37,941,816,340,34,1409,2357,41,944, + 38,1969,1425,33,36,37,941,816,32,34, + 1721,31,29,56,1727,112,82,83,114,324, + 1736,1770,1754,1797,1779,1813,1807,1258,1840,1161, + 1822,628,1850,1856,149,76,2231,1476,374,150, + 334,321,1123,323,3852,319,1032,1565,390,188, + 1723,41,282,680,41,783,389,2357,41,944, + 38,373,1425,33,36,37,941,816,32,34, + 1721,31,29,56,1727,112,82,83,114,495, + 1736,1770,1754,1797,1779,1813,1807,55,1840,1727, + 1822,1657,1850,1856,149,2963,1229,2597,374,150, + 158,2269,41,944,38,4590,4736,33,36,37, + 941,816,62,34,2846,48,1549,2185,41,944, + 38,372,1425,33,36,37,941,816,32,34, + 1721,31,29,56,1727,112,82,83,114,1243, + 1736,1770,1754,1797,1779,1813,1807,55,1840,1546, + 1822,662,1850,1899,170,1297,41,783,389,1983, + 41,944,38,62,1425,33,36,37,941,816, + 32,34,1721,31,29,56,1727,112,82,83, + 114,370,1736,1770,1754,1797,1779,1813,1807,55, + 1840,1494,1822,2406,1850,1856,149,2450,1229,2599, + 148,150,329,2326,2357,41,944,38,1643,1425, + 33,36,37,941,816,32,34,1721,31,29, + 56,1727,112,82,83,114,117,1736,1770,1754, + 1797,1779,1813,1807,458,1840,1371,1822,66,1850, + 1856,149,863,680,1557,161,150,2357,41,944, + 38,591,1425,33,36,37,941,816,32,34, + 1721,31,29,56,1727,112,82,83,114,465, + 1736,1770,1754,1797,1779,1813,1807,2475,1840,1357, + 1822,441,1850,1856,149,2039,1692,1816,160,150, + 2357,41,944,38,1910,1425,33,36,37,941, + 816,32,34,1721,31,29,56,1727,112,82, + 83,114,683,1736,1770,1754,1797,1779,1813,1807, + 357,1840,381,1822,55,1850,1856,149,684,529, + 1546,159,150,2357,41,944,38,521,1425,33, + 36,37,941,816,32,34,1721,31,29,56, + 1727,112,82,83,114,1556,1736,1770,1754,1797, + 1779,1813,1807,291,1840,354,1822,55,1850,1856, + 149,2990,1394,1546,158,150,2357,41,944,38, + 521,1425,33,36,37,941,816,32,34,1721, + 31,29,56,1727,112,82,83,114,77,1736, + 1770,1754,1797,1779,1813,1807,2519,1840,2536,1822, + 226,1850,1856,149,1635,457,1546,157,150,2357, + 41,944,38,2572,1425,33,36,37,941,816, + 32,34,1721,31,29,56,1727,112,82,83, + 114,2575,1736,1770,1754,1797,1779,1813,1807,55, + 1840,1750,1822,2859,1850,1856,149,1221,328,1546, + 156,150,2357,41,944,38,69,1425,33,36, + 37,941,816,32,34,1721,31,29,56,1727, + 112,82,83,114,1647,1736,1770,1754,1797,1779, + 1813,1807,55,1840,355,1822,739,1850,1856,149, + 1649,4342,1546,155,150,2357,41,944,38,1541, + 1425,33,36,37,941,816,32,34,1721,31, + 29,56,1727,112,82,83,114,1646,1736,1770, + 1754,1797,1779,1813,1807,55,1840,1534,1822,817, + 1850,1856,149,1019,57,1546,154,150,2357,41, + 944,38,323,1425,33,36,37,941,816,32, + 34,1721,31,29,56,1727,112,82,83,114, + 497,1736,1770,1754,1797,1779,1813,1807,55,1840, + 838,1822,3977,1850,1856,149,1574,103,2059,153, + 150,2357,41,944,38,2080,1425,33,36,37, + 941,816,32,34,1721,31,29,56,1727,112, + 82,83,114,2285,1736,1770,1754,1797,1779,1813, + 1807,55,1840,678,1822,3680,1850,1856,149,1915, + 104,857,152,150,2357,41,944,38,944,1425, + 33,36,37,941,816,32,34,1721,31,29, + 56,1727,112,82,83,114,1764,1736,1770,1754, + 1797,1779,1813,1807,55,1840,2249,1822,3737,1850, + 1856,149,1268,2580,2260,151,150,2357,41,944, + 38,1490,1425,33,36,37,941,816,32,34, + 1721,31,29,56,1727,112,82,83,114,2294, + 1736,1770,1754,1797,1779,1813,1807,55,1840,1958, + 1822,3776,1850,1856,149,2402,1394,2538,165,150, + 2357,41,944,38,2539,1425,33,36,37,941, + 816,32,34,1721,31,29,56,1727,112,82, + 83,114,2107,1736,1770,1754,1797,1779,1813,1807, + 1026,1840,1903,1822,306,1850,1856,149,2105,2114, + 2343,146,150,2480,41,944,38,30,1425,33, + 36,37,941,816,32,34,1721,31,29,56, + 1727,112,82,83,114,2474,1736,1770,1754,1797, + 1779,1813,1807,55,1840,2774,1822,2987,1850,1856, + 149,2250,1654,1901,195,150,2597,41,944,38, + 1394,1425,33,36,37,941,816,32,34,1721, + 31,29,56,1727,112,82,83,114,2082,1736, + 1770,1754,1797,1779,1813,1807,55,1840,1394,1822, + 1128,1850,1899,170,2597,41,944,38,305,1425, + 33,36,37,941,816,32,34,1721,31,29, + 56,1727,112,82,83,114,3444,1736,1770,1754, + 1797,1779,1813,1807,288,1840,302,1822,520,1850, + 1899,170,1250,41,944,38,156,1956,47,36, + 37,941,816,2597,41,944,38,295,1425,33, + 36,37,941,816,32,34,1721,31,29,56, + 1727,112,82,83,114,1804,1736,1770,1754,1797, + 1779,1813,1807,2467,1840,1496,1822,3205,1850,1899, + 170,2597,41,944,38,421,1425,33,36,37, + 941,816,32,34,1721,31,29,56,1727,112, + 82,83,114,403,1736,1770,1754,1797,1779,1813, + 1807,55,1840,2092,1822,3150,1850,1899,170,1831, + 41,944,38,1991,1840,2108,36,37,941,816, + 2597,41,944,38,2962,1425,33,36,37,941, + 816,32,34,1721,31,29,56,1727,112,82, + 83,114,1394,1736,1770,1754,1797,1779,1813,1807, + 55,1840,1409,1822,2850,1850,1899,170,2653,41, + 944,38,420,1425,33,36,37,941,816,32, + 34,1721,31,29,56,1727,112,82,83,114, + 301,1736,1770,1754,1797,1779,1813,1807,1974,1840, + 2158,1822,2871,1850,1899,170,1831,41,944,38, + 330,2234,46,36,37,941,816,2597,41,944, + 38,423,1425,33,36,37,941,816,32,34, + 1721,31,29,56,1727,112,82,83,114,1222, + 1736,1770,1754,1797,1779,1813,1807,2344,1840,55, + 1822,3058,2655,3318,3127,2597,41,944,38,1815, + 1425,33,36,37,941,816,32,34,1721,31, + 29,56,1727,112,82,83,114,401,1736,1770, + 1754,1797,1779,1813,2618,1285,41,944,38,3402, + 3225,33,36,37,941,816,340,34,2597,41, + 944,38,2389,1425,33,36,37,941,816,32, + 34,1721,31,29,56,1727,112,82,83,114, + 1143,1736,1770,1754,1797,2496,2040,41,944,38, + 1394,4786,33,36,37,941,816,65,34,680, + 41,783,389,321,1123,323,2092,316,1032,2040, + 41,944,38,30,4786,33,36,37,941,816, + 64,34,680,41,296,353,2986,1985,185,680, + 41,783,389,278,2450,445,2457,345,1684,1555, + 350,2597,41,944,38,1979,1425,33,36,37, + 941,816,32,34,1721,31,29,56,1727,112, + 82,83,114,450,1736,1770,1754,1797,2579,2759, + 41,944,38,3352,3225,33,36,37,941,816, + 340,34,1654,2312,41,944,38,722,4430,33, + 36,37,941,816,340,34,280,2597,41,944, + 38,352,1425,33,36,37,941,816,32,34, + 1721,31,29,56,1727,112,82,83,114,2639, + 1736,1770,1754,2244,520,2272,367,321,1123,323, + 1654,316,1032,680,41,783,389,2131,1565,2131, + 333,321,1123,323,3290,316,1032,3127,158,353, + 671,1257,55,3948,307,2239,2037,356,2217,2779, + 758,345,1684,1555,350,612,529,278,1113,2861, + 379,1539,1253,2597,41,944,38,344,1425,33, + 36,37,941,816,32,34,1721,31,29,56, + 1727,112,82,83,114,2391,1736,1770,1754,2318, + 1361,3340,299,2326,309,313,2541,41,944,38, + 1654,1425,33,36,37,941,816,32,34,1721, + 31,29,56,1727,92,82,83,1642,3080,2476, + 341,2522,1565,2597,41,944,38,1299,1425,33, + 36,37,941,816,32,34,1721,31,29,56, + 1727,112,82,83,114,88,1736,1770,1754,2320, + 2597,41,944,38,2886,1425,33,36,37,941, + 816,32,34,1721,31,29,56,1727,112,82, + 83,114,289,1736,1770,1754,2331,262,2534,237, + 2628,533,680,41,1463,286,3086,41,944,38, + 722,3225,33,36,37,941,816,340,34,233, + 1394,2214,1102,296,252,235,236,162,1881,1508, + 41,783,389,4715,2829,186,2450,1247,2214,41, + 296,2661,242,209,220,4684,208,217,218,219, + 221,3101,175,2275,440,1,454,1128,204,533, + 2682,980,174,278,321,1123,323,2684,316,1032, + 189,173,176,177,178,179,180,233,980,593, + 41,783,389,162,158,162,1565,1565,1257,4750, + 237,206,3300,186,2450,1247,680,41,1463,283, + 1654,209,220,4684,208,217,218,219,221,1338, + 175,1565,237,55,2695,240,235,236,4307,30, + 174,55,1229,1252,949,950,279,187,190,173, + 176,177,178,179,180,2459,55,255,235,236, + 3488,949,2712,351,247,250,253,256,624,55, + 332,41,451,4467,2714,4663,906,1274,41,2012, + 38,722,4430,33,36,37,941,816,340,34, + 2961,2386,383,2805,3079,954,2688,2801,3021,4543, + 2597,41,944,38,2733,1425,33,36,37,941, + 816,32,34,1721,31,29,56,1727,112,82, + 83,114,175,1736,1770,2367,1951,330,336,1565, + 3294,1338,2665,1410,333,321,1123,323,1124,316, + 1032,2225,2965,41,944,38,722,3225,33,36, + 37,941,816,340,34,2326,1409,504,352,1025, + 330,75,2597,41,944,38,1253,1425,33,36, + 37,941,816,32,34,1721,31,29,56,1727, + 112,82,83,114,158,1736,1770,2422,2646,4761, + 333,3124,2961,2275,1889,349,1247,533,2779,533, + 321,1123,323,1424,316,1032,353,1677,41,395, + 2742,377,1677,41,395,3688,2405,233,345,1684, + 1555,350,861,162,612,162,2861,1409,2753,335, + 336,186,2450,186,2450,1247,448,1865,1883,416, + 2020,209,220,4684,208,217,218,219,221,2824, + 175,2744,237,436,2459,2509,2752,533,201,1128, + 174,2359,244,309,313,394,425,1247,2971,173, + 176,177,178,179,180,233,1197,258,235,236, + 2779,1323,3414,162,362,162,3358,1677,41,395, + 1946,186,2450,1247,168,2578,1299,2241,233,209, + 220,4684,208,217,218,219,221,2582,175,2690, + 237,523,2737,375,1987,533,3375,1394,174,1994, + 941,1557,2185,406,4671,445,184,173,176,177, + 178,179,180,233,1303,245,235,236,2779,1323, + 1394,162,407,408,409,297,298,664,55,186, + 2450,1247,4371,2024,3852,203,233,209,220,4684, + 208,217,218,219,221,2784,175,94,1873,610, + 108,3679,202,533,1565,504,174,1521,405,55, + 2185,406,4671,2233,182,173,176,177,178,179, + 180,233,2796,2308,3253,593,41,783,389,162, + 407,408,409,297,298,664,74,186,2450,1247, + 680,41,1463,3040,1394,209,220,4684,208,217, + 218,219,221,2798,175,50,1549,697,5384,55, + 4408,533,2326,5384,174,1521,410,412,1229,1175, + 290,5384,183,173,176,177,178,179,180,233, + 5384,2593,207,767,41,783,389,162,1565,1246, + 2753,3164,5384,5384,1765,186,2450,1247,2779,1124, + 1394,2670,1564,209,220,4684,208,217,218,219, + 221,5384,175,393,425,784,2405,55,1338,533, + 59,1394,174,5384,410,413,1229,53,1565,5384, + 193,173,176,177,178,179,180,233,205,920, + 1831,41,944,38,5384,162,3170,36,37,941, + 816,333,1765,186,2450,1247,2779,1124,1394,3085, + 93,209,220,4684,208,217,218,219,221,1565, + 175,1497,5384,871,2405,1409,1410,533,5384,2961, + 174,1124,55,3405,361,5384,2779,5384,3223,173, + 176,177,178,179,180,233,227,5384,3434,1926, + 1936,58,1410,162,344,3041,5384,1124,1565,333, + 1124,186,2450,1247,55,1247,332,336,2473,209, + 220,4684,208,217,218,219,221,3490,175,95, + 377,958,108,333,1565,533,2022,5384,174,5384, + 449,3663,361,565,1565,5384,198,173,176,177, + 178,179,180,233,1394,1565,3434,1926,1936,333, + 55,162,334,1409,728,3405,3687,5384,5384,186, + 2450,1247,2013,41,1463,281,96,209,220,4684, + 208,217,218,219,221,353,175,3689,1338,1045, + 1905,3663,199,533,3376,5384,174,347,1684,1555, + 350,1565,1565,1247,192,173,176,177,178,179, + 180,233,5384,854,41,783,389,5384,523,162, + 5384,680,41,783,389,5384,1611,186,2450,1247, + 2779,5384,2612,3715,3257,209,220,4684,208,217, + 218,219,221,5384,175,5384,5384,55,233,2961, + 680,3137,1463,80,174,429,1229,53,2013,41, + 1463,3139,200,173,176,177,178,179,180,2239, + 353,5384,211,220,4684,210,217,218,219,221, + 5384,5384,345,1684,1555,350,3460,336,5384,5384, + 343,5384,212,214,216,297,298,664,680,41, + 1463,3222,1188,41,783,389,5384,17,5384,213, + 215,2597,41,944,38,5384,1425,33,36,37, + 941,816,32,34,1721,31,29,56,1727,112, + 82,83,114,5384,1736,2073,278,1410,2597,41, + 944,38,1124,1425,33,36,37,941,816,32, + 34,1721,31,29,56,1727,112,82,83,114, + 15,1736,2098,2788,41,944,38,5384,4430,33, + 36,37,941,816,340,34,5384,5384,5384,2447, + 2168,2874,2168,533,2779,2779,2779,55,55,55, + 5384,4395,2972,4490,4874,5384,555,3937,5384,3084, + 5384,344,2405,233,2405,680,41,783,389,162, + 854,41,783,389,78,55,5384,5384,194,2466, + 334,321,1123,323,4559,317,1032,211,220,4684, + 210,217,218,219,221,1565,2156,2887,2085,432, + 577,2779,1128,353,55,5384,1565,212,214,216, + 297,298,664,1229,53,347,1684,1555,350,233, + 1565,5384,222,5384,213,215,855,3315,166,2488, + 503,2090,503,2779,5384,2779,2979,100,3373,5384, + 2779,196,5384,211,220,4684,210,217,218,219, + 221,344,73,344,4458,916,5384,5384,233,680, + 41,783,389,212,214,216,297,298,664,500, + 502,501,502,55,1027,55,3736,1467,222,2494, + 213,215,211,220,4684,210,217,218,219,221, + 5384,5384,5384,431,3288,5384,5384,5384,5384,5384, + 5384,5384,212,214,216,297,298,664,5384,1942, + 4458,2542,680,41,783,389,3321,222,5384,213, + 215,2597,41,944,38,5384,1425,33,36,37, + 941,816,32,34,1721,31,29,56,1727,112, + 82,83,114,5384,2156,5384,55,1565,5384,4458, + 2590,2597,41,944,38,52,1425,33,36,37, + 941,816,32,34,1721,31,29,56,1727,112, + 82,83,114,1565,2157,2597,41,944,38,72, + 1425,33,36,37,941,816,32,34,1721,31, + 29,56,1727,112,82,83,114,1699,2243,5384, + 5384,2779,3209,5384,5384,71,5384,5384,680,41, + 783,389,5384,5384,5384,5384,55,55,1409,233, + 2779,2779,5384,4009,3086,41,944,38,722,3225, + 33,36,37,941,816,340,34,1809,344,344, + 1565,2779,55,211,220,4684,210,217,218,219, + 221,1229,714,1565,680,41,783,389,1247,2405, + 5384,3490,3490,212,214,216,297,298,664,1565, + 2028,2029,70,522,5384,5384,5384,5384,17,5384, + 213,215,321,1123,323,3463,316,1032,430,5384, + 680,41,783,389,1565,593,41,783,389,5384, + 1565,3958,2597,41,944,38,612,1425,33,36, + 37,941,816,32,34,1721,31,29,56,1727, + 112,82,83,91,55,5384,61,361,5384,55, + 5384,16,60,1229,654,5384,5384,5384,1229,53, + 5384,2692,1926,1936,5384,310,313,2597,1506,944, + 1951,923,1425,33,36,37,941,816,32,34, + 1721,31,29,56,1727,112,82,83,90,2597, + 41,944,38,5384,1425,33,36,37,941,816, + 32,34,1721,31,29,56,1727,112,82,83, + 89,2597,41,944,38,5384,1425,33,36,37, + 941,816,32,34,1721,31,29,56,1727,112, + 82,83,88,2597,41,944,38,5384,1425,33, + 36,37,941,816,32,34,1721,31,29,56, + 1727,112,82,83,87,2597,41,944,38,5384, + 1425,33,36,37,941,816,32,34,1721,31, + 29,56,1727,112,82,83,86,2597,41,944, + 38,5384,1425,33,36,37,941,816,32,34, + 1721,31,29,56,1727,112,82,83,85,2597, + 41,944,38,5384,1425,33,36,37,941,816, + 32,34,1721,31,29,56,1727,112,82,83, + 84,2418,41,944,38,5384,1425,33,36,37, + 941,816,32,34,1721,31,29,56,1727,112, + 82,83,110,2597,41,944,38,5384,1425,33, + 36,37,941,816,32,34,1721,31,29,56, + 1727,112,82,83,116,2597,41,944,38,5384, + 1425,33,36,37,941,816,32,34,1721,31, + 29,56,1727,112,82,83,115,2597,41,944, + 38,5384,1425,33,36,37,941,816,32,34, + 1721,31,29,56,1727,112,82,83,113,1433, + 41,2012,38,722,3225,33,36,37,941,816, + 340,34,2597,41,944,38,5384,1425,33,36, + 37,941,816,32,34,1721,31,29,56,1727, + 112,82,83,111,5384,1565,55,5384,1446,2085, + 1128,1809,2779,1128,55,2779,2998,1565,1128,5384, + 2779,5384,2085,5384,5384,5384,1128,321,1123,323, + 233,316,1032,2405,5384,1338,162,3454,233,166, + 5384,5384,5384,5384,162,1729,5384,5384,1565,107, + 5384,1025,166,2628,211,220,4684,210,217,218, + 219,221,211,220,4684,210,217,218,219,221, + 593,41,783,389,212,214,216,297,298,664, + 3489,5384,212,214,216,297,298,664,3100,517, + 3011,213,215,4711,2779,5384,2961,518,2906,213, + 215,361,2779,1949,55,3369,5384,2267,5384,5384, + 5384,2779,233,1229,1409,3455,1926,1936,3408,5384, + 233,5384,5384,55,55,5384,2593,1128,1128,2405, + 1338,417,2020,3813,336,527,211,220,4684,210, + 217,218,219,221,211,220,4684,210,217,218, + 219,221,5384,162,162,5384,212,214,216,297, + 298,664,3760,3887,212,214,216,297,298,664, + 5384,308,3070,213,215,5384,2779,5384,5384,223, + 5384,213,215,2709,41,783,389,5384,2829,2778, + 5384,2961,5384,5384,233,5384,243,503,5384,3086, + 41,944,38,722,3225,33,36,37,941,816, + 340,34,5384,5384,5384,5384,5384,278,211,220, + 4684,210,217,218,219,221,5384,5384,3815,336, + 1028,41,783,389,5384,5384,500,502,212,214, + 216,297,298,664,237,5384,5384,5384,5384,5384, + 5384,5384,427,497,5384,213,215,321,1123,323, + 5384,316,1032,5384,55,5384,5384,5384,5384,241, + 235,236,3100,1229,53,1944,3033,4711,5384,5384, + 279,3142,2919,41,944,38,2482,4430,33,36, + 37,941,816,340,34,5384,5384,5384,248,251, + 254,257,624,593,41,783,389,5384,5384,5384, + 906,2947,41,944,38,2907,3225,33,36,37, + 941,816,340,34,1384,41,944,38,2543,3225, + 33,36,37,941,816,340,34,55,5384,334, + 321,1123,323,5384,317,1032,1229,53,5384,402, + 5384,593,41,783,389,593,41,783,389,2489, + 5384,5384,1693,41,783,389,5384,5384,5384,318, + 997,323,5384,2778,5384,5384,854,41,783,389, + 5384,5384,318,997,323,55,5384,5384,5384,55, + 593,41,783,389,1229,53,55,5384,1229,53, + 5384,593,41,783,389,1229,2921,3521,55,55, + 55,3705,533,533,5384,5384,5384,5384,2459,1229, + 3198,5384,5384,5384,55,5384,680,41,783,389, + 344,344,3602,1229,53,55,428,55,162,162, + 5384,533,5384,5384,1229,53,3799,2837,3204,5384, + 5384,55,2512,3490,3490,533,2779,3994,5384,344, + 55,5384,2836,2959,55,5384,943,162,533,1229, + 2599,55,5384,344,344,533,2837,5384,5384,943, + 5384,162,3490,55,528,55,344,2779,55,2779, + 194,3328,1128,344,162,55,4559,3490,55,2779, + 55,162,2779,194,2779,344,531,344,55,4559, + 194,2085,1128,5384,3170,1128,4559,344,162,1124, + 344,2085,344,5384,5384,1128,5384,3913,3490,55, + 3490,55,2085,1128,5384,1128,1128,2030,162,507, + 3490,166,5384,3490,5384,3490,5384,3980,5384,505, + 5384,166,3501,3502,532,5384,5384,5384,5384,162, + 5384,162,166,5384,5384,5384,3735,5384,1772,5384, + 4365,4874,5384,3746,5384,5384,5384,5384,5384,5384, + 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, + 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, + 5384,5384,5384,5384,5384,5384,5384,4034,5384,5384, + 5384,5384,5384,5384,5384,5384,5384,4040,5384,5384, + 5384,5384,5384,5384,5384,5384,5384,5384,4377,5384, + 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, + 5384,5384,5384,5384,5384,4463,5384,5384,5384,5384, + 5384,5384,5384,5384,102,5384,0,499,4368,0, + 1,234,0,45,5404,0,45,5403,0,1, + 2756,0,2152,1,0,45,1,5404,0,45, + 1,5403,0,1,2615,0,1,732,0,5623, + 246,0,5622,246,0,5723,246,0,5722,246, + 0,5650,246,0,5649,246,0,5648,246,0, + 5647,246,0,5646,246,0,5645,246,0,5644, + 246,0,5643,246,0,5661,246,0,5660,246, + 0,5659,246,0,5658,246,0,5657,246,0, + 5656,246,0,5655,246,0,5654,246,0,5653, + 246,0,5652,246,0,5651,246,0,45,246, + 5404,0,45,246,5403,0,5428,246,0,1594, + 388,0,5404,54,0,5403,54,0,1,5715, + 0,1,1719,0,44,732,0,44,5404,0, + 44,5403,0,452,1762,0,438,1805,0,1594, + 35,0,5396,1,0,1848,320,0,1,442, + 0,456,1419,0,455,1600,0,41,39,0, + 53,43,0,234,225,0,499,1547,0,5428, + 1,234,0,45,1,234,0,234,415,0, + 5404,43,0,5403,43,0,49,5426,0,49, + 43,0,1,2608,0,1,5661,0,1,5660, + 0,1,5659,0,1,5658,0,1,5657,0, + 1,5656,0,1,5655,0,1,5654,0,1, + 5653,0,1,5652,0,1,5651,0,5396,384, + 0,5395,384,0,1,3037,0,1,3042,0, + 234,224,0,5394,404,0,5393,404,0,234, + 414,0,2693,132,0,5392,1,0,5715,443, + 0,1719,443,0,5426,51,0,43,51,0, + 5390,1,0,5389,1,0,2106,97,0,38, + 40,0,45,732,0,1,234,2691,0,5393, + 234,0,2715,234,0,5428,1,0,45,1, + 0,242,3738,0,389,38,0,388,35,0, + 2693,134,0,2693,133,0,2952,234,0,10, + 12,0,1,98,0,8,10,12,0,5404, + 2,43,0,5403,2,43,0,5404,42,0, + 5403,42,0,3183,384,0,5715,101,0,1719, + 101,0,41,79,0,8,12,0,283,4871, + 0,191,3431,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1124,336 +1098,325 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final static byte termCheck[] = {0, 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,0,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,57,58,59, - 60,0,62,63,64,65,66,67,0,1, - 2,71,72,5,0,75,76,77,78,79, + 20,21,22,23,24,25,26,27,28,0, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,0,55,56,57,58,59, + 60,0,62,63,64,65,66,67,0,69, + 0,0,72,3,3,75,76,77,78,79, 80,81,82,83,84,85,86,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,0,32, + 23,24,25,26,27,28,0,30,31,32, 33,34,35,36,37,38,39,40,41,42, - 43,44,45,46,73,48,49,50,51,52, - 53,54,55,56,57,58,59,60,0,62, - 63,64,65,66,67,0,1,2,71,72, - 0,0,75,76,77,78,79,80,81,82, + 43,44,45,46,47,48,49,50,51,52, + 53,70,55,56,57,58,59,60,119,62, + 63,64,65,66,67,0,69,0,90,72, + 92,4,75,76,77,78,79,80,81,82, 83,84,85,86,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,0,32,33,34,35, + 26,27,28,0,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, - 46,73,48,49,50,51,52,53,54,55, - 56,57,58,59,60,75,62,63,64,65, - 66,67,0,1,2,71,72,0,0,75, + 46,47,48,49,50,51,52,53,0,55, + 56,57,58,59,60,119,62,63,64,65, + 66,67,0,69,0,90,72,92,4,75, 76,77,78,79,80,81,82,83,84,85, 86,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,0,32,33,34,35,36,37,38, - 39,40,41,42,43,44,45,46,61,48, - 49,50,51,52,53,54,55,56,57,58, + 0,30,31,32,33,34,35,36,37,38, + 39,40,41,42,43,44,45,46,47,48, + 49,50,51,52,53,0,55,56,57,58, 59,60,0,62,63,64,65,66,67,0, - 1,2,71,4,0,0,75,76,77,78, + 69,0,1,2,0,4,75,76,77,78, 79,80,81,82,83,84,85,86,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,0, + 22,23,24,25,26,27,28,0,30,31, 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,61,48,49,50,51, - 52,53,54,55,56,57,58,59,60,0, - 62,63,64,65,66,67,0,8,0,71, - 11,3,6,75,76,77,78,79,80,81, + 42,43,44,45,46,47,48,49,50,51, + 52,53,73,55,56,57,58,59,60,75, + 62,63,64,65,66,67,0,69,103,104, + 105,0,100,75,76,77,78,79,80,81, 82,83,84,85,86,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,0,32,33,34, + 25,26,27,28,0,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, + 45,46,47,48,49,50,51,52,53,68, 55,56,57,58,59,60,0,62,63,64, - 65,66,67,0,1,2,71,91,92,0, + 65,66,67,0,69,0,1,2,0,4, 75,76,77,78,79,80,81,82,83,84, 85,86,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,0,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,73, - 48,49,50,51,52,53,54,55,56,57, - 58,59,60,101,62,63,64,65,66,67, - 0,1,2,71,4,0,0,75,76,77, + 28,0,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,73,55,56,57, + 58,59,60,119,62,63,64,65,66,67, + 0,69,0,1,2,99,0,75,76,77, 78,79,80,81,82,83,84,85,86,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, - 0,32,33,34,35,36,37,38,39,40, - 41,42,43,44,45,46,61,48,49,50, - 51,52,53,54,55,56,57,58,59,60, - 0,62,63,64,65,66,67,0,8,0, - 71,11,3,6,75,76,77,78,79,80, + 21,22,23,24,25,26,27,28,0,30, + 31,32,33,34,35,36,37,38,39,40, + 41,42,43,44,45,46,47,48,49,50, + 51,52,53,73,55,56,57,58,59,60, + 0,62,63,64,65,66,67,0,69,0, + 1,2,0,6,75,76,77,78,79,80, 81,82,83,84,85,86,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,0,32,33, + 24,25,26,27,28,0,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,57,58,59,60,0,62,63, - 64,65,66,67,0,0,9,71,91,92, - 6,75,76,77,78,79,80,81,82,83, + 44,45,46,47,48,49,50,51,52,53, + 68,55,56,57,58,59,60,0,62,63, + 64,65,66,67,0,69,0,1,2,99, + 0,75,76,77,78,79,80,81,82,83, 84,85,86,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,0,32,33,34,35,36, + 27,28,0,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, + 47,48,49,50,51,52,53,0,55,56, 57,58,59,60,0,62,63,64,65,66, - 67,0,1,2,71,91,92,0,75,76, + 67,0,69,0,1,2,0,100,75,76, 77,78,79,80,81,82,83,84,85,86, 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,0,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,73,48,49, - 50,51,52,53,54,55,56,57,58,59, - 60,0,62,63,64,65,66,67,0,1, - 2,71,0,1,2,75,76,77,78,79, + 20,21,22,23,24,25,26,27,28,0, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,68,55,56,57,58,59, + 60,0,62,63,64,65,66,67,101,69, + 0,1,2,0,0,75,76,77,78,79, 80,81,82,83,84,85,86,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,0,32, + 23,24,25,26,27,28,0,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,57,58,59,60,0,62, - 63,64,65,66,67,0,1,2,71,0, - 0,100,75,76,77,78,79,80,81,82, + 43,44,45,46,47,48,49,50,51,52, + 53,68,55,56,57,58,59,60,0,62, + 63,64,65,66,67,0,69,0,1,2, + 0,0,75,76,77,78,79,80,81,82, 83,84,85,86,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,0,32,33,34,35, + 26,27,28,0,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, - 46,61,48,49,50,51,52,53,54,55, + 46,47,48,49,50,51,52,53,73,55, 56,57,58,59,60,0,62,63,64,65, - 66,67,0,8,0,71,4,88,89,75, + 66,67,0,69,0,97,98,3,0,75, 76,77,78,79,80,81,82,83,84,85, - 86,0,1,2,3,4,5,6,7,121, - 9,10,28,12,13,14,15,16,17,18, + 86,0,1,2,3,4,5,6,7,0, + 9,10,0,12,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, - 29,30,0,32,33,34,35,36,37,38, - 39,40,41,42,43,44,45,46,0,48, - 49,50,51,52,53,54,55,0,1,2, - 59,60,5,31,63,0,65,66,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,0,118,0,3,31,29,4,0, - 32,33,34,4,47,37,0,39,40,41, - 42,0,0,45,8,47,0,69,50,0, - 0,1,2,29,56,57,0,59,8,0, - 4,63,6,65,66,9,24,25,73,71, - 72,73,31,0,1,2,3,4,5,6, - 7,0,9,61,3,87,0,1,2,3, + 0,30,31,32,33,34,35,36,37,38, + 39,40,41,42,43,44,45,46,47,48, + 49,50,51,52,53,73,55,0,1,2, + 59,60,5,62,63,64,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 74,0,114,115,116,29,0,67,32,33, - 34,10,0,37,8,39,40,41,42,0, - 8,45,0,47,88,89,50,8,114,115, - 116,0,56,57,95,59,73,88,89,63, - 69,65,66,0,0,1,2,71,72,73, - 0,0,0,3,32,33,6,56,8,9, - 8,11,0,87,0,1,2,3,4,5, - 6,7,10,9,24,25,26,27,47,67, - 74,31,0,1,2,3,67,5,0,7, - 114,115,116,0,1,2,3,4,5,6, - 7,95,9,0,0,0,62,3,64,47, - 6,61,8,9,0,11,28,3,68,69, - 70,59,72,73,74,61,74,0,24,25, - 26,27,0,69,31,31,31,10,88,89, + 0,0,0,3,0,29,30,31,32,8, + 34,71,11,37,0,39,40,41,42,97, + 98,45,0,1,2,49,26,27,6,0, + 1,2,56,57,5,59,7,0,62,63, + 64,4,0,1,2,69,4,0,72,73, + 8,29,0,0,1,2,3,4,5,6, + 7,61,9,87,0,1,2,3,4,5, + 6,7,71,9,70,61,0,1,2,103, + 104,105,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,106,65,0,1, + 2,29,30,31,32,68,34,0,71,37, + 120,39,40,41,42,61,73,45,0,1, + 2,49,4,5,70,7,0,29,56,57, + 4,59,66,67,62,63,64,0,31,32, + 0,69,0,3,72,73,6,29,8,9, + 0,11,10,0,1,2,3,4,5,87, + 7,0,12,0,24,25,26,27,0,1, + 2,8,4,0,11,103,104,105,0,0, + 30,31,32,4,34,6,8,37,9,39, + 40,41,42,0,54,45,0,29,56,49, + 0,61,0,1,2,3,4,5,68,7, + 70,71,72,73,74,0,1,2,3,4, + 5,6,7,8,9,29,11,12,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,0,61,0,117,118,0, - 120,0,68,69,70,61,72,73,74,0, - 1,2,3,4,5,6,7,0,9,0, - 0,4,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,31,0, - 31,117,118,59,120,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,0, - 0,0,0,3,29,0,0,32,33,34, - 8,95,37,11,39,40,41,42,97,98, - 45,102,47,0,0,50,26,27,0,1, - 2,56,57,58,59,7,117,0,63,0, - 65,66,0,1,2,8,71,0,1,2, - 3,4,5,6,7,31,9,88,89,0, - 61,61,87,24,25,0,1,2,3,4, - 5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,47, - 0,68,68,70,29,90,121,32,33,34, - 99,96,37,103,39,40,41,42,61,72, - 45,0,47,0,0,50,3,93,94,8, - 120,56,57,58,59,0,1,2,63,4, - 65,66,0,0,1,2,71,4,5,0, - 7,0,1,2,3,4,5,6,7,0, - 9,10,87,4,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 0,30,47,114,115,116,35,36,29,38, - 47,70,68,72,43,44,121,46,0,48, - 49,0,51,52,53,54,55,0,1,2, - 3,60,5,62,7,64,0,1,2,68, + 100,101,102,65,29,0,106,107,108,109, + 110,111,112,113,114,115,116,117,118,0, + 120,68,3,0,71,6,0,8,9,54, + 11,56,57,58,8,73,0,0,1,2, + 0,4,121,24,25,26,27,10,8,12, + 13,14,15,16,17,18,19,20,21,22, + 23,0,87,0,3,29,61,30,31,32, + 0,34,9,54,37,0,39,40,41,42, + 61,0,45,8,61,0,49,68,3,70, + 71,72,73,74,0,0,59,71,72,62, + 63,64,8,0,0,65,0,88,89,90, + 91,92,93,94,95,96,97,98,99,100, + 101,102,61,28,54,106,107,108,109,110, + 111,112,113,114,115,116,117,118,68,120, 0,1,2,3,4,5,6,7,8,9, - 10,0,31,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,100, - 30,0,0,1,2,35,36,5,38,7, - 0,1,2,43,44,0,46,69,48,49, - 90,51,52,53,54,55,96,0,1,2, - 60,4,0,6,0,8,9,67,0,1, - 2,0,72,0,1,2,3,4,5,6, - 7,8,9,10,73,0,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,62,30,64,60,0,0,35,36, - 0,38,0,6,4,3,43,44,47,46, - 8,48,49,0,51,52,53,54,55,0, - 0,74,70,60,0,1,2,31,8,0, - 67,0,1,2,3,4,5,6,7,0, - 9,10,95,68,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 0,30,0,61,68,0,35,36,0,38, - 68,47,70,8,43,44,74,46,0,48, - 49,3,51,52,53,54,55,0,0,93, - 94,60,72,62,0,64,0,1,2,3, - 4,5,6,7,0,9,10,88,89,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,0,30,0,68,90, - 70,35,36,8,38,96,11,72,70,43, - 44,47,46,0,48,49,3,51,52,53, - 54,55,0,1,2,3,60,5,62,7, - 64,0,1,2,3,4,5,6,7,8, - 9,10,0,0,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 0,30,0,0,4,70,35,36,0,38, - 0,97,98,3,43,44,0,46,8,48, - 49,0,51,52,53,54,55,90,0,1, - 2,60,4,96,0,73,8,0,67,0, - 1,2,3,4,5,6,7,8,9,10, - 0,68,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,28,31,30, - 0,61,69,0,35,36,68,38,0,1, - 2,31,43,44,74,46,70,48,49,68, - 51,52,53,54,55,67,0,0,0,3, - 3,31,5,6,31,102,9,104,105,106, - 107,108,109,110,111,112,113,0,1,2, - 117,24,25,26,27,47,28,30,31,0, - 1,2,3,4,5,6,7,0,9,0, - 1,2,3,0,5,8,7,8,11,0, - 11,0,0,0,0,1,2,118,61,62, - 0,64,0,3,47,68,69,70,0,1, - 2,3,0,5,31,7,8,24,25,11, - 31,0,31,0,0,88,89,90,91,92, - 93,94,8,31,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,68, - 9,10,70,0,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 0,30,70,0,93,94,35,36,0,38, - 10,70,0,70,43,44,0,46,74,48, - 49,0,51,52,53,54,55,0,0,0, - 3,60,5,6,31,0,9,0,1,2, - 3,4,5,6,7,8,9,47,11,12, - 0,24,25,26,27,0,0,30,31,59, - 0,1,2,0,4,5,29,7,31,32, - 33,34,9,0,37,0,39,40,41,42, - 0,69,45,8,0,69,0,50,61,62, - 69,64,0,0,0,68,69,70,61,0, - 1,2,0,4,0,6,0,47,9,101, - 0,74,8,0,8,88,89,90,91,92, - 93,94,0,68,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,74, - 9,10,0,69,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 68,30,0,0,70,119,35,36,74,38, - 74,95,69,0,43,44,3,46,0,48, - 49,99,51,52,53,54,55,0,1,2, - 0,0,61,0,1,2,3,4,5,6, - 7,0,9,10,0,4,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,28,0,30,0,0,0,3,35,36, - 68,38,31,0,47,0,43,44,3,46, - 0,48,49,3,51,52,53,54,55,0, - 1,2,61,60,0,1,2,3,4,5, - 6,7,0,9,10,0,4,13,14,15, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,0,95,96,3,74,29, + 30,31,32,70,34,0,0,37,0,39, + 40,41,42,0,6,45,0,1,2,49, + 4,8,6,118,0,9,56,57,58,59, + 24,25,62,63,64,102,0,1,2,69, + 107,108,109,110,111,112,113,114,115,116, + 117,0,0,1,2,61,5,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,0,1,2,72,0,29,30,31, + 32,121,34,88,89,37,10,39,40,41, + 42,93,94,45,0,1,2,49,4,0, + 6,29,3,9,56,57,58,59,66,67, + 62,63,64,0,0,1,2,69,4,0, + 6,0,8,9,0,1,2,3,4,5, + 6,7,0,9,10,87,4,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,28,0,30,0,3,0,3,35, - 36,0,38,31,3,73,47,43,44,73, - 46,0,48,49,3,51,52,53,54,55, - 0,1,2,3,4,5,6,7,0,9, - 10,3,0,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,0, - 30,76,3,0,119,35,36,0,38,0, - 0,0,3,43,44,4,46,0,48,49, - 73,51,52,53,54,55,0,1,2,3, - 4,5,6,7,0,9,10,3,0,13, + 26,27,28,0,0,1,2,33,0,35, + 36,8,38,0,11,0,8,43,44,121, + 46,47,48,54,50,51,52,53,0,55, + 0,1,2,29,60,5,54,7,74,0, + 66,67,68,0,1,2,3,4,5,6, + 7,8,9,10,91,91,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,28,0,1,2,0,33,5,35,36, + 0,38,74,0,4,70,43,44,0,46, + 47,48,0,50,51,52,53,0,55,91, + 0,29,0,60,0,0,6,3,65,0, + 30,28,8,8,0,72,0,1,2,3, + 4,5,6,7,8,9,10,88,89,13, 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,0,30,0,3,0, - 3,35,36,0,38,0,0,0,5,43, - 44,4,46,0,48,49,69,51,52,53, - 54,55,0,1,2,0,4,0,3,0, - 31,0,10,0,12,13,14,15,16,17, - 18,19,20,21,22,23,0,69,0,3, - 0,29,0,0,32,33,34,0,31,37, - 0,39,40,41,42,122,0,45,0,1, - 2,3,50,5,69,7,119,0,0,0, - 0,59,0,1,2,63,4,65,66,0, - 0,0,10,0,12,13,14,15,16,17, - 18,19,20,21,22,23,0,0,0,0, - 0,29,0,0,32,33,34,0,0,37, - 0,39,40,41,42,0,0,45,0,61, - 0,0,50,0,0,1,2,3,4,0, - 6,59,12,9,0,63,0,65,66,0, - 1,2,3,4,5,6,7,8,9,29, - 11,12,32,33,34,0,0,37,0,39, - 40,41,42,0,0,45,0,0,29,0, - 50,32,33,34,0,0,37,0,39,40, - 41,42,0,0,45,61,0,1,2,50, - 4,0,6,0,0,9,0,0,0,0, - 61,0,0,0,1,2,0,4,5,0, - 7,0,0,74,12,13,14,15,16,17, - 18,19,20,21,22,23,0,0,0,0, - 0,29,0,0,32,33,34,0,0,37, - 0,39,40,41,42,0,0,45,0,0, - 0,0,50,0,1,2,3,4,5,6, + 24,25,26,27,28,0,1,2,0,33, + 0,35,36,3,38,0,8,0,8,43, + 44,0,46,47,48,61,50,51,52,53, + 68,55,68,0,29,71,60,72,74,91, + 71,65,0,1,2,3,4,5,6,7, + 0,9,10,93,94,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,61,0,1,2,33,102,35,36,71, + 38,107,74,0,74,43,44,70,46,47, + 48,8,50,51,52,53,0,55,0,0, + 1,2,60,4,5,90,7,92,66,67, + 0,1,2,3,4,5,6,7,0,9, + 10,88,89,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,0, + 90,0,92,33,0,35,36,6,38,0, + 54,0,8,43,44,72,46,47,48,61, + 50,51,52,53,0,55,0,0,1,2, + 60,4,5,0,7,0,66,67,0,1, + 2,3,4,5,6,7,8,9,10,71, + 0,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,0,1,2, + 71,33,61,35,36,0,38,0,74,29, + 54,43,44,8,46,47,48,0,50,51, + 52,53,68,55,93,94,29,10,60,73, + 91,68,0,65,0,1,2,3,4,5, + 6,7,8,9,10,0,29,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,0,1,2,0,33,0,35, + 36,8,38,0,0,9,59,43,44,74, + 46,47,48,0,50,51,52,53,0,55, + 0,3,0,5,6,88,89,9,0,0, + 1,2,3,4,5,6,7,8,9,0, + 11,12,24,25,26,27,0,0,0,1, + 2,33,4,5,0,7,10,54,65,30, + 31,32,8,34,0,11,37,3,39,40, + 41,42,54,0,45,29,54,29,49,61, + 76,61,118,54,66,67,68,0,70,71, + 61,0,1,2,3,4,5,6,7,71, + 9,88,89,74,0,59,88,89,90,0, + 71,93,94,95,96,97,98,99,100,101, + 102,0,0,0,106,4,108,109,110,111, + 112,113,114,115,116,117,0,1,2,3, + 4,5,6,7,71,9,10,24,25,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,0,1,2,0,33, + 0,35,36,0,38,54,0,1,2,43, + 44,0,46,47,48,0,50,51,52,53, + 68,55,24,25,29,0,60,0,1,2, + 3,4,5,6,7,29,9,10,0,122, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,28,0,54,0,0, + 33,3,35,36,8,38,0,11,0,54, + 43,44,4,46,47,48,0,50,51,52, + 53,70,55,0,0,0,3,0,61,0, + 1,2,3,4,5,6,7,0,9,10, + 3,101,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,0,60, + 54,0,33,0,35,36,8,38,0,8, + 54,0,43,44,68,46,47,48,54,50, + 51,52,53,0,55,0,3,0,0,60, + 0,1,2,3,4,5,6,7,73,9, + 10,95,96,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,0, + 0,0,54,33,0,35,36,0,38,0, + 0,0,74,43,44,74,46,47,48,54, + 50,51,52,53,73,55,0,1,2,3, + 4,5,6,7,0,9,10,70,70,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,54,0,0,54,33, + 3,35,36,54,38,54,59,0,0,43, + 44,4,46,47,48,0,50,51,52,53, + 70,55,0,1,2,3,4,5,6,7, + 0,9,10,3,0,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 28,0,0,0,3,33,3,35,36,0, + 38,54,54,4,0,43,44,3,46,47, + 48,0,50,51,52,53,68,55,0,1, + 2,0,4,0,3,70,3,0,10,0, + 12,13,14,15,16,17,18,19,20,21, + 22,23,0,95,96,3,0,73,30,31, + 32,0,34,0,3,37,3,39,40,41, + 42,0,0,45,3,3,0,49,0,1, + 2,3,4,5,0,7,8,59,0,0, + 62,63,64,0,1,2,3,4,5,6, + 7,8,9,0,11,12,3,0,1,2, + 3,4,5,6,7,0,9,0,3,0, + 0,0,0,30,31,32,70,34,0,0, + 37,0,39,40,41,42,0,0,45,61, + 0,0,49,0,0,1,2,3,4,5, + 6,7,74,9,61,12,13,14,15,16, + 17,18,19,20,21,22,23,74,61,28, + 0,0,0,30,31,32,54,34,0,0, + 37,0,39,40,41,42,0,70,45,0, + 0,0,49,0,1,2,3,4,5,6, 7,8,9,0,11,12,0,1,2,3, 4,5,6,7,8,9,0,11,12,0, - 0,0,0,0,31,0,1,2,3,4, - 5,6,7,8,9,0,11,12,0,0, - 47,0,1,2,0,4,5,0,7,56, - 57,58,0,47,0,0,0,0,0,0, - 0,0,56,57,58,0,0,0,0,1, - 2,3,47,5,0,7,8,0,72,0, - 87,56,57,58,0,0,1,2,0,4, - 0,6,0,87,9,0,0,72,0,1, + 0,0,29,0,0,0,1,2,3,4, + 5,6,7,8,9,29,11,12,0,1, + 2,3,4,5,6,7,0,9,0,56, + 57,58,0,0,29,0,0,0,0,0, + 0,0,56,57,58,72,0,1,2,3, + 4,5,0,7,8,0,0,11,72,0, + 87,56,57,58,0,1,2,3,4,5, + 0,7,8,87,0,11,0,72,0,1, 2,3,4,5,6,7,8,9,0,11, - 12,0,87,0,0,0,1,2,3,4, - 5,6,7,8,9,0,11,12,0,61, - 0,0,0,1,2,3,4,5,6,7, - 8,9,74,11,12,47,0,0,0,0, - 0,0,0,0,56,57,58,0,1,2, - 0,4,47,6,0,0,9,0,0,0, - 72,56,57,58,0,0,0,0,0,47, - 0,0,0,0,0,87,0,72,56,57, - 58,0,0,1,2,3,4,5,6,7, - 8,9,87,11,12,0,1,2,3,4, - 5,6,7,8,9,0,11,12,0,87, + 12,0,87,0,0,0,0,0,1,2, + 3,4,5,6,7,8,9,29,11,12, + 0,1,2,3,4,5,6,7,8,9, + 0,11,12,0,1,2,29,4,0,6, + 0,0,9,0,56,57,58,0,0,29, + 0,1,2,3,4,0,6,0,0,9, + 72,0,0,56,57,58,0,1,2,3, + 4,5,0,7,0,87,56,57,58,0, + 1,2,3,4,5,6,7,8,9,0, + 11,12,0,0,87,0,1,2,3,4, + 5,12,7,0,0,0,0,87,29,0, + 0,61,0,4,0,0,0,0,0,30, + 31,32,12,34,0,0,37,61,39,40, + 41,42,0,0,45,56,57,58,49,30, + 30,31,32,0,34,12,0,37,0,39, + 40,41,42,0,0,45,0,0,0,49, + 0,0,0,30,31,32,87,34,0,0, + 37,0,39,40,41,42,0,0,45,0, + 1,2,49,4,0,6,0,0,9,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,12,56,57, - 58,0,47,0,0,0,0,0,0,0, - 0,56,57,58,29,0,12,32,33,34, - 0,0,37,0,39,40,41,42,0,87, - 45,0,0,29,0,50,32,33,34,0, - 12,37,87,39,40,41,42,0,0,45, - 0,0,0,0,50,0,0,29,0,0, - 32,33,34,0,0,37,0,39,40,41, - 42,0,0,45,0,0,0,0,50,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,103,104,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,0,0,0,0,0,0,0,0, @@ -1461,7 +1424,8 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0 + 0,0,0,0,0,0,0,0,0,0, + 0,0,0 }; }; public final static byte termCheck[] = TermCheck.termCheck; @@ -1469,338 +1433,327 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface TermAction { public final static char termAction[] = {0, - 5535,5447,5130,5130,5130,5130,5130,5130,5481,5130, - 1,5451,1,1,1,1,1,1,1,1, + 5384,5305,5020,5020,5020,5020,5020,5020,5336,5020, + 1,5309,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5384, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,387,1,1, - 1,1,1,1,1,1,1833,565,583,1, - 1,448,1,1,1,1,1,5546,5535,5554, - 5555,5718,5542,1617,5535,2971,2881,3230,2141,2715, - 2739,2970,2873,1790,2846,2964,2818,10,5484,5484, - 5484,5484,5484,5484,5484,5484,5484,5484,5484,5484, - 5484,5484,5484,5484,5484,5484,5484,5484,5484,5484, - 5484,5484,5484,5484,5484,5484,5484,5484,5535,5484, - 5484,5484,5484,5484,5484,5484,5484,5484,5484,5484, - 5484,5484,5484,5484,789,5484,5484,5484,5484,5484, - 5484,5484,5484,5484,5484,5484,5484,5484,428,5484, - 5484,5484,5484,5484,5484,5535,5242,5239,5484,5484, - 1,5535,5484,5484,5484,5484,5484,5484,5484,5484, - 5484,5484,5484,5484,8,5496,5496,5496,5496,5496, - 5496,5496,5496,5496,5496,5496,5496,5496,5496,5496, - 5496,5496,5496,5496,5496,5496,5496,5496,5496,5496, - 5496,5496,5496,5496,5496,5535,5496,5496,5496,5496, - 5496,5496,5496,5496,5496,5496,5496,5496,5496,5496, - 5496,3204,5496,5496,5496,5496,5496,5496,5496,5496, - 5496,5496,5496,5496,5496,3014,5496,5496,5496,5496, - 5496,5496,5535,5554,5555,5496,5496,324,5535,5496, - 5496,5496,5496,5496,5496,5496,5496,5496,5496,5496, - 5496,5535,5447,5130,5130,5130,5130,5130,5130,5454, - 5130,1,5451,1,1,1,1,1,1,1, + 1,1,1,1,1,1,785,563,653,1, + 1,385,1,1,1,5395,1,1,117,5565, + 5384,314,5391,777,769,3057,2810,3147,2163,2770, + 2689,3025,2791,622,2750,2803,2748,10,5339,5339, + 5339,5339,5339,5339,5339,5339,5339,5339,5339,5339, + 5339,5339,5339,5339,5339,5339,5339,5339,5339,5339, + 5339,5339,5339,5339,5339,5339,376,5339,5339,5339, + 5339,5339,5339,5339,5339,5339,5339,5339,5339,5339, + 5339,5339,5339,5339,5339,5339,5339,5339,5339,5339, + 5339,1080,5339,5339,5339,5339,5339,5339,2934,5339, + 5339,5339,5339,5339,5339,120,5339,45,4263,5339, + 4285,5428,5339,5339,5339,5339,5339,5339,5339,5339, + 5339,5339,5339,5339,8,5345,5345,5345,5345,5345, + 5345,5345,5345,5345,5345,5345,5345,5345,5345,5345, + 5345,5345,5345,5345,5345,5345,5345,5345,5345,5345, + 5345,5345,5345,5384,5345,5345,5345,5345,5345,5345, + 5345,5345,5345,5345,5345,5345,5345,5345,5345,5345, + 5345,5345,5345,5345,5345,5345,5345,5345,5384,5345, + 5345,5345,5345,5345,5345,2934,5345,5345,5345,5345, + 5345,5345,5384,5345,5384,4263,5345,4285,1250,5345, + 5345,5345,5345,5345,5345,5345,5345,5345,5345,5345, + 5345,5384,5305,5020,5020,5020,5020,5020,5020,5312, + 5020,1,5309,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5535,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1363,1, - 1,1,1,1,1,1,1,1833,565,583, - 1,1,5535,1,1,1,1,1,5546,5535, - 5136,5133,5718,5579,458,5535,2971,2881,3230,2141, - 2715,2739,2970,2873,1790,2846,2964,2818,5535,5447, - 5130,5130,5130,5130,5130,5130,5454,5130,1,5451, + 5384,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5535, + 1,1,1,1,1,437,1,785,563,653, + 1,1,141,1,1,1,5395,1,1,446, + 5565,5384,5026,5023,1,5428,3057,2810,3147,2163, + 2770,2689,3025,2791,622,2750,2803,2748,5384,5305, + 5020,5020,5020,5020,5020,5020,5312,5020,1,5309, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5299,1,1,1,1, - 1,1,1,1,1833,565,583,1,1,5535, - 1,1,1,1,1,5546,123,5545,5535,5718, - 5544,737,3847,2971,2881,3230,2141,2715,2739,2970, - 2873,1790,2846,2964,2818,5535,5447,5130,5130,5130, - 5130,5130,5130,5454,5130,1,5451,1,1,1, + 1,1,1,1,1,1,1,5384,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5535,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,145,1,1,1,1,1,1,1, - 1,1833,565,583,1,1,5535,1,1,1, - 1,1,5546,5535,8652,8591,5718,3823,3793,5535, - 2971,2881,3230,2141,2715,2739,2970,2873,1790,2846, - 2964,2818,5535,5447,5130,5130,5130,5130,5130,5130, - 5454,5130,1,5451,1,1,1,1,1,1, + 1,1,642,1,785,563,653,1,1,1637, + 1,1,1,5395,1,1,5384,5565,5817,5818, + 5819,5384,1043,3057,2810,3147,2163,2770,2689,3025, + 2791,622,2750,2803,2748,5384,5305,5020,5020,5020, + 5020,5020,5020,5312,5020,1,5309,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5535,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5937, - 1,1,1,1,1,1,1,1,1833,565, - 583,1,1,2317,1,1,1,1,1,5546, - 5535,5136,5133,5718,5579,457,5535,2971,2881,3230, - 2141,2715,2739,2970,2873,1790,2846,2964,2818,5535, - 5447,5130,5130,5130,5130,5130,5130,5454,5130,1, - 5451,1,1,1,1,1,1,1,1,1, + 1,1,1,1,519,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5535,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5302,1,1,1, - 1,1,1,1,1,1833,565,583,1,1, - 406,1,1,1,1,1,5546,125,5396,5535, - 5718,5399,3191,3847,2971,2881,3230,2141,2715,2739, - 2970,2873,1790,2846,2964,2818,5535,5447,5130,5130, - 5130,5130,5130,5130,5454,5130,1,5451,1,1, + 1,1,1,1,1,1,1,1,1,4376, + 1,785,563,653,1,1,139,1,1,1, + 5395,1,1,426,5565,5384,5026,5023,5384,5428, + 3057,2810,3147,2163,2770,2689,3025,2791,622,2750, + 2803,2748,5384,5305,5020,5020,5020,5020,5020,5020, + 5312,5020,1,5309,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5535,1,1, + 1,5384,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5535,1,1,1,1,1,1, - 1,1,1833,565,583,1,1,139,1,1, - 1,1,1,5546,124,5535,2354,5718,3823,3793, - 3847,2971,2881,3230,2141,2715,2739,2970,2873,1790, - 2846,2964,2818,5535,5447,5130,5130,5130,5130,5130, - 5130,5454,5130,1,5451,1,1,1,1,1, + 1,1,1,1,1,1,4448,1,785,563, + 653,1,1,2934,1,1,1,5395,1,1, + 5384,5565,5384,5135,5132,2375,5384,3057,2810,3147, + 2163,2770,2689,3025,2791,622,2750,2803,2748,5384, + 5305,5020,5020,5020,5020,5020,5020,5312,5020,1, + 5309,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5384,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5535,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5535,1,1,1,1,1,1,1,1,1833, - 565,583,1,1,5535,1,1,1,1,1, - 5546,56,5279,5276,5718,3823,3793,5535,2971,2881, - 3230,2141,2715,2739,2970,2873,1790,2846,2964,2818, - 5535,5447,5130,5130,5130,5130,5130,5130,5454,5130, - 1,5451,1,1,1,1,1,1,1,1, + 1,1,1,5784,1,785,563,653,1,1, + 140,1,1,1,5395,1,1,5384,5565,5384, + 5403,5404,5384,2369,3057,2810,3147,2163,2770,2689, + 3025,2791,622,2750,2803,2748,5384,5305,5020,5020, + 5020,5020,5020,5020,5312,5020,1,5309,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5535,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,2178,1,1, - 1,1,1,1,1,1,1833,565,583,1, - 1,143,1,1,1,1,1,5546,56,5242, - 5239,5718,295,5554,5555,2971,2881,3230,2141,2715, - 2739,2970,2873,1790,2846,2964,2818,5535,5447,5130, - 5130,5130,5130,5130,5130,5454,5130,1,5451,1, + 1,1,1,1,1,5384,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5535,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5535,1,1,1,1,1, - 1,1,1,1833,565,583,1,1,5535,1, - 1,1,1,1,5546,5535,8652,8591,5718,129, - 351,1051,2971,2881,3230,2141,2715,2739,2970,2873, - 1790,2846,2964,2818,5535,5447,5130,5130,5130,5130, - 5130,5130,5454,5130,1,5451,1,1,1,1, + 5894,1,785,563,653,1,1,142,1,1, + 1,5395,1,1,5384,5565,5384,8554,8258,2375, + 5384,3057,2810,3147,2163,2770,2689,3025,2791,622, + 2750,2803,2748,5384,5305,5020,5020,5020,5020,5020, + 5020,5312,5020,1,5309,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5535,1,1,1,1, + 1,1,5384,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1363,1,1,1,1,1,1,1,1, - 1833,565,583,1,1,5535,1,1,1,1, - 1,5546,45,5539,5535,5718,5579,2851,2877,2971, - 2881,3230,2141,2715,2739,2970,2873,1790,2846,2964, - 2818,45,5136,5133,2781,643,3999,4065,3039,5126, - 4087,3155,2347,5799,5806,5804,5813,5812,5808,5809, - 5807,5810,5811,5814,5805,4043,4021,4131,4109,5560, - 5802,3977,390,5875,5876,5796,1748,1782,5803,5562, - 5775,5801,5800,5797,1756,3619,5798,1774,41,5563, - 5561,5776,1739,5556,5558,5559,5557,43,5493,5493, - 5934,1402,5493,5236,735,35,5935,5936,5535,5315, - 5315,235,5311,235,235,235,5319,235,1,235, + 1,1,1,1,1,1,1,143,1,785, + 563,653,1,1,5384,1,1,1,5395,1, + 1,5384,5565,54,5135,5132,5384,1043,3057,2810, + 3147,2163,2770,2689,3025,2791,622,2750,2803,2748, + 5384,5305,5020,5020,5020,5020,5020,5020,5312,5020, + 1,5309,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5384, 1,1,1,1,1,1,1,1,1,1, - 1,1,322,5538,45,5282,2979,1,5579,5535, - 1,1,1,660,1660,1,5535,1,1,1, - 1,35,126,1,5541,5308,133,726,1,361, - 5535,5554,5555,937,2712,1031,45,1,5547,132, - 5579,1,3073,1,1,5868,3565,2931,424,5948, - 417,235,5264,5535,5250,5245,2555,5255,665,5261, - 3039,316,5258,1363,2766,6035,5535,5315,5315,235, - 5311,235,235,235,5402,235,1,235,1,1, 1,1,1,1,1,1,1,1,1,1, - 5540,306,5970,5971,5972,1,1,5546,1,1, - 1,5840,5535,1,366,1,1,1,1,1, - 5547,1,339,5308,2851,2877,1,5273,5970,5971, - 5972,5535,2712,1031,5895,1,2090,2851,2877,1, - 1089,1,1,5535,5535,5554,5555,5948,416,235, - 39,5535,1,5293,5875,5876,5293,626,5293,5293, - 169,5293,1,6035,370,5152,5148,2903,1,665, - 1,3039,5387,1,5293,5293,5293,5293,988,5546, - 366,5293,1,5152,5148,5139,5546,5142,5535,5145, - 5970,5971,5972,314,5250,5245,2555,5255,665,5261, - 3039,366,5258,440,5535,454,4153,5441,1747,1963, - 5441,5293,5441,5441,350,5441,1023,3523,5293,5293, - 5293,5390,5293,5293,5293,1363,169,306,5441,5441, - 5441,5441,5535,1217,5267,5441,5270,5840,5293,5293, - 5293,5293,5293,5293,5293,5293,5293,5293,5293,5293, - 5293,5293,5293,5293,5293,5293,5293,5293,5293,5293, - 5293,5293,5293,5293,5535,5441,1,5293,5293,147, - 5293,137,5441,5441,5441,1363,5441,5441,5441,5535, - 5289,5285,2555,5579,665,3073,3039,397,5868,5535, - 5535,390,5441,5441,5441,5441,5441,5441,5441,5441, - 5441,5441,5441,5441,5441,5441,5441,5441,5441,5441, - 5441,5441,5441,5441,5441,5441,5441,5441,2979,131, - 3239,5441,5441,2848,5441,5535,5130,5130,235,5130, - 235,235,235,235,235,1,235,8238,1,1, - 1,1,1,1,1,1,1,1,1,108, - 83,141,1,3120,1,119,5535,1,1,1, - 5545,5897,1,5544,1,1,1,1,2411,2383, - 1,1180,5127,5535,134,1,5605,5606,44,5408, - 5405,2647,565,583,1,647,3201,5535,1,128, - 1,1,5535,5325,5322,5543,5553,348,5289,5285, - 2903,5579,665,3073,3039,2520,5868,2851,2877,439, - 3466,3086,6035,3565,2931,5535,5130,5130,235,5130, - 235,235,235,235,235,1,235,8238,1,1, - 1,1,1,1,1,1,1,1,1,5577, - 5535,4429,5411,3652,1,4175,14,1,1,1, - 592,4197,1,799,1,1,1,1,1363,5542, - 1,5535,5127,5535,5535,1,2782,2466,2439,5543, - 1263,2647,565,583,1,398,5136,5133,1,5579, - 1,1,5535,5535,5136,5133,5553,643,5444,144, - 3039,1,5374,5370,2781,5378,3999,4065,3039,45, - 4087,5334,6035,5579,5361,5367,5340,5343,5355,5352, - 5358,5349,5346,5337,5364,4043,4021,4131,4109,5560, - 122,3977,45,5970,5971,5972,1748,1782,2042,5562, - 2127,1001,4272,5542,1756,3619,13,1774,296,5563, - 5561,5535,1739,5556,5558,5559,5557,1,5152,5148, - 2555,1402,665,45,3039,45,5535,5279,5276,516, - 45,5136,5133,2781,643,3999,4065,3039,5514,4087, - 1827,5535,2979,5806,5804,5813,5812,5808,5809,5807, - 5810,5811,5814,5805,4043,4021,4131,4109,5560,1051, - 3977,5535,5535,5554,5555,1748,1782,665,5562,3039, - 5535,5242,5239,1756,3619,532,1774,2053,5563,5561, - 4175,1739,5556,5558,5559,5557,4197,1,5457,5457, - 1402,5255,313,3073,5535,366,5868,5384,398,5554, - 5555,55,5542,45,5136,5133,2781,643,3999,4065, - 3039,5381,4087,1827,1967,5535,5806,5804,5813,5812, - 5808,5809,5807,5810,5811,5814,5805,4043,4021,4131, - 4109,5560,4153,3977,1747,3178,136,5535,1748,1782, - 1,5562,1,3486,391,3669,1756,3619,929,1774, - 344,5563,5561,5535,1739,5556,5558,5559,5557,130, - 1,366,4458,1402,51,5331,5331,2520,5414,5535, - 5384,149,5136,5133,2781,643,3999,4065,3039,121, - 4087,1827,366,6047,5806,5804,5813,5812,5808,5809, - 5807,5810,5811,5814,5805,4043,4021,4131,4109,5560, - 5535,3977,5535,1363,5475,8,1748,1782,294,5562, - 344,5328,344,5526,1756,3619,344,1774,5535,5563, - 5561,2750,1739,5556,5558,5559,5557,5535,5535,2466, - 2439,1402,5542,45,43,45,1,5374,5370,2781, - 5378,3999,4065,3039,138,4087,5334,2851,2877,5361, - 5367,5340,5343,5355,5352,5358,5349,5346,5337,5364, - 4043,4021,4131,4109,5560,5535,3977,120,3099,4175, - 3652,1748,1782,5545,5562,4197,5544,5526,1489,1756, - 3619,5577,1774,5535,5563,5561,3270,1739,5556,5558, - 5559,5557,1,5152,5148,2555,1402,665,45,3039, - 45,45,5136,5133,2781,643,3999,4065,3039,5381, - 4087,1827,5535,5535,5806,5804,5813,5812,5808,5809, - 5807,5810,5811,5814,5805,4043,4021,4131,4109,5560, - 5535,3977,5535,147,3161,4484,1748,1782,5535,5562, - 1,2411,2383,3669,1756,3619,515,1774,5429,5563, - 5561,5535,1739,5556,5558,5559,5557,4175,5535,5136, - 5133,1402,5579,4197,5535,2090,5547,1,5384,45, - 5136,5133,2781,643,3999,4065,3039,5539,4087,1827, - 5535,5976,5806,5804,5813,5812,5808,5809,5807,5810, - 5811,5814,5805,4043,4021,4131,4109,5560,2979,3977, - 5535,1363,1881,5535,1748,1782,5990,5562,53,5426, - 5426,1040,1756,3619,5432,1774,879,5563,5561,2899, - 1739,5556,5558,5559,5557,5546,99,1,1,5438, - 2307,3672,6004,5998,4524,1180,6002,1838,1795,1752, - 1709,1666,1623,1580,1537,1494,1451,5535,8817,8817, - 3201,5996,5997,6027,6028,5423,640,6005,6007,5535, - 5289,5285,2555,5579,665,3073,3039,1,5868,1, - 5152,5148,5139,5535,5142,199,5145,5545,199,5535, - 5544,135,449,127,42,5511,5508,5538,539,1385, - 244,1393,5535,5460,5577,6008,6006,6029,1,5152, - 5148,2555,365,665,4561,3039,314,3565,2931,314, - 4778,426,2520,165,1,6018,6017,6030,5999,6000, - 6023,6024,528,3511,6021,6022,6001,6003,6025,6026, - 6031,6011,6012,6013,6009,6010,6019,6020,6015,6014, - 6016,45,5136,5133,2781,643,3999,4065,3039,5478, - 4087,1827,2839,5535,5806,5804,5813,5812,5808,5809, - 5807,5810,5811,5814,5805,4043,4021,4131,4109,5560, - 1,3977,3038,47,2466,2439,1748,1782,146,5562, - 5387,3348,373,1924,1756,3619,371,1774,528,5563, - 5561,508,1739,5556,5558,5559,5557,5535,5535,5535, - 2307,1402,6004,5998,5435,5535,6002,35,390,390, - 5469,390,390,5469,390,5472,5469,1963,5469,390, - 5535,5996,5997,6027,6028,5535,5535,6005,6007,5390, - 5535,5136,5133,140,643,5444,390,3039,5264,390, - 390,390,2354,5535,390,1,390,390,390,390, - 5535,1276,390,171,506,1320,1,390,539,1385, - 4858,1393,142,5535,5535,6008,6006,6029,5472,444, - 1,1,5535,1,5535,5296,1,2215,5296,2317, - 5535,5472,5541,420,5541,6018,6017,6030,5999,6000, - 6023,6024,5535,2908,6021,6022,6001,6003,6025,6026, - 6031,6011,6012,6013,6009,6010,6019,6020,6015,6014, - 6016,45,5136,5133,2781,643,3999,4065,3039,171, - 4087,1827,5535,4907,5806,5804,5813,5812,5808,5809, - 5807,5810,5811,5814,5805,4043,4021,4131,4109,5560, - 2915,3977,5535,5535,4950,2923,1748,1782,5540,5562, - 5540,3875,2229,1,1756,3619,4944,1774,5535,5563, - 5561,592,1739,5556,5558,5559,5557,43,5487,5487, - 5535,107,1483,45,5136,5133,2781,643,3999,4065, - 3039,56,4087,1827,5535,5555,5806,5804,5813,5812, - 5808,5809,5807,5810,5811,5814,5805,4043,4021,4131, - 4109,5560,5535,3977,5535,378,5535,4895,1748,1782, - 2917,5562,5555,5535,1574,5535,1756,3619,4897,1774, - 5535,5563,5561,3093,1739,5556,5558,5559,5557,5535, - 5504,5500,2266,1402,45,5136,5133,4562,643,3999, - 4065,3039,56,4087,1827,5535,5554,5806,5804,5813, - 5812,5808,5809,5807,5810,5811,5814,5805,4043,4021, - 4131,4109,5560,5535,3977,5535,4916,5535,3322,1748, - 1782,5535,5562,5554,3356,3029,5577,1756,3619,3088, - 1774,5535,5563,5561,3381,1739,5556,5558,5559,5557, - 45,5136,5133,2781,643,3999,4065,3039,5535,4087, - 1827,3414,5535,5806,5804,5813,5812,5808,5809,5807, - 5810,5811,5814,5805,4043,4021,4131,4109,5560,5535, - 3977,3071,2650,193,2923,1748,1782,5535,5562,5535, - 5535,5535,3447,1756,3619,1136,1774,521,5563,5561, - 3147,1739,5556,5558,5559,5557,45,5136,5133,2781, - 643,3999,4065,3039,5535,4087,1827,3815,5535,5806, - 5804,5813,5812,5808,5809,5807,5810,5811,5814,5805, - 4043,4021,4131,4109,5560,5535,3977,111,3474,81, - 4349,1748,1782,5535,5562,510,5535,5535,1617,1756, - 3619,1532,1774,5535,5563,5561,726,1739,5556,5558, - 5559,5557,5535,5136,5133,5535,5579,2,4931,5535, - 5523,5535,860,5535,5799,5806,5804,5813,5812,5808, - 5809,5807,5810,5811,5814,5805,285,2010,5535,5529, - 5535,5802,5535,5535,5875,5876,5796,5535,43,5803, - 5535,5775,5801,5800,5797,5532,5535,5798,1,5152, - 5148,2903,5776,665,938,3039,2923,5535,5535,5535, - 5535,5934,248,5229,5225,735,5233,5935,5936,5535, - 5535,5535,860,5535,5180,5216,5222,5195,5198,5210, - 5207,5213,5204,5201,5192,5219,5535,5535,5535,5535, - 5535,5171,5535,5535,5165,5162,5189,5535,5535,5168, - 5535,5159,5174,5177,5186,5535,5535,5183,5535,1363, - 231,5535,5156,5535,348,45,45,3669,5579,5535, - 3073,5934,5799,5868,5535,735,5535,5935,5936,38, - 391,391,5463,391,391,5463,391,5466,5463,5802, - 5463,391,5875,5876,5796,5535,5535,5803,5535,5775, - 5801,5800,5797,5535,5535,5798,5535,5535,391,5535, - 5776,391,391,391,5535,5535,391,5535,391,391, - 391,391,5535,5535,391,1363,445,45,45,391, - 5579,5535,5420,5535,5535,5417,5535,5535,5535,5535, - 5466,5535,230,5535,5136,5133,5535,643,665,5535, - 3039,5535,5535,5466,5799,5806,5804,5813,5812,5808, - 5809,5807,5810,5811,5814,5805,5535,5535,5535,5535, - 5535,5802,5535,5535,5875,5876,5796,5535,5535,5803, - 5535,5775,5801,5800,5797,5535,5535,5798,5535,5535, - 5535,5535,5776,1,5130,5130,235,5130,235,235, - 235,235,235,5535,235,8238,1,5130,5130,235, - 5130,235,235,235,5305,235,5535,235,8238,5535, - 5535,5535,5535,5535,1040,1,5130,5130,235,5130, - 235,235,235,5305,235,5535,235,8238,5535,5535, - 5127,5535,5136,5133,5535,643,665,5535,3039,2647, - 565,583,5535,5127,5535,5535,5535,5535,5535,5535, - 5535,5535,2647,565,583,5535,5535,5535,1,5152, - 5148,2903,5127,665,5535,3039,5429,5535,227,5535, - 6035,2647,565,583,5535,100,1,1,5535,1, - 5535,5490,5535,6035,5490,5535,5535,227,1,5130, - 5130,235,5130,235,235,235,5393,235,5535,235, - 8238,5535,6035,5535,5535,1,5130,5130,235,5130, - 235,235,235,5305,235,5535,235,8238,5535,1363, - 5535,5535,1,5130,5130,235,5130,235,235,235, - 235,235,5432,235,8238,5127,5535,5535,5535,5535, - 5535,5535,5535,5535,2647,565,583,103,45,45, - 5535,5579,5127,5520,5535,5535,5517,5535,5535,5535, - 226,2647,565,583,5535,5535,5535,5535,5535,5127, - 5535,5535,5535,5535,5535,6035,5535,227,2647,565, - 583,5535,1,5130,5130,235,5130,235,235,235, - 235,235,6035,235,8238,1,5130,5130,235,5130, - 235,235,235,235,235,5535,235,8238,5535,6035, - 5535,5535,5535,5535,5535,5535,5535,5535,5535,5535, - 5535,5535,5535,5535,5535,232,5535,5535,5535,5127, - 5535,5535,5535,5535,5535,5535,5535,5799,2647,565, - 583,5535,5127,5535,233,5535,5535,5535,5535,5535, - 5535,2647,565,583,5802,5535,5799,5875,5876,5796, - 5535,5535,5803,5535,5775,5801,5800,5797,234,6035, - 5798,5535,5535,5802,5535,5776,5875,5876,5796,5535, - 5799,5803,6035,5775,5801,5800,5797,5535,5535,5798, - 5535,5535,5535,5535,5776,5535,5535,5802,5535,5535, - 5875,5876,5796,5535,5535,5803,5535,5775,5801,5800, - 5797,5535,5535,5798,5535,5535,5535,5535,5776 + 1,1,1,1,5837,1,785,563,653,1, + 1,5384,1,1,1,5395,1,1,1171,5565, + 293,5403,5404,5384,5384,3057,2810,3147,2163,2770, + 2689,3025,2791,622,2750,2803,2748,5384,5305,5020, + 5020,5020,5020,5020,5020,5312,5020,1,5309,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,5384,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,5823,1,785,563,653,1,1,135,1, + 1,1,5395,1,1,5384,5565,5384,8554,8258, + 5384,5384,3057,2810,3147,2163,2770,2689,3025,2791, + 622,2750,2803,2748,5384,5305,5020,5020,5020,5020, + 5020,5020,5312,5020,1,5309,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5384,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,2201,1, + 785,563,653,1,1,5384,1,1,1,5395, + 1,1,5384,5565,5384,2501,2418,1848,5384,3057, + 2810,3147,2163,2770,2689,3025,2791,622,2750,2803, + 2748,45,5026,5023,4768,2152,4087,4153,2615,5384, + 4175,910,136,5646,5653,5651,5660,5659,5655,5656, + 5654,5657,5658,5661,5652,4131,4109,4219,4197,5409, + 311,5649,5722,5723,4042,5643,1676,1711,5650,5411, + 5622,5648,5647,5644,1678,2666,5645,1693,5412,5410, + 5623,1625,5405,5407,5408,1990,5406,5384,5403,5404, + 5781,1429,3550,864,5782,5783,5384,5193,5193,234, + 5189,234,234,234,5197,234,1,234,1,1, + 1,1,1,1,1,1,1,1,1,1, + 81,5384,5384,4369,41,5186,1,1,1,5394, + 1,3964,5393,1,322,1,1,1,1,2501, + 2418,1,43,5180,5180,1,5452,5453,2369,44, + 5150,5147,2788,1359,5144,1,2615,1,1,1, + 1,389,5384,5026,5023,5795,5428,5384,415,234, + 5396,5426,5384,5384,5039,5035,2756,5032,732,5141, + 2615,4366,5138,5882,368,5039,5035,2529,5032,732, + 1,2615,4329,1,1370,1387,5384,5403,5404,5817, + 5818,5819,5384,5193,5193,234,5189,234,234,234, + 5269,234,1,234,1,1,1,1,1,1, + 1,1,1,1,1,1,795,5395,43,5180, + 5180,5186,1,1,1,4532,1,337,3682,1, + 1371,1,1,1,1,1387,2114,1,5384,5026, + 5023,1,2152,5302,1207,2615,5384,5426,2788,1359, + 3120,1,4241,730,1,1,1,5384,5722,5723, + 39,5795,304,5177,414,234,5177,2446,5177,5177, + 229,5177,5687,1,5039,5035,5029,5032,5046,5882, + 5043,5384,5646,5384,5177,5177,5177,5177,396,5026, + 5023,5394,5428,5384,5393,5817,5818,5819,5384,45, + 5649,5722,5723,5428,5643,1719,5396,5650,5715,5622, + 5648,5647,5644,5384,5177,5645,5384,45,661,5623, + 5384,5177,1,5039,5035,2756,5032,732,5177,2615, + 5177,5177,5177,5177,5177,1,5020,5020,234,5020, + 234,234,234,234,234,1047,234,8738,5177,5177, + 5177,5177,5177,5177,5177,5177,5177,5177,5177,5177, + 5177,5177,5177,5395,5017,456,5177,5177,5177,5177, + 5177,5177,5177,5177,5177,5177,5177,5177,5177,5384, + 5177,3125,5299,455,3682,5299,5384,5299,5299,1084, + 5299,2771,563,653,5392,2114,53,5384,5026,5023, + 1,5428,5016,5299,5299,5299,5299,571,5162,5646, + 5653,5651,5660,5659,5655,5656,5654,5657,5658,5661, + 5652,320,5882,137,5165,1036,5171,5649,5722,5723, + 132,5643,590,5299,5650,5384,5622,5648,5647,5644, + 5299,5384,5645,5388,5174,5384,5623,5299,4769,5299, + 5299,5299,5299,5299,5384,5384,5781,993,5391,864, + 5782,5783,5390,145,5384,5395,5384,5299,5299,5299, + 5299,5299,5299,5299,5299,5299,5299,5299,5299,5299, + 5299,5299,1387,1110,2720,5299,5299,5299,5299,5299, + 5299,5299,5299,5299,5299,5299,5299,5299,5272,5299, + 5384,5020,5020,234,5020,234,234,234,234,234, + 1,234,8738,1,1,1,1,1,1,1, + 1,1,1,1,348,2633,2557,3178,5389,5017, + 1,1,1,1904,1,127,124,1,121,1, + 1,1,1,5384,3915,1,442,1,1,1, + 1,5392,5168,5387,5384,5168,2771,563,653,1, + 3638,3611,1,1,1,2337,396,5403,5404,5402, + 4374,1861,1818,1775,1732,1689,1646,1603,1560,1517, + 1474,5384,5384,5135,5132,1387,3550,5882,5384,5020, + 5020,234,5020,234,234,234,234,234,1,234, + 8738,1,1,1,1,1,1,1,1,1, + 1,1,5384,5203,5200,5391,304,5017,1,1, + 1,14,1,2930,2992,1,5687,1,1,1, + 1,3891,3861,1,443,45,45,1,5428,5384, + 5281,5426,3738,5278,2771,563,653,1,4241,730, + 1,1,1,359,1,5318,5318,5402,5315,388, + 1719,5384,364,5715,1,5039,5035,4768,5032,4087, + 4153,2615,395,4175,5212,5882,388,5239,5245,5218, + 5221,5233,5230,5236,5227,5224,5215,5242,4131,4109, + 4219,4197,5409,404,49,5209,5209,4042,1,1676, + 1711,5263,5411,5384,5266,294,364,1678,2666,13, + 1693,5412,5410,5129,1625,5405,5407,5408,5384,5406, + 5384,5403,5404,5206,1429,732,1594,2615,364,131, + 45,45,514,45,5026,5023,4768,2152,4087,4153, + 2615,5363,4175,2608,5742,364,5653,5651,5660,5659, + 5655,5656,5654,5657,5658,5661,5652,4131,4109,4219, + 4197,5409,43,5180,5180,5384,4042,5180,1676,1711, + 45,5411,364,5384,5428,2076,1678,2666,1,1693, + 5412,5410,5384,1625,5405,5407,5408,5384,5406,364, + 123,3558,5384,1429,1,1,3915,2956,5251,292, + 2834,641,342,5275,145,5391,45,5026,5023,4768, + 2152,4087,4153,2615,5248,4175,2608,2930,2992,5653, + 5651,5660,5659,5655,5656,5654,5657,5658,5661,5652, + 4131,4109,4219,4197,5409,51,5287,5287,5384,4042, + 1,1676,1711,2956,5411,119,5390,371,5290,1678, + 2666,5384,1693,5412,5410,1387,1625,5405,5407,5408, + 2817,5406,342,130,5284,342,1429,5391,342,5744, + 1513,5251,147,5026,5023,4768,2152,4087,4153,2615, + 118,4175,2608,3891,3861,5653,5651,5660,5659,5655, + 5656,5654,5657,5658,5661,5652,4131,4109,4219,4197, + 5409,1387,42,5360,5357,4042,2337,1676,1711,4860, + 5411,4374,5389,8,5293,1678,2666,1267,1693,5412, + 5410,5375,1625,5405,5407,5408,452,5406,349,5384, + 5026,5023,1429,2152,732,4263,2615,4285,45,45, + 1,5039,5035,4768,5032,4087,4153,2615,513,4175, + 5212,2930,2992,5239,5245,5218,5221,5233,5230,5236, + 5227,5224,5215,5242,4131,4109,4219,4197,5409,447, + 4263,122,4285,4042,1,1676,1711,3915,5411,1, + 5153,106,167,1678,2666,5375,1693,5412,5410,1387, + 1625,5405,5407,5408,5384,5406,35,5384,5026,5023, + 1429,2152,732,5384,2615,5384,45,45,45,5026, + 5023,4768,2152,4087,4153,2615,5248,4175,2608,872, + 43,5653,5651,5660,5659,5655,5656,5654,5657,5658, + 5661,5652,4131,4109,4219,4197,5409,5384,8719,8719, + 2900,4042,4889,1676,1711,1,5411,129,167,5426, + 1594,1678,2666,526,1693,5412,5410,1,1625,5405, + 5407,5408,2864,5406,3891,3861,5426,5254,1429,422, + 3993,2892,5384,5251,45,5026,5023,4768,2152,4087, + 4153,2615,5388,4175,2608,5384,1943,5653,5651,5660, + 5659,5655,5656,5654,5657,5658,5661,5652,4131,4109, + 4219,4197,5409,5384,5403,5404,138,4042,5384,1676, + 1711,5396,5411,438,5384,590,5257,1678,2666,526, + 1693,5412,5410,128,1625,5405,5407,5408,1,5406, + 105,1317,35,5851,5845,2930,2992,5849,363,35, + 388,388,5327,388,388,5327,388,5327,5327,424, + 5327,388,5843,5844,5874,5875,1,5384,5384,5026, + 5023,5852,2152,5302,1,2615,5254,5156,5395,388, + 388,388,5394,388,5384,5393,388,4382,388,388, + 388,388,5854,163,388,1943,5159,2469,388,638, + 3086,2288,5387,5159,1307,1461,5855,191,5853,5876, + 5327,312,5039,5035,2756,5032,732,5141,2615,3024, + 5138,2930,2992,5327,5384,5257,5865,5864,5877,5384, + 4632,5846,5847,5870,5871,5868,5869,5848,5850,5872, + 5873,54,5384,126,5878,5404,5858,5859,5860,5856, + 5857,5866,5867,5862,5861,5863,45,5026,5023,4768, + 2152,4087,4153,2615,1947,4175,2608,3638,3611,5653, + 5651,5660,5659,5655,5656,5654,5657,5658,5661,5652, + 4131,4109,4219,4197,5409,43,5180,5180,125,4042, + 144,1676,1711,5384,5411,5404,5384,5353,5349,1678, + 2666,369,1693,5412,5410,5384,1625,5405,5407,5408, + 2904,5406,3638,3611,3472,5384,1429,45,5026,5023, + 4768,2152,4087,4153,2615,5426,4175,2608,5384,5381, + 5653,5651,5660,5659,5655,5656,5654,5657,5658,5661, + 5652,4131,4109,4219,4197,5409,1,1891,97,530, + 4042,5296,1676,1711,197,5411,134,197,5384,1594, + 1678,2666,1193,1693,5412,5410,1,1625,5405,5407, + 5408,1327,5406,242,5384,5384,5321,5384,1686,45, + 5026,5023,4768,2152,4087,4153,2615,1,4175,2608, + 4858,1171,5653,5651,5660,5659,5655,5656,5654,5657, + 5658,5661,5652,4131,4109,4219,4197,5409,1,3195, + 2720,1,4042,5384,1676,1711,169,5411,5384,5390, + 1594,5384,1678,2666,5330,1693,5412,5410,1084,1625, + 5405,5407,5408,5384,5406,5384,4811,506,504,1429, + 45,5026,5023,4797,2152,4087,4153,2615,3083,4175, + 2608,2633,2557,5653,5651,5660,5659,5655,5656,5654, + 5657,5658,5661,5652,4131,4109,4219,4197,5409,5384, + 5384,5384,3382,4042,5384,1676,1711,5384,5411,5384, + 418,79,169,1678,2666,5389,1693,5412,5410,3956, + 1625,5405,5407,5408,3141,5406,45,5026,5023,4768, + 2152,4087,4153,2615,5384,4175,2608,4845,4855,5653, + 5651,5660,5659,5655,5656,5654,5657,5658,5661,5652, + 4131,4109,4219,4197,5409,3957,5384,5384,4843,4042, + 4824,1676,1711,2899,5411,5372,3117,54,133,1678, + 2666,5403,1693,5412,5410,5384,1625,5405,5407,5408, + 2250,5406,45,5026,5023,4768,2152,4087,4153,2615, + 5384,4175,2608,3023,5384,5653,5651,5660,5659,5655, + 5656,5654,5657,5658,5661,5652,4131,4109,4219,4197, + 5409,5384,5384,5384,4831,4042,4483,1676,1711,5384, + 5411,5403,2720,1556,5384,1678,2666,4484,1693,5412, + 5410,5384,1625,5405,5407,5408,5333,5406,246,5122, + 5118,5384,5126,5384,4848,1370,4868,5384,571,5384, + 5073,5109,5115,5088,5091,5103,5100,5106,5097,5094, + 5085,5112,5384,2633,2557,3771,5384,3199,5064,5058, + 5055,5384,5082,5384,4871,5061,4881,5052,5067,5070, + 5079,5384,109,5076,4891,4892,5384,5049,1,5039, + 5035,2529,5032,732,5384,2615,5290,5781,5384,5384, + 864,5782,5783,38,389,389,5324,389,389,5324, + 389,5324,5324,5384,5324,389,4812,346,5026,5023, + 2529,2152,732,1719,2615,283,5715,508,5378,5384, + 5384,5384,2,389,389,389,2033,389,5384,5384, + 389,5384,389,389,389,389,5384,5384,389,1387, + 5384,1,389,228,5384,5026,5023,2756,2152,732, + 1719,2615,5293,5715,5324,5646,5653,5651,5660,5659, + 5655,5656,5654,5657,5658,5661,5652,5324,1387,771, + 5384,5384,5384,5649,5722,5723,43,5643,5384,5384, + 5650,5384,5622,5648,5647,5644,5384,928,5645,5384, + 5384,5384,5623,1,5020,5020,234,5020,234,234, + 234,5183,234,5384,234,8738,1,5020,5020,234, + 5020,234,234,234,5183,234,5384,234,8738,5384, + 5384,5384,5017,5384,5384,1,5020,5020,234,5020, + 234,234,234,5260,234,5017,234,8738,5384,5026, + 5023,2756,2152,732,1719,2615,5384,5715,5384,2771, + 563,653,5384,5384,5017,5384,5384,5384,5384,5384, + 5384,5384,2771,563,653,225,1,5039,5035,5029, + 5032,5046,5384,5043,5394,5384,5384,5393,225,5384, + 5882,2771,563,653,1,5039,5035,2756,5032,732, + 5384,2615,312,5882,5384,312,5384,224,1,5020, + 5020,234,5020,234,234,234,5183,234,5384,234, + 8738,5384,5882,5384,5384,5384,5384,1,5020,5020, + 234,5020,234,234,234,234,234,5017,234,8738, + 1,5020,5020,234,5020,234,234,234,234,234, + 5384,234,8738,98,1,1,5017,1,5384,5342, + 5384,5384,5342,5384,2771,563,653,5384,5384,5017, + 346,45,45,2956,5428,5384,1719,5384,5384,5715, + 225,5384,5384,2771,563,653,1,5039,5035,2529, + 5032,732,5384,2615,5384,5882,2771,563,653,1, + 5020,5020,234,5020,234,234,234,234,234,230, + 234,8738,5384,5384,5882,1,5039,5035,2756,5032, + 732,5646,2615,5384,5384,5384,5384,5882,5017,45, + 231,1387,5384,5428,5384,5384,5384,5384,5384,5649, + 5722,5723,5646,5643,5384,5384,5650,1387,5622,5648, + 5647,5644,5384,232,5645,2771,563,653,5623,972, + 5649,5722,5723,5384,5643,5646,5384,5650,5384,5622, + 5648,5647,5644,5384,5384,5645,5384,5384,5384,5623, + 5384,5384,5384,5649,5722,5723,5882,5643,5384,5384, + 5650,5384,5622,5648,5647,5644,5384,5384,5645,101, + 45,45,5623,5428,5384,5369,5384,5384,5366,5384, + 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, + 5384,5384,5384,5384,5384,5384,5384,5384,5384,5384, + 5384,5384,5817,5818,5819 }; }; public final static char termAction[] = TermAction.termAction; @@ -1808,59 +1761,59 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Asb { public final static char asb[] = {0, - 865,1,903,371,663,207,511,981,979,521, - 865,302,1102,979,1031,1042,523,1042,518,1042, - 520,1042,1026,1042,302,303,16,207,297,303, - 808,808,728,808,303,371,335,798,373,21, - 523,112,303,1103,461,464,303,118,509,693, - 513,116,523,587,303,635,303,303,509,118, - 118,215,300,3,3,10,12,297,303,801, - 461,335,808,635,805,163,461,808,808,635, - 60,598,480,867,867,21,21,21,302,303, - 1103,215,464,118,117,118,509,411,118,587, - 587,303,635,509,303,118,523,302,297,122, - 263,67,297,585,801,635,300,163,163,635, - 1103,598,480,21,854,21,21,303,215,215, - 854,303,464,1118,521,335,904,1108,464,118, - 118,857,303,693,303,587,854,306,853,798, - 452,371,335,335,335,335,302,371,105,247, - 107,264,264,264,264,264,264,264,264,264, - 810,816,821,818,825,823,830,828,832,831, - 833,166,834,797,303,523,227,311,303,371, - 163,848,461,263,854,523,801,800,798,805, - 798,461,538,526,537,797,335,322,322,854, - 854,303,60,1110,311,690,858,303,411,854, - 264,303,300,594,534,533,247,663,663,663, - 663,303,542,759,810,461,461,247,938,662, - 60,247,810,59,59,542,263,264,264,264, - 264,264,264,264,264,264,264,264,264,264, - 264,264,264,264,264,264,263,263,263,263, - 263,263,263,263,263,263,263,263,264,247, - 911,228,302,303,542,315,854,67,801,913, - 263,535,535,592,300,695,480,867,480,796, - 796,215,1103,12,328,264,1118,11,857,303, - 302,302,303,452,461,596,598,461,461,798, - 798,798,798,509,461,264,337,1048,1048,302, - 107,163,662,263,1103,461,1102,1104,1102,461, - 163,818,818,816,816,816,823,823,823,823, - 821,821,828,825,825,831,830,832,1118,833, - 911,227,1118,264,1118,215,226,371,371,371, - 228,371,303,173,215,215,303,523,461,263, - 67,913,263,263,596,526,480,663,663,215, - 1110,264,264,303,303,303,461,598,371,371, - 371,371,303,303,303,60,264,663,814,418, - 461,303,1104,60,263,218,371,218,228,1118, - 228,247,247,245,633,247,215,215,926,911, - 853,915,797,303,303,928,461,263,263,263, - 263,371,371,509,1103,461,814,300,693,303, - 1103,695,228,461,297,461,245,207,371,461, - 911,852,66,915,1024,928,928,461,461,461, - 461,542,542,303,814,815,814,263,418,1106, - 810,693,461,461,1096,228,926,228,215,207, - 263,228,225,852,852,371,322,920,928,461, - 461,1083,814,542,264,163,1106,523,523,1098, - 263,226,542,215,461,599,796,920,920,815, - 461,163,228,461,215,460,1102,920,228,663 + 829,1,867,583,684,365,262,973,971,6, + 829,460,1102,971,1031,1042,8,1042,3,1042, + 5,1042,1026,1042,460,461,11,365,455,100, + 739,739,644,461,739,461,583,547,729,170, + 16,8,166,461,1103,150,215,461,266,260, + 714,270,264,8,319,461,469,461,461,260, + 266,266,373,458,153,153,160,162,455,461, + 732,150,469,469,736,316,150,739,739,547, + 739,461,55,607,231,831,831,16,16,16, + 460,461,1103,373,215,266,265,266,260,208, + 266,319,319,461,469,260,461,266,8,460, + 455,461,275,421,62,455,208,732,469,469, + 458,316,316,1103,607,231,16,785,16,16, + 461,373,373,785,461,215,1118,6,547,522, + 1108,215,266,266,1018,461,714,461,319,785, + 464,784,729,141,583,547,547,547,547,460, + 583,405,102,422,422,422,422,422,422,422, + 422,422,741,747,752,749,756,754,761,759, + 763,762,764,324,765,728,461,8,385,529, + 461,583,928,316,779,150,421,785,8,732, + 731,729,729,736,150,597,585,596,728,547, + 823,823,785,785,461,55,1110,529,711,1019, + 461,208,785,422,461,458,603,593,592,405, + 684,684,684,684,461,885,150,150,405,930, + 683,55,405,741,54,54,885,421,422,422, + 422,422,422,422,422,422,422,422,422,422, + 422,422,422,422,422,422,422,421,421,421, + 421,421,421,421,421,421,421,421,421,422, + 405,642,386,460,461,885,533,785,62,732, + 716,421,594,594,601,458,790,231,831,231, + 727,727,373,1103,162,540,422,1118,161,1018, + 461,460,460,461,141,150,605,607,150,150, + 729,729,729,729,260,150,422,549,1048,1048, + 460,102,316,683,421,150,1102,1104,1102,150, + 316,749,749,747,747,747,754,754,754,754, + 752,752,759,756,756,762,761,763,1118,764, + 642,385,1118,422,1118,373,384,583,583,583, + 386,583,461,331,373,373,461,8,150,421, + 62,716,421,421,605,585,231,684,684,373, + 1110,422,422,461,461,461,150,607,583,583, + 583,583,461,461,461,55,422,684,745,107, + 150,461,1104,55,421,376,583,376,386,1118, + 386,405,405,403,788,405,373,373,883,642, + 784,718,728,461,461,875,150,421,421,421, + 421,583,583,260,1103,150,745,458,714,461, + 1103,790,386,150,455,150,403,365,583,150, + 642,783,61,718,1016,875,875,150,150,150, + 150,885,885,461,745,746,745,421,107,1106, + 741,714,150,150,1096,386,883,386,373,365, + 421,386,383,783,783,583,823,723,875,150, + 150,1083,745,885,422,316,1106,8,8,1098, + 421,384,885,373,150,608,727,723,723,746, + 150,316,386,150,373,149,1102,723,386,684 }; }; public final static char asb[] = Asb.asb; @@ -1868,118 +1821,118 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Asr { public final static byte asr[] = {0, - 121,0,75,68,73,95,74,67,61,3, - 69,8,11,70,0,8,73,67,75,0, - 58,34,13,14,59,32,15,63,37,87, - 12,16,39,40,17,18,41,56,42,19, - 20,45,65,50,10,66,21,57,29,22, - 33,23,8,3,9,6,72,11,4,7, - 1,2,5,47,0,72,60,26,27,9, - 6,24,25,30,44,3,4,52,55,53, - 54,28,49,38,48,14,23,13,19,17, - 18,20,21,16,15,22,10,36,46,43, - 35,51,67,8,5,7,1,2,64,62, - 0,8,67,69,0,4,31,8,73,67, - 0,62,64,3,10,36,46,43,35,51, + 121,0,29,73,4,1,2,65,8,0, + 8,73,65,75,0,58,34,13,14,59, + 31,15,62,37,87,12,16,39,40,17, + 18,41,56,42,19,20,45,63,49,10, + 64,21,57,30,22,32,23,8,3,9, + 6,72,11,4,7,5,29,1,2,0, + 72,60,26,27,9,6,24,25,33,44, + 3,4,51,55,52,53,28,48,38,47, 14,23,13,19,17,18,20,21,16,15, - 22,52,55,53,54,28,49,38,48,5, - 7,4,26,27,9,6,24,25,30,44, - 1,2,118,8,0,68,73,95,70,118, - 74,72,13,14,35,62,15,36,38,16, - 17,18,64,43,19,20,44,46,48,60, - 49,51,10,21,22,23,52,53,54,28, - 26,27,24,25,30,55,9,6,4,1, - 2,7,5,3,11,8,0,87,114,115, - 116,47,73,121,119,122,72,71,75,57, - 56,58,77,79,85,83,76,81,82,84, - 86,67,78,80,11,8,34,59,32,63, - 37,12,39,40,41,42,45,65,50,66, - 29,33,60,62,64,10,36,46,43,35, - 51,14,23,13,19,17,18,20,21,16, - 15,22,52,55,53,54,28,49,38,48, - 26,27,24,25,30,44,7,5,3,6, - 9,4,1,2,0,8,70,72,69,0, - 8,67,70,0,8,73,118,74,11,70, - 0,68,69,70,1,2,0,73,8,61, - 3,69,70,11,31,0,34,13,14,32, - 15,37,12,16,39,40,17,18,41,7, - 42,19,20,45,50,21,29,22,33,23, - 1,2,8,61,9,6,5,4,74,11, - 3,0,58,34,13,14,59,32,15,63, - 37,87,12,16,39,40,17,18,41,56, - 42,19,20,45,65,50,10,66,21,57, - 29,22,33,23,3,9,4,11,67,8, - 7,6,5,1,2,47,0,96,90,24, - 25,91,92,88,89,31,93,94,97,98, - 99,100,101,102,117,73,95,69,104,105, - 106,107,108,109,110,111,112,113,118,72, - 11,68,1,2,9,6,4,3,61,70, - 74,8,0,87,56,7,114,115,116,57, - 8,3,9,6,5,73,72,11,71,34, - 13,14,59,32,15,63,37,12,16,39, - 40,17,18,41,42,19,20,45,65,50, - 10,66,21,29,22,33,23,4,1,2, - 47,0,4,8,73,67,0,47,73,4, - 1,2,67,8,0,9,6,4,5,7, - 1,2,3,61,68,69,70,8,74,95, - 0,8,74,13,14,35,62,15,36,38, - 16,17,18,64,7,43,19,20,44,46, - 48,60,49,51,10,21,22,23,52,53, - 54,28,1,2,3,26,27,9,24,25, - 5,30,4,55,6,0,1,2,8,72, - 0,7,5,3,61,6,9,95,34,13, - 14,59,32,15,63,37,12,16,39,40, - 17,18,41,42,19,20,45,65,50,10, - 66,21,29,22,33,23,1,2,4,74, - 8,0,76,0,35,62,36,38,64,7, - 43,44,46,48,60,49,51,52,53,54, - 28,26,27,9,6,24,25,5,30,68, - 55,3,10,63,59,65,66,14,23,13, - 19,17,18,20,21,16,15,22,34,42, - 45,12,41,40,37,32,33,39,50,1, - 2,29,4,0,34,13,14,59,32,15, - 63,37,12,16,39,40,17,18,41,42, - 19,20,45,65,50,10,66,21,29,22, - 33,23,1,2,4,95,0,34,13,14, - 59,32,15,63,37,12,16,39,40,17, - 18,41,42,19,20,45,65,50,10,66, - 21,29,22,33,23,1,2,4,64,62, - 24,25,6,91,92,99,9,100,5,30, - 31,107,108,104,105,106,112,111,113,89, - 88,109,110,97,98,93,94,101,102,26, - 27,90,103,3,61,69,70,68,0,60, - 32,7,33,5,1,2,4,75,67,120, - 103,26,27,61,3,96,90,6,91,92, - 24,25,89,88,31,93,94,97,98,9, - 99,100,101,68,95,74,69,104,105,106, - 107,108,109,110,111,112,113,73,118,102, - 117,11,70,72,8,0,29,1,2,4, - 114,115,116,0,121,71,59,32,15,63, - 37,16,39,40,17,18,41,42,19,20, - 45,65,50,66,21,29,22,33,23,14, - 13,34,8,3,9,6,11,57,58,87, - 12,47,56,7,1,2,5,4,10,0, - 119,0,32,33,75,3,73,11,67,60, - 8,68,95,70,74,69,0,32,60,33, - 8,68,95,69,70,74,0,62,64,26, - 27,9,6,24,25,5,30,44,3,4, - 7,52,55,53,54,49,38,48,14,23, - 13,19,17,18,20,21,16,15,22,10, - 36,46,43,35,51,61,1,2,28,0, - 32,15,63,37,16,39,40,17,18,41, - 42,19,20,45,65,50,10,66,21,29, - 22,33,23,14,13,34,7,8,3,9, - 6,5,11,57,56,58,87,12,31,1, - 2,4,47,59,0,10,63,59,65,66, + 22,10,36,46,43,35,50,65,8,7, + 5,1,2,67,66,0,92,90,24,25, + 93,94,88,89,54,95,96,97,98,99, + 100,101,102,107,73,91,70,108,109,110, + 111,112,113,114,115,116,117,118,72,11, + 68,1,2,9,6,4,3,61,71,74, + 8,0,75,68,73,91,74,65,61,3, + 70,8,11,71,0,8,65,70,0,58, + 34,13,14,59,31,15,62,37,87,12, + 16,39,40,17,18,41,56,42,19,20, + 45,63,49,10,64,21,57,30,22,32, + 23,3,9,4,11,65,8,7,6,5, + 1,2,29,0,87,56,7,103,104,105, + 57,8,3,9,6,5,73,72,11,69, + 34,13,14,59,31,15,62,37,12,16, + 39,40,17,18,41,42,19,20,45,63, + 49,10,64,21,30,22,32,23,4,1, + 2,29,0,4,54,8,73,65,0,4, + 8,73,65,0,66,67,3,10,36,46, + 43,35,50,14,23,13,19,17,18,20, + 21,16,15,22,51,55,52,53,28,48, + 38,47,5,7,4,26,27,9,6,24, + 25,33,44,1,2,118,8,0,1,2, + 8,72,0,68,73,91,71,118,74,72, + 13,14,35,66,15,36,38,16,17,18, + 67,43,19,20,44,46,47,60,48,50, + 10,21,22,23,51,52,53,28,26,27, + 24,25,33,55,9,6,5,7,1,2, + 4,3,11,8,0,87,103,104,105,29, + 73,121,119,122,72,69,75,57,56,58, + 77,79,85,83,76,81,82,84,86,65, + 78,80,11,8,34,59,31,62,37,12, + 39,40,41,42,45,63,49,64,30,32, + 60,66,67,10,36,46,43,35,50,14, + 23,13,19,17,18,20,21,16,15,22, + 51,55,52,53,28,48,38,47,26,27, + 24,25,33,44,5,7,3,6,9,4, + 1,2,0,8,71,72,70,0,34,13, + 14,59,31,35,66,15,36,62,37,12, + 38,16,39,40,17,18,41,67,42,43, + 19,20,44,45,46,63,47,60,48,49, + 50,64,21,30,22,32,23,51,52,53, + 28,3,26,27,9,6,24,25,33,68, + 55,7,1,2,5,4,10,0,8,65, + 71,0,8,73,118,74,11,71,0,73, + 8,61,3,70,71,11,54,0,34,13, + 14,31,15,37,12,16,39,40,17,18, + 41,7,42,19,20,45,49,21,30,22, + 32,23,1,2,8,61,9,6,5,4, + 74,11,3,0,9,6,7,5,4,1, + 2,3,61,68,70,71,8,74,91,0, + 5,7,3,61,6,9,91,34,13,14, + 59,31,15,62,37,12,16,39,40,17, + 18,41,42,19,20,45,63,49,10,64, + 21,30,22,32,23,1,2,4,74,8, + 0,119,0,67,66,24,25,6,93,94, + 99,9,100,5,33,70,54,68,111,112, + 108,109,110,116,115,117,89,88,113,114, + 97,98,95,96,101,102,26,27,71,90, + 106,61,3,10,62,59,63,64,14,23, + 13,19,17,18,20,21,16,15,22,34, + 42,45,12,41,40,37,31,32,39,49, + 1,2,30,4,0,31,32,75,3,73, + 11,65,60,8,91,74,70,71,68,0, + 60,31,7,32,5,1,2,4,75,65, + 120,106,26,27,61,3,92,90,6,93, + 94,24,25,89,88,54,95,96,97,98, + 9,99,100,101,68,91,74,70,108,109, + 110,111,112,113,114,115,116,117,73,118, + 102,107,11,71,72,8,0,76,0,34, + 13,14,59,31,15,62,37,12,16,39, + 40,17,18,41,42,19,20,45,63,49, + 10,64,21,30,22,32,23,1,2,4, + 91,0,68,70,71,1,2,0,121,69, + 59,31,15,62,37,16,39,40,17,18, + 41,42,19,20,45,63,49,64,21,30, + 22,32,23,14,13,34,8,3,9,6, + 11,57,58,87,12,29,7,1,2,5, + 4,10,56,0,31,60,32,8,68,91, + 71,74,70,0,8,74,13,14,35,66, + 15,36,38,16,17,18,67,7,43,19, + 20,44,46,47,60,48,50,10,21,22, + 23,51,52,53,28,1,2,3,26,27, + 9,24,25,5,33,4,55,6,0,66, + 67,26,27,9,6,24,25,5,33,44, + 3,4,7,51,55,52,53,48,38,47, 14,23,13,19,17,18,20,21,16,15, - 22,75,73,95,118,72,67,120,96,103, - 90,26,27,24,25,91,92,88,89,31, - 68,93,94,97,98,99,100,101,102,117, - 69,104,105,106,107,108,109,110,111,112, - 113,70,34,32,37,12,39,40,41,42, - 45,50,29,33,11,8,74,9,6,3, - 61,4,7,1,2,5,0,11,8,7, - 5,3,1,2,6,9,4,73,0 + 22,10,36,46,43,35,50,61,1,2, + 28,0,31,15,62,37,16,39,40,17, + 18,41,42,19,20,45,63,49,10,64, + 21,30,22,32,23,14,13,34,7,8, + 3,9,6,5,11,57,56,58,87,12, + 54,1,2,4,29,59,0,30,1,2, + 4,103,104,105,0,10,62,59,63,64, + 14,23,13,19,17,18,20,21,16,15, + 22,75,73,91,118,72,65,120,92,106, + 90,26,27,24,25,93,94,88,89,54, + 68,95,96,97,98,99,100,101,102,107, + 70,108,109,110,111,112,113,114,115,116, + 117,71,34,31,37,12,39,40,41,42, + 45,49,30,32,11,8,74,9,6,3, + 61,4,7,1,2,5,0,11,8,5, + 7,3,1,2,4,6,9,73,0 }; }; public final static byte asr[] = Asr.asr; @@ -1987,59 +1940,59 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Nasb { public final static char nasb[] = {0, - 201,12,13,12,5,269,12,238,12,41, - 226,65,65,12,254,255,93,255,127,255, - 40,255,248,12,10,174,156,112,151,235, - 12,12,170,12,174,12,12,12,92,156, - 93,12,187,187,282,156,129,156,187,12, - 156,12,93,156,187,156,174,11,12,156, - 108,162,118,15,15,54,12,218,174,156, - 282,12,12,156,138,76,282,12,12,156, - 99,156,156,238,238,156,206,156,65,122, - 222,162,257,156,156,20,17,26,20,156, - 236,11,30,17,129,108,194,44,218,71, - 135,59,151,12,158,30,118,76,76,30, - 222,179,179,206,168,238,206,187,162,162, - 168,174,162,12,121,12,13,268,257,20, - 20,190,129,12,11,236,168,12,12,12, - 212,12,12,12,12,12,65,12,22,141, - 174,61,61,231,61,61,61,61,61,61, + 195,12,15,12,5,259,12,236,12,59, + 224,71,71,12,251,252,131,252,21,252, + 58,252,245,12,10,147,264,115,108,111, + 12,12,123,233,12,147,12,12,12,130, + 264,131,12,182,182,276,264,23,264,182, + 12,264,12,131,264,182,264,147,11,12, + 264,103,138,120,78,78,19,12,205,147, + 264,276,264,264,87,95,276,12,12,12, + 12,11,32,264,264,236,236,264,216,264, + 71,134,111,138,175,264,264,13,55,83, + 13,264,234,11,34,55,23,103,157,26, + 205,147,90,46,65,108,32,150,34,34, + 120,95,95,111,162,162,216,81,236,216, + 182,138,138,81,147,138,12,133,12,15, + 258,175,13,13,241,23,12,11,234,81, + 12,12,12,153,12,12,12,12,12,71, + 12,266,147,67,67,229,67,67,67,67, + 67,67,12,12,12,12,12,12,12,12, + 12,12,12,67,12,12,23,157,80,12, + 182,12,12,95,12,276,67,264,131,264, + 150,12,12,209,276,12,106,12,12,12, + 165,165,81,81,134,32,115,12,71,62, + 182,83,81,67,234,120,152,78,78,266, + 39,39,39,39,147,221,276,276,1,67, + 44,32,266,12,49,49,221,144,67,67, + 67,67,67,67,67,67,67,67,67,67, + 67,67,67,67,67,67,67,67,67,67, + 67,67,67,67,67,67,67,67,144,67, + 34,264,127,26,11,221,12,81,264,150, + 264,67,12,12,105,120,162,162,236,264, + 12,12,138,111,138,12,67,12,73,254, + 182,71,71,11,190,276,185,264,276,276, + 12,12,12,12,31,276,67,12,12,12, + 10,147,95,39,46,276,110,147,110,276, + 95,12,12,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,61,12,12,129,194,167,12,187,12, - 76,12,282,61,156,93,156,158,12,184, - 12,282,12,149,12,12,12,84,84,168, - 168,122,99,112,12,65,56,187,26,168, - 61,236,118,211,15,15,141,35,35,35, - 35,174,132,172,12,282,282,1,61,82, - 99,141,12,48,48,132,105,61,61,61, - 61,61,61,61,61,61,61,61,61,61, - 61,61,61,61,61,61,61,61,61,61, - 61,61,61,61,61,61,61,105,61,30, - 156,89,44,11,132,12,168,156,158,156, - 61,12,12,148,118,179,179,238,156,12, - 12,162,222,162,12,61,12,78,197,187, - 65,65,11,182,282,243,156,282,282,12, - 12,12,12,98,282,61,12,12,12,10, - 174,76,35,135,222,282,221,174,221,282, - 76,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12, - 110,101,12,61,12,162,12,12,12,12, - 102,12,236,160,162,162,236,164,282,61, - 59,158,61,61,243,216,179,35,35,162, - 151,61,61,11,187,187,282,179,12,12, - 12,12,129,11,174,99,61,35,156,86, - 282,174,124,99,61,80,12,12,102,12, - 102,276,276,177,12,276,162,162,12,156, - 168,156,12,11,11,156,282,105,105,105, - 105,12,12,97,129,282,95,184,12,235, - 129,35,102,282,151,282,264,156,12,282, - 110,69,58,67,12,158,156,282,282,282, - 282,132,132,129,156,38,12,105,184,125, - 12,12,282,282,156,102,12,102,162,151, - 105,102,80,69,12,12,84,156,158,282, - 282,12,95,132,61,76,125,164,164,149, - 61,12,145,162,282,280,12,67,156,38, - 282,76,102,282,162,282,221,67,102,35 + 99,140,12,67,12,138,12,12,12,12, + 141,12,234,136,138,138,234,167,276,67, + 65,150,67,67,185,203,162,39,39,138, + 108,67,67,11,182,182,276,162,12,12, + 12,12,23,11,147,32,67,39,264,75, + 276,147,200,32,67,97,12,12,141,12, + 141,270,270,160,12,270,138,138,12,264, + 81,264,12,11,11,264,276,144,144,144, + 144,12,12,30,23,276,101,209,12,233, + 23,39,141,276,108,276,212,264,12,276, + 99,17,64,42,12,150,264,276,276,276, + 276,221,221,23,264,170,12,144,209,201, + 12,12,276,276,264,141,12,141,138,108, + 144,141,97,17,12,12,165,264,150,276, + 276,12,101,221,67,95,201,167,167,106, + 67,12,172,138,276,274,12,42,264,170, + 276,95,141,276,138,276,110,42,141,39 }; }; public final static char nasb[] = Nasb.nasb; @@ -2047,35 +2000,34 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Nasr { public final static char nasr[] = {0, - 3,13,7,10,150,148,120,147,146,5, - 2,0,153,0,81,0,2,73,0,109, - 0,2,7,3,0,73,136,135,0,5, - 7,10,2,13,4,44,0,139,0,5, - 1,40,0,168,5,167,0,5,2,10, - 7,137,0,181,0,189,0,72,127,40, - 13,2,10,7,5,0,124,0,159,0, - 13,2,10,7,5,86,0,187,0,112, - 0,173,0,108,0,4,175,0,47,39, - 177,4,40,0,141,0,2,54,73,0, - 72,40,47,74,4,39,0,156,0,158, - 0,64,54,7,10,2,4,5,90,0, - 40,104,0,2,113,0,5,48,2,3, - 0,4,97,0,4,30,0,4,191,0, - 4,44,39,0,4,176,0,32,95,94, - 64,54,7,10,2,4,0,61,0,4, - 39,38,0,40,56,0,4,72,0,4, - 44,169,0,2,48,0,39,179,22,4, - 0,95,94,5,57,0,2,62,0,5, - 102,188,0,40,157,0,5,102,164,0, - 172,71,47,4,0,114,4,47,71,0, - 32,94,95,4,0,95,94,54,64,57, - 5,7,10,2,0,71,47,4,134,0, - 5,7,10,13,3,1,0,4,47,71, - 82,0,22,4,5,90,0,2,5,120, - 116,117,118,13,87,0,4,47,71,102, - 45,5,0,44,4,178,0,38,54,7, - 10,2,4,155,0,4,44,103,0,44, - 4,32,0 + 3,13,10,9,150,148,119,147,146,5, + 2,0,108,0,153,0,159,0,180,0, + 5,44,2,3,0,168,5,167,0,2, + 133,64,0,5,10,9,2,13,4,45, + 0,123,0,172,0,4,30,0,5,2, + 9,10,137,0,2,64,0,5,1,40, + 0,188,0,72,126,40,13,2,9,10, + 5,0,186,0,4,174,0,80,0,4, + 72,0,64,136,135,0,4,190,0,13, + 2,9,10,5,85,0,111,0,158,0, + 141,0,156,0,32,94,93,63,4,5, + 10,9,2,0,63,2,9,10,4,5, + 89,0,4,45,191,0,48,39,176,4, + 40,0,40,103,0,4,39,38,0,72, + 40,48,73,4,39,0,2,44,0,61, + 0,32,93,94,4,0,40,157,0,39, + 178,22,4,0,107,0,40,55,0,139, + 0,4,175,0,4,48,71,101,46,5, + 0,2,56,0,22,4,5,89,0,94, + 93,5,57,0,171,71,48,4,0,2, + 112,0,94,93,10,9,2,63,5,57, + 0,45,4,177,0,113,4,48,71,0, + 4,96,0,71,48,4,134,0,5,10, + 9,13,3,1,0,4,48,71,81,0, + 5,101,187,0,2,5,119,115,116,117, + 13,86,0,5,101,164,0,38,5,2, + 9,10,155,4,0,4,45,39,0,4, + 45,102,0,45,4,32,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -2085,16 +2037,16 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final static char terminalIndex[] = {0, 113,114,2,31,13,10,79,115,9,100, 120,66,48,52,60,68,74,75,86,87, - 102,105,107,11,12,7,8,112,104,14, - 19,54,106,47,55,61,64,67,70,73, - 76,83,84,88,89,90,93,94,97,98, - 99,109,110,111,123,77,103,46,53,95, - 1,58,63,78,91,101,121,20,33,44, - 122,119,30,118,96,108,49,50,56,57, + 102,105,107,11,12,7,8,112,93,104, + 54,106,14,47,55,61,64,67,70,73, + 76,83,84,88,89,90,94,97,98,99, + 109,110,111,19,123,77,103,46,53,95, + 1,63,91,101,121,58,78,20,122,33, + 44,119,30,118,96,108,49,50,56,57, 59,69,71,72,85,92,65,17,18,6, - 15,16,21,22,32,4,23,24,25,26, - 27,28,5,34,35,36,37,38,39,40, - 41,42,43,80,81,82,29,117,51,3, + 32,4,15,16,21,22,23,24,25,26, + 27,28,80,81,82,5,29,34,35,36, + 37,38,39,40,41,42,43,117,51,3, 124,62,116 }; }; @@ -2103,26 +2055,26 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 133,138,140,0,0,139,237,137,0,231, - 136,0,147,135,0,0,146,152,0,0, - 153,183,162,163,164,165,166,167,168,155, - 169,126,170,171,172,0,145,128,134,129, - 173,0,142,156,181,0,0,141,0,0, - 0,0,0,0,149,176,159,0,206,0, - 190,0,203,207,0,0,0,0,0,0, - 0,127,0,175,0,0,0,0,0,0, - 208,132,179,0,0,125,189,0,0,204, - 214,161,210,211,212,0,0,0,0,150, - 209,222,178,199,0,0,213,0,0,0, - 242,243,151,182,0,192,193,194,195,196, - 198,201,0,0,216,219,0,221,0,240, - 0,241,0,131,143,144,148,0,0,158, - 160,0,174,0,184,185,186,187,188,191, - 0,197,0,200,205,0,217,218,0,0, - 223,226,228,230,0,234,235,236,238,239, - 0,130,0,154,157,0,177,0,180,0, - 202,215,220,0,224,225,227,229,0,232, - 233,244,245,0,0,0 + 133,138,139,0,0,137,0,0,230,236, + 136,0,146,135,0,0,145,151,0,0, + 152,182,161,162,163,164,165,166,167,154, + 168,126,169,144,170,171,0,128,134,129, + 172,0,141,140,155,180,0,0,0,0, + 0,0,0,148,175,0,158,0,205,0, + 189,202,206,0,0,0,0,0,0,0, + 0,127,174,0,0,0,0,0,0,207, + 132,178,0,0,125,188,0,0,203,213, + 160,209,210,211,0,0,149,0,0,208, + 221,177,198,0,0,212,0,0,0,241, + 242,150,181,0,191,192,193,194,195,197, + 200,0,0,215,218,0,220,0,239,0, + 240,0,0,131,142,143,147,0,0,157, + 159,0,173,0,183,184,185,186,187,190, + 0,196,0,199,204,0,216,217,0,0, + 222,225,227,229,0,233,234,235,238,0, + 130,0,153,156,0,176,0,179,0,201, + 214,219,0,223,224,226,228,0,231,232, + 237,243,244,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2130,18 +2082,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopePrefix { public final static char scopePrefix[] = { - 156,578,597,529,545,556,567,361,266,280, - 302,308,42,291,381,419,164,586,472,20, - 51,71,80,85,90,127,192,297,314,325, - 336,141,272,286,500,27,141,371,336,605, - 27,214,245,1,14,61,76,106,227,319, - 332,341,350,354,437,465,494,521,525,615, - 619,623,97,7,97,399,415,428,449,513, - 428,536,552,563,574,204,483,56,56,153, - 219,222,240,261,222,222,56,358,462,469, - 153,56,636,110,233,403,443,456,116,116, - 233,56,233,390,174,104,441,627,634,627, - 634,65,409,134,104,104,250 + 156,572,591,523,539,550,561,355,262,276, + 298,304,42,287,375,413,164,580,466,20, + 51,71,80,85,90,127,192,293,310,321, + 332,141,268,282,494,27,141,365,332,599, + 27,214,241,1,14,61,76,106,315,328, + 337,344,348,431,459,488,515,519,609,613, + 617,97,7,97,393,409,422,443,507,422, + 530,546,557,568,204,477,56,56,153,219, + 222,56,236,257,222,222,56,352,456,463, + 153,56,632,110,229,397,437,450,116,116, + 229,56,229,384,174,104,435,621,628,621, + 628,65,403,134,104,104,246 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2149,18 +2101,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,5,5,5,5,368,132,95, - 132,132,48,277,387,425,170,67,478,25, - 25,25,59,59,95,132,197,132,132,330, - 330,146,277,101,505,38,149,376,592,610, - 32,208,208,5,18,5,59,95,231,323, - 323,323,95,95,132,243,5,5,5,5, - 5,243,231,11,101,368,368,368,453,505, - 432,540,540,540,540,208,487,59,59,5, - 5,225,243,5,264,264,348,95,5,243, - 5,498,5,113,345,406,446,459,119,123, - 236,517,508,393,177,95,95,629,629,631, - 631,67,411,136,199,184,252 + 18,5,5,5,5,5,5,362,132,95, + 132,132,48,273,381,419,170,67,472,25, + 25,25,59,59,95,132,197,132,132,326, + 326,146,273,101,499,38,149,370,586,604, + 32,208,208,5,18,5,59,95,319,319, + 319,95,95,132,239,5,5,5,5,5, + 239,630,11,101,362,362,362,447,499,426, + 534,534,534,534,208,481,59,59,5,5, + 225,227,239,5,260,260,227,95,5,239, + 5,492,5,113,341,400,440,453,119,123, + 232,511,502,387,177,95,95,623,623,625, + 625,67,405,136,199,184,248 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2168,18 +2120,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeLhs { public final static char scopeLhs[] = { - 45,17,17,17,17,17,17,77,85,46, - 69,118,66,52,77,76,45,17,19,3, - 6,9,164,164,161,116,45,70,118,117, - 119,126,53,46,137,131,126,77,17,17, - 131,96,58,133,80,167,164,161,60,117, - 117,119,180,50,56,141,18,17,17,17, - 17,17,12,112,161,77,76,76,36,137, - 76,17,17,17,17,96,19,168,164,181, - 94,101,81,59,155,83,119,78,142,141, - 173,137,16,161,119,103,75,21,128,128, - 57,137,137,77,45,161,65,135,48,135, - 48,167,103,116,45,45,58 + 46,17,17,17,17,17,17,76,84,47, + 69,117,66,52,76,75,46,17,19,3, + 7,8,164,164,161,115,46,70,117,116, + 118,125,53,47,137,130,125,76,17,17, + 130,95,58,132,79,167,164,161,116,116, + 118,179,50,55,141,18,17,17,17,17, + 17,12,111,161,76,75,75,37,137,75, + 17,17,17,17,95,19,168,164,180,93, + 100,60,80,59,155,82,118,77,142,141, + 172,137,16,161,118,102,74,21,127,127, + 57,137,137,76,46,161,65,135,44,135, + 44,167,102,115,46,46,58 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2188,17 +2140,17 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeLa { public final static byte scopeLa[] = { 119,74,74,74,74,74,74,74,72,11, - 72,72,68,1,74,122,67,3,74,68, - 68,68,1,1,11,72,67,72,72,1, - 1,72,1,1,4,68,70,11,1,1, + 72,72,68,1,74,122,65,3,74,68, + 68,68,1,1,11,72,65,72,72,1, + 1,72,1,1,4,68,71,11,1,1, 68,74,74,74,119,74,1,11,1,1, - 1,1,11,11,72,118,74,74,74,74, - 74,118,1,74,1,74,74,74,73,4, - 74,68,68,68,68,74,3,1,1,74, - 74,3,118,74,1,1,1,11,74,118, - 74,5,74,1,47,69,73,74,1,1, - 6,1,47,76,75,11,11,4,4,4, - 4,3,1,67,1,1,3 + 1,11,11,72,118,74,74,74,74,74, + 118,1,74,1,74,74,74,73,4,74, + 68,68,68,68,74,3,1,1,74,74, + 3,1,118,74,1,1,1,11,74,118, + 74,5,74,1,29,70,73,74,1,1, + 6,1,29,76,75,11,11,4,4,4, + 4,3,1,65,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2206,18 +2158,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeStateSet { public final static char scopeStateSet[] = { - 282,211,211,211,211,211,211,294,308,282, - 306,278,306,284,294,294,282,211,211,144, - 186,187,39,39,69,278,282,306,278,278, - 278,274,284,282,34,42,274,294,211,211, - 42,78,125,4,294,46,39,69,125,278, - 278,278,32,284,49,8,211,211,211,211, - 211,211,206,16,69,294,294,294,243,34, - 294,211,211,211,211,78,211,46,39,72, - 78,80,74,125,141,130,278,294,1,8, - 37,34,211,69,278,11,294,212,278,278, - 86,34,34,294,282,69,21,66,102,66, - 102,46,11,278,282,282,125 + 284,213,213,213,213,213,213,296,310,284, + 308,280,308,286,296,296,284,213,213,145, + 189,189,39,39,69,280,284,308,280,280, + 280,276,286,284,34,42,276,296,213,213, + 42,78,126,4,296,46,39,69,280,280, + 280,32,286,49,8,213,213,213,213,213, + 213,193,16,69,296,296,296,245,34,296, + 213,213,213,213,78,213,46,39,72,78, + 80,126,74,126,142,131,280,296,1,8, + 37,34,213,69,280,11,296,214,280,280, + 86,34,34,296,284,69,21,66,102,66, + 102,46,11,280,284,284,126 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -2226,69 +2178,69 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeRhs { public final static char scopeRhs[] = {0, 316,3,60,0,126,0,315,3,119,0, - 126,176,0,127,179,75,0,218,0,252, - 127,31,125,0,20,0,293,127,31,47, + 126,175,0,127,178,75,0,217,0,251, + 127,54,125,0,20,0,292,127,54,29, 0,20,53,0,33,135,0,20,53,0, - 0,293,127,31,47,194,0,20,132,0, - 252,127,31,130,0,185,128,0,145,0, - 220,3,291,0,291,0,2,0,126,0, - 252,127,31,133,0,185,128,225,0,185, - 128,29,225,0,185,128,312,29,0,131, - 196,171,128,0,128,0,196,171,128,0, - 137,128,0,170,0,308,127,170,0,127, - 170,0,224,128,0,171,243,0,140,0, - 0,0,138,0,0,0,307,127,163,251, - 0,127,0,251,0,129,0,0,127,0, - 306,127,163,250,0,127,0,0,44,127, + 0,292,127,54,29,194,0,20,132,0, + 251,127,54,133,0,179,128,0,144,0, + 219,3,291,0,291,0,2,0,126,0, + 251,127,54,132,0,179,128,224,0,179, + 128,30,224,0,179,128,311,30,0,129, + 187,167,128,0,128,0,187,167,128,0, + 137,128,0,171,0,307,127,171,0,127, + 171,0,223,128,0,167,242,0,139,0, + 0,0,138,0,0,0,306,127,163,250, + 0,127,0,250,0,129,0,0,127,0, + 305,127,163,249,0,127,0,0,44,127, 0,0,153,3,0,127,280,279,127,75, - 278,170,0,279,127,75,278,170,0,217, - 0,218,0,278,170,0,96,0,0,217, - 0,218,0,205,96,0,0,217,0,218, - 0,279,127,278,170,0,217,0,205,0, - 0,217,0,228,127,3,0,126,0,0, - 0,0,0,228,127,3,217,0,224,3, - 0,213,127,0,210,0,196,171,177,0, - 137,0,171,128,0,10,0,0,0,215, - 61,0,125,0,228,127,3,182,0,182, - 0,2,0,0,126,0,0,0,0,0, - 206,3,0,203,0,238,127,163,28,12, - 0,185,128,56,57,0,199,128,0,131, - 185,128,276,57,0,185,128,276,57,0, - 185,128,69,124,56,0,238,127,163,56, - 0,238,127,163,227,56,0,274,127,163, - 124,63,0,274,127,163,63,0,185,128, - 63,0,138,0,196,185,128,243,0,140, - 0,185,128,243,0,196,171,128,10,0, - 171,128,10,0,93,140,0,150,0,267, - 127,145,0,267,127,170,0,162,85,0, - 299,161,301,302,3,82,0,126,175,0, - 301,302,3,82,0,128,0,126,175,0, - 162,3,76,197,81,0,126,128,0,197, - 81,0,108,2,134,126,128,0,226,3, - 76,0,206,167,0,33,173,0,167,0, - 179,33,173,0,226,3,86,0,197,155, - 226,3,84,0,62,175,0,226,3,84, - 0,126,175,62,175,0,300,127,163,0, - 162,0,215,78,0,30,175,0,162,117, - 158,0,30,173,0,178,3,0,126,153, - 0,220,3,0,215,61,264,0,162,61, - 0,178,3,296,64,128,0,126,0,0, - 0,0,296,64,128,0,2,149,126,0, - 0,0,0,178,3,44,0,151,0,126, - 47,171,128,0,31,151,0,93,140,31, - 151,0,223,185,128,0,150,31,151,0, - 178,3,51,0,162,3,51,0,162,3, - 68,178,31,35,0,178,31,35,0,20, - 2,134,126,0,162,3,68,178,31,43, - 0,178,31,43,0,162,3,68,178,31, - 46,0,178,31,46,0,162,3,68,178, - 31,36,0,178,31,36,0,220,3,126, - 196,171,128,10,0,126,196,171,128,10, - 0,140,2,0,126,0,220,3,125,177, - 171,128,10,0,177,171,128,10,0,138, - 2,0,126,0,220,3,136,0,220,3, - 140,0,162,61,140,0,259,0,31,0, - 31,143,0,166,0,162,3,0 + 278,171,0,279,127,75,278,171,0,216, + 0,217,0,278,171,0,96,0,0,216, + 0,217,0,204,96,0,0,216,0,217, + 0,279,127,278,171,0,216,0,204,0, + 0,216,0,227,127,3,0,126,0,0, + 0,0,0,227,127,3,216,0,223,3, + 0,212,127,0,209,0,149,0,167,128, + 0,10,0,0,0,214,61,0,125,0, + 227,127,3,182,0,182,0,2,0,0, + 126,0,0,0,0,0,205,3,0,202, + 0,237,127,163,28,12,0,179,128,56, + 57,0,198,128,0,129,179,128,276,57, + 0,179,128,276,57,0,179,128,70,124, + 56,0,237,127,163,56,0,237,127,163, + 226,56,0,274,127,163,124,62,0,274, + 127,163,62,0,179,128,62,0,138,0, + 187,179,128,242,0,139,0,179,128,242, + 0,187,167,128,10,0,167,128,10,0, + 93,139,0,267,127,145,0,267,127,171, + 0,162,85,0,298,161,300,301,3,82, + 0,126,174,0,300,301,3,82,0,128, + 0,126,174,0,162,3,76,196,81,0, + 126,128,0,196,81,0,108,2,134,126, + 128,0,225,3,76,0,205,168,0,33, + 172,0,168,0,178,33,172,0,225,3, + 86,0,196,155,225,3,84,0,62,174, + 0,225,3,84,0,126,174,62,174,0, + 299,127,163,0,162,0,214,78,0,30, + 174,0,162,107,159,0,30,172,0,177, + 3,0,126,152,0,219,3,0,214,61, + 264,0,162,61,0,177,3,295,67,128, + 0,126,0,0,0,0,295,67,128,0, + 2,148,126,0,0,0,0,177,3,44, + 0,150,0,126,29,167,128,0,31,150, + 0,93,139,31,150,0,220,179,128,0, + 149,31,150,0,177,3,50,0,162,3, + 50,0,162,3,68,177,54,35,0,177, + 54,35,0,20,2,134,126,0,162,3, + 68,177,54,43,0,177,54,43,0,162, + 3,68,177,54,46,0,177,54,46,0, + 162,3,68,177,54,36,0,177,54,36, + 0,219,3,126,187,167,128,10,0,126, + 187,167,128,10,0,139,2,0,126,0, + 219,3,125,256,167,128,10,0,256,167, + 128,10,0,138,2,0,126,0,219,3, + 136,0,219,3,140,0,162,61,140,0, + 259,0,31,0,31,142,0,166,0,137, + 0,162,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2296,38 +2248,38 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeState { public final static char scopeState[] = {0, - 1308,734,0,2007,1961,1088,0,2693,2550,0, - 4623,4916,4897,4895,0,1584,2953,1541,2611,0, - 3442,3383,3324,3265,3206,3147,3088,3029,2970,2606, - 2547,3093,0,1263,799,0,1747,0,3348,3204, - 0,4775,3652,4697,0,2839,789,0,3442,3383, - 3558,3309,3324,3265,3206,3147,3088,3029,2971,2970, - 2606,2547,3267,3237,0,3161,660,0,4670,4527, - 0,852,0,1918,1367,924,567,3871,3154,578, - 2903,3669,2734,4270,0,3412,3327,3871,4661,4279, - 3154,2980,1441,3533,3294,1434,4550,3682,1262,2701, - 0,4889,4885,4812,4808,4792,4759,4743,4875,4728, - 4721,4836,4816,3908,4534,2988,3884,3406,3288,3170, - 627,3052,2725,0,3871,4648,4550,3682,3600,578, - 2918,4631,4484,2903,3533,2734,4458,2555,2701,0, - 4648,3600,0,1703,1660,1617,1574,1313,1132,2719, - 4889,4885,1357,4812,4808,925,4792,4759,916,4743, - 780,4875,4728,4721,1254,4836,1044,1174,4816,3908, - 929,4534,2695,2988,3884,3406,867,3288,3170,627, - 665,3052,4502,2725,2629,643,578,2918,4631,4484, - 3871,2799,2667,2903,3533,2734,4648,2572,4458,4550, - 2303,3682,2555,2701,3600,938,2215,2127,1263,799, - 3619,4241,4219,1180,2317,592,1051,2411,2383,2354, - 2877,2851,2520,2493,2466,2439,3847,3823,3793,3565, - 2931,4197,4175,4153,4131,4109,4087,4065,4043,4021, - 3999,3977,2010,2266,1967,2229,2178,1320,1276,1924, - 2141,2090,1217,879,1881,1838,1795,1752,1709,1666, - 1623,1580,1537,1494,1451,535,2053,1137,1402,822, - 743,1363,686,1001,958,1089,0,535,4502,2629, - 0,4670,4527,4429,3707,4355,3653,3595,4346,4272, - 3891,4263,3479,3442,3383,3324,3265,3206,3147,3088, - 3029,2970,2606,2547,0,4670,4527,4429,3707,4355, - 3653,3595,4346,4272,3891,4263,3479,0 + 3290,3058,0,2494,1467,728,0,2466,2233,0, + 3679,4831,4824,4811,0,1539,2473,1496,2037,0, + 3489,3431,3373,3315,3257,3199,3141,3083,3025,2805, + 2747,3023,0,1371,795,0,730,0,4632,4448, + 0,4467,3682,3680,0,2900,642,0,3489,3431, + 3958,3463,3373,3315,3257,3199,3141,3083,3057,3025, + 2805,2747,3375,2986,0,3120,1250,0,3164,3106, + 0,612,0,1684,1555,1123,1032,3663,3405,577, + 2529,2956,2405,3490,0,4874,3637,3663,3352,3294, + 3405,3402,3376,2907,861,2963,4642,1253,722,2543, + 0,4786,4030,4761,4750,4736,4722,4715,3948,4711, + 4663,1425,1323,4590,1124,4430,631,4035,3710,3513, + 3283,3225,2829,624,0,3663,4671,4642,1253,4684, + 577,2972,4559,4329,2529,2907,2405,3964,2756,2543, + 0,4671,4684,0,3598,3558,3550,3472,3994,3799, + 3602,4786,4030,3240,4761,4750,3705,4736,4722,3521, + 4715,2489,3948,4711,4663,2846,1425,3852,2752,1323, + 4590,1124,1036,2593,4430,2459,631,4035,3710,788, + 3513,3283,3225,732,2829,4543,624,2779,3340,2326, + 2239,2152,928,577,2972,4559,4329,3663,2469,2446, + 2529,1371,795,2907,2405,4671,3964,4642,1253,2756, + 2543,4684,2666,4342,4307,2337,1171,2375,1043,2501, + 2418,590,2992,2930,2720,2693,2633,2557,3915,3891, + 3861,3638,3611,4285,4263,4241,4219,4197,4175,4153, + 4131,4109,4087,4042,2033,2288,1990,2250,2201,1327, + 1267,1947,2163,2114,1207,872,1904,1861,1818,1775, + 1732,1689,1646,1603,1560,1517,1474,533,2076,1128, + 1429,817,739,1387,684,993,950,1080,0,533, + 4543,2779,0,3164,3106,4532,3776,4458,3737,3681, + 4450,4376,3937,4368,3526,3489,3431,3373,3315,3257, + 3199,3141,3083,3025,2805,2747,0,3164,3106,4532, + 3776,4458,3737,3681,4450,4376,3937,4368,3526,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2335,59 +2287,59 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface InSymb { public final static char inSymb[] = {0, - 0,294,57,58,127,170,194,47,12,56, - 295,56,276,3,268,269,251,270,243,271, - 63,272,273,125,10,128,278,127,3,5, - 125,133,7,130,177,182,47,31,28,163, - 227,124,128,128,28,163,171,231,128,166, - 126,125,124,163,128,31,128,185,171,75, - 127,267,127,187,182,206,277,213,128,6, - 206,125,124,31,167,61,3,62,64,31, - 171,3,31,68,127,163,127,163,69,185, - 185,155,127,126,125,127,185,4,127,163, - 127,185,127,171,47,127,279,73,213,61, - 3,69,70,171,127,127,127,61,61,127, - 196,127,127,127,238,237,127,128,227,131, - 307,128,168,225,56,47,57,170,309,127, - 127,73,196,259,196,127,274,124,275,252, - 167,51,35,43,46,36,10,136,4,3, - 128,44,30,5,25,24,6,9,27,26, - 140,146,148,147,150,149,152,151,156,154, - 157,60,158,255,196,279,163,290,128,291, - 215,158,153,127,163,250,6,184,252,213, - 252,228,229,145,230,293,47,10,59,238, - 238,185,171,127,311,225,29,128,4,274, - 69,70,127,3,218,217,3,31,31,31, - 31,128,3,7,125,178,162,127,62,64, - 171,3,126,103,120,3,61,90,96,25, - 24,92,91,6,94,93,68,31,88,89, - 9,98,97,100,99,101,113,112,111,110, - 109,108,107,106,105,104,69,117,102,70, - 280,127,70,185,3,266,127,163,127,155, - 69,224,206,3,127,70,70,68,31,231, - 231,227,196,308,125,73,286,206,70,128, - 29,312,185,213,224,127,3,178,162,178, - 178,178,178,171,220,155,136,126,125,10, - 128,61,296,3,196,178,47,128,47,220, + 0,293,57,58,127,171,194,29,12,56, + 294,56,276,3,268,269,250,270,242,271, + 62,272,273,125,10,128,278,127,3,4, + 133,132,7,5,125,128,182,29,54,28, + 163,226,124,128,128,28,163,167,230,128, + 166,126,125,124,163,128,54,128,179,167, + 75,127,267,127,186,182,205,277,212,128, + 6,205,54,54,168,61,3,66,67,125, + 124,179,167,3,54,68,127,163,127,163, + 70,179,179,155,127,126,125,127,179,4, + 127,163,127,179,127,167,29,127,279,73, + 212,128,61,3,70,71,167,127,127,127, + 127,61,61,187,127,127,127,237,236,127, + 128,226,129,306,128,169,224,56,29,57, + 171,308,127,127,73,187,259,187,127,274, + 124,275,251,168,50,35,43,46,36,10, + 136,3,128,44,33,5,25,24,6,9, + 27,26,140,146,148,147,150,149,152,151, + 156,154,158,60,159,254,187,279,163,290, + 128,291,167,214,159,153,127,163,249,6, + 184,251,251,212,227,228,145,229,292,29, + 10,59,237,237,179,167,127,310,224,30, + 128,4,274,70,71,127,3,217,216,3, + 54,54,54,54,128,3,177,162,127,66, + 67,167,3,126,106,120,3,61,90,92, + 25,24,94,93,6,96,95,68,54,88, + 89,9,98,97,100,99,101,117,116,115, + 114,113,112,111,110,109,108,70,107,102, + 71,280,127,71,179,3,266,127,163,127, + 155,70,223,205,3,127,71,71,68,54, + 230,230,226,187,307,125,73,286,205,71, + 128,30,311,179,212,223,127,3,177,162, + 177,177,177,177,167,219,155,136,126,125, + 10,128,61,295,3,177,29,128,29,219, 162,147,147,146,146,146,149,149,149,149, - 148,148,151,150,150,154,152,156,162,157, - 127,300,80,78,1,162,8,86,84,82, - 81,76,83,85,79,77,56,75,220,70, - 127,127,69,69,127,213,127,69,69,131, - 70,73,69,185,128,128,228,127,68,68, - 68,68,196,177,128,171,209,3,297,167, - 153,128,185,171,73,281,119,8,73,215, - 73,3,3,3,197,3,124,162,124,179, - 306,221,293,185,185,155,228,3,3,3, - 3,126,125,171,47,178,127,127,223,5, - 47,3,73,226,167,226,302,145,76,226, - 127,195,70,127,68,127,155,162,162,162, - 162,3,3,196,155,261,264,61,180,4, - 124,126,95,315,167,155,206,155,301,127, - 3,155,281,195,8,60,59,221,127,220, - 220,126,127,3,61,162,4,155,155,127, - 69,197,161,267,162,3,231,127,221,261, - 220,215,122,299,155,316,69,127,155,70 + 148,148,151,150,150,154,152,156,162,158, + 127,299,80,78,1,162,8,86,84,82, + 81,76,83,85,79,77,56,75,219,71, + 127,127,70,70,127,212,127,70,70,129, + 71,73,70,179,128,128,227,127,68,68, + 68,68,187,256,128,167,208,3,296,168, + 153,128,179,167,73,281,119,8,73,214, + 73,3,3,3,196,3,124,162,124,178, + 305,221,292,179,179,155,227,3,3,3, + 3,126,125,167,29,177,127,127,220,5, + 29,3,73,225,168,225,301,145,76,225, + 127,195,71,127,68,127,155,162,162,162, + 162,3,3,187,155,261,264,61,180,4, + 124,126,91,315,168,155,205,155,300,127, + 3,155,281,195,8,60,59,221,127,219, + 219,126,127,3,61,162,4,155,155,127, + 70,196,161,267,162,3,230,127,221,261, + 219,214,122,298,155,316,70,127,155,71 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2534,7 +2486,6 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym "qualified_or_unqualified_name", "unqualified_id_name", "identifier_name", - "operator_function_id_name", "template_id_name", "nested_name_specifier", "class_or_namespace_name", @@ -2653,7 +2604,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final String name(int index) { return name[index]; } public final static int - ERROR_SYMBOL = 71, + ERROR_SYMBOL = 69, SCOPE_UBOUND = 116, SCOPE_SIZE = 117, MAX_NAME_LENGTH = 37; @@ -2666,18 +2617,18 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final static int NUM_STATES = 530, NT_OFFSET = 123, - LA_STATE_OFFSET = 6069, + LA_STATE_OFFSET = 5916, MAX_LA = 2147483647, - NUM_RULES = 534, + NUM_RULES = 532, NUM_NONTERMINALS = 196, NUM_SYMBOLS = 319, SEGMENT_SIZE = 8192, - START_STATE = 3479, + START_STATE = 3526, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 5126, - ERROR_ACTION = 5535; + ACCEPT_ACTION = 5016, + ERROR_ACTION = 5384; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java index 81f3acc747a..4f8e54b2e6c 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParsersym.java @@ -23,16 +23,16 @@ public interface CPPParsersym { TK_catch = 119, TK_char = 14, TK_class = 59, - TK_const = 32, + TK_const = 31, TK_const_cast = 35, TK_continue = 79, TK_default = 80, - TK_delete = 62, + TK_delete = 66, TK_do = 81, TK_double = 15, TK_dynamic_cast = 36, TK_else = 122, - TK_enum = 63, + TK_enum = 62, TK_explicit = 37, TK_export = 87, TK_extern = 12, @@ -47,11 +47,11 @@ public interface CPPParsersym { TK_long = 18, TK_mutable = 41, TK_namespace = 56, - TK_new = 64, + TK_new = 67, TK_operator = 7, - TK_private = 114, - TK_protected = 115, - TK_public = 116, + TK_private = 103, + TK_protected = 104, + TK_public = 105, TK_register = 42, TK_reinterpret_cast = 43, TK_return = 85, @@ -60,27 +60,27 @@ public interface CPPParsersym { TK_sizeof = 44, TK_static = 45, TK_static_cast = 46, - TK_struct = 65, + TK_struct = 63, TK_switch = 86, - TK_template = 47, - TK_this = 48, + TK_template = 29, + TK_this = 47, TK_throw = 60, TK_try = 75, - TK_true = 49, - TK_typedef = 50, - TK_typeid = 51, + TK_true = 48, + TK_typedef = 49, + TK_typeid = 50, TK_typename = 10, - TK_union = 66, + TK_union = 64, TK_unsigned = 21, TK_using = 57, - TK_virtual = 29, + TK_virtual = 30, TK_void = 22, - TK_volatile = 33, + TK_volatile = 32, TK_wchar_t = 23, TK_while = 76, - TK_integer = 52, - TK_floating = 53, - TK_charconst = 54, + TK_integer = 51, + TK_floating = 52, + TK_charconst = 53, TK_stringlit = 28, TK_identifier = 1, TK_Completion = 2, @@ -89,8 +89,8 @@ public interface CPPParsersym { TK_LeftBracket = 61, TK_LeftParen = 3, TK_Dot = 120, - TK_DotStar = 96, - TK_Arrow = 103, + TK_DotStar = 92, + TK_Arrow = 106, TK_ArrowStar = 90, TK_PlusPlus = 26, TK_MinusMinus = 27, @@ -99,43 +99,43 @@ public interface CPPParsersym { TK_Plus = 24, TK_Minus = 25, TK_Tilde = 5, - TK_Bang = 30, - TK_Slash = 91, - TK_Percent = 92, + TK_Bang = 33, + TK_Slash = 93, + TK_Percent = 94, TK_RightShift = 88, TK_LeftShift = 89, - TK_LT = 31, + TK_LT = 54, TK_GT = 68, - TK_LE = 93, - TK_GE = 94, + TK_LE = 95, + TK_GE = 96, TK_EQ = 97, TK_NE = 98, TK_Caret = 99, TK_Or = 100, TK_AndAnd = 101, TK_OrOr = 102, - TK_Question = 117, + TK_Question = 107, TK_Colon = 73, TK_ColonColon = 4, - TK_DotDotDot = 95, - TK_Assign = 69, - 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_DotDotDot = 91, + TK_Assign = 70, + TK_StarAssign = 108, + TK_SlashAssign = 109, + TK_PercentAssign = 110, + TK_PlusAssign = 111, + TK_MinusAssign = 112, + TK_RightShiftAssign = 113, + TK_LeftShiftAssign = 114, + TK_AndAssign = 115, + TK_CaretAssign = 116, + TK_OrAssign = 117, + TK_Comma = 71, TK_RightBracket = 118, TK_RightParen = 74, TK_RightBrace = 72, TK_SemiColon = 11, - TK_LeftBrace = 67, - TK_ERROR_TOKEN = 71, + TK_LeftBrace = 65, + TK_ERROR_TOKEN = 69, TK_0 = 55, TK_EOF_TOKEN = 121; @@ -169,11 +169,11 @@ public interface CPPParsersym { "PlusPlus", "MinusMinus", "stringlit", + "template", "virtual", - "Bang", - "LT", "const", "volatile", + "Bang", "auto", "const_cast", "dynamic_cast", @@ -187,7 +187,6 @@ public interface CPPParsersym { "sizeof", "static", "static_cast", - "template", "this", "true", "typedef", @@ -195,6 +194,7 @@ public interface CPPParsersym { "integer", "floating", "charconst", + "LT", "0", "namespace", "using", @@ -202,16 +202,16 @@ public interface CPPParsersym { "class", "throw", "LeftBracket", - "delete", "enum", - "new", "struct", "union", "LeftBrace", + "delete", + "new", "GT", + "ERROR_TOKEN", "Assign", "Comma", - "ERROR_TOKEN", "RightBrace", "Colon", "RightParen", @@ -231,19 +231,23 @@ public interface CPPParsersym { "RightShift", "LeftShift", "ArrowStar", + "DotDotDot", + "DotStar", "Slash", "Percent", "LE", "GE", - "DotDotDot", - "DotStar", "EQ", "NE", "Caret", "Or", "AndAnd", "OrOr", + "private", + "protected", + "public", "Arrow", + "Question", "StarAssign", "SlashAssign", "PercentAssign", @@ -254,10 +258,6 @@ public interface CPPParsersym { "AndAssign", "CaretAssign", "OrAssign", - "private", - "protected", - "public", - "Question", "RightBracket", "catch", "Dot", diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java index b841a9ab889..1e9754fb5c0 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java @@ -416,1857 +416,1850 @@ public CPPSizeofExpressionParser(String[] mapFrom) { // constructor } // - // Rule 47: qualified_id_name ::= :: identifier_name + // Rule 47: qualified_id_name ::= :: unqualified_id_name // case 47: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 48: qualified_id_name ::= :: operator_function_id_name + // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // case 48: { action.builder. - consumeGlobalQualifiedId(); break; + consumeNestedNameSpecifier(true); break; } // - // Rule 49: qualified_id_name ::= :: template_id_name + // Rule 49: nested_name_specifier ::= class_or_namespace_name :: // case 49: { action.builder. - consumeGlobalQualifiedId(); break; + consumeNestedNameSpecifier(false); break; } // - // Rule 50: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // case 50: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 51: nested_name_specifier ::= class_or_namespace_name :: + // Rule 51: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // case 51: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 52: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name // case 52: { action.builder. - consumeNestedNameSpecifier(true); break; - } - - // - // Rule 53: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: - // - case 53: { action.builder. - consumeNestedNameSpecifier(false); break; - } - - // - // Rule 54: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name - // - case 54: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 56: nested_name_specifier_opt ::= $Empty + // Rule 54: nested_name_specifier_opt ::= $Empty // - case 56: { action.builder. + case 54: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 59: postfix_expression ::= postfix_expression [ expression ] + // Rule 57: postfix_expression ::= postfix_expression [ expression ] // - case 59: { action.builder. + case 57: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 60: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 60: { action.builder. + case 58: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 61: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 61: { action.builder. + case 59: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 62: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // + case 60: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // + case 61: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // case 62: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 63: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) - // - case 63: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 64: postfix_expression ::= postfix_expression . qualified_or_unqualified_name - // - case 64: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 65: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 65: { action.builder. + case 63: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 66: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 66: { action.builder. + case 64: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 67: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 67: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 68: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 68: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 69: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 69: { action.builder. + case 67: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 70: postfix_expression ::= postfix_expression ++ + // Rule 68: postfix_expression ::= postfix_expression ++ // - case 70: { action.builder. + case 68: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 71: postfix_expression ::= postfix_expression -- + // Rule 69: postfix_expression ::= postfix_expression -- // - case 71: { action.builder. + case 69: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 72: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 72: { action.builder. + case 70: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 73: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) // - case 73: { action.builder. + case 71: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 74: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 74: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 75: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) // - case 75: { action.builder. + case 73: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 76: postfix_expression ::= typeid ( expression ) + // Rule 74: postfix_expression ::= typeid ( expression ) // - case 76: { action.builder. + case 74: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // Rule 75: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // + case 75: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // + case 76: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name // case 77: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name - // - case 78: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 79: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name - // - case 79: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 80: destructor_type_name ::= ~ identifier_token + // Rule 78: destructor_type_name ::= ~ identifier_token // - case 80: { action.builder. + case 78: { action.builder. consumeDestructorName(); break; } // - // Rule 81: destructor_type_name ::= ~ template_id_name + // Rule 79: destructor_type_name ::= ~ template_id_name // - case 81: { action.builder. + case 79: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 85: unary_expression ::= ++ cast_expression + // Rule 83: unary_expression ::= ++ cast_expression // - case 85: { action.builder. + case 83: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 86: unary_expression ::= -- cast_expression + // Rule 84: unary_expression ::= -- cast_expression // - case 86: { action.builder. + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 87: unary_expression ::= & cast_expression + // Rule 85: unary_expression ::= & cast_expression // - case 87: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 88: unary_expression ::= * cast_expression + // Rule 86: unary_expression ::= * cast_expression // - case 88: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 89: unary_expression ::= + cast_expression + // Rule 87: unary_expression ::= + cast_expression // - case 89: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 90: unary_expression ::= - cast_expression + // Rule 88: unary_expression ::= - cast_expression // - case 90: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 91: unary_expression ::= ~ cast_expression + // Rule 89: unary_expression ::= ~ cast_expression // - case 91: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 92: unary_expression ::= ! cast_expression + // Rule 90: unary_expression ::= ! cast_expression // - case 92: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 93: unary_expression ::= sizeof unary_expression + // Rule 91: unary_expression ::= sizeof unary_expression // - case 93: { action.builder. + case 91: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 94: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt + // Rule 92: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 94: { action.builder. + case 92: { action.builder. consumeExpressionNew(true); break; } // - // Rule 95: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt + // Rule 93: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt // - case 95: { action.builder. + case 93: { action.builder. consumeExpressionNew(false); break; } // - // Rule 97: new_placement_opt ::= $Empty + // Rule 95: new_placement_opt ::= $Empty // - case 97: { action.builder. + case 95: { action.builder. consumeEmpty(); break; } // - // Rule 98: new_type_id ::= type_specifier_seq + // Rule 96: new_type_id ::= type_specifier_seq // - case 98: { action.builder. + case 96: { action.builder. consumeTypeId(false); break; } // - // Rule 99: new_type_id ::= type_specifier_seq new_declarator + // Rule 97: new_type_id ::= type_specifier_seq new_declarator // - case 99: { action.builder. + case 97: { action.builder. consumeTypeId(true); break; } // - // Rule 100: new_declarator ::= new_pointer_operators + // Rule 98: new_declarator ::= new_pointer_operators // - case 100: { action.builder. + case 98: { action.builder. consumeNewDeclarator(); break; } // - // Rule 109: new_initializer_opt ::= $Empty + // Rule 107: new_initializer_opt ::= $Empty // - case 109: { action.builder. + case 107: { action.builder. consumeEmpty(); break; } // - // Rule 110: delete_expression ::= dcolon_opt delete cast_expression + // Rule 108: delete_expression ::= dcolon_opt delete cast_expression // - case 110: { action.builder. + case 108: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 111: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 109: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 111: { action.builder. + case 109: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 113: cast_expression ::= ( type_id ) cast_expression + // Rule 111: cast_expression ::= ( type_id ) cast_expression // - case 113: { action.builder. + case 111: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 115: pm_expression ::= pm_expression .* cast_expression + // Rule 113: pm_expression ::= pm_expression .* cast_expression // - case 115: { action.builder. + case 113: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 116: pm_expression ::= pm_expression ->* cast_expression + // Rule 114: pm_expression ::= pm_expression ->* cast_expression // - case 116: { action.builder. + case 114: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 118: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 116: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 118: { action.builder. + case 116: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 119: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 117: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 119: { action.builder. + case 117: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 120: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 118: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 120: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 122: additive_expression ::= additive_expression + multiplicative_expression + // Rule 120: additive_expression ::= additive_expression + multiplicative_expression // - case 122: { action.builder. + case 120: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 123: additive_expression ::= additive_expression - multiplicative_expression + // Rule 121: additive_expression ::= additive_expression - multiplicative_expression // - case 123: { action.builder. + case 121: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 125: shift_expression ::= shift_expression << additive_expression + // Rule 123: shift_expression ::= shift_expression << additive_expression // - case 125: { action.builder. + case 123: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 126: shift_expression ::= shift_expression >> additive_expression + // Rule 124: shift_expression ::= shift_expression >> additive_expression // - case 126: { action.builder. + case 124: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 128: relational_expression ::= relational_expression < shift_expression + // Rule 126: relational_expression ::= relational_expression < shift_expression // - case 128: { action.builder. + case 126: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 129: relational_expression ::= relational_expression > shift_expression + // Rule 127: relational_expression ::= relational_expression > shift_expression // - case 129: { action.builder. + case 127: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 130: relational_expression ::= relational_expression <= shift_expression + // Rule 128: relational_expression ::= relational_expression <= shift_expression // - case 130: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 131: relational_expression ::= relational_expression >= shift_expression + // Rule 129: relational_expression ::= relational_expression >= shift_expression // - case 131: { action.builder. + case 129: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 133: equality_expression ::= equality_expression == relational_expression + // Rule 131: equality_expression ::= equality_expression == relational_expression // - case 133: { action.builder. + case 131: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 134: equality_expression ::= equality_expression != relational_expression + // Rule 132: equality_expression ::= equality_expression != relational_expression // - case 134: { action.builder. + case 132: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 136: and_expression ::= and_expression & equality_expression + // Rule 134: and_expression ::= and_expression & equality_expression // - case 136: { action.builder. + case 134: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 138: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 136: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 138: { action.builder. + case 136: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 140: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 138: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 140: { action.builder. + case 138: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 142: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 140: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 142: { action.builder. + case 140: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 144: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 142: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 144: { action.builder. + case 142: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 146: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 144: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 146: { action.builder. + case 144: { action.builder. consumeExpressionConditional(); break; } // - // Rule 147: throw_expression ::= throw + // Rule 145: throw_expression ::= throw // - case 147: { action.builder. + case 145: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 148: throw_expression ::= throw assignment_expression + // Rule 146: throw_expression ::= throw assignment_expression // - case 148: { action.builder. + case 146: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 151: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 149: assignment_expression ::= logical_or_expression = assignment_expression // - case 151: { action.builder. + case 149: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 152: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 150: assignment_expression ::= logical_or_expression *= assignment_expression // - case 152: { action.builder. + case 150: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 153: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 151: assignment_expression ::= logical_or_expression /= assignment_expression // - case 153: { action.builder. + case 151: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 152: assignment_expression ::= logical_or_expression %= assignment_expression // - case 154: { action.builder. + case 152: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression += assignment_expression // - case 155: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression -= assignment_expression // - case 156: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 157: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 158: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 158: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 159: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 157: assignment_expression ::= logical_or_expression &= assignment_expression // - case 159: { action.builder. + case 157: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 160: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 158: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 160: { action.builder. + case 158: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 161: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 159: assignment_expression ::= logical_or_expression |= assignment_expression // - case 161: { action.builder. + case 159: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 163: expression_list ::= expression_list_actual + // Rule 161: expression_list ::= expression_list_actual // - case 163: { action.builder. + case 161: { action.builder. consumeExpressionList(); break; } // - // Rule 167: expression_list_opt ::= $Empty + // Rule 165: expression_list_opt ::= $Empty + // + case 165: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 167: expression_opt ::= $Empty // case 167: { action.builder. consumeEmpty(); break; } // - // Rule 169: expression_opt ::= $Empty + // Rule 170: constant_expression_opt ::= $Empty // - case 169: { action.builder. + case 170: { action.builder. consumeEmpty(); break; } // - // Rule 172: constant_expression_opt ::= $Empty + // Rule 179: statement ::= ERROR_TOKEN // - case 172: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 181: statement ::= ERROR_TOKEN - // - case 181: { action.builder. + case 179: { action.builder. consumeStatementProblem(); break; } // - // Rule 182: labeled_statement ::= identifier : statement + // Rule 180: labeled_statement ::= identifier : statement // - case 182: { action.builder. + case 180: { action.builder. consumeStatementLabeled(); break; } // - // Rule 183: labeled_statement ::= case constant_expression : statement + // Rule 181: labeled_statement ::= case constant_expression : statement // - case 183: { action.builder. + case 181: { action.builder. consumeStatementCase(); break; } // - // Rule 184: labeled_statement ::= default : statement + // Rule 182: labeled_statement ::= default : statement // - case 184: { action.builder. + case 182: { action.builder. consumeStatementDefault(); break; } // - // Rule 185: expression_statement ::= expression ; + // Rule 183: expression_statement ::= expression ; // - case 185: { action.builder. + case 183: { action.builder. consumeStatementExpression(); break; } // - // Rule 186: expression_statement ::= ; + // Rule 184: expression_statement ::= ; // - case 186: { action.builder. + case 184: { action.builder. consumeStatementNull(); break; } // - // Rule 187: compound_statement ::= { statement_seq } + // Rule 185: compound_statement ::= { statement_seq } // - case 187: { action.builder. + case 185: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 188: compound_statement ::= { } + // Rule 186: compound_statement ::= { } // - case 188: { action.builder. + case 186: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 191: selection_statement ::= if ( condition ) statement + // Rule 189: selection_statement ::= if ( condition ) statement // - case 191: { action.builder. + case 189: { action.builder. consumeStatementIf(false); break; } // - // Rule 192: selection_statement ::= if ( condition ) statement else statement + // Rule 190: selection_statement ::= if ( condition ) statement else statement // - case 192: { action.builder. + case 190: { action.builder. consumeStatementIf(true); break; } // - // Rule 193: selection_statement ::= switch ( condition ) statement + // Rule 191: selection_statement ::= switch ( condition ) statement // - case 193: { action.builder. + case 191: { action.builder. consumeStatementSwitch(); break; } // - // Rule 195: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 193: condition ::= type_specifier_seq declarator = assignment_expression // - case 195: { action.builder. + case 193: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 197: condition_opt ::= $Empty + // Rule 195: condition_opt ::= $Empty // - case 197: { action.builder. + case 195: { action.builder. consumeEmpty(); break; } // - // Rule 198: iteration_statement ::= while ( condition ) statement + // Rule 196: iteration_statement ::= while ( condition ) statement // - case 198: { action.builder. + case 196: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 199: iteration_statement ::= do statement while ( expression ) ; + // Rule 197: iteration_statement ::= do statement while ( expression ) ; // - case 199: { action.builder. + case 197: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 200: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 198: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 200: { action.builder. + case 198: { action.builder. consumeStatementForLoop(); break; } // - // Rule 202: for_init_statement ::= simple_declaration_with_declspec + // Rule 200: for_init_statement ::= simple_declaration_with_declspec // - case 202: { action.builder. + case 200: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 203: jump_statement ::= break ; + // Rule 201: jump_statement ::= break ; // - case 203: { action.builder. + case 201: { action.builder. consumeStatementBreak(); break; } // - // Rule 204: jump_statement ::= continue ; + // Rule 202: jump_statement ::= continue ; // - case 204: { action.builder. + case 202: { action.builder. consumeStatementContinue(); break; } // - // Rule 205: jump_statement ::= return expression ; + // Rule 203: jump_statement ::= return expression ; // - case 205: { action.builder. + case 203: { action.builder. consumeStatementReturn(true); break; } // - // Rule 206: jump_statement ::= return ; + // Rule 204: jump_statement ::= return ; // - case 206: { action.builder. + case 204: { action.builder. consumeStatementReturn(false); break; } // - // Rule 207: jump_statement ::= goto identifier_token ; + // Rule 205: jump_statement ::= goto identifier_token ; // - case 207: { action.builder. + case 205: { action.builder. consumeStatementGoto(); break; } // - // Rule 208: declaration_statement ::= block_declaration + // Rule 206: declaration_statement ::= block_declaration // - case 208: { action.builder. + case 206: { action.builder. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 209: declaration_statement ::= function_definition + // Rule 207: declaration_statement ::= function_definition // - case 209: { action.builder. + case 207: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 226: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 224: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // + case 224: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 225: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // + case 225: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 226: declaration_specifiers ::= simple_declaration_specifiers // case 226: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 227: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; - // - case 227: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 228: declaration_specifiers ::= simple_declaration_specifiers - // - case 228: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 229: declaration_specifiers ::= class_declaration_specifiers + // Rule 227: declaration_specifiers ::= class_declaration_specifiers + // + case 227: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 228: declaration_specifiers ::= elaborated_declaration_specifiers + // + case 228: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 229: declaration_specifiers ::= enum_declaration_specifiers // case 229: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 230: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 230: declaration_specifiers ::= type_name_declaration_specifiers // case 230: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 231: declaration_specifiers ::= enum_declaration_specifiers - // - case 231: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 232: declaration_specifiers ::= type_name_declaration_specifiers - // - case 232: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 233: declaration_specifiers_opt ::= $Empty + // Rule 232: declaration_specifiers_opt ::= $Empty // - case 233: { action.builder. + case 232: { action.builder. consumeEmpty(); break; } // - // Rule 238: no_type_declaration_specifier ::= friend + // Rule 236: no_type_declaration_specifier ::= friend // - case 238: { action.builder. + case 236: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 239: no_type_declaration_specifier ::= typedef + // Rule 237: no_type_declaration_specifier ::= typedef // - case 239: { action.builder. + case 237: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 259: storage_class_specifier ::= auto + // Rule 257: storage_class_specifier ::= auto + // + case 257: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 258: storage_class_specifier ::= register + // + case 258: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 259: storage_class_specifier ::= static // case 259: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 260: storage_class_specifier ::= register + // Rule 260: storage_class_specifier ::= extern // case 260: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 261: storage_class_specifier ::= static + // Rule 261: storage_class_specifier ::= mutable // case 261: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 262: storage_class_specifier ::= extern + // Rule 262: function_specifier ::= inline // case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 263: storage_class_specifier ::= mutable + // Rule 263: function_specifier ::= virtual // case 263: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 264: function_specifier ::= inline + // Rule 264: function_specifier ::= explicit // case 264: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 265: function_specifier ::= virtual + // Rule 265: simple_type_specifier ::= char // case 265: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 266: function_specifier ::= explicit + // Rule 266: simple_type_specifier ::= wchar_t // case 266: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 267: simple_type_specifier ::= char + // Rule 267: simple_type_specifier ::= bool // case 267: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 268: simple_type_specifier ::= wchar_t + // Rule 268: simple_type_specifier ::= short // case 268: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 269: simple_type_specifier ::= bool + // Rule 269: simple_type_specifier ::= int // case 269: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 270: simple_type_specifier ::= short + // Rule 270: simple_type_specifier ::= long // case 270: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 271: simple_type_specifier ::= int + // Rule 271: simple_type_specifier ::= signed // case 271: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 272: simple_type_specifier ::= long + // Rule 272: simple_type_specifier ::= unsigned // case 272: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 273: simple_type_specifier ::= signed + // Rule 273: simple_type_specifier ::= float // case 273: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 274: simple_type_specifier ::= unsigned + // Rule 274: simple_type_specifier ::= double // case 274: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 275: simple_type_specifier ::= float + // Rule 275: simple_type_specifier ::= void // case 275: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 276: simple_type_specifier ::= double + // Rule 278: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 276: { action.builder. - consumeDeclSpecToken(); break; + case 278: { action.builder. + consumeQualifiedId(false); break; } // - // Rule 277: simple_type_specifier ::= void + // Rule 279: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 277: { action.builder. - consumeDeclSpecToken(); break; + case 279: { action.builder. + consumeQualifiedId(false); break; } // - // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 280: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // case 280: { action.builder. consumeQualifiedId(false); break; } // - // Rule 281: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 281: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // case 281: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name - // - case 282: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 283: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name - // - case 283: { action.builder. consumeQualifiedId(true); break; } // - // Rule 285: 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 283: { action.builder. + consumeTypeSpecifierElaborated(false); break; + } + + // + // Rule 284: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // + case 284: { action.builder. + consumeTypeSpecifierElaborated(true); break; + } + + // + // Rule 285: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // case 285: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 286: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 286: enum_specifier ::= enum { enumerator_list_opt } // case 286: { action.builder. - consumeTypeSpecifierElaborated(true); break; - } - - // - // Rule 287: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name - // - case 287: { action.builder. - consumeTypeSpecifierElaborated(false); break; - } - - // - // Rule 288: enum_specifier ::= enum { enumerator_list_opt } - // - case 288: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 289: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 287: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 289: { action.builder. + case 287: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 294: enumerator_definition ::= identifier_token + // Rule 292: enumerator_definition ::= identifier_token // - case 294: { action.builder. + case 292: { action.builder. consumeEnumerator(false); break; } // - // Rule 295: enumerator_definition ::= identifier_token = constant_expression + // Rule 293: enumerator_definition ::= identifier_token = constant_expression // - case 295: { action.builder. + case 293: { action.builder. consumeEnumerator(true); break; } // - // Rule 299: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } + // Rule 297: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } // - case 299: { action.builder. + case 297: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 300: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 298: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 300: { action.builder. + case 298: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 301: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 299: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 301: { action.builder. + case 299: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 302: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 300: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 302: { action.builder. + case 300: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 303: typename_opt ::= typename + // Rule 301: typename_opt ::= typename // - case 303: { action.builder. + case 301: { action.builder. consumePlaceHolder(); break; } // - // Rule 304: typename_opt ::= $Empty + // Rule 302: typename_opt ::= $Empty // - case 304: { action.builder. + case 302: { action.builder. consumeEmpty(); break; } // - // Rule 305: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 303: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 305: { action.builder. + case 303: { action.builder. consumeUsingDirective(); break; } // - // Rule 306: asm_definition ::= asm ( stringlit ) ; + // Rule 304: asm_definition ::= asm ( stringlit ) ; // - case 306: { action.builder. + case 304: { action.builder. consumeDeclarationASM(); break; } // - // Rule 307: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 305: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 307: { action.builder. + case 305: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 308: linkage_specification ::= extern stringlit declaration + // Rule 306: linkage_specification ::= extern stringlit declaration // - case 308: { action.builder. + case 306: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 313: init_declarator_complete ::= init_declarator + // Rule 311: init_declarator_complete ::= init_declarator // - case 313: { action.builder. + case 311: { action.builder. consumeInitDeclaratorComplete(); break; } // - // Rule 315: init_declarator ::= declarator initializer + // Rule 313: init_declarator ::= declarator initializer // - case 315: { action.builder. + case 313: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 317: declarator ::= ptr_operator_seq direct_declarator + // Rule 315: declarator ::= ptr_operator_seq direct_declarator + // + case 315: { action.builder. + consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 317: function_declarator ::= ptr_operator_seq direct_declarator // case 317: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 319: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 321: basic_direct_declarator ::= declarator_id_name // - case 319: { action.builder. - consumeDeclaratorWithPointer(true); break; - } - - // - // Rule 323: basic_direct_declarator ::= declarator_id_name - // - case 323: { action.builder. + case 321: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 324: basic_direct_declarator ::= ( declarator ) + // Rule 322: basic_direct_declarator ::= ( declarator ) // - case 324: { action.builder. + case 322: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 325: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 323: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 325: { action.builder. + case 323: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 326: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 324: array_direct_declarator ::= array_direct_declarator array_modifier + // + case 324: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 325: array_direct_declarator ::= basic_direct_declarator array_modifier + // + case 325: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 326: array_modifier ::= [ constant_expression ] // case 326: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 327: array_direct_declarator ::= basic_direct_declarator array_modifier - // - case 327: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 328: array_modifier ::= [ constant_expression ] - // - case 328: { action.builder. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 329: array_modifier ::= [ ] + // Rule 327: array_modifier ::= [ ] // - case 329: { action.builder. + case 327: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 330: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 328: ptr_operator ::= * cv_qualifier_seq_opt // - case 330: { action.builder. + case 328: { action.builder. consumePointer(); break; } // - // Rule 331: ptr_operator ::= & + // Rule 329: ptr_operator ::= & // - case 331: { action.builder. + case 329: { action.builder. consumeReferenceOperator(); break; } // - // Rule 332: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt // - case 332: { action.builder. + case 330: { action.builder. consumePointerToMember(); break; } // - // Rule 338: cv_qualifier ::= const + // Rule 336: cv_qualifier ::= const // - case 338: { action.builder. + case 336: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 339: cv_qualifier ::= volatile + // Rule 337: cv_qualifier ::= volatile + // + case 337: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 339: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // case 339: { action.builder. - consumeDeclSpecToken(); break; + consumeQualifiedId(false); break; } // - // Rule 341: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name + // Rule 340: type_id ::= type_specifier_seq // - case 341: { action.builder. - consumeQualifiedId(true); break; - } - - // - // Rule 342: type_id ::= type_specifier_seq - // - case 342: { action.builder. + case 340: { action.builder. consumeTypeId(false); break; } // - // Rule 343: type_id ::= type_specifier_seq abstract_declarator + // Rule 341: type_id ::= type_specifier_seq abstract_declarator // - case 343: { action.builder. + case 341: { action.builder. consumeTypeId(true); break; } // - // Rule 346: abstract_declarator ::= ptr_operator_seq + // Rule 344: abstract_declarator ::= ptr_operator_seq // - case 346: { action.builder. + case 344: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 347: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 345: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 347: { action.builder. + case 345: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 351: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 349: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 351: { action.builder. + case 349: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 352: basic_direct_abstract_declarator ::= ( ) + // Rule 350: basic_direct_abstract_declarator ::= ( ) // - case 352: { action.builder. + case 350: { action.builder. consumeAbstractDeclaratorEmpty(); break; } // - // Rule 353: array_direct_abstract_declarator ::= array_modifier + // Rule 351: array_direct_abstract_declarator ::= array_modifier // - case 353: { action.builder. + case 351: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 354: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 352: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // + case 352: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 353: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // + case 353: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 354: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // case 354: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 355: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier - // - case 355: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 356: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt - // - case 356: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 357: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 355: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 357: { action.builder. + case 355: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 356: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // + case 356: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 357: parameter_declaration_clause ::= parameter_declaration_list_opt + // + case 357: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 358: parameter_declaration_clause ::= parameter_declaration_list , ... // case 358: { action.builder. consumePlaceHolder(); break; } // - // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 364: abstract_declarator_opt ::= $Empty // - case 359: { action.builder. + case 364: { action.builder. consumeEmpty(); break; } // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 365: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 360: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 366: abstract_declarator_opt ::= $Empty - // - case 366: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator - // - case 367: { action.builder. + case 365: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 368: parameter_declaration ::= declaration_specifiers + // Rule 366: parameter_declaration ::= declaration_specifiers // - case 368: { action.builder. + case 366: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 370: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 368: parameter_init_declarator ::= declarator = parameter_initializer + // + case 368: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 370: parameter_init_declarator ::= abstract_declarator = parameter_initializer // case 370: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 372: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 371: parameter_init_declarator ::= = parameter_initializer // - case 372: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 373: parameter_init_declarator ::= = parameter_initializer - // - case 373: { action.builder. + case 371: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 374: parameter_initializer ::= assignment_expression + // Rule 372: parameter_initializer ::= assignment_expression // - case 374: { action.builder. + case 372: { action.builder. consumeInitializer(); break; } // - // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 373: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 375: { action.builder. + case 373: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 374: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 376: { action.builder. + case 374: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 379: initializer ::= ( expression_list ) + // Rule 377: initializer ::= ( expression_list ) // - case 379: { action.builder. + case 377: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 380: initializer_clause ::= assignment_expression + // Rule 378: initializer_clause ::= assignment_expression // - case 380: { action.builder. + case 378: { action.builder. consumeInitializer(); break; } // - // Rule 381: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list + // Rule 379: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list + // + case 379: { action.builder. + consumeInitializerList(); break; + } + + // + // Rule 380: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list + // + case 380: { action.builder. + consumeInitializerList(); break; + } + + // + // Rule 381: initializer_clause ::= { } // case 381: { action.builder. consumeInitializerList(); break; } // - // Rule 382: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list + // Rule 382: start_initializer_list ::= $Empty // case 382: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 383: initializer_clause ::= { } - // - case 383: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 384: start_initializer_list ::= $Empty - // - case 384: { action.builder. initializerListStart(); break; } // - // Rule 385: end_initializer_list ::= $Empty + // Rule 383: end_initializer_list ::= $Empty // - case 385: { action.builder. + case 383: { action.builder. initializerListEnd(); break; } // - // Rule 390: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 388: class_specifier ::= class_head { member_declaration_list_opt } // - case 390: { action.builder. + case 388: { action.builder. consumeClassSpecifier(); break; } // - // Rule 391: class_head ::= class_keyword identifier_name_opt base_clause_opt + // Rule 389: class_head ::= class_keyword identifier_name_opt base_clause_opt + // + case 389: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 390: class_head ::= class_keyword template_id_name base_clause_opt + // + case 390: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 391: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt // case 391: { action.builder. - consumeClassHead(false); break; + consumeClassHead(true); break; } // - // Rule 392: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 392: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // case 392: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 393: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt - // - case 393: { action.builder. consumeClassHead(true); break; } // - // Rule 394: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 394: identifier_name_opt ::= $Empty // case 394: { action.builder. - consumeClassHead(true); break; - } - - // - // Rule 396: identifier_name_opt ::= $Empty - // - case 396: { action.builder. consumeEmpty(); break; } // - // Rule 400: visibility_label ::= access_specifier_keyword : + // Rule 398: visibility_label ::= access_specifier_keyword : // - case 400: { action.builder. + case 398: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 401: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 399: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 401: { action.builder. + case 399: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 402: member_declaration ::= declaration_specifiers_opt ; + // Rule 400: member_declaration ::= declaration_specifiers_opt ; // - case 402: { action.builder. + case 400: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 403: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 405: { action.builder. + case 403: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 411: member_declaration ::= ERROR_TOKEN + // Rule 409: member_declaration ::= ERROR_TOKEN // - case 411: { action.builder. + case 409: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 419: member_declarator ::= declarator constant_initializer + // Rule 417: member_declarator ::= declarator constant_initializer // - case 419: { action.builder. + case 417: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 420: member_declarator ::= bit_field_declarator : constant_expression + // Rule 418: member_declarator ::= bit_field_declarator : constant_expression // - case 420: { action.builder. + case 418: { action.builder. consumeBitField(true); break; } // - // Rule 421: member_declarator ::= : constant_expression + // Rule 419: member_declarator ::= : constant_expression // - case 421: { action.builder. + case 419: { action.builder. consumeBitField(false); break; } // - // Rule 422: bit_field_declarator ::= identifier_name + // Rule 420: bit_field_declarator ::= identifier_name // - case 422: { action.builder. + case 420: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 423: constant_initializer ::= = constant_expression + // Rule 421: constant_initializer ::= = constant_expression // - case 423: { action.builder. + case 421: { action.builder. consumeInitializer(); break; } // - // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 427: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 429: { action.builder. + case 427: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 430: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 428: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // + case 428: { action.builder. + consumeBaseSpecifier(true, true); break; + } + + // + // Rule 429: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // + case 429: { action.builder. + consumeBaseSpecifier(true, true); break; + } + + // + // Rule 430: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // case 430: { action.builder. - consumeBaseSpecifier(true, true); break; - } - - // - // Rule 431: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name - // - case 431: { action.builder. - consumeBaseSpecifier(true, true); break; - } - - // - // Rule 432: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name - // - case 432: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 433: access_specifier_keyword ::= private + // Rule 431: access_specifier_keyword ::= private + // + case 431: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 432: access_specifier_keyword ::= protected + // + case 432: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 433: access_specifier_keyword ::= public // case 433: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 434: access_specifier_keyword ::= protected - // - case 434: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 435: access_specifier_keyword ::= public + // Rule 435: access_specifier_keyword_opt ::= $Empty // case 435: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 437: access_specifier_keyword_opt ::= $Empty - // - case 437: { action.builder. consumeEmpty(); break; } // - // Rule 439: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 437: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 439: { action.builder. + case 437: { action.builder. consumeTemplateId(); break; } // - // Rule 440: conversion_function_id ::= operator conversion_type_id + // Rule 438: conversion_function_id ::= operator conversion_type_id // - case 440: { action.builder. + case 438: { action.builder. consumeConversionName(); break; } // - // Rule 441: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 439: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 441: { action.builder. + case 439: { action.builder. consumeTypeId(true); break; } // - // Rule 442: conversion_type_id ::= type_specifier_seq + // Rule 440: conversion_type_id ::= type_specifier_seq // - case 442: { action.builder. + case 440: { action.builder. consumeTypeId(false); break; } // - // Rule 443: conversion_declarator ::= ptr_operator_seq + // Rule 441: conversion_declarator ::= ptr_operator_seq // - case 443: { action.builder. + case 441: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 449: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 447: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 449: { action.builder. + case 447: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 450: 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 450: { action.builder. + case 448: { action.builder. consumeQualifiedId(false); break; } // - // Rule 453: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 451: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 453: { action.builder. + case 451: { action.builder. consumeTemplateId(); break; } // - // Rule 454: operator_id_name ::= operator overloadable_operator + // Rule 452: operator_id_name ::= operator overloadable_operator // - case 454: { action.builder. + case 452: { action.builder. consumeOperatorName(); break; } // - // Rule 497: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 495: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 497: { action.builder. + case 495: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 498: export_opt ::= export + // Rule 496: export_opt ::= export // - case 498: { action.builder. + case 496: { action.builder. consumePlaceHolder(); break; } // - // Rule 499: export_opt ::= $Empty + // Rule 497: export_opt ::= $Empty // - case 499: { action.builder. + case 497: { action.builder. consumeEmpty(); break; } // - // Rule 503: template_parameter ::= parameter_declaration + // Rule 501: template_parameter ::= parameter_declaration // - case 503: { action.builder. + case 501: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 504: type_parameter ::= class identifier_name_opt + // Rule 502: type_parameter ::= class identifier_name_opt + // + case 502: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 503: type_parameter ::= class identifier_name_opt = type_id + // + case 503: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 504: type_parameter ::= typename identifier_name_opt // case 504: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 505: type_parameter ::= class identifier_name_opt = type_id + // Rule 505: type_parameter ::= typename identifier_name_opt = type_id // case 505: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 506: type_parameter ::= typename identifier_name_opt + // Rule 506: type_parameter ::= template < template_parameter_list > class identifier_name_opt // case 506: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 507: type_parameter ::= typename identifier_name_opt = type_id - // - case 507: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 508: type_parameter ::= template < template_parameter_list > class identifier_name_opt - // - case 508: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 509: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 507: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 509: { action.builder. + case 507: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 510: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 508: template_id_name ::= identifier_name < template_argument_list_opt > // - case 510: { action.builder. + case 508: { action.builder. consumeTemplateId(); break; } // - // Rule 516: template_argument ::= type_id + // Rule 513: template_argument ::= assignment_expression // - case 516: { action.builder. + case 513: { action.builder. + consumeTemplateArgumentExpression(); break; + } + + // + // Rule 514: template_argument ::= type_id + // + case 514: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 517: explicit_instantiation ::= template declaration + // Rule 515: explicit_instantiation ::= template declaration // - case 517: { action.builder. + case 515: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 518: explicit_specialization ::= template < > declaration + // Rule 516: explicit_specialization ::= template < > declaration // - case 518: { action.builder. + case 516: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 519: try_block ::= try compound_statement handler_seq + // Rule 517: try_block ::= try compound_statement handler_seq // - case 519: { action.builder. + case 517: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 522: handler ::= catch ( exception_declaration ) compound_statement + // Rule 520: handler ::= catch ( exception_declaration ) compound_statement // - case 522: { action.builder. + case 520: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 523: handler ::= catch ( ... ) compound_statement + // Rule 521: handler ::= catch ( ... ) compound_statement // - case 523: { action.builder. + case 521: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq declarator + // Rule 522: exception_declaration ::= type_specifier_seq declarator + // + case 522: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 523: exception_declaration ::= type_specifier_seq abstract_declarator + // + case 523: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 524: exception_declaration ::= type_specifier_seq // case 524: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 525: exception_declaration ::= type_specifier_seq abstract_declarator - // - case 525: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 526: exception_declaration ::= type_specifier_seq - // - case 526: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 528: exception_specification ::= throw ( ) + // Rule 526: exception_specification ::= throw ( ) // - case 528: { action.builder. + case 526: { action.builder. consumePlaceHolder(); break; } // - // Rule 534: no_sizeof_type_name_start ::= ERROR_TOKEN + // Rule 532: no_sizeof_type_name_start ::= ERROR_TOKEN // - case 534: { action.builder. + case 532: { action.builder. consumeExpressionProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java index 4a18814da57..5b5e716ee4a 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java @@ -41,475 +41,485 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 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,2, - 1,1,0,1,0,4,2,2,2,3, - 2,3,2,2,1,0,1,1,4,4, - 4,8,8,3,3,4,4,3,3,2, - 2,7,7,7,7,4,5,6,3,2, - 2,1,1,1,2,2,2,2,2,2, - 2,2,2,7,9,3,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,2,1,3,1,0,1,0,1, - 1,0,1,1,1,1,1,1,1,1, - 1,3,4,3,2,1,4,2,1,2, - 5,7,5,1,4,1,0,5,7,8, - 1,1,2,2,3,2,3,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,2,1,0,4,4,2,2,2, - 2,2,0,1,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,0,1,0,4,2,3,2,3, + 2,2,1,0,1,1,4,4,4,8, + 8,3,3,4,4,3,3,2,2,7, + 7,7,7,4,5,6,3,2,2,1, + 1,1,2,2,2,2,2,2,2,2, + 2,7,9,3,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, + 2,1,3,1,0,1,0,1,1,0, 1,1,1,1,1,1,1,1,1,3, - 4,4,5,2,4,5,4,5,6,1, - 3,1,0,1,3,1,1,1,6,5, - 7,6,1,0,6,5,6,4,1,3, - 1,0,1,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, - 4,1,2,1,1,2,3,1,1,1, - 3,2,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, - 7,6,3,0,0,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, - 1,1,2,1,0,1,3,1,2,3, - 2,1,2,2,1,0,1,3,3,5, - 5,4,1,1,1,1,0,1,5,2, - 2,1,2,2,1,0,1,3,4,3, - 1,1,5,2,1,1,3,3,1,1, + 4,3,2,1,4,2,1,2,5,7, + 5,1,4,1,0,5,7,8,1,1, + 2,2,3,2,3,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 2,1,0,4,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,3,4,4, + 5,2,4,5,4,5,6,1,3,1, + 0,1,3,1,1,1,6,5,7,6, + 1,0,6,5,6,4,1,3,1,0, + 1,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,2, + 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,7,6, + 3,0,0,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,1,1, + 2,1,0,1,3,1,2,3,2,1, + 2,2,1,0,1,3,3,5,5,4, + 1,1,1,1,0,1,5,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,1,1,2,2,7,1,0,1, - 3,1,1,2,4,2,4,7,9,5, - 1,3,1,0,1,1,2,4,4,1, - 2,5,5,3,3,1,4,3,1,0, - 1,3,1,1,-63,0,0,0,-120,0, + 1,1,2,2,7,1,0,1,3,1, + 1,2,4,2,4,7,9,5,1,3, + 1,0,1,1,2,4,4,1,2,5, + 5,3,3,1,4,3,1,0,1,3, + 1,1,-62,0,0,0,-2,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-136,0,0, + 0,0,0,0,0,-4,0,0,0,0, + 0,-5,0,0,0,0,0,-6,0,0, + -433,0,0,0,0,-71,0,0,0,-7, + 0,0,0,0,0,0,0,0,-112,-88, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-8,0,0,0,0,0,0,0, + 0,-353,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,0,0, + 0,0,0,-244,0,-72,0,0,0,0, + 0,0,0,0,0,0,0,0,-58,0, + 0,0,-410,0,0,-119,0,0,0,0, + 0,0,-114,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-290,0,0, + -116,0,-49,0,0,0,0,0,-148,0, + 0,0,-190,0,0,0,0,0,0,0, + 0,-9,0,-115,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-11,0, + 0,-126,0,0,0,0,0,-340,0,-12, + 0,0,0,0,-232,0,-316,0,-16,0, + 0,0,-13,0,0,0,0,0,0,0, + 0,-228,-64,0,-373,-130,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-145,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-15, + 0,-136,-141,0,0,-123,0,0,0,-397, + 0,0,-28,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,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-50,0,0,0,0,0,0,0,0, + 0,0,-29,0,-133,0,-462,0,0,0, + -357,-146,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-496,0,0, + 0,0,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,0,0,0, + 0,0,0,0,0,-31,0,0,0,0, + -520,0,0,0,-53,0,0,0,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,-10,0,0,0,0,0,0, - 0,0,-375,0,0,0,0,0,0,-376, - 0,0,0,0,-119,0,0,0,0,0, - -66,-89,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-58,0,0,0,0,0, - -2,0,0,0,-341,-51,-422,0,0,0, - -348,0,0,0,0,-53,0,0,0,-127, - 0,0,0,0,0,0,-149,0,0,0, - 0,0,0,0,0,0,-4,0,-72,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-5,-205,0,-6,0,0, - 0,0,0,0,-115,0,0,0,0,0, + 0,0,0,-3,0,0,0,-33,0,0, 0,0,0,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,-16,0,0,0,0,0,0,0,0, - -243,0,0,-177,0,0,0,0,0,0, - 0,0,0,-383,0,-116,0,0,0,0, + 0,0,-260,0,0,0,-312,0,0,0, + 0,0,0,0,0,0,0,-429,0,0, + 0,-34,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-302,0,0,0, + -383,0,-454,0,0,0,0,0,0,0, + -394,0,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, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-54,0,-49,0,0,0,0, - 0,0,0,0,0,0,-7,0,-234,0, - -146,0,0,0,-8,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-131,0, + 0,0,0,0,0,0,-342,0,-35,0, + 0,-177,0,0,0,0,0,0,-262,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, - 0,0,0,0,0,0,0,-292,0,0, - 0,0,-182,0,0,-118,0,0,-50,0, - 0,-296,0,0,-141,0,0,0,0,0, - -186,0,0,0,0,-9,0,0,0,-224, + -36,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,0,0,0,0,0,0,0,0,0, - 0,0,0,-209,0,0,0,0,-57,0, - 0,0,0,-11,0,-148,0,0,0,0, - 0,0,0,0,0,0,0,0,-12,0, - -124,0,0,0,0,0,-13,0,0,0, - 0,-496,0,0,0,-60,0,0,0,0, + 0,0,0,0,0,0,0,-37,0,-51, + 0,0,0,0,-38,0,0,0,-319,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-520,0,0,0,-129,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-230,0,0, - 0,0,0,-247,0,0,0,0,0,0, - 0,-178,0,0,0,0,0,-107,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,0,0,0,-65,0,0,0, - 0,-264,0,0,-130,0,-145,0,0,0, - 0,0,-429,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-57,0,0, + 0,0,0,-349,0,0,-406,-1,0,0, + 0,0,-465,-39,0,0,0,-372,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-15,0,0,-137, - 0,0,0,0,0,-283,0,0,-3,0, + 0,0,-360,0,0,0,0,0,0,0, + 0,-54,-208,-40,0,0,0,-41,0,0, + 0,-55,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-113,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-237,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,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -28,-191,0,0,-320,0,0,0,0,0, - 0,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,-48,0, - 0,0,0,-30,-314,0,0,-73,0,0, - 0,-31,0,0,0,0,0,0,0,0, - 0,-449,0,-321,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-246,0,0,0,0,-117,0,0, - -318,0,0,-143,0,0,-39,0,0,0, - -108,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -133,0,0,-153,0,0,0,0,0,-41, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-216,0,0,0,0,0,-32,0, - 0,0,0,0,0,0,0,0,0,-284, - 0,0,-95,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-302,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-96,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-323,0, - 0,0,0,0,0,0,0,0,0,-262, - 0,0,-244,0,0,0,0,0,-97,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-33,0,0,0,0,0,0,0,0, - 0,0,-34,0,0,-250,0,0,0,0, - 0,-98,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-35,0,0,0,0,0, - -329,0,0,0,0,-406,0,0,-251,0, - 0,0,0,0,-99,0,0,0,-36,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-37,0,0, - 0,0,0,-307,0,0,0,0,0,0, - 0,-273,0,0,0,0,0,-100,0,0, - 0,-38,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -40,0,0,0,0,0,-313,0,0,0, - 0,0,0,0,-278,0,0,0,0,0, - -101,0,0,0,-55,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-56,0,0,0,0,0,0, - 0,0,0,0,-287,0,0,0,0,0, - 0,0,0,-102,0,0,0,-59,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-67,0,0,0, - 0,0,-68,0,0,0,0,-343,0,0, - -290,0,0,0,0,0,-103,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-70, - 0,0,0,0,0,0,0,0,0,0, - -344,0,0,-199,0,0,-304,0,0,-104, - 0,0,0,-114,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-71,0,0,0,0,0,-109,0, - 0,0,0,-295,0,0,0,0,0,-110, - 0,0,-105,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-111,0,0,0,0, - 0,-410,0,0,0,0,0,0,0,-260, - 0,-453,0,0,0,-134,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-112,0, - 0,0,0,0,-351,0,0,0,0,0, - 0,0,-217,0,0,0,-138,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-267,0,0,0,0,-332,0,0,-212, - 0,0,0,0,0,-235,0,0,0,-139, - -437,-140,0,-514,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-352,0,0, - -275,-152,0,-154,0,0,-317,0,0,0, - -333,0,0,0,0,0,0,0,0,0, - 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,-519,0,0, - 0,0,0,0,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, - -151,0,0,0,-525,0,0,0,0,0, - 0,0,0,0,-346,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-155,0, - 0,-378,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-156,0,0,0,0,0, - 0,0,0,0,0,-358,0,0,-334,0, - 0,0,-157,-361,0,0,0,0,0,-158, - -159,-465,-379,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-368,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,0,0,0,0,0,0,-390,0, - 0,0,0,0,0,0,-356,0,0,0, - -160,-396,0,0,0,0,0,-409,-161,-481, + -56,0,0,0,0,-233,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,0,0,0,0,0,0,0,0, - 0,0,0,0,-162,0,0,-92,0,0, + 0,0,0,-128,0,-481,0,0,0,-129, + -66,0,0,-95,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -163,0,0,0,0,0,-431,0,0,-93, - 0,0,0,-164,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, - -90,0,0,0,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,0,0,0,0,0,-137,0, + 0,0,-143,-294,0,0,-96,0,0,0, + -59,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-67, + 0,0,0,0,0,0,0,0,0,-152, + 0,0,0,0,0,0,-332,0,0,-97, + 0,0,0,-60,0,0,0,0,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,-83,0,0,0, - -167,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-168, - 0,0,0,-84,0,0,0,-169,0,0, + 0,0,-69,0,0,0,0,0,0,-70, + 0,0,-98,0,0,0,-107,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-170,0,0,0, - -85,0,0,0,-171,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-172,0,0,0,-86,0,0, - 0,-454,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-305,0,-281,0,0, + 0,0,-108,0,0,-99,0,0,0,-113, 0,0,0,0,0,0,0,0,0,0, - -421,0,0,0,0,-521,0,0,0,-173, - 0,0,0,0,0,0,0,0,-184,0, - -201,0,0,0,-372,0,0,0,-174,0, - 0,0,0,0,0,-175,0,-438,0,0, - 0,0,-353,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-128,0,0,0, - 0,-380,0,0,0,0,0,-176,0,0, - 0,0,0,0,0,0,0,0,-179,0, - -231,0,0,0,0,0,0,0,0,0, - 0,-495,0,0,-394,0,0,-180,0,0, - 0,-232,0,0,-508,0,0,0,0,0, - 0,0,-52,0,0,0,-185,0,0,-181, - 0,-87,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-187,0,0,0,0,0, - -240,0,0,0,0,-190,0,0,0,0, - 0,-365,0,0,0,0,-121,0,0,0, - 0,0,-210,0,-196,0,-80,0,0,0, - -373,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-183,0,0,0,0,0, + -282,0,0,-109,0,-110,0,0,-100,0, + 0,0,-151,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-197,0,0,0,0, - 0,0,0,0,0,0,0,-200,0,0, - 0,-395,0,0,-211,0,0,0,0,0, - 0,0,0,-236,0,0,-214,-428,-62,-270, - 0,0,0,0,0,0,0,-413,0,-274, + 0,0,0,0,0,0,0,-184,0,0, + 0,0,0,-311,0,0,-111,0,0,0, + 0,-101,0,0,0,-131,0,0,0,0, 0,0,0,0,0,0,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,0,0,-222,0,0,-286,0, - 0,0,0,-271,0,0,0,0,0,-223, - 0,-225,-387,0,0,0,0,0,0,0, - 0,0,0,0,-1,0,-198,-239,0,-147, - -189,0,0,-238,0,-142,0,0,0,0, - 0,0,0,0,0,0,-386,-192,-241,0, + -186,0,0,0,0,0,-188,0,0,-138, + 0,-139,0,0,-102,0,0,0,-140,0, 0,0,0,0,0,0,0,0,0,0, - -144,0,0,0,0,-316,0,0,0,0, - 0,0,0,0,0,0,0,-447,0,0, - 0,0,0,0,-249,-202,0,-263,0,0, - 0,0,0,0,0,-265,0,0,-266,0, - 0,0,0,-203,-245,0,0,0,0,0, - 0,-276,0,0,-450,0,0,0,0,0, + 0,0,0,0,0,0,0,-348,0,0, + 0,0,0,-191,0,0,0,0,0,-351, + 0,0,-153,-198,0,0,0,-103,0,0, + 0,-200,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-468,0,0,-371,0,0,-277, - 0,0,0,0,-252,0,0,0,0,0, - 0,0,0,0,-288,0,0,-208,0,0, - -281,0,0,0,0,0,-253,-282,-293,-123, - -470,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-297,0,-298, - 0,0,0,0,0,-497,0,0,0,0, + -154,0,0,0,0,0,-202,0,0,0, + 0,0,-352,0,0,-519,0,0,0,0, + -104,0,0,0,-209,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-18,0,0,0,-248,0,0,0,0, - 0,0,0,0,-487,0,-254,0,0,-415, - 0,-442,0,0,-255,0,-305,-306,0,0, - 0,0,0,0,0,0,-135,0,0,-311, - 0,-362,0,0,0,0,0,0,0,-312, - 0,-501,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-328,0, - 0,-228,0,-43,0,0,-345,0,-347,0, + 0,0,0,-155,0,0,0,0,0,-207, + 0,0,0,0,0,0,0,0,-461,0, + -65,0,0,-134,0,0,0,-396,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-156,0,0,0, + 0,0,-226,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,0,0,0,0,0,0,0,0,0, + -227,0,0,0,0,0,-231,0,0,-390, + 0,0,0,0,0,0,-18,0,0,0, + -514,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-157,0,-158,0,0,-258,0, + 0,0,0,-315,0,0,0,-409,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-159,0,0,0, + 0,0,-256,0,0,0,0,0,-431,0, + 0,-330,0,0,0,0,0,0,0,0, + 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,0,0,0,0,-333, + 0,0,0,-160,-236,0,0,0,0,0, + -346,0,0,0,0,0,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,0,-161,0,-442,0,0,-378,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-230,0,0,0,0,0,-289,0,0, + 0,0,0,0,0,0,-371,0,0,0, + -162,-243,0,0,0,0,0,-379,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -451,0,0,0,0,0,0,0,0,0, + -163,0,-164,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,0,0, + 0,0,0,0,-301,0,0,0,0,0, + 0,0,0,0,-211,0,0,0,-250,0, + 0,-366,0,0,-106,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-449, + 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,-508,0,0,0,0, + 0,-265,0,0,0,-91,0,0,0,-165, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-166,0, + 0,0,0,0,0,0,0,-89,0,0, + 0,-167,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -147,0,0,0,0,-90,0,0,0,-437, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-268,0, + 0,0,0,-238,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-284,0,0, + 0,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,-168,-511,-169,-47,0,0,0, + 0,0,0,0,-452,0,0,-269,-380,0, + 0,0,-453,0,0,0,0,0,0,0, + 0,-176,0,0,0,-185,0,0,0,0, + 0,0,0,-367,0,0,0,0,0,0, + 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, + -83,0,0,0,-170,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-306,0,0,0,0,-194,0, + 0,0,-374,0,0,0,0,0,-84,0, + 0,0,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,-171, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-463,0, + 0,0,-387,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-251,-266,0,0, + 0,0,0,0,0,0,0,0,0,0, + -286,-273,-204,-421,0,0,0,0,-521,0, + 0,0,-172,0,0,0,0,0,0,0, + 0,0,0,0,-173,0,0,-214,0,0, + 0,0,0,-300,0,0,-43,-229,0,0, + 0,0,0,0,0,0,0,0,-174,0, + 0,0,0,0,0,0,0,0,-314,0, + -525,0,-127,0,0,0,0,0,0,-252, + 0,0,0,0,0,0,0,0,0,0, + -438,0,-386,-181,0,-415,0,-413,0,0, + 0,0,0,0,0,0,0,0,-144,-175, + -178,0,0,0,0,0,0,-253,0,0, + -398,-422,0,0,0,0,0,0,0,0, + 0,0,0,-179,0,0,0,0,0,0, + 0,0,0,0,0,-321,0,0,0,0, + -320,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-513,0,0,0,0,0, + 0,0,0,0,0,0,0,-180,0,-52, + 0,0,0,-189,0,0,0,0,-325,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-402,0,0,0,-195,-287,-196,-150,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-322, + -142,0,0,0,0,-234,0,0,0,0, + 0,0,0,-297,0,0,0,0,-199,-298, + 0,0,-235,0,0,0,0,0,0,0, + -210,-220,0,0,0,0,0,0,-326,-241, + 0,0,0,0,0,-221,0,-331,0,0, + 0,0,0,0,0,0,0,0,0,-242, + 0,0,0,0,0,0,0,0,0,0, + -223,-237,-19,0,0,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,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-359,0,0,-87,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-246,0, + 0,-307,0,0,0,0,0,0,0,0, + 0,0,0,0,-224,-239,-323,-403,0,0, + 0,-247,0,-121,0,0,0,-377,0,-14, + -272,0,-447,0,-261,-263,0,-364,0,0, + 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,-361,0,0,-264,-468, + 0,0,0,0,0,0,0,-274,0,0, + 0,0,0,0,0,0,0,-257,0,-335, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-470,0,0,0, + 0,-275,0,0,-384,0,0,0,0,0, + 0,0,0,0,-248,0,0,0,-512,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-44,0,0,0,0,0,0, 0,-391,0,0,0,0,0,0,0,0, - 0,0,-289,0,-363,0,0,0,0,0, - 0,0,0,0,0,-503,0,0,-229,0, - 0,0,0,-433,0,0,0,-366,0,0, - 0,0,0,0,0,0,0,-388,0,0, - 0,0,0,0,0,-389,-392,0,-299,0, - 0,-125,-507,0,0,0,0,0,-393,0, - 0,0,0,0,0,0,0,0,0,-461, - 0,-150,0,0,0,0,-402,0,0,0, + 0,-487,0,0,-279,0,0,-197,0,-412, + -280,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-455,0,-291, + 0,0,-117,-249,0,0,0,-295,-501,0, + 0,0,0,0,0,0,-296,0,0,0, + 0,0,0,0,0,0,0,0,0,-303, + -337,0,0,0,0,-304,0,0,0,0, + 0,0,0,0,0,-503,0,0,0,0, + -309,0,-456,-310,0,0,0,0,0,0, + 0,0,0,0,-271,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-47,0,0,0,-300,0,0, - 0,0,0,0,0,0,-522,0,0,0, - 0,-451,0,0,0,0,-324,0,-458,-482, - 0,0,0,0,0,0,0,0,-44,0, - 0,0,0,0,-509,0,0,0,0,0, - 0,-399,-401,-527,0,0,0,0,-452,0, + 0,0,-507,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -404,0,-183,0,0,0,0,-403,0,0, + -276,0,0,0,-327,0,-423,0,0,0, + 0,0,0,0,0,0,0,0,0,-522, + 0,0,0,0,-288,0,0,0,0,0, + 0,0,0,0,0,0,0,-339,-345,0, + -354,0,0,-347,0,-458,-482,0,0,0, + 0,0,0,0,0,0,-527,0,0,0, + 0,-476,-477,-459,-362,0,0,0,0,0, + 0,0,0,0,-45,-365,-385,-405,0,0, + 0,0,-484,-388,0,0,0,0,0,0, + 0,0,0,-509,0,0,0,0,0,0, + 0,-389,0,0,0,0,0,0,0,0, + 0,0,0,-408,-395,0,0,0,-417,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-411,0,0, - 0,0,0,0,0,0,0,-233,0,0, - 0,0,-418,-258,0,0,0,0,0,-463, - -419,0,0,0,0,0,0,0,-78,0, - 0,0,-439,0,0,0,0,0,0,0, + -77,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-441,0,-79,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-443,0,-309,0, - 0,0,0,0,0,0,0,0,0,-513, - 0,0,0,0,-444,0,0,0,0,0, - -81,0,0,0,-511,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-122,0,0,0,-434,0,-279, - -445,0,0,0,0,0,0,0,-446,-359, - -272,0,0,0,0,0,0,0,0,-448, - 0,-74,0,0,0,0,-464,-466,-291,0, - 0,-259,0,-467,0,0,0,0,0,-326, - 0,0,0,0,0,0,0,0,0,0, - 0,-512,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,-469, - -474,-384,-188,0,0,0,-476,-478,0,-485, - -335,0,0,0,0,0,0,0,0,-493, - -370,0,0,0,0,-502,0,-303,-510,0, - 0,0,0,0,0,0,-308,-322,0,0, - 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,-526,0,0,0,0, - 0,0,0,0,-194,0,0,0,-327,-336, - -427,-42,0,0,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,-340, - 0,0,0,0,0,-354,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-19,0,0,0, - 0,0,0,0,0,0,0,0,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,-385, - 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,-22,0, - 0,0,0,0,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,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,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,0, - 0,0,0,0,0,0,0,0,0,0, - -64,0,0,0,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,0,0,0,0,0,0,0,0, - 0,0,0,0,-77,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-132,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-206,0, - 0,0,-477,0,0,0,0,0,0,0, + 0,0,0,-392,0,-78,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-504,0, -505,0,0,0,0,0,0,0,0,0, - 0,-405,-473,0,-408,0,0,-69,0,-337, - 0,0,-484,0,-423,0,0,0,-412,-398, - -14,0,-364,0,0,0,0,-215,0,0, - 0,0,0,-462,0,0,0,-301,-417,0, + 0,0,0,-79,0,0,0,-495,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-213,0,0, + 0,0,-201,-393,-420,-457,0,0,0,0, + -399,-401,-404,-497,0,0,-299,0,0,0, + -411,-418,0,0,-61,0,-419,-439,0,-441, + 0,-80,0,0,0,0,0,0,0,0, + 0,0,0,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,-443,-334, + -460,0,0,0,0,-444,-479,-488,0,-369, + 0,0,0,0,0,-483,-445,-492,0,0, + -427,0,0,0,0,-517,0,0,0,0, + -118,-446,0,0,0,0,0,0,0,0, + 0,-120,0,0,0,0,0,0,0,0, + 0,0,0,-448,0,0,0,0,0,0, + 0,0,0,0,-464,-466,0,0,0,0, + 0,0,0,0,-490,0,0,0,0,0, + 0,-524,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-494,0,0,0,0, + 0,0,0,0,0,0,-467,-500,-469,0, + -428,0,0,0,0,-474,0,0,0,0, + -478,-485,0,0,-493,-502,-498,0,0,0, + 0,-510,-515,0,0,-22,0,0,0,0, + 0,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,0,0,0,0,0,0,-24, + 0,0,0,-526,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,-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,0,0,0,0, + 0,0,0,0,0,0,0,-63,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,0,0,-455,0,0,0,0,0,0, - 0,0,0,0,0,0,-456,-193,0,0, - 0,-195,0,0,0,0,0,0,0,0, - 0,0,-420,0,0,0,0,0,0,0, - 0,0,0,0,0,-369,0,0,0,0, - 0,-459,0,0,0,-407,-488,0,0,0, - 0,0,-457,0,0,-416,0,0,0,0, - -367,0,0,0,0,0,0,0,0,0, - 0,0,-460,0,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,0,-319, + 0,0,0,-132,0,0,0,0,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,0,0,0,0,0,0,-490,0, + 0,0,0,0,0,0,0,-375,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-430,0,0,0,0,-494,0,0, - 0,0,0,-126,0,0,0,-479,0,0, - 0,0,0,-17,0,-491,0,0,0,0, - 0,0,-315,0,0,0,-204,0,0,0, - -227,0,0,-75,0,0,0,0,0,-483, - 0,-492,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-500,0,0, - 0,0,0,0,0,0,0,-106,0,0, - 0,0,0,0,0,-504,0,0,0,-310, + 0,-430,0,0,0,0,0,0,0,0, + 0,0,0,0,-42,0,0,0,0,-336, + -499,0,0,0,0,0,-518,0,-46,0, + -317,-363,0,0,-370,0,-285,0,0,-523, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-498,-499,-357,0,-213,0,0, - 0,-517,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-518,0,0,0,0,-523, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-342,0,0,0,-524,0, - 0,0,0,0,0,0,0,0,0,-377, - 0,0,0,0,0,0,0,0,0,0, - -489,0,0,0,0,0,0,0,0,0, - 0,0,-261,0,0,0,0,-426,0,0, - 0,0,-516,0,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,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-268,0,0,0,0, - 0,0,0,0,0,0,0,-325,0,-269, + -368,0,0,0,0,0,0,0,0,0, + 0,-356,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-149,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-339,0,0,0,-425,0,0,0,0, - 0,0,0,0,-350,0,0,0,-381,0, - 0,0,0,-256,0,0,0,0,0,0, + -407,0,0,-426,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-382,0,0,0, - 0,0,0,0,0,0,-242,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-400,0,0,0,0,0,0,0, - 0,0,0,0,-414,0,0,0,0,0, - 0,0,0,0,0,-432,0,0,0,-285, - 0,0,0,-355,0,0,0,0,0,0, - -374,-397,0,0,-45,0,0,0,0,-349, - 0,0,0,0,0,0,0,0,0,0, - 0,-471,0,0,0,0,0,0,0,0, - 0,-486,0,0,0,0,0,0,0,0, - 0,0,-472,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-46,0,-207, - 0,0,0,0,0,0,0,0,-475,-435, - -436,0,0,0,0,0,0,0,0,-218, + 0,0,0,0,-182,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-480,0,0,0,0, - 0,0,-219,0,0,0,0,0,0,0, - 0,0,0,-220,0,0,0,0,0,0, - 0,-221,-257,0,-294,0,0,0,0,-330, - -424,0,0,0,0,0,0,0,0,-506, + 0,0,0,0,0,-270,0,0,0,-416, + 0,0,0,0,0,0,-122,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,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,-489,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-125,0, + 0,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,0,0,0,-187,0,0,0,0,-240, + 0,0,0,0,-245,0,0,0,0,0, + 0,-17,-206,-473,0,0,0,0,0,0, + 0,0,0,0,-435,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-48, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-267,0,0,0,0,0,0, + -341,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-193,0,0, + 0,0,0,-376,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-324,0,-436,0,0,0,0,-124, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -192,0,0,0,0,0,0,0,0,0, + 0,-73,0,0,0,0,-283,0,0,0, + 0,-313,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, + -344,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-293,0, + -343,0,0,0,0,0,0,0,0,-350, + 0,0,0,0,-381,0,0,0,-486,0, + 0,0,0,0,0,0,0,-382,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-400,0,0,0,0,-414,0, + 0,0,0,0,0,-491,0,0,0,0, + 0,0,-355,0,0,0,0,0,0,0, + 0,0,-432,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-203,0,0,0, + -212,0,0,0,0,0,0,0,-259,0, + 0,0,-434,0,-425,0,0,0,0,0, + 0,0,-480,0,-450,0,0,0,0,0, + 0,0,-471,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-472,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -475,0,0,0,0,0,0,0,-516,0, + 0,0,0,0,0,0,0,0,0,0, + -68,0,0,0,0,0,-74,0,-105,0, + 0,0,0,0,0,0,0,0,0,0, + -216,0,0,0,0,0,-217,0,-218,0, + 0,0,0,0,-219,0,0,0,0,0, + 0,0,-254,0,0,0,0,0,-255,0, + 0,0,0,0,0,0,-292,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -329,0,-424,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,0, @@ -518,7 +528,7 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,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; @@ -528,529 +538,535 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface BaseAction { public final static char baseAction[] = { - 170,4,54,83,83,34,34,66,66,38, + 169,4,133,82,82,35,35,66,66,38, 38,40,40,193,193,194,194,195,195,1, 1,15,15,15,15,15,15,15,15,16, - 16,16,14,11,11,8,8,8,8,8, - 8,2,67,67,5,5,12,12,12,12, - 44,44,134,134,135,62,62,43,17,17, + 16,16,14,11,11,6,6,6,6,6, + 6,2,64,64,5,5,12,12,44,44, + 134,134,135,55,55,43,17,17,17,17, 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,136,136,136, - 113,113,18,18,18,18,18,18,18,18, - 18,18,18,18,19,19,171,171,172,172, - 173,139,139,140,140,137,137,141,138,138, - 20,20,21,21,22,22,22,24,24,24, - 24,25,25,25,26,26,26,27,27,27, - 27,27,28,28,28,30,30,31,31,32, - 32,33,33,35,35,36,36,42,42,41, + 17,17,17,17,17,136,136,136,112,112, + 18,18,18,18,18,18,18,18,18,18, + 18,18,19,19,170,170,171,171,172,139, + 139,140,140,137,137,141,138,138,20,20, + 21,21,22,22,22,24,24,24,24,25, + 25,25,26,26,26,27,27,27,27,27, + 28,28,28,30,30,31,31,32,32,34, + 34,36,36,37,37,42,42,41,41,41, 41,41,41,41,41,41,41,41,41,41, - 41,41,39,29,142,142,97,97,174,174, - 92,196,196,68,68,68,68,68,68,68, - 68,68,69,69,69,65,65,55,55,175, - 175,70,70,70,103,103,176,176,71,71, - 71,177,177,72,72,72,72,72,73,73, - 84,84,84,84,84,84,84,49,49,49, - 49,49,114,114,115,115,50,178,23,23, - 23,23,23,48,48,87,87,87,87,87, - 149,149,144,144,144,144,144,145,145,145, - 146,146,146,147,147,147,148,148,148,88, - 88,88,88,88,89,89,89,13,13,13, - 13,13,13,13,13,13,13,13,100,119, - 119,119,119,119,119,117,117,117,118,118, - 151,151,150,150,121,121,104,79,79,80, - 81,52,47,152,152,53,51,86,86,153, - 153,143,143,122,123,123,76,76,154,154, - 63,63,63,58,58,57,64,64,75,75, - 56,56,56,90,90,99,98,98,61,61, - 59,59,60,60,45,101,101,101,93,93, - 93,94,94,95,95,95,96,96,105,105, - 105,107,107,106,106,197,197,91,91,180, - 180,180,180,180,125,46,46,156,179,179, - 126,126,126,126,127,158,181,181,37,37, - 116,128,128,128,128,108,108,120,120,120, - 159,160,160,160,160,160,160,160,160,160, - 160,160,184,184,182,182,183,183,161,161, - 161,161,162,185,110,109,109,186,186,163, - 163,163,163,102,102,102,187,187,9,9, - 10,188,188,189,164,155,155,165,165,166, - 167,167,6,6,7,168,168,168,168,168, - 168,168,168,168,168,168,168,168,168,168, - 168,168,168,168,168,168,168,168,168,168, - 168,168,168,168,168,168,168,168,168,168, - 168,168,168,168,168,168,168,77,82,82, - 169,169,130,130,131,131,131,131,131,131, - 3,132,132,129,129,111,111,85,78,74, - 157,157,112,112,190,190,190,133,133,124, - 124,191,191,170,170,1132,41,1962,1960,2219, - 2856,36,1117,33,37,947,32,34,1917,31, - 29,58,1211,112,83,84,114,1244,1493,1262, - 1254,1512,1389,1555,66,1523,1598,1579,1622,3214, - 1641,149,278,592,41,451,164,150,4543,2647, - 1781,41,3107,38,1781,1258,36,1117,340,37, - 947,1651,2447,41,939,38,237,3032,36,1117, - 33,37,947,32,34,924,31,29,58,1211, - 112,83,84,114,1244,2199,1262,1254,1512,1389, - 2363,1212,240,235,236,2221,1966,1027,41,451, - 1308,2908,4543,354,4570,279,1411,321,1400,323, - 592,41,284,316,1126,3595,237,1238,1770,2767, - 40,247,250,253,256,3434,631,420,801,1190, - 41,939,38,539,3192,36,1117,33,37,947, - 65,34,249,235,236,71,2775,657,1467,856, - 585,2697,2990,3172,4214,1655,41,939,38,2643, - 3032,36,1117,33,37,947,32,34,924,31, - 29,58,1211,112,83,84,114,1244,344,1262, - 1254,1512,1389,1555,1375,1523,1598,1579,1622,496, - 1641,149,1263,41,1708,49,515,150,48,1117, - 2769,2834,41,282,1238,41,2767,2816,444,3262, - 3263,417,3109,801,2125,516,1655,41,939,38, - 2643,3032,36,1117,33,37,947,32,34,924, - 31,29,58,1211,112,83,84,114,1244,344, - 1262,1254,1512,1389,1555,3472,1523,1598,1579,1622, - 4581,1641,149,454,2658,1032,31,515,150,445, - 685,2769,448,3262,3263,69,511,1511,1741,2644, - 2932,1911,41,939,38,1776,516,36,1117,46, - 37,947,330,336,2609,441,419,2628,495,1655, - 41,939,38,2643,3032,36,1117,33,37,947, - 32,34,924,31,29,58,1211,112,83,84, - 114,1244,344,1262,1254,1512,1389,1555,2940,1523, - 1598,1579,1622,2271,1641,149,1384,511,3283,31, - 515,150,331,746,2769,592,41,284,357,244, - 4237,1238,41,3139,3102,2650,1887,529,2628,516, - 1857,41,939,38,2643,3032,36,1117,33,37, - 947,32,34,924,31,29,58,1211,112,83, - 84,114,1244,344,1262,1254,1512,1389,1555,334, - 1523,1598,1579,1622,2591,1641,149,237,1024,31, - 290,515,150,819,332,2769,2033,41,939,38, - 511,4308,36,1117,33,37,947,67,34,1908, - 516,1350,1212,245,235,236,4068,2016,2736,2001, - 2960,2628,1986,41,939,38,2658,3032,36,1117, - 33,37,947,32,34,924,31,29,58,1211, - 112,83,84,114,1244,77,1262,1254,1512,1389, - 1555,2868,1523,1598,1579,1622,94,1641,149,108, - 3937,512,4133,380,150,1721,41,939,38,1411, - 3032,36,1117,33,37,947,32,34,924,31, - 29,58,1211,112,83,84,114,1244,857,1262, - 1254,1512,1389,1555,501,1523,1598,1579,1622,3283, - 1641,149,1238,41,2830,4133,380,150,2447,41, - 939,38,2658,3032,36,1117,33,37,947,32, - 34,924,31,29,58,1211,112,83,84,114, - 1244,2085,1262,1254,1512,1389,1555,506,1523,1598, - 1579,2504,2175,41,296,1411,30,31,386,3190, - 1824,1129,458,1921,41,939,38,99,3032,36, - 1117,33,37,947,32,34,924,31,29,58, - 1211,112,83,84,114,1244,2703,1262,1254,1512, - 1389,1555,3548,1523,1598,1579,1622,2151,1641,149, - 1357,387,3190,4133,380,150,1906,391,425,2095, - 41,939,38,3255,3032,36,1117,33,37,947, - 32,34,924,31,29,58,1211,112,83,84, - 114,1244,1339,1262,1254,1512,1389,1555,457,1523, - 1598,1579,1622,100,1641,149,1238,41,2767,281, - 164,150,2095,41,939,38,1787,3032,36,1117, - 33,37,947,32,34,924,31,29,58,1211, - 112,83,84,114,1244,355,1262,1254,1512,1389, - 1555,326,1523,1598,1579,1622,1032,1641,149,378, - 3190,2747,2219,374,150,2095,41,939,38,734, - 3032,36,1117,33,37,947,32,34,924,31, - 29,58,1211,112,83,84,114,1244,2881,1262, - 1254,1512,1389,1555,1545,1523,1598,1579,1622,2599, - 1641,149,3318,1129,1104,1271,374,150,2158,41, - 939,38,327,3192,36,1117,33,37,947,64, - 34,657,1238,3527,2095,41,939,38,166,3032, - 36,1117,33,37,947,32,34,924,31,29, - 58,1211,112,83,84,114,1244,373,1262,1254, - 1512,1389,1555,1751,1523,1598,1579,1622,501,1641, - 149,1238,2932,3283,1411,374,150,1793,41,939, - 38,2658,3032,36,1117,33,37,947,32,34, - 924,31,29,58,1211,112,83,84,114,1244, - 372,1262,1254,1512,1389,1555,1794,1523,1598,1579, - 1622,501,1641,149,1411,76,3283,436,148,150, - 2095,41,939,38,333,3032,36,1117,33,37, - 947,32,34,924,31,29,58,1211,112,83, - 84,114,1244,1847,1262,1254,1512,1389,1555,2166, - 1523,1598,1579,1622,68,1641,149,3959,853,370, - 2164,165,150,2095,41,939,38,333,3032,36, - 1117,33,37,947,32,34,924,31,29,58, - 1211,112,83,84,114,1244,1651,1262,1254,1512, - 1389,1555,291,1523,1598,1579,1622,59,1641,149, - 848,2847,1998,2989,161,150,2095,41,939,38, - 801,3032,36,1117,33,37,947,32,34,924, - 31,29,58,1211,112,83,84,114,1244,1651, - 1262,1254,1512,1389,1555,327,1523,1598,1579,1622, - 2929,1641,149,2700,41,2767,281,160,150,2095, - 41,939,38,2169,3032,36,1117,33,37,947, - 32,34,924,31,29,58,1211,112,83,84, - 114,1244,1701,1262,1254,1512,1389,1555,403,1523, - 1598,1579,1622,153,1641,149,1238,3008,2767,81, - 159,150,2095,41,939,38,2257,3032,36,1117, - 33,37,947,32,34,924,31,29,58,1211, - 112,83,84,114,1244,60,1262,1254,1512,1389, - 1555,1751,1523,1598,1579,1622,2125,1641,149,2700, - 41,2767,3010,158,150,2095,41,939,38,1236, - 3032,36,1117,33,37,947,32,34,924,31, - 29,58,1211,112,83,84,114,1244,756,1262, - 1254,1512,1389,1555,66,1523,1598,1579,1622,4472, - 1641,149,1238,41,2767,286,157,150,2095,41, - 939,38,321,3032,36,1117,33,37,947,32, - 34,924,31,29,58,1211,112,83,84,114, - 1244,1410,1262,1254,1512,1389,1555,2460,1523,1598, - 1579,1622,4485,1641,149,1238,41,2767,283,156, - 150,2095,41,939,38,1260,3032,36,1117,33, - 37,947,32,34,924,31,29,58,1211,112, - 83,84,114,1244,1338,1262,1254,1512,1389,1555, - 356,1523,1598,1579,1622,501,1641,149,2166,529, - 3283,2989,155,150,2095,41,939,38,2194,3032, - 36,1117,33,37,947,32,34,924,31,29, - 58,1211,112,83,84,114,1244,679,1262,1254, - 1512,1389,1555,2240,1523,1598,1579,1622,1969,1641, - 149,1238,41,2767,3099,154,150,2095,41,939, - 38,333,3032,36,1117,33,37,947,32,34, - 924,31,29,58,1211,112,83,84,114,1244, - 1353,1262,1254,1512,1389,1555,401,1523,1598,1579, - 1622,501,1641,149,1411,3480,3283,2219,153,150, - 2095,41,939,38,2658,3032,36,1117,33,37, - 947,32,34,924,31,29,58,1211,112,83, - 84,114,1244,1469,1262,1254,1512,1389,1555,1162, - 1523,1598,1579,1622,2719,1641,149,3600,61,3283, - 1777,152,150,2095,41,939,38,333,3032,36, - 1117,33,37,947,32,34,924,31,29,58, - 1211,112,83,84,114,1244,1934,1262,1254,1512, - 1389,1555,1980,1523,1598,1579,1622,328,1641,149, - 2771,4370,1238,3528,151,150,2051,41,939,38, - 1824,3032,36,1117,33,37,947,32,34,924, - 31,29,58,1211,112,83,84,114,1244,2230, - 1262,1254,1512,1389,1555,66,1523,1598,1579,1622, - 4489,2748,170,2095,41,939,38,1510,3032,36, - 1117,33,37,947,32,34,924,31,29,58, - 1211,112,83,84,114,1244,390,1262,1254,1512, - 1389,1555,1378,1523,1598,1579,1622,1411,1641,149, - 1238,41,1733,389,146,150,1238,41,287,329, - 2690,1417,2630,102,2359,41,939,38,1784,3032, - 36,1117,33,37,947,32,34,924,31,29, - 58,1211,112,83,84,114,1244,57,1262,1254, - 1512,1389,1555,54,1523,1598,1579,1622,66,1641, - 149,2771,2658,4517,675,195,150,2447,41,939, - 38,331,3032,36,1117,33,37,947,32,34, - 924,31,29,58,1211,112,83,84,114,1244, - 103,1262,1254,1512,1389,1555,60,1523,1598,1579, - 1622,315,2748,170,2447,41,939,38,55,3032, - 36,1117,33,37,947,32,34,924,31,29, - 58,1211,112,83,84,114,1244,288,1262,1254, - 1512,1389,1555,520,1523,1598,1579,1622,1411,2748, - 170,2033,41,939,38,55,4308,36,1117,33, - 37,947,66,34,1604,2447,41,939,38,295, - 3032,36,1117,33,37,947,32,34,924,31, - 29,58,1211,112,83,84,114,1244,2182,1262, - 1254,1512,1389,1555,78,1523,1598,1579,1622,762, - 2748,170,2447,41,939,38,2078,3032,36,1117, - 33,37,947,32,34,924,31,29,58,1211, - 112,83,84,114,1244,2688,1262,1254,1512,1389, - 1555,104,1523,1598,1579,1622,2940,2748,170,1911, - 41,939,38,2805,2960,36,1117,2174,37,947, - 2814,2112,1984,2447,41,939,38,421,3032,36, - 1117,33,37,947,32,34,924,31,29,58, - 1211,112,83,84,114,1244,382,1262,1254,1512, - 1389,1555,405,1523,1598,1579,1622,2906,2748,170, - 2491,41,939,38,420,3032,36,1117,33,37, - 947,32,34,924,31,29,58,1211,112,83, - 84,114,1244,381,1262,1254,1512,1389,1555,66, - 1523,1598,1579,1622,4555,2748,170,1911,41,939, - 38,2197,2960,36,1117,341,37,947,2960,2598, - 2125,2447,41,939,38,423,3032,36,1117,33, - 37,947,32,34,924,31,29,58,1211,112, - 83,84,114,1244,521,1262,1254,1512,1389,1555, - 302,1523,1598,2477,95,2617,226,108,2447,41, - 939,38,3520,3032,36,1117,33,37,947,32, - 34,924,31,29,58,1211,112,83,84,114, - 1244,1704,1262,1254,1512,1389,1555,2960,1523,2450, - 2447,41,939,38,2267,3032,36,1117,33,37, - 947,32,34,924,31,29,58,1211,112,83, - 84,114,1244,147,1262,1254,1512,1389,1555,1604, - 2458,2447,41,939,38,306,3032,36,1117,33, - 37,947,32,34,924,31,29,58,1211,112, - 83,84,114,1244,325,1262,1254,1512,2422,2447, - 41,939,38,529,3032,36,1117,33,37,947, - 32,34,924,31,29,58,1211,112,83,84, - 114,1244,2547,1262,1254,1512,2431,2447,41,939, - 38,2803,3032,36,1117,33,37,947,32,34, - 924,31,29,58,1211,112,83,84,114,1244, - 1314,1262,1254,2181,2447,41,939,38,240,3032, - 36,1117,33,37,947,32,34,924,31,29, - 58,1211,112,83,84,114,1244,1508,1262,1254, - 2261,2447,41,939,38,161,3032,36,1117,33, - 37,947,32,34,924,31,29,58,1211,112, - 83,84,114,1244,669,1262,1254,2269,2447,41, - 939,38,2219,3032,36,1117,33,37,947,32, - 34,924,31,29,58,1211,112,83,84,114, - 1244,262,1262,1254,2305,535,2141,41,939,38, - 2281,4308,36,1117,33,37,947,32,34,31, - 509,2658,4010,714,234,1911,41,939,38,2575, - 162,36,1117,2262,37,947,2661,4218,1,186, - 3052,4010,535,1238,41,1733,389,209,220,2692, - 208,217,218,219,221,351,175,1241,41,1733, - 389,234,1238,41,1733,389,174,162,2724,189, - 173,176,177,178,179,180,186,3052,4010,2265, - 429,2799,41,285,209,220,2692,208,217,218, - 219,221,1417,175,57,2890,41,395,1075,432, - 1727,2705,857,174,187,2042,190,173,176,177, - 178,179,180,2535,41,1733,389,31,2587,4072, - 2499,4241,2447,41,939,38,242,3032,36,1117, - 33,37,947,32,34,924,31,29,58,1211, - 112,83,84,114,1244,31,1262,2331,1612,1018, - 278,1485,41,939,38,1695,1110,36,1117,340, - 37,947,2541,41,939,38,2833,2140,36,1117, - 340,37,947,2658,237,2357,2568,2447,41,939, - 38,2221,3032,36,1117,33,37,947,32,34, - 924,31,29,58,1211,112,83,84,114,2155, - 240,235,236,3323,520,4570,2772,96,321,1400, - 323,392,425,279,316,1126,4570,521,1381,318, - 3070,323,2890,41,395,1636,353,2988,237,247, - 250,253,256,3434,2799,41,282,2751,31,1971, - 857,539,1129,1351,345,1120,558,350,66,2635, - 2644,2932,2981,4566,252,235,236,856,585,2697, - 2990,3172,4214,2447,41,939,38,4102,3032,36, - 1117,33,37,947,32,34,924,31,29,58, - 1211,112,83,84,114,1244,2849,1262,2344,1706, - 41,939,38,4458,857,36,1117,340,37,947, - 2909,1655,408,1766,41,939,38,1781,3283,36, - 1117,340,37,947,353,1591,3557,1643,849,1129, - 2561,680,3283,352,2658,2632,2667,41,1733,389, - 3331,367,345,1120,558,350,4582,2744,31,1118, - 343,4106,799,4570,162,445,321,1400,323,394, - 425,2263,316,1126,533,2643,2771,4570,3440,333, - 321,1400,323,57,353,3237,316,1126,349,1727, - 676,290,535,334,344,1668,1547,3995,2081,1862, - 2643,3283,345,1120,558,350,2903,1950,4072,2540, - 2551,234,353,4355,31,2658,914,162,4527,2681, - 2886,2960,1346,393,425,2999,186,3052,4010,1129, - 347,1120,558,350,209,220,2692,208,217,218, - 219,221,289,175,436,309,313,1335,535,3469, - 1774,2643,333,174,162,2658,3521,173,176,177, - 178,179,180,206,3963,2044,2268,234,31,2643, - 2681,1650,1303,162,50,2755,3308,2658,1801,2855, - 2521,523,186,3052,4010,535,2847,361,2681,75, - 209,220,2692,208,217,218,219,221,2995,175, - 1734,2854,2848,2869,234,621,2890,41,395,174, - 162,74,184,173,176,177,178,179,180,186, - 3052,4010,1637,41,1733,389,2846,209,220,2692, - 208,217,218,219,221,610,175,2658,503,535, - 1335,237,2960,2978,2643,2658,174,2964,2997,182, - 173,176,177,178,179,180,362,1973,234,57, - 3017,2906,2771,2681,162,1727,591,255,235,236, - 2768,73,697,186,3052,4010,535,500,502,72, - 185,209,220,2692,208,217,218,219,221,3021, - 175,352,31,1950,31,234,2770,1395,2643,2589, - 174,162,2771,183,173,176,177,178,179,180, - 186,3052,4010,2658,3549,1837,3167,344,209,220, - 2692,208,217,218,219,221,784,175,300,2782, - 535,503,353,2824,1238,41,296,174,3023,2769, - 193,173,176,177,178,179,180,3599,2003,234, - 345,1120,558,350,1819,162,2998,1196,2551,2658, - 52,2755,2941,871,186,3052,4010,535,299,3000, - 501,502,209,220,2692,208,217,218,219,221, - 2219,175,1524,41,1733,389,234,1238,41,1733, - 389,174,162,63,3563,173,176,177,178,179, - 180,186,3052,4010,1238,41,1733,389,2658,209, - 220,2692,208,217,218,219,221,958,175,57, - 4250,535,2960,237,431,1727,1383,2658,174,2771, - 2771,198,173,176,177,178,179,180,3330,31, - 234,57,62,2643,4018,2899,162,1727,1152,258, - 235,236,2945,3028,1045,186,3052,4010,535,2960, - 204,324,344,209,220,2692,208,217,218,219, - 221,3034,175,1238,41,1733,389,234,1238,41, - 1733,389,174,162,2769,192,173,176,177,178, - 179,180,186,3052,4010,307,383,203,2966,1830, - 209,220,2692,208,217,218,219,221,31,175, - 57,2048,2780,3019,31,430,1727,2832,4028,174, - 2960,3032,200,173,176,177,178,179,180,2447, - 41,939,38,2731,3032,36,1117,33,37,947, - 32,34,924,31,29,58,1211,112,83,84, - 114,1244,3038,2004,2447,41,939,38,305,3032, - 36,1117,33,37,947,32,34,924,31,29, - 58,1211,112,83,84,114,1244,88,2129,1367, - 41,3107,38,1781,3283,36,1117,340,37,947, - 2215,41,939,38,1695,3039,36,1117,340,37, - 947,2447,41,939,38,2219,3032,36,1117,33, - 37,947,32,34,924,31,29,58,1211,112, - 83,84,114,2173,2609,41,2686,2851,2844,3523, - 31,3040,2643,4570,4160,333,321,1400,323,3041, - 2658,2064,316,1126,4570,4010,4233,321,1400,323, - 3045,2681,2599,316,1126,631,1129,1312,3046,31, - 523,57,1375,1561,175,353,524,1727,871,4355, - 1228,41,939,38,107,3283,36,1117,340,37, - 947,166,2219,345,1120,558,350,2447,41,939, - 38,525,3032,36,1117,33,37,947,32,34, - 924,31,29,58,1211,112,83,84,114,2180, - 3047,588,2658,1583,41,1733,389,2960,3050,503, - 2282,2709,4010,3472,4570,2643,334,321,1400,323, - 3052,2815,2675,317,1126,2643,3053,522,31,3054, - 416,3109,3531,1647,234,353,3992,2358,31,2002, - 57,625,4574,814,234,207,1727,55,500,502, - 335,336,1738,347,1120,558,350,211,220,2692, - 210,217,218,219,221,2611,3014,211,220,2692, - 210,217,218,219,221,1238,41,1733,389,31, - 31,2857,31,4306,3541,2643,1129,3467,212,214, - 216,297,298,2919,427,222,213,215,212,214, - 216,297,298,2919,234,222,213,215,5229,31, - 31,162,57,2957,2711,5229,31,3080,1727,2764, - 744,1321,5229,5229,5229,4096,3072,211,220,2692, - 210,217,218,219,221,4096,3112,2403,41,939, - 38,5229,3032,36,1117,33,37,947,32,34, - 924,31,29,58,1211,93,83,84,212,214, - 216,297,298,2919,5229,222,213,215,2447,41, - 939,38,5229,3032,36,1117,33,37,947,32, - 34,924,31,29,58,1211,112,83,84,92, - 31,5229,5229,5229,1566,4096,3239,2447,1770,939, - 1813,5229,3032,36,1117,33,37,947,32,34, - 924,31,29,58,1211,112,83,84,91,2447, - 41,939,38,5229,3032,36,1117,33,37,947, - 32,34,924,31,29,58,1211,112,83,84, - 90,2447,41,939,38,5229,3032,36,1117,33, - 37,947,32,34,924,31,29,58,1211,112, - 83,84,89,2447,41,939,38,5229,3032,36, - 1117,33,37,947,32,34,924,31,29,58, - 1211,112,83,84,88,2447,41,939,38,5229, - 3032,36,1117,33,37,947,32,34,924,31, - 29,58,1211,112,83,84,87,2447,41,939, - 38,5229,3032,36,1117,33,37,947,32,34, - 924,31,29,58,1211,112,83,84,86,2447, - 41,939,38,5229,3032,36,1117,33,37,947, - 32,34,924,31,29,58,1211,112,83,84, - 85,2313,41,939,38,5229,3032,36,1117,33, - 37,947,32,34,924,31,29,58,1211,112, - 83,84,110,2447,41,939,38,5229,3032,36, - 1117,33,37,947,32,34,924,31,29,58, - 1211,112,83,84,116,2447,41,939,38,5229, - 3032,36,1117,33,37,947,32,34,924,31, - 29,58,1211,112,83,84,115,2447,41,939, - 38,5229,3032,36,1117,33,37,947,32,34, - 924,31,29,58,1211,112,83,84,113,2447, - 41,939,38,2960,3032,36,1117,33,37,947, - 32,34,924,31,29,58,1211,112,83,84, - 111,1902,41,939,38,1781,5229,36,1117,340, - 37,947,31,2999,5229,31,4398,535,31,3601, - 2876,205,1129,2960,2643,1238,41,1733,389,2658, - 2938,2144,5229,2753,2531,2643,4252,2643,940,41, - 1733,389,162,234,1238,41,296,162,1375,31, - 5229,186,3052,3438,344,4570,234,1042,321,1400, - 323,301,450,2337,316,1126,211,220,2692,210, - 217,218,219,221,2658,278,626,1862,201,211, - 220,2692,210,217,218,219,221,1476,1241,41, - 1733,389,1238,41,1733,389,188,212,214,216, - 297,298,2919,31,518,213,215,1961,449,3472, - 212,214,216,297,298,2919,2785,517,213,215, - 2643,527,2658,309,313,57,2918,2658,5229,278, - 2643,1727,55,31,5229,5229,2948,2270,2905,234, - 2643,2175,3166,296,4312,5229,332,336,4003,234, - 1956,79,5229,31,3308,5229,379,3240,5229,234, - 5229,3082,211,220,2692,210,217,218,219,221, - 5229,5229,211,220,2692,210,217,218,219,221, - 1375,3548,211,220,2692,210,217,218,219,221, - 4226,202,280,212,214,216,297,298,2919,454, - 223,213,215,212,214,216,297,298,2919,2658, - 308,213,215,212,214,216,297,298,2919,440, - 497,213,215,1530,41,939,38,1781,2658,36, - 1117,340,37,947,2604,41,1733,389,31,2587, - 5229,3472,2622,3136,31,1787,3003,243,535,5229, - 535,5229,5229,2825,41,1733,389,1238,41,1733, - 389,1201,3173,5229,31,2643,4393,344,1129,344, - 31,278,31,162,952,162,3981,4570,3636,336, - 321,1400,323,1042,234,194,316,1126,2959,2769, - 57,4381,3400,162,57,237,1727,55,31,1862, - 1727,731,1129,1354,956,5229,2960,1480,406,4446, - 1530,41,939,38,1781,2573,36,1117,340,37, - 947,241,235,236,2658,2658,1375,162,1238,41, - 1733,389,2960,5229,279,5229,5229,2485,407,408, - 409,297,298,2919,4403,310,313,5229,5229,196, - 248,251,254,257,3434,2658,5229,5229,3415,3492, - 2658,5229,539,2908,4570,57,5229,321,1400,323, - 227,1727,591,316,1126,1500,41,939,38,2960, - 3283,36,1117,340,37,947,3237,3472,5229,4359, - 1500,41,939,38,3264,3283,36,1117,340,37, - 947,1530,41,939,38,1781,5229,36,1117,340, - 37,947,5229,1238,41,1733,389,199,1375,5229, - 410,412,4286,3010,3710,336,5229,1129,5229,4570, - 5229,334,321,1400,323,5229,5229,5229,319,1126, - 5229,5229,5229,1870,4570,4460,334,321,1400,323, - 57,5229,162,317,1126,4570,1727,1426,321,1400, - 323,5229,168,5229,316,1126,1838,41,939,38, - 3389,5229,36,1117,340,37,947,3546,1547,3472, - 1276,5229,2643,3283,2643,4393,5229,5229,5229,5229, - 5229,5229,1524,41,1733,389,2939,5229,5229,5229, - 2643,2681,5229,234,402,2825,41,1733,389,2825, - 41,1733,389,5229,2599,5229,4113,336,1129,344, - 4570,5229,5229,318,3070,323,1480,406,4446,57, - 528,5229,5229,5229,333,1727,55,2825,41,1733, - 389,2769,57,166,5229,5229,57,1779,1727,55, - 5229,2643,1727,55,2555,5229,531,407,408,409, - 297,298,2919,2825,41,1733,389,2592,3480,361, - 2681,3197,5229,5229,57,2979,41,1733,389,5229, - 1727,55,2908,2854,2848,2869,2982,41,1733,389, - 1238,41,1733,389,1779,5229,5229,4340,2643,3288, - 57,2219,2219,5229,5229,31,1727,55,5229,2643, - 2064,3169,57,5229,5229,4233,5229,2681,1727,55, - 3557,5229,31,57,5229,4005,535,57,344,1727, - 55,5229,3051,1727,1469,5229,2643,3144,361,410, - 413,4010,4010,31,5229,344,5229,535,4024,5229, - 2769,162,3123,2848,2869,344,377,377,31,5229, - 31,194,2643,5229,2643,1856,344,4381,5229,31, - 31,31,162,535,2643,2643,5229,4268,5229,5229, - 31,344,194,344,1129,361,5229,4067,4381,5229, - 5229,5229,344,344,344,5229,5229,5229,162,3522, - 2848,2869,5229,2769,5229,2769,31,5229,194,162, - 2643,5229,1647,31,4381,2769,2769,1129,1899,2965, - 2925,5229,5229,5229,31,4107,5229,5229,1129,344, - 507,505,31,2599,5229,31,1129,1129,5229,1129, - 2599,2599,162,5229,1129,1129,4189,5229,5229,5229, - 31,2769,2987,162,1129,5229,5229,375,4083,5229, - 5229,162,166,3047,162,5229,532,5229,5229,166, - 166,3055,4208,428,1947,5229,5229,5229,5229,162, - 5229,5229,5229,5229,5229,5229,5229,5229,5229,4335, - 5229,5229,5229,5229,5229,5229,5229,5229,5229,5229, - 5229,5229,5229,5229,5229,5229,5229,5229,5229,5229, - 5229,5229,5229,5229,5229,5229,5229,5229,5229,5229, - 5229,5229,4305,5229,5229,5229,5229,5229,5229,5229, - 3218,5229,5229,5229,5229,5229,5229,3450,4054,5229, - 0,45,5249,0,45,5248,0,786,35,0, - 438,859,0,452,919,0,44,5249,0,44, - 5248,0,2481,132,0,1,442,0,456,999, - 0,455,1075,0,786,47,0,1077,97,0, - 786,388,0,41,39,0,38,40,0,45, - 647,0,1,564,0,1,5506,0,1,5505, - 0,1,5504,0,1,5503,0,1,5502,0, - 1,5501,0,1,5500,0,1,5499,0,1, - 5498,0,1,5497,0,1,5496,0,45,1, - 5249,0,45,1,5248,0,722,1,0,5468, - 246,0,5467,246,0,5568,246,0,5567,246, - 0,5495,246,0,5494,246,0,5493,246,0, - 5492,246,0,5491,246,0,5490,246,0,5489, - 246,0,5488,246,0,5506,246,0,5505,246, - 0,5504,246,0,5503,246,0,5502,246,0, - 5501,246,0,5500,246,0,5499,246,0,5498, - 246,0,5497,246,0,5496,246,0,45,246, - 5249,0,45,246,5248,0,5273,246,0,56, - 5249,0,56,5248,0,5235,1,0,5234,1, - 0,242,1249,0,389,38,0,38,389,0, - 388,35,0,35,388,0,51,5271,0,51, - 43,0,5249,56,0,5248,56,0,2481,134, - 0,2481,133,0,5560,443,0,2549,443,0, - 5273,1,0,45,1,0,55,43,0,1, - 98,0,43,55,0,499,2916,0,5273,233, - 1,0,45,233,1,0,233,415,0,43, - 5249,0,43,5248,0,1,5249,2,0,1, - 5248,2,0,43,5249,2,0,43,5248,2, - 0,5249,42,0,5248,42,0,5271,53,0, - 53,43,0,5239,404,0,5238,404,0,1, - 4290,0,1,647,0,1,4011,0,233,414, - 0,3558,320,0,5560,101,0,2549,101,0, - 41,80,0,1,5560,0,1,2549,0,45, - 1,5249,2,0,45,1,5248,2,0,45, - 5249,2,0,45,5248,2,0,283,4494,0, - 499,4013,0,233,1,0,233,225,0,233, - 224,0,1,2625,0,1,2752,0,5241,1, - 0,5237,1,0,233,1,3362,0,5238,233, - 0,3387,233,0,5241,384,0,5240,384,0, - 3474,233,0,10,12,0,8,10,12,0, - 191,3227,0,3586,384,0,8,12,0 + 39,29,142,142,96,96,173,173,91,196, + 196,67,67,67,67,67,67,67,67,67, + 68,68,68,65,65,54,54,174,174,69, + 69,69,102,102,175,175,70,70,70,176, + 176,71,71,71,71,71,72,72,83,83, + 83,83,83,83,83,49,49,49,49,49, + 113,113,114,114,50,177,23,23,23,23, + 23,48,48,86,86,86,86,86,149,149, + 144,144,144,144,144,145,145,145,146,146, + 146,147,147,147,148,148,148,87,87,87, + 87,87,88,88,88,13,13,13,13,13, + 13,13,13,13,13,13,97,118,118,118, + 118,118,118,116,116,116,117,117,151,151, + 150,150,120,120,103,78,78,79,80,52, + 47,152,152,53,51,85,85,153,153,143, + 143,121,122,122,75,75,154,154,62,62, + 62,58,58,57,63,63,74,74,56,56, + 56,89,89,99,98,98,61,61,59,59, + 60,60,45,100,100,100,92,92,92,93, + 93,94,94,94,95,95,104,104,104,106, + 106,105,105,197,197,90,90,179,179,179, + 179,179,124,46,46,156,178,178,125,125, + 125,125,126,158,180,180,33,33,115,127, + 127,127,127,107,107,119,119,119,159,160, + 160,160,160,160,160,160,160,160,160,160, + 183,183,181,181,182,182,161,161,161,161, + 162,184,109,108,108,185,185,163,163,163, + 163,101,101,101,186,186,8,8,9,187, + 187,188,164,155,155,165,165,166,167,167, + 7,7,10,189,189,189,189,189,189,189, + 189,189,189,189,189,189,189,189,189,189, + 189,189,189,189,189,189,189,189,189,189, + 189,189,189,189,189,189,189,189,189,189, + 189,189,189,189,189,76,81,81,168,168, + 129,129,130,130,130,130,130,130,3,131, + 131,128,128,110,110,84,77,73,157,157, + 111,111,190,190,190,132,132,123,123,191, + 191,169,169,1132,41,1729,1722,1090,2881,33, + 36,37,803,860,32,34,1720,31,29,56, + 873,110,81,82,112,923,1269,986,977,1038, + 1020,1159,1332,1082,1238,1201,276,1245,1212,1334, + 147,504,41,294,162,148,2508,41,790,38, + 2011,4128,33,36,37,803,860,63,34,1343, + 2396,41,790,38,235,1937,33,36,37,803, + 860,32,34,779,31,29,56,873,110,81, + 82,112,923,2493,986,977,1038,1020,2193,238, + 233,234,504,41,1490,387,2396,41,790,38, + 277,1937,33,36,37,803,860,32,34,779, + 31,29,56,873,110,81,82,90,245,248, + 251,254,3054,2482,1499,427,2659,41,790,38, + 676,4128,33,36,37,803,860,62,34,504, + 1543,1686,40,1427,2629,556,1980,3223,3651,3662, + 4207,4450,4269,1660,41,790,38,2830,1937,33, + 36,37,803,860,32,34,779,31,29,56, + 873,110,81,82,112,923,342,986,977,1038, + 1020,1159,67,1082,1238,1201,1668,1245,2765,1334, + 147,2149,1162,44,513,148,4165,683,3565,1650, + 41,790,38,1980,4671,33,36,37,803,860, + 65,34,2578,514,1660,41,790,38,2830,1937, + 33,36,37,803,860,32,34,779,31,29, + 56,873,110,81,82,112,923,342,986,977, + 1038,1020,1159,1927,1082,1238,1201,331,1245,1396, + 1334,147,331,41,282,513,148,4418,2828,3565, + 2622,718,66,509,3220,1113,3108,504,3108,1773, + 41,790,38,2624,514,47,36,37,803,860, + 2744,2761,756,1508,2784,1980,1660,41,790,38, + 2830,1937,33,36,37,803,860,32,34,779, + 31,29,56,873,110,81,82,112,923,342, + 986,977,1038,1020,1159,44,1082,1238,1201,1034, + 1245,313,1334,147,509,2771,92,513,148,106, + 2686,3565,683,331,41,282,1983,733,4667,375, + 1980,4491,2828,2577,1815,2784,514,1865,41,790, + 38,2830,1937,33,36,37,803,860,32,34, + 779,31,29,56,873,110,81,82,112,923, + 342,986,977,1038,1020,1159,1754,1082,1238,1201, + 2771,1245,44,1334,147,288,744,289,513,148, + 389,423,3565,417,375,2149,509,504,41,294, + 4165,2765,1790,41,790,38,352,514,46,36, + 37,803,860,815,2858,2662,3142,2784,1994,41, + 790,38,443,1937,33,36,37,803,860,32, + 34,779,31,29,56,873,110,81,82,112, + 923,373,986,977,1038,1020,1159,582,1082,1238, + 1201,331,1245,2759,1334,147,2488,510,3621,378, + 148,1729,41,790,38,2519,1937,33,36,37, + 803,860,32,34,779,31,29,56,873,110, + 81,82,112,923,3198,986,977,1038,1020,1159, + 1814,1082,1238,1201,592,1245,3545,1334,147,2457, + 3403,3621,378,148,2102,41,790,38,156,1937, + 33,36,37,803,860,32,34,779,31,29, + 56,873,110,81,82,112,923,2721,986,977, + 1038,1020,1159,1913,1082,1238,1201,2203,1245,93, + 1334,147,106,384,1849,162,148,494,1929,41, + 790,38,234,1937,33,36,37,803,860,32, + 34,779,31,29,56,873,110,81,82,112, + 923,401,986,977,1038,1020,1159,1980,1082,1238, + 1201,1088,1245,1980,1334,147,385,1849,3621,378, + 148,2216,41,393,2102,41,790,38,3414,1937, + 33,36,37,803,860,32,34,779,31,29, + 56,873,110,81,82,112,923,3120,986,977, + 1038,1020,1159,2771,1082,1238,1201,2717,1245,60, + 1334,147,504,41,2926,372,148,3627,434,1718, + 41,294,2396,41,790,38,556,1937,33,36, + 37,803,860,32,34,779,31,29,56,873, + 110,81,82,112,923,399,986,977,1038,1020, + 1159,1259,2454,376,1849,2102,41,790,38,2225, + 1937,33,36,37,803,860,32,34,779,31, + 29,56,873,110,81,82,112,923,3562,986, + 977,1038,1020,1159,355,1082,1238,1201,1140,1245, + 1236,1334,147,527,721,46,372,148,371,2102, + 41,790,38,1803,1937,33,36,37,803,860, + 32,34,779,31,29,56,873,110,81,82, + 112,923,1107,986,977,1038,1020,1159,44,1082, + 1238,1201,816,1245,1316,1334,147,1088,1596,4512, + 372,148,1034,2885,1801,41,790,38,2828,1937, + 33,36,37,803,860,32,34,779,31,29, + 56,873,110,81,82,112,923,160,986,977, + 1038,1020,1159,2847,1082,1238,1201,531,1245,370, + 1334,147,1260,2037,1415,146,148,4315,2102,41, + 790,38,161,1937,33,36,37,803,860,32, + 34,779,31,29,56,873,110,81,82,112, + 923,403,986,977,1038,1020,1159,493,1082,1238, + 1201,248,1245,368,1334,147,504,41,285,163, + 148,2102,41,790,38,1674,1937,33,36,37, + 803,860,32,34,779,31,29,56,873,110, + 81,82,112,923,519,986,977,1038,1020,1159, + 354,1082,1238,1201,2519,1245,1088,1334,147,527, + 2519,853,159,148,2102,41,790,38,439,1937, + 33,36,37,803,860,32,34,779,31,29, + 56,873,110,81,82,112,923,426,986,977, + 1038,1020,1159,870,1082,1238,1201,537,1245,681, + 1334,147,443,2519,2825,158,148,2102,41,790, + 38,1260,1937,33,36,37,803,860,32,34, + 779,31,29,56,873,110,81,82,112,923, + 2738,986,977,1038,1020,1159,456,1082,1238,1201, + 2519,1245,455,1334,147,97,3954,2825,157,148, + 2102,41,790,38,1260,1937,33,36,37,803, + 860,32,34,779,31,29,56,873,110,81, + 82,112,923,353,986,977,1038,1020,1159,323, + 1082,1238,1201,1355,1245,3976,1334,147,527,30, + 1474,156,148,2102,41,790,38,1260,1937,33, + 36,37,803,860,32,34,779,31,29,56, + 873,110,81,82,112,923,75,986,977,1038, + 1020,1159,57,1082,1238,1201,592,1245,2146,1334, + 147,4525,74,1317,155,148,2102,41,790,38, + 1260,1937,33,36,37,803,860,32,34,779, + 31,29,56,873,110,81,82,112,923,76, + 986,977,1038,1020,1159,44,1082,1238,1201,3045, + 1245,768,1334,147,1413,59,1708,154,148,2102, + 41,790,38,1260,1937,33,36,37,803,860, + 32,34,779,31,29,56,873,110,81,82, + 112,923,324,986,977,1038,1020,1159,44,1082, + 1238,1201,4296,1245,1270,1334,147,1788,58,4570, + 153,148,2102,41,790,38,2812,1937,33,36, + 37,803,860,32,34,779,31,29,56,873, + 110,81,82,112,923,325,986,977,1038,1020, + 1159,44,1082,1238,1201,812,1245,941,1334,147, + 1546,2132,2626,152,148,2102,41,790,38,2566, + 1937,33,36,37,803,860,32,34,779,31, + 29,56,873,110,81,82,112,923,2905,986, + 977,1038,1020,1159,44,1082,1238,1201,795,1245, + 592,1334,147,2596,2519,4575,151,148,2102,41, + 790,38,1260,1937,33,36,37,803,860,32, + 34,779,31,29,56,873,110,81,82,112, + 923,2698,986,977,1038,1020,1159,44,1082,1238, + 1201,4310,1245,592,1334,147,75,349,4588,150, + 148,2102,41,790,38,1260,1937,33,36,37, + 803,860,32,34,779,31,29,56,873,110, + 81,82,112,923,852,986,977,1038,1020,1159, + 44,1082,1238,1201,654,1245,326,1334,147,1980, + 94,1613,149,148,2059,41,790,38,2847,1937, + 33,36,37,803,860,32,34,779,31,29, + 56,873,110,81,82,112,923,939,986,977, + 1038,1020,1159,44,1082,1238,1201,2399,1245,3636, + 2899,168,2102,41,790,38,300,1937,33,36, + 37,803,860,32,34,779,31,29,56,873, + 110,81,82,112,923,932,986,977,1038,1020, + 1159,2896,1082,1238,1201,2468,1245,44,1334,147, + 592,3061,417,144,148,4609,327,1416,41,1490, + 387,2309,41,790,38,1764,1937,33,36,37, + 803,860,32,34,779,31,29,56,873,110, + 81,82,112,923,380,986,977,1038,1020,1159, + 55,1082,1238,1201,1026,1245,1175,1334,147,1911, + 1421,1851,193,148,2396,41,790,38,2847,1937, + 33,36,37,803,860,32,34,779,31,29, + 56,873,110,81,82,112,923,1710,986,977, + 1038,1020,1159,44,1082,1238,1201,3557,1245,2847, + 2899,168,2396,41,790,38,224,1937,33,36, + 37,803,860,32,34,779,31,29,56,873, + 110,81,82,112,923,388,986,977,1038,1020, + 1159,44,1082,1238,1201,4041,1245,304,2899,168, + 1790,41,790,38,2520,1260,1323,36,37,803, + 860,2396,41,790,38,293,1937,33,36,37, + 803,860,32,34,779,31,29,56,873,110, + 81,82,112,923,1499,986,977,1038,1020,1159, + 2051,1082,1238,1201,2718,1245,2847,2899,168,2396, + 41,790,38,3003,1937,33,36,37,803,860, + 32,34,779,31,29,56,873,110,81,82, + 112,923,756,986,977,1038,1020,1159,44,1082, + 1238,1201,2094,1245,183,2899,168,1790,41,790, + 38,843,1260,1858,36,37,803,860,2396,41, + 790,38,419,1937,33,36,37,803,860,32, + 34,779,31,29,56,873,110,81,82,112, + 923,2847,986,977,1038,1020,1159,2138,1082,1238, + 1201,2173,1245,930,2899,168,2439,41,790,38, + 418,1937,33,36,37,803,860,32,34,779, + 31,29,56,873,110,81,82,112,923,202, + 986,977,1038,1020,1159,44,1082,1238,1201,3620, + 1245,931,2899,168,3220,504,41,1490,387,1260, + 390,423,1718,3422,294,2396,41,790,38,421, + 1937,33,36,37,803,860,32,34,779,31, + 29,56,873,110,81,82,112,923,55,986, + 977,1038,1020,1159,73,1082,1238,1201,52,2610, + 504,3382,2225,2396,41,790,38,3729,1937,33, + 36,37,803,860,32,34,779,31,29,56, + 873,110,81,82,112,923,2988,986,977,1038, + 1020,1159,1715,1082,1238,2456,2396,41,790,38, + 2115,1937,33,36,37,803,860,32,34,779, + 31,29,56,873,110,81,82,112,923,2597, + 986,977,1038,1020,1159,1107,1082,2352,2396,41, + 790,38,1809,1937,33,36,37,803,860,32, + 34,779,31,29,56,873,110,81,82,112, + 923,2598,986,977,1038,2320,2396,41,790,38, + 2152,1937,33,36,37,803,860,32,34,779, + 31,29,56,873,110,81,82,112,923,756, + 986,977,1038,2339,1306,41,790,38,4047,4507, + 33,36,37,803,860,338,34,519,1227,41, + 790,38,4443,4507,33,36,37,803,860,338, + 34,2396,1543,790,1550,2235,1937,33,36,37, + 803,860,32,34,779,31,29,56,873,110, + 81,82,89,350,321,1980,1398,504,41,1490, + 387,319,1631,321,1586,2847,314,1588,756,504, + 41,1490,387,504,3741,319,1631,321,351,3201, + 314,1588,504,41,1686,2912,504,41,1921,1883, + 55,518,351,3047,2844,2771,343,1459,862,348, + 1421,589,430,201,3195,48,2911,392,423,521, + 343,1459,862,348,2396,41,790,38,1772,1937, + 33,36,37,803,860,32,34,779,31,29, + 56,873,110,81,82,112,923,1293,986,977, + 1976,2396,41,790,38,408,1937,33,36,37, + 803,860,32,34,779,31,29,56,873,110, + 81,82,112,923,1302,986,977,2007,788,504, + 41,1490,387,331,41,449,391,423,4604,2396, + 41,790,38,365,1937,33,36,37,803,860, + 32,34,779,31,29,56,873,110,81,82, + 112,923,276,986,977,2064,2396,41,790,38, + 394,1937,33,36,37,803,860,32,34,779, + 31,29,56,873,110,81,82,112,923,2847, + 986,977,2104,1639,41,790,38,4561,4541,33, + 36,37,803,860,338,34,1586,1260,1502,41, + 790,38,3032,4507,33,36,37,803,860,338, + 34,2404,1911,2727,262,2830,278,303,533,2161, + 41,790,38,1989,4671,33,36,37,803,860, + 32,34,72,507,2404,2167,400,231,2694,331, + 319,1631,321,160,1613,314,1588,44,2753,41, + 283,2830,184,2106,2771,316,3271,321,673,2176, + 207,218,3068,206,215,216,217,219,173,1911, + 342,75,4401,678,41,1490,387,932,286,172, + 1260,187,171,174,175,176,177,178,442,3551, + 3552,1,3565,2212,1512,533,2724,4141,592,4165, + 2830,360,932,4633,307,311,55,1593,2060,1724, + 2206,1878,3285,2830,231,71,1421,2856,1260,2404, + 160,2514,418,41,449,2664,1988,4604,2569,184, + 2106,2771,342,3434,1972,287,3561,207,218,3068, + 206,215,216,217,219,173,504,41,1490,387, + 332,44,2564,70,1333,4623,172,185,188,171, + 174,175,176,177,178,1534,41,790,38,4047, + 4507,33,36,37,803,860,338,34,2180,276, + 2482,41,1490,387,2757,2723,501,186,2741,1550, + 41,790,38,240,4541,33,36,37,803,860, + 338,34,504,41,1490,387,1746,1260,2456,1650, + 41,790,38,276,4671,33,36,37,803,860, + 64,34,319,1631,321,499,500,314,1588,379, + 2850,2187,41,1490,387,429,2753,41,280,351, + 522,235,2919,339,1260,332,319,1631,321,1677, + 1260,315,1588,504,41,1686,279,343,1459,862, + 348,2072,2668,351,55,523,238,233,234,44, + 2758,41,280,4112,1421,2663,2684,277,2519,61, + 1840,345,1459,862,348,60,2569,446,3551,3552, + 1458,41,1686,279,932,245,248,251,254,3054, + 3321,591,1104,2353,41,790,38,676,1937,33, + 36,37,803,860,32,34,779,31,29,56, + 873,91,81,82,3223,3651,3662,4207,4450,4269, + 2396,41,790,38,3345,1937,33,36,37,803, + 860,32,34,779,31,29,56,873,110,81, + 82,112,923,2519,986,2151,2396,41,790,38, + 101,1937,33,36,37,803,860,32,34,779, + 31,29,56,873,110,81,82,112,923,2803, + 986,2191,1488,41,3359,38,4561,4541,33,36, + 37,803,860,338,34,1337,2040,1260,504,41, + 1490,387,2232,1162,1190,41,2834,1717,2720,4305, + 2145,1113,3108,349,2830,2452,2918,533,1974,41, + 790,38,2633,4507,33,36,37,803,860,338, + 34,428,322,342,1260,102,231,55,331,319, + 1631,321,160,2235,314,1588,1911,1421,2486,1818, + 436,184,2106,2771,533,1240,3118,1748,1604,207, + 218,3068,206,215,216,217,219,173,1337,105, + 44,4401,932,231,3630,316,3271,321,172,160, + 3736,171,174,175,176,177,178,523,184,2106, + 2771,533,2789,328,334,1260,207,218,3068,206, + 215,216,217,219,173,504,3228,1686,79,1980, + 231,1711,298,50,2911,172,160,182,171,174, + 175,176,177,178,44,184,2106,2771,2830,3118, + 3398,288,1911,207,218,3068,206,215,216,217, + 219,173,610,414,3364,1873,533,342,1914,2771, + 1260,2794,172,4165,180,171,174,175,176,177, + 178,2719,3142,520,1157,231,333,334,1260,3565, + 2487,160,2564,1387,1458,41,1686,3237,2937,697, + 184,2106,2771,533,1634,2019,242,2409,207,218, + 3068,206,215,216,217,219,173,438,297,452, + 2485,44,231,447,332,4045,2945,172,160,181, + 171,174,175,176,177,178,784,184,2106,2771, + 533,2880,351,2876,2895,207,218,3068,206,215, + 216,217,219,173,235,504,41,1686,284,231, + 345,1459,862,348,172,160,191,171,174,175, + 176,177,178,871,184,2106,2771,533,525,243, + 233,234,207,218,3068,206,215,216,217,219, + 173,504,41,1686,281,2949,231,504,41,1490, + 387,172,160,3753,171,174,175,176,177,178, + 958,184,2106,2771,533,504,41,1686,3325,207, + 218,3068,206,215,216,217,219,173,44,2736, + 448,44,1298,231,2899,1111,1911,1911,172,160, + 196,171,174,175,176,177,178,1045,184,2106, + 2771,533,2847,2847,1260,1714,207,218,3068,206, + 215,216,217,219,173,44,2964,44,44,2830, + 231,1287,4144,2847,2511,172,160,190,171,174, + 175,176,177,178,1854,184,2106,2771,342,377, + 205,203,2947,207,218,3068,206,215,216,217, + 219,173,305,381,44,2216,41,393,3641,44, + 3565,299,172,4683,198,171,174,175,176,177, + 178,2396,41,790,38,1636,1937,33,36,37, + 803,860,32,34,779,31,29,56,873,110, + 81,82,112,923,1579,1763,2396,41,790,38, + 1806,1937,33,36,37,803,860,32,34,779, + 31,29,56,873,110,81,82,112,923,2847, + 1791,1844,41,790,38,4561,4507,33,36,37, + 803,860,338,34,2396,41,790,38,2152,1937, + 33,36,37,803,860,32,34,779,31,29, + 56,873,110,81,82,112,1834,4739,69,41, + 1490,387,3567,1703,2973,44,44,2830,4165,2380, + 1416,2921,2975,2976,2216,41,393,1337,319,1631, + 321,2969,2977,314,1588,1713,2404,2980,2971,925, + 2984,276,2396,41,790,38,673,1937,33,36, + 37,803,860,32,34,779,31,29,56,873, + 110,81,82,112,1877,2396,41,790,38,331, + 1937,33,36,37,803,860,32,34,779,31, + 29,56,873,110,81,82,112,1974,3118,88, + 2645,44,307,311,2830,3367,2986,44,1260,518, + 2771,3518,3198,359,2830,3052,44,2992,44,351, + 948,2832,3501,231,3646,2830,2847,2065,2952,3046, + 77,2147,2994,231,3561,330,334,343,1459,862, + 348,3752,2175,3229,231,341,209,218,3068,208, + 215,216,217,219,2998,2306,209,218,3068,208, + 215,216,217,219,225,1785,2999,209,218,3068, + 208,215,216,217,219,1260,210,212,214,295, + 296,3099,2847,220,211,213,210,212,214,295, + 296,3099,235,220,211,213,1260,210,212,214, + 295,296,3099,235,220,211,213,175,2936,2987, + 3266,44,2815,4101,3096,1034,2447,247,233,234, + 197,2993,940,4101,3182,3000,3005,1260,250,233, + 234,3303,3007,1119,4101,3366,2396,41,790,38, + 3384,1937,33,36,37,803,860,32,34,779, + 31,29,56,873,110,81,82,88,2396,41, + 790,38,2455,1937,33,36,37,803,860,32, + 34,779,31,29,56,873,110,81,82,87, + 2396,41,790,38,2935,1937,33,36,37,803, + 860,32,34,779,31,29,56,873,110,81, + 82,86,2396,41,790,38,5289,1937,33,36, + 37,803,860,32,34,779,31,29,56,873, + 110,81,82,85,2396,41,790,38,5289,1937, + 33,36,37,803,860,32,34,779,31,29, + 56,873,110,81,82,84,2396,41,790,38, + 5289,1937,33,36,37,803,860,32,34,779, + 31,29,56,873,110,81,82,83,2263,41, + 790,38,5289,1937,33,36,37,803,860,32, + 34,779,31,29,56,873,110,81,82,108, + 2396,41,790,38,5289,1937,33,36,37,803, + 860,32,34,779,31,29,56,873,110,81, + 82,114,2396,41,790,38,5289,1937,33,36, + 37,803,860,32,34,779,31,29,56,873, + 110,81,82,113,2396,41,790,38,5289,1937, + 33,36,37,803,860,32,34,779,31,29, + 56,873,110,81,82,111,2396,41,790,38, + 5289,1937,33,36,37,803,860,32,34,779, + 31,29,56,873,110,81,82,109,1349,41, + 3359,38,4561,4507,33,36,37,803,860,338, + 34,5289,1369,41,790,38,4561,4507,33,36, + 37,803,860,338,34,44,5289,5289,5289,1034, + 2864,1260,5289,5289,2830,5289,5289,1260,5289,44, + 5289,1337,2706,2830,5289,2724,2830,2149,5289,2830, + 1260,5289,4165,231,160,319,1631,321,5289,5289, + 314,1588,342,2178,1557,231,3159,3543,2404,319, + 1631,321,3702,1748,314,1588,209,218,3068,208, + 215,216,217,219,3565,3377,5289,673,209,218, + 3068,208,215,216,217,219,5289,5289,350,1677, + 5289,2739,3118,331,5289,2830,210,212,214,295, + 296,3099,1337,516,211,213,5289,5289,210,212, + 214,295,296,3099,231,515,211,213,765,41, + 1490,387,5289,308,311,501,2839,351,5289,3361, + 334,2925,5289,5289,1337,2830,5289,209,218,3068, + 208,215,216,217,219,343,1459,862,348,415, + 3364,55,5289,1772,231,504,41,1490,387,5289, + 5289,1421,2688,3118,498,500,5289,210,212,214, + 295,296,3099,3538,221,211,213,209,218,3068, + 208,215,216,217,219,5289,1316,5289,55,5289, + 2953,4512,5289,5289,2830,3118,5289,2769,1421,2951, + 3397,334,5289,3474,5289,5289,5289,210,212,214, + 295,296,3099,231,306,211,213,5289,5289,1369, + 41,790,38,4561,4507,33,36,37,803,860, + 338,34,3546,334,5289,5289,209,218,3068,208, + 215,216,217,219,1369,41,790,38,4561,4507, + 33,36,37,803,860,338,34,5289,235,2540, + 41,1490,387,5289,2723,5289,210,212,214,295, + 296,3099,241,495,211,213,319,1631,321,5289, + 5289,314,1588,253,233,234,1200,1674,5289,5289, + 2830,4679,276,5289,3047,765,41,1490,387,5289, + 2800,319,1631,321,2830,2149,314,1588,5289,231, + 4165,5289,44,44,2848,5289,533,2830,533,3746, + 235,5289,5289,2404,5289,44,5289,5289,55,2830, + 5289,5289,1063,404,2648,342,342,3638,1421,53, + 1188,160,5289,160,1034,239,233,234,342,425, + 2698,1514,184,2106,5289,5289,277,3565,3565,5289, + 5289,4559,405,406,407,295,296,3099,5289,164, + 3565,3274,1471,2152,246,249,252,255,3054,199, + 5289,5289,5289,5289,1275,505,676,3065,2830,4679, + 359,1388,41,790,38,5289,4541,33,36,37, + 803,860,338,34,2857,2952,3046,231,504,41, + 1490,387,5289,5289,1388,41,790,38,5289,4541, + 33,36,37,803,860,338,34,5289,5289,5289, + 1063,404,2648,1703,5289,44,1600,2830,4165,2830, + 2862,55,5289,5289,98,408,410,332,319,1631, + 321,1421,2886,317,1588,5289,2404,5289,342,5289, + 405,406,407,295,296,3099,5289,1979,5289,4394, + 332,319,1631,321,5289,5289,315,1588,5289,5289, + 3565,678,41,1490,387,3065,5289,5289,5289,331, + 4616,200,1188,5289,5289,503,1034,678,41,1490, + 387,235,678,41,1490,387,5289,5289,5289,5289, + 5289,5289,5289,5289,55,765,41,1490,387,5289, + 5289,164,2839,359,1421,53,256,233,234,5289, + 55,678,41,1490,387,55,1376,2065,2952,3046, + 1421,2880,5289,408,411,1421,53,5289,55,2048, + 5289,2149,2796,5289,4165,5289,4165,622,1421,53, + 678,41,1490,387,55,678,41,1490,387,2644, + 2147,5289,5289,2830,1421,3058,5289,5289,678,41, + 1490,387,5289,5289,5289,5289,2796,5289,1643,5289, + 5289,5289,342,55,678,41,1490,387,55,2489, + 41,1490,387,1421,53,4559,2889,331,1421,53, + 533,55,5289,2800,3728,2469,5289,2830,5289,5289, + 2852,1421,53,2516,41,1490,387,55,5289,342, + 5289,5289,55,3048,5289,160,2404,1421,53,5289, + 4424,5289,1421,53,5289,192,5289,5289,5289,3327, + 5289,4254,5289,5289,571,5289,55,504,41,1490, + 387,504,41,1490,387,5289,1421,53,5289,504, + 41,1490,387,2843,5289,2045,5289,2830,927,2830, + 5289,5289,5289,44,5289,2848,5289,2830,100,1034, + 55,5289,5289,44,55,5289,2404,533,342,5289, + 1421,2920,55,359,1421,1851,342,44,194,5289, + 526,533,1421,2694,160,5289,342,3145,2952,3046, + 3565,44,160,204,3383,533,5289,5289,3565,2940, + 342,5289,192,1034,5289,529,160,5289,4254,5289, + 5289,44,5289,530,342,1034,192,44,5289,44, + 160,1034,4254,1034,5289,5289,5289,5289,160,4031, + 192,44,5289,501,5289,1034,4254,44,166,44, + 160,1034,5289,1034,5289,44,160,5289,160,1034, + 1514,3499,5289,1188,5289,5289,1500,1034,2545,1188, + 160,5289,5289,1034,5289,3628,160,44,160,5289, + 2239,1034,498,500,160,5289,2647,5289,2730,3695, + 5289,1188,164,1188,2768,1034,44,1034,164,5289, + 1034,5289,5289,3716,5289,5289,160,5289,5289,5289, + 5289,5289,5289,5289,5289,5289,2928,5289,5289,5289, + 164,3685,164,5289,5289,160,5289,5289,5289,5289, + 5289,5289,5289,5289,5289,4037,5289,5289,5289,5289, + 5289,5289,5289,5289,5289,5289,3273,5289,5289,5289, + 5289,5289,5289,5289,5289,5289,5289,5289,5289,2894, + 5289,5289,5289,5289,5289,2900,5289,5289,5289,5289, + 5289,5289,5289,5289,5289,5289,5289,5289,5289,5289, + 5289,5289,4050,5289,5289,5289,5289,3084,5289,3218, + 5289,0,45,5309,0,45,5308,0,723,35, + 0,436,912,0,450,1278,0,44,669,0, + 44,5309,0,44,5308,0,2579,130,0,1, + 440,0,454,1414,0,453,1420,0,845,95, + 0,723,386,0,41,39,0,38,40,0, + 45,669,0,1,1024,0,1,5564,0,1, + 5563,0,1,5562,0,1,5561,0,1,5560, + 0,1,5559,0,1,5558,0,1,5557,0, + 1,5556,0,1,5555,0,1,5554,0,45, + 1,5309,0,45,1,5308,0,799,1,0, + 5526,244,0,5525,244,0,5626,244,0,5625, + 244,0,5553,244,0,5552,244,0,5551,244, + 0,5550,244,0,5549,244,0,5548,244,0, + 5547,244,0,5546,244,0,5564,244,0,5563, + 244,0,5562,244,0,5561,244,0,5560,244, + 0,5559,244,0,5558,244,0,5557,244,0, + 5556,244,0,5555,244,0,5554,244,0,45, + 5309,244,0,45,5308,244,0,5333,244,0, + 5309,54,0,5308,54,0,5295,1,0,5294, + 1,0,4350,240,0,38,387,0,35,386, + 0,49,5331,0,49,43,0,2579,132,0, + 2579,131,0,5618,441,0,1625,441,0,5333, + 1,0,45,1,0,53,43,0,1,96, + 0,497,3066,0,5333,1,232,0,45,1, + 232,0,232,413,0,5309,43,0,5308,43, + 0,5309,2,43,0,5308,2,43,0,5309, + 42,0,5308,42,0,5331,51,0,43,51, + 0,5299,402,0,5298,402,0,1,4229,0, + 1,3060,0,1,669,0,232,412,0,2801, + 318,0,5618,99,0,1625,99,0,41,78, + 0,1,5618,0,1,1625,0,4793,281,0, + 497,4042,0,1,232,0,232,223,0,232, + 222,0,1,1121,0,1,3435,0,5301,1, + 0,5297,1,0,1,232,3570,0,5298,232, + 0,3619,232,0,5301,382,0,5300,382,0, + 3727,232,0,10,12,0,8,10,12,0, + 189,3340,0,3804,382,0,8,12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1063,322 +1079,317 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 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, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,0,55,56,57,58,0, - 60,61,62,63,64,0,66,67,68,4, - 0,71,72,3,0,75,76,77,78,79, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,0,44,0,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 60,61,62,63,64,65,66,67,0,1, + 2,71,72,5,0,75,76,77,78,79, 80,81,82,83,84,85,86,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,0,31,32, + 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,0,55,56,57,58,0,60,61,62, - 63,64,0,66,67,68,97,98,71,72, - 0,9,75,76,77,78,79,80,81,82, + 0,44,0,46,47,48,49,50,51,52, + 53,54,55,56,57,58,101,60,61,62, + 63,64,65,66,67,0,97,98,71,72, + 0,0,75,76,77,78,79,80,81,82, 83,84,85,86,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,0,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 46,47,48,49,50,51,52,53,0,55, - 56,57,58,73,60,61,62,63,64,0, - 66,67,68,97,98,71,72,0,9,75, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,42,0,44,59, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,0,60,61,62,63,64,65, + 66,67,9,88,89,71,72,0,0,75, 76,77,78,79,80,81,82,83,84,85, 86,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,0,31,32,33,34,35,36,37,38, - 39,40,41,42,43,44,45,46,47,48, - 49,50,51,52,53,0,55,56,57,58, - 0,60,61,62,63,64,0,66,67,68, - 0,0,6,72,3,5,75,76,77,78, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,0,44,59,46,47,48, + 49,50,51,52,53,54,55,56,57,58, + 0,60,61,62,63,64,65,66,67,9, + 0,1,2,72,4,0,75,76,77,78, 79,80,81,82,83,84,85,86,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,0,31, + 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,0,55,56,57,58,0,60,61, - 62,63,64,6,66,67,68,91,92,0, - 72,101,0,75,76,77,78,79,80,81, + 42,0,44,0,46,47,48,49,50,51, + 52,53,54,55,56,57,58,0,60,61, + 62,63,64,65,66,67,0,0,1,2, + 72,4,0,75,76,77,78,79,80,81, 82,83,84,85,86,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,0,31,32,33,34, - 35,36,37,38,39,40,41,42,43,44, - 45,46,47,48,49,50,51,52,53,70, - 55,56,57,58,0,60,61,62,63,64, - 0,66,67,68,4,0,6,72,3,9, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,0,44, + 73,46,47,48,49,50,51,52,53,54, + 55,56,57,58,101,60,61,62,63,64, + 65,66,67,0,1,2,90,72,92,0, 75,76,77,78,79,80,81,82,83,84, 85,86,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,0,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,0,55,56,57, - 58,0,60,61,62,63,64,0,66,67, - 68,0,1,2,72,4,0,75,76,77, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,0,44,0,46,47, + 48,49,50,51,52,53,54,55,56,57, + 58,0,60,61,62,63,64,65,66,67, + 0,0,11,12,72,4,6,75,76,77, 78,79,80,81,82,83,84,85,86,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,0, + 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,76,55,56,57,58,0,60, - 61,62,63,64,0,66,67,68,0,0, - 6,72,4,4,75,76,77,78,79,80, + 41,42,0,44,0,46,47,48,49,50, + 51,52,53,54,55,56,57,58,0,60, + 61,62,63,64,65,66,67,0,1,2, + 0,72,0,3,75,76,77,78,79,80, 81,82,83,84,85,86,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,0,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 0,55,56,57,58,0,60,61,62,63, - 64,0,66,67,68,91,92,6,72,101, - 0,75,76,77,78,79,80,81,82,83, + 24,25,26,27,28,29,30,31,32,33, + 34,35,36,37,38,39,40,41,42,59, + 44,59,46,47,48,49,50,51,52,53, + 54,55,56,57,58,0,60,61,62,63, + 64,65,66,67,0,1,2,0,72,0, + 3,75,76,77,78,79,80,81,82,83, 84,85,86,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,0,31,32,33,34,35,36, - 37,38,39,40,41,42,43,44,45,46, - 47,48,49,50,51,52,53,0,55,56, - 57,58,0,60,61,62,63,64,0,66, - 67,68,91,92,99,72,0,0,75,76, + 27,28,29,30,31,32,33,34,35,36, + 37,38,39,40,41,42,59,44,73,46, + 47,48,49,50,51,52,53,54,55,56, + 57,58,0,60,61,62,63,64,65,66, + 67,0,0,11,12,72,4,0,75,76, 77,78,79,80,81,82,83,84,85,86, 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, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,0,55,56,57,58,73, - 60,61,62,63,64,122,66,67,68,0, - 1,2,72,95,5,75,76,77,78,79, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,0,44,0,46,47,48,49, + 50,51,52,53,54,55,56,57,58,0, + 60,61,62,63,64,65,66,67,0,0, + 0,90,72,92,4,75,76,77,78,79, 80,81,82,83,84,85,86,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,0,31,32, + 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,0,55,56,57,58,0,60,61,62, - 63,64,0,66,67,68,0,1,2,72, - 4,0,75,76,77,78,79,80,81,82, + 61,44,0,46,47,48,49,50,51,52, + 53,54,55,56,57,58,0,60,61,62, + 63,64,65,66,67,0,97,98,90,72, + 92,0,75,76,77,78,79,80,81,82, 83,84,85,86,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,0,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 46,47,48,49,50,51,52,53,0,55, - 56,57,58,0,60,61,62,63,64,0, - 66,67,68,4,11,12,72,0,0,75, + 26,27,28,29,30,31,32,33,34,35, + 36,37,38,39,40,41,42,0,44,0, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,0,60,61,62,63,64,65, + 66,67,0,1,2,90,72,92,0,75, 76,77,78,79,80,81,82,83,84,85, - 86,0,1,2,3,4,5,6,7,30, - 9,10,11,12,70,14,15,16,17,18, + 86,0,1,2,3,4,5,6,7,0, + 9,10,11,12,57,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, - 29,0,31,32,33,34,35,36,37,38, - 39,40,41,42,43,44,45,46,47,48, - 49,50,51,52,53,0,55,70,57,0, - 1,2,61,4,5,0,7,66,67,68, - 0,1,2,3,4,5,6,7,8,9, - 10,0,0,13,14,15,16,17,18,19, - 20,21,22,23,24,25,65,0,1,2, - 3,4,5,6,7,0,9,0,1,2, - 0,1,2,54,44,45,46,47,48,49, - 50,51,52,53,54,55,56,0,58,0, - 65,61,0,1,2,70,66,67,68,7, - 0,71,72,73,17,0,1,2,3,4, - 5,6,7,8,9,10,59,87,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,44,45,46,47,48,49,50,51,52, - 53,0,55,0,114,115,116,0,59,44, - 45,46,47,48,49,50,51,52,53,54, - 55,56,121,58,0,100,61,0,0,1, - 2,66,67,68,10,0,71,72,73,0, - 1,2,0,4,0,3,0,8,6,3, - 8,9,87,11,12,13,0,1,2,3, - 4,5,6,7,0,9,65,0,26,27, - 0,70,30,0,114,115,116,10,54,114, - 115,116,54,0,0,61,59,14,15,16, - 17,18,19,20,21,22,23,24,25,0, - 0,59,99,64,69,59,0,65,8,45, - 46,69,70,71,30,73,74,44,45,46, - 47,48,49,50,51,52,53,0,55,73, - 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,0,73,0,117, - 118,3,120,121,6,0,8,9,69,11, - 12,13,102,8,0,1,2,3,4,5, - 6,7,0,9,26,27,30,117,30,0, - 1,2,3,4,5,6,7,0,9,0, - 0,102,3,104,105,106,107,108,109,110, - 111,112,113,0,1,2,117,59,118,0, - 1,2,3,65,5,119,7,69,70,71, - 30,73,74,59,0,70,0,1,2,74, - 4,59,6,69,8,9,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,0,1,2,117,118,0,120,121, - 0,1,2,3,4,5,6,7,0,9, - 10,11,12,0,14,15,16,100,18,19, - 20,21,22,23,24,25,26,27,28,29, - 74,31,32,33,34,35,36,37,38,39, - 40,41,42,43,90,0,0,1,2,4, - 96,95,0,1,2,3,4,57,6,0, - 0,9,62,63,0,1,2,3,4,5, - 6,7,72,9,10,11,12,0,14,15, - 16,4,18,19,20,21,22,23,24,25, - 26,27,28,29,0,31,32,33,34,35, - 36,37,38,39,40,41,42,43,62,63, - 0,59,0,0,54,0,1,2,3,0, - 5,57,7,8,11,12,62,63,69,65, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,0,14,15,16,4,18,19, - 20,21,22,23,24,25,26,27,28,29, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,43,59,0,1,2,3,4, - 5,6,7,0,9,0,0,57,0,74, - 0,1,2,3,64,5,8,7,88,89, - 0,71,0,1,2,3,4,5,6,7, - 0,9,10,11,12,30,14,15,16,59, - 18,19,20,21,22,23,24,25,26,27, - 28,29,0,31,32,33,34,35,36,37, - 38,39,40,41,42,43,0,0,1,2, - 3,65,5,70,7,8,0,1,2,57, - 13,5,74,73,62,63,0,1,2,3, - 4,5,6,7,28,9,10,11,12,69, - 14,15,16,95,18,19,20,21,22,23, - 24,25,26,27,28,29,0,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 54,0,1,2,3,0,5,0,7,8, - 0,1,2,57,13,5,30,7,62,63, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,0,14,15,16,30,18,19, - 20,21,22,23,24,25,26,27,28,29, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,43,59,0,1,2,0,4, - 0,6,0,3,9,3,8,57,8,0, - 8,13,3,0,64,0,1,2,3,4, - 5,6,7,8,9,10,11,12,65,14, + 29,30,31,32,33,34,35,36,37,38, + 39,40,41,42,0,44,0,46,47,48, + 49,50,51,52,53,54,55,0,57,0, + 1,2,61,4,91,8,65,66,67,0, + 1,2,3,4,5,6,7,8,9,10, + 121,0,13,14,15,16,17,18,19,20, + 21,22,23,24,25,0,0,1,2,3, + 4,5,43,7,8,0,1,2,99,4, + 122,6,43,44,9,46,47,48,49,50, + 51,52,53,54,55,56,45,58,0,0, + 61,74,88,89,65,66,67,8,0,0, + 71,72,73,4,0,1,2,3,4,5, + 6,7,8,9,10,59,87,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 74,0,103,104,105,0,1,2,3,4, + 5,6,7,44,9,0,0,43,44,4, + 46,47,48,49,50,51,52,53,54,55, + 56,0,58,74,3,61,0,0,70,65, + 66,67,0,1,2,71,72,73,0,1, + 2,3,4,5,0,7,0,3,100,44, + 6,87,8,9,59,11,12,13,0,1, + 2,3,4,5,69,7,75,103,104,105, + 26,27,46,47,68,43,0,0,1,2, + 3,4,5,6,7,0,9,0,3,45, + 14,15,16,17,18,19,20,21,22,23, + 24,25,0,59,0,0,1,2,103,104, + 105,73,68,69,70,71,0,73,74,3, + 44,0,46,47,48,49,50,51,52,53, + 54,55,88,89,90,91,92,93,94,95, + 96,97,98,99,100,101,102,0,1,2, + 106,107,108,109,110,111,112,113,114,115, + 116,117,118,0,120,121,3,62,63,6, + 68,8,9,69,11,12,13,0,1,2, + 3,4,5,6,7,69,9,100,0,26, + 27,0,1,2,3,4,5,0,7,8, + 3,0,1,2,13,4,102,6,45,0, + 9,107,108,109,110,111,112,113,114,115, + 116,117,59,0,1,2,3,4,5,0, + 7,68,69,70,71,0,73,74,3,0, + 1,2,3,4,5,6,7,59,9,0, + 73,88,89,90,91,92,93,94,95,96, + 97,98,99,100,101,102,0,0,0,106, + 107,108,109,110,111,112,113,114,115,116, + 117,118,59,120,121,0,1,2,3,4, + 5,6,7,0,9,10,11,12,59,14, 15,16,0,18,19,20,21,22,23,24, - 25,26,27,28,29,0,31,32,33,34, - 35,36,37,38,39,40,41,42,43,59, - 28,59,0,1,2,65,4,5,70,7, - 70,0,57,0,74,30,74,0,69,64, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,0,14,15,16,4,18,19, + 25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,0,1, + 2,3,4,5,6,7,68,9,70,0, + 1,2,57,4,5,43,7,62,63,0, + 1,2,3,4,5,6,7,72,9,10, + 11,12,69,14,15,16,0,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,1,2,0,4,0,6,0, + 8,9,0,0,0,3,57,0,1,2, + 8,62,63,0,10,8,3,68,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,28,14,15,16,0,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,59,0,1,2,68,74,5,102,7, + 68,64,70,107,0,57,74,0,43,0, + 1,2,64,91,5,0,7,88,89,71, + 0,1,2,3,4,5,6,7,0,9, + 10,11,12,0,14,15,16,0,18,19, 20,21,22,23,24,25,26,27,28,29, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,43,0,1,2,3,4,5, - 6,7,119,9,10,11,12,44,14,15, - 16,0,18,19,20,21,22,23,24,25, - 26,27,28,29,0,31,32,33,34,35, - 36,37,38,39,40,41,42,43,95,0, - 0,1,2,0,4,5,3,7,5,6, - 0,57,9,73,11,12,17,0,1,2, - 119,4,5,0,7,0,3,0,118,26, - 27,4,29,30,0,1,2,114,115,116, - 30,57,8,44,45,46,47,48,49,50, - 51,52,53,0,55,30,0,30,0,88, - 89,3,59,5,6,62,63,9,65,11, - 12,54,69,70,0,1,2,3,0,5, - 0,7,59,30,26,27,8,29,30,0, - 65,88,89,90,91,92,93,94,64,0, - 97,98,99,100,101,102,103,104,105,106, - 107,108,109,110,111,112,113,59,93,94, - 62,63,0,65,0,3,0,69,70,30, - 0,1,2,59,4,0,6,11,12,9, - 0,0,64,3,88,89,88,89,90,91, - 92,93,94,73,65,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, - 0,9,10,11,12,0,14,15,16,65, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,0,1,2,3,4,5,0, + 7,8,68,0,70,68,13,57,45,0, + 43,8,62,63,0,1,2,3,4,5, + 6,7,0,9,10,11,12,0,14,15, + 16,68,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,99,95,96, + 0,0,0,0,1,2,3,4,8,6, + 8,57,9,70,71,13,62,63,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,69,14,15,16,68,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,59,0,1,2,3,4,5,0, + 7,71,0,1,2,57,4,8,0,0, + 8,3,64,0,1,2,3,4,5,6, + 7,8,9,10,11,12,0,14,15,16, + 0,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,1,2,0, + 4,70,6,64,0,9,64,0,1,2, + 57,4,8,6,0,45,9,64,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,0,14,15,16,4,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,1,2,3,4,5,6,7,70, + 9,10,11,12,0,14,15,16,74,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,0,0,3,0,5, + 6,0,4,9,6,11,12,9,57,45, + 0,1,2,17,4,5,0,7,0,3, + 26,27,0,29,0,0,118,0,3,0, + 3,0,68,11,12,8,0,1,2,45, + 44,17,46,47,48,49,50,51,52,53, + 54,55,0,59,59,0,62,63,3,95, + 96,0,68,69,70,0,1,2,44,8, + 46,47,48,49,50,51,52,53,54,55, + 0,0,88,89,90,4,59,93,94,95, + 96,97,98,99,100,101,102,68,62,63, + 106,74,108,109,110,111,112,113,114,115, + 116,117,0,1,2,3,4,5,6,7, + 119,9,10,11,12,64,14,15,16,0, 18,19,20,21,22,23,24,25,26,27, - 28,29,61,31,32,33,34,35,36,37, - 38,39,40,41,42,43,0,0,0,1, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,103,104,105,0,1, 2,3,4,5,6,7,0,9,10,11, 12,59,14,15,16,0,18,19,20,21, - 22,23,24,25,26,27,28,29,0,31, + 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, - 54,9,10,11,12,57,14,15,16,0, + 42,0,0,1,2,3,4,5,6,7, + 0,9,10,11,12,57,14,15,16,0, 18,19,20,21,22,23,24,25,26,27, - 28,29,75,31,32,33,34,35,36,37, - 38,39,40,41,42,43,0,1,2,3, - 4,5,6,7,0,9,10,11,12,0, - 14,15,16,4,18,19,20,21,22,23, - 24,25,26,27,28,29,0,31,32,33, - 34,35,36,37,38,39,40,41,42,43, - 0,1,2,3,4,5,6,7,0,9, - 10,11,12,44,14,15,16,0,18,19, - 20,21,22,23,24,25,26,27,28,29, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,43,0,1,2,17,4,0, - 0,1,2,3,10,5,0,7,14,15, - 16,17,18,19,20,21,22,23,24,25, - 0,1,2,65,44,45,46,47,48,49, - 50,51,52,53,0,55,30,3,44,45, - 46,47,48,49,50,51,52,53,0,55, - 0,1,2,54,4,61,6,0,0,9, - 66,67,68,0,1,2,8,4,0,1, - 2,65,4,10,54,0,0,14,15,16, - 17,18,19,20,21,22,23,24,25,0, - 1,2,3,4,5,6,7,8,9,93, - 94,0,13,0,1,2,17,44,45,46, - 47,48,49,50,51,52,53,0,55,30, - 0,73,54,3,61,8,0,1,2,66, - 67,68,74,44,45,46,47,48,49,50, - 51,52,53,0,55,88,89,0,59,0, - 1,2,3,4,5,6,7,8,9,0, - 1,2,13,74,88,89,17,0,0,1, - 2,3,4,5,6,7,8,9,0,1, - 2,13,4,0,6,17,3,9,62,63, - 0,74,0,44,45,46,47,48,49,50, - 51,52,53,0,55,0,0,0,59,3, - 0,8,0,1,2,3,4,5,6,7, - 8,9,54,74,56,13,58,0,60,17, - 0,0,26,27,0,1,2,90,8,71, - 30,0,30,96,0,1,2,3,4,5, - 6,7,8,9,0,87,0,13,0,1, - 2,17,0,73,0,59,54,64,56,0, - 58,30,60,0,0,1,2,3,4,5, - 6,7,8,9,0,1,2,13,54,0, - 0,17,30,0,1,2,65,70,54,87, - 56,71,58,0,60,0,1,2,0,103, - 0,3,54,10,0,71,0,1,2,3, - 4,5,6,7,8,9,120,65,54,13, - 56,87,58,17,60,0,1,2,3,4, - 5,6,7,8,9,71,0,54,13,0, - 1,2,17,0,90,93,94,54,0,54, - 96,87,0,90,61,0,8,0,0,96, - 54,3,56,59,58,10,60,0,1,2, - 3,4,5,6,7,8,9,71,0,54, - 13,56,30,58,17,60,8,0,0,0, - 0,13,3,87,0,8,8,0,1,2, - 3,4,5,6,7,8,9,17,0,0, - 13,56,87,0,17,0,8,8,70,71, - 0,54,13,56,4,58,69,60,0,1, - 2,0,1,2,44,45,46,47,48,49, - 50,51,52,53,0,55,0,0,0,0, - 30,54,0,56,87,58,8,60,71,0, - 8,13,74,0,70,13,0,8,0,3, - 0,8,0,3,30,3,30,0,65,30, - 3,0,74,0,87,70,3,0,0,0, - 0,3,3,3,0,0,0,3,3,0, - 0,0,0,0,3,0,0,0,0,0, - 0,0,0,0,0,0,69,0,0,0, + 28,29,30,31,32,33,34,35,36,37, + 38,39,40,41,42,0,1,2,3,4, + 5,6,7,0,9,10,11,12,0,14, + 15,16,4,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,1, + 2,3,4,5,6,7,0,9,10,11, + 12,0,14,15,16,0,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,1,2,0,4,0,0,0,1, + 2,10,0,6,91,14,15,16,17,18, + 19,20,21,22,23,24,25,0,1,2, + 0,4,5,0,7,0,1,2,0,0, + 0,8,76,68,73,44,8,46,47,48, + 49,50,51,52,53,54,55,45,28,0, + 1,2,61,4,0,59,65,66,67,10, + 43,0,68,14,15,16,17,18,19,20, + 21,22,23,24,25,0,1,2,3,4, + 5,6,7,8,9,0,0,0,13,3, + 93,94,17,44,71,46,47,48,49,50, + 51,52,53,54,55,0,0,0,1,2, + 61,6,26,27,65,66,67,88,89,44, + 45,46,47,48,49,50,51,52,53,54, + 55,0,45,0,59,0,1,2,3,4, + 5,6,7,8,9,59,118,0,13,74, + 43,45,17,0,0,1,2,3,4,5, + 6,7,8,9,0,0,0,13,0,1, + 2,17,4,5,68,7,45,0,45,44, + 3,46,47,48,49,50,51,52,53,54, + 55,0,106,0,59,0,3,43,93,94, + 0,95,96,0,1,2,120,0,5,74, + 56,43,58,6,60,0,1,2,3,4, + 5,6,7,8,9,71,0,0,13,0, + 1,2,17,0,8,6,0,1,2,13, + 45,87,0,10,91,0,43,0,0,1, + 2,3,4,5,6,7,8,9,43,0, + 45,13,0,1,2,17,0,0,1,2, + 4,56,43,58,0,60,43,3,0,43, + 0,1,2,3,4,5,6,7,8,9, + 45,43,45,13,61,17,70,17,0,0, + 93,94,87,0,56,43,58,0,60,0, + 43,45,0,1,2,88,89,8,73,71, + 0,0,44,43,46,47,48,49,50,51, + 52,53,54,55,0,87,56,0,58,5, + 60,0,1,2,3,4,5,6,7,8, + 9,71,0,0,13,43,0,0,17,0, + 1,2,10,10,8,8,45,87,70,13, + 13,0,69,0,1,2,3,4,5,6, + 7,8,9,74,43,0,13,0,17,0, + 17,4,3,8,0,43,0,56,0,58, + 91,60,43,0,0,0,8,4,0,56, + 73,13,71,61,0,44,43,46,47,48, + 49,50,51,52,53,54,55,0,87,56, + 0,58,45,60,0,1,2,3,4,5, + 6,7,8,9,0,0,0,13,45,0, + 45,17,8,8,0,70,0,8,0,74, + 87,3,0,1,2,3,4,5,6,7, + 8,9,45,0,70,13,3,43,0,17, + 0,73,0,69,0,0,0,3,3,0, + 56,45,58,0,60,0,0,0,3,45, + 70,0,0,0,3,43,3,0,0,0, + 3,3,3,119,0,71,0,0,56,74, + 58,87,60,74,0,69,0,45,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,74,71,30,28,69,0,0, - 0,0,0,0,0,0,0,0,0,0, - 69,0,0,0,0,0,0,0,0,0, - 73,0,0,0,0,0,0,0,69,73, - 0,69,69,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,95,0,0,0,0, + 0,0,0,0,0,0,0,0,70,87, + 0,0,28,73,0,69,0,0,69,0, + 0,0,45,0,0,0,73,0,0,73, + 0,69,0,0,0,0,0,0,0,0, + 0,0,0,69,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,0,0,0,0,119,0,0,0, 0,0,0,0,0,0,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; @@ -1386,321 +1397,317 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 5229,5194,5173,5173,5173,5173,5173,5173,5210,5173, - 1,1,1,5198,1,1,1,1,1,1, + 5289,5254,5233,5233,5233,5233,5233,5233,5270,5233, + 1,1,1,5258,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,385,1,1872,1,2217,135, - 3148,1,1,1,5240,45,1,1,1,5273, - 5229,5236,5410,3602,5229,2512,3460,3269,2220,3232, - 3343,2898,3449,1272,3441,2935,3405,10,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,5229,5213,5213, - 5213,5213,5213,5213,5213,5213,5213,5213,5213,5213, - 5213,5213,5213,5213,5213,5213,5213,5213,5213,5213, - 5213,5229,5213,5213,5213,5213,136,5213,5213,5213, - 5213,5213,137,5213,5213,5213,2399,2371,5213,5213, - 5229,592,5213,5213,5213,5213,5213,5213,5213,5213, - 5213,5213,5213,5213,8,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,5229,5216,5216,5216,5216,5216, - 5216,5216,5216,5216,5216,5216,5216,5216,5216,5216, - 5216,5216,5216,5216,5216,5216,5216,5216,5229,5216, - 5216,5216,5216,1913,5216,5216,5216,5216,5216,138, - 5216,5216,5216,2399,2371,5216,5216,5229,592,5216, - 5216,5216,5216,5216,5216,5216,5216,5216,5216,5216, - 5216,5229,5194,5173,5173,5173,5173,5173,5173,5201, - 5173,1,1,1,5198,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,5229,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5229,1,1872,1,2217, - 143,3148,1,1,1,5240,121,1,1,1, - 5229,5229,3497,5410,1249,1526,2512,3460,3269,2220, - 3232,3343,2898,3449,1272,3441,2935,3405,5229,5194, - 5173,5173,5173,5173,5173,5173,5201,5173,1,1, - 1,5198,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5229,1, + 1,1,1,1,1,141,1,1,1,1, + 1,1,1,1,1,1,2473,1,2494,133, + 3396,1,1,1,5300,1,1,1,5289,5308, + 5309,5296,5468,3155,383,1113,3674,2465,2196,2181, + 3568,3063,3652,2280,3637,4695,3626,10,5273,5273, + 5273,5273,5273,5273,5273,5273,5273,5273,5273,5273, + 5273,5273,5273,5273,5273,5273,5273,5273,5273,5273, + 5273,5273,5273,5273,5273,5273,5273,5273,5273,5273, + 5273,5273,5273,5273,5273,5273,5273,5273,5273,5273, + 5289,5273,5289,5273,5273,5273,5273,5273,5273,5273, + 5273,5273,5273,5273,5273,5273,2283,5273,5273,5273, + 5273,5273,5273,5273,5273,125,2376,2348,5273,5273, + 454,5289,5273,5273,5273,5273,5273,5273,5273,5273, + 5273,5273,5273,5273,8,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,5276,5276,5276,5276,5276, + 5276,5276,5276,5276,5276,5276,5276,5289,5276,4952, + 5276,5276,5276,5276,5276,5276,5276,5276,5276,5276, + 5276,5276,5276,135,5276,5276,5276,5276,5276,5276, + 5276,5276,590,2980,3006,5276,5276,453,5289,5276, + 5276,5276,5276,5276,5276,5276,5276,5276,5276,5276, + 5276,5289,5254,5233,5233,5233,5233,5233,5233,5261, + 5233,1,1,1,5258,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5229,1,1872,1,2217,5229,3148,1, - 1,1,5240,3324,1,1,1,3411,2707,163, - 5410,2271,5229,2512,3460,3269,2220,3232,3343,2898, - 3449,1272,3441,2935,3405,5229,5194,5173,5173,5173, - 5173,5173,5173,5201,5173,1,1,1,5198,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5229,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1360, - 1,1872,1,2217,5229,3148,1,1,1,5240, - 45,1,1,1,5273,97,2549,5410,4857,5560, - 2512,3460,3269,2220,3232,3343,2898,3449,1272,3441, - 2935,3405,5229,5194,5173,5173,5173,5173,5173,5173, - 5201,5173,1,1,1,5198,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,5229,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5229,1,1872,1, - 2217,5229,3148,1,1,1,5240,5229,1,1, - 1,5229,4824,4821,5410,5273,5229,2512,3460,3269, - 2220,3232,3343,2898,3449,1272,3441,2935,3405,5229, - 5194,5173,5173,5173,5173,5173,5173,5201,5173,1, - 1,1,5198,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5229, + 1,1,1,1,5289,1,4955,1,1,1, + 1,1,1,1,1,1,1,2473,1,2494, + 136,3396,1,1,1,5300,1,1,1,590, + 5289,4925,4922,5468,5333,5289,1113,3674,2465,2196, + 2181,3568,3063,3652,2280,3637,4695,3626,5289,5254, + 5233,5233,5233,5233,5233,5233,5261,5233,1,1, + 1,5258,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,3540,1,1872,1,2217,144,3148, - 1,1,1,5240,123,1,1,1,5229,1, - 3497,5410,2850,389,2512,3460,3269,2220,3232,3343, - 2898,3449,1272,3441,2935,3405,5229,5194,5173,5173, - 5173,5173,5173,5173,5201,5173,1,1,1,5198, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5229,1,1,1, + 1,5289,1,142,1,1,1,1,1,1, + 1,1,1,1,2473,1,2494,5289,3396,1, + 1,1,5300,1,1,1,115,5289,4925,4922, + 5468,5333,5289,1113,3674,2465,2196,2181,3568,3063, + 3652,2280,3637,4695,3626,5289,5254,5233,5233,5233, + 5233,5233,5233,5261,5233,1,1,1,5258,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5229,1,1872,1,2217,139,3148,1,1,1, - 5240,122,1,1,1,3411,2707,3497,5410,2271, - 5229,2512,3460,3269,2220,3232,3343,2898,3449,1272, - 3441,2935,3405,5229,5194,5173,5173,5173,5173,5173, - 5173,5201,5173,1,1,1,5198,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,191,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5229,1,1872, - 1,2217,5229,3148,1,1,1,5240,359,1, - 1,1,3411,2707,2340,5410,426,5229,2512,3460, - 3269,2220,3232,3343,2898,3449,1272,3441,2935,3405, - 5229,5194,5173,5173,5173,5173,5173,5173,5201,5173, - 1,1,1,5198,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 5229,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5229,1,1872,1,2217,3451, - 3148,1,1,1,5240,5220,1,1,1,5229, - 5248,5249,5410,5587,1526,2512,3460,3269,2220,3232, - 3343,2898,3449,1272,3441,2935,3405,5229,5194,5173, - 5173,5173,5173,5173,5173,5201,5173,1,1,1, - 5198,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5229,1,1, + 1,1,1,1,1,1,1,1,5289,1, + 1892,1,1,1,1,1,1,1,1,1, + 1,2473,1,2494,2283,3396,1,1,1,5300, + 1,1,1,5289,5308,5309,3910,5468,3932,5289, + 1113,3674,2465,2196,2181,3568,3063,3652,2280,3637, + 4695,3626,5289,5254,5233,5233,5233,5233,5233,5233, + 5261,5233,1,1,1,5258,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5229,1,1872,1,2217,5229,3148,1,1, - 1,5240,5229,1,1,1,5229,4824,4821,5410, - 5273,5229,2512,3460,3269,2220,3232,3343,2898,3449, - 1272,3441,2935,3405,5229,3362,1,1,1,1, - 1,1,3387,1,1,1,1,5238,1,1, + 1,1,1,1,1,5289,1,5289,1,1, + 1,1,1,1,1,1,1,1,2473,1, + 2494,122,3396,1,1,1,5300,1,1,1, + 5289,45,3476,3451,5468,5333,2013,1113,3674,2465, + 2196,2181,3568,3063,3652,2280,3637,4695,3626,5289, + 5254,5233,5233,5233,5233,5233,5233,5261,5233,1, + 1,1,5258,1,1,1,1,1,1,1, 1,1,1,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,5229,1, - 1872,1,2217,124,3148,1,1,1,5240,395, - 1,1,1,388,3364,3339,5410,363,5229,2512, - 3460,3269,2220,3232,3343,2898,3449,1272,3441,2935, - 3405,45,4824,4821,4224,722,3717,3783,4011,786, - 3805,865,3761,3739,880,5498,5496,5505,5491,5504, - 5500,5501,5499,5502,5503,5506,5497,3849,3827,5254, - 3688,5229,678,876,5256,797,3657,805,5257,5255, - 675,5250,5252,5253,5251,5494,5567,5568,5488,5495, - 5467,5493,5492,5489,5490,5229,5468,2975,1317,5229, - 4824,4821,5626,722,4869,5229,4011,941,5627,5628, - 5229,5072,5072,233,5068,233,233,233,5076,233, - 1,5229,5229,233,1,1,1,1,1,1, - 1,1,1,1,1,1,2540,346,5163,5159, - 2819,5273,647,2549,4011,141,5560,5229,5248,5249, - 5229,5002,4999,926,1,1,1,1,1,1, - 1,1,1,1,5065,1,1072,229,1942,456, - 4116,1,44,4839,4836,3050,1,1,1,615, - 437,415,5640,233,5491,5229,5072,5072,233,5068, - 233,233,233,5128,233,1,1876,5727,233,1, + 1,1,5289,1,5289,1,1,1,1,1, + 1,1,1,1,1,2473,1,2494,5289,3396, + 1,1,1,5300,1,1,1,5289,5103,5100, + 346,5468,347,1797,1113,3674,2465,2196,2181,3568, + 3063,3652,2280,3637,4695,3626,5289,5254,5233,5233, + 5233,5233,5233,5233,5261,5233,1,1,1,5258, 1,1,1,1,1,1,1,1,1,1, - 1,5494,5567,5568,5488,5495,5467,5493,5492,5489, - 5490,5229,5468,140,5662,5663,5664,5229,4848,1, - 1,1,1,1,1,1,1,1,1,5065, - 1,1072,4820,1942,1,2308,1,455,5229,8819, - 8819,1,1,1,5182,294,414,5640,233,5229, - 4824,4821,39,5273,5229,4863,348,5241,4863,2924, - 4863,4863,5727,4863,4863,4863,5229,5154,5149,4290, - 5050,647,5146,4011,337,5143,3530,304,4863,4863, - 145,3050,4863,228,5662,5663,5664,5532,3179,5662, - 5663,5664,5271,5229,35,5185,4851,5498,5496,5505, - 5491,5504,5500,5501,5499,5502,5503,5506,5497,145, - 5229,4863,2340,5240,2007,1876,5229,4863,5233,5567, - 5568,4863,4863,4863,786,4863,4863,5494,5567,5568, - 5488,5495,5467,5493,5492,5489,5490,5229,5468,2095, - 4863,4863,4863,4863,4863,4863,4863,4863,4863,4863, - 4863,4863,4863,4863,4863,4863,4863,4863,4863,4863, - 4863,4863,4863,4863,4863,4863,5229,422,5229,4863, - 4863,4866,4863,4863,4866,5229,4866,4866,1833,4866, - 4866,4866,1038,5235,368,5089,5085,2819,1,647, - 1,4011,349,1,4866,4866,3104,4278,4866,5229, - 5163,5159,4290,5273,647,2549,4011,142,5560,242, - 5229,1038,5011,1790,1747,1704,1661,1618,1575,1532, - 1489,1446,1403,56,5035,5032,4278,4866,5232,1, - 5089,5085,4290,4866,647,3468,4011,4866,4866,4866, - 3249,4866,4866,1876,117,4686,1,5053,5053,5234, - 5050,1876,2549,1172,364,5560,4866,4866,4866,4866, - 4866,4866,4866,4866,4866,4866,4866,4866,4866,4866, - 4866,4866,4866,4866,4866,4866,4866,4866,4866,4866, - 4866,4866,56,5002,4999,4866,4866,5229,4866,4866, - 5229,1,1,1,1,1,1,1,5229,1, - 1,1,1,5229,1,1,1,2308,1,1, 1,1,1,1,1,1,1,1,1,1, - 364,1,1,1,1,1,1,1,1,1, - 1,1,1,1,3893,5229,5229,5248,5249,3036, - 3915,364,346,45,45,3067,5273,1,2549,371, - 43,5560,1,1,1,4912,4908,4224,4916,3717, - 3783,4011,5763,3805,4872,3761,3739,5229,4899,4905, - 4878,862,4881,4893,4890,4896,4887,4884,4875,4902, - 3849,3827,5254,3688,5229,678,876,5256,797,3657, - 805,5257,5255,675,5250,5252,5253,5251,3871,1067, - 127,1876,5229,126,5271,1,5089,5085,2819,5229, - 647,1317,4011,5005,3364,3339,45,45,1215,514, - 45,4824,4821,4224,722,3717,3783,4011,5223,3805, - 564,3761,3739,5229,5498,5496,5505,2011,5504,5500, - 5501,5499,5502,5503,5506,5497,3849,3827,5254,3688, - 106,678,876,5256,797,3657,805,5257,5255,675, - 5250,5252,5253,5251,1876,312,5154,5149,4290,5050, - 647,5146,4011,292,5143,5229,5229,1317,1,5008, - 1,5089,5085,4290,5207,647,364,4011,2652,2793, - 5229,5236,147,4824,4821,4224,722,3717,3783,4011, - 369,3805,564,3761,3739,4585,5498,5496,5505,4715, - 5504,5500,5501,5499,5502,5503,5506,5497,3849,3827, - 5254,3688,5229,678,876,5256,797,3657,805,5257, - 5255,675,5250,5252,5253,5251,5229,1,5089,5085, - 5119,2559,5122,1311,5125,5239,43,5062,5062,1317, - 5238,5062,364,2095,45,45,1,4912,4908,4224, - 4916,3717,3783,4011,2867,3805,4872,3761,3739,1274, - 4899,4905,4878,364,4881,4893,4890,4896,4887,4884, - 4875,4902,3849,3827,5254,3688,5229,678,876,5256, - 797,3657,805,5257,5255,675,5250,5252,5253,5251, - 1569,1,5089,5085,4290,322,647,35,4011,312, - 5229,5248,5249,1317,312,647,4638,4011,45,45, - 45,4824,4821,4224,722,3717,3783,4011,5204,3805, - 564,3761,3739,5229,5498,5496,5505,4827,5504,5500, - 5501,5499,5502,5503,5506,5497,3849,3827,5254,3688, - 5229,678,876,5256,797,3657,805,5257,5255,675, - 5250,5252,5253,5251,1876,442,1,1,5229,1, - 1,4845,1,3067,4845,3067,5239,1317,342,314, - 5005,5238,2768,376,5207,45,4824,4821,4224,722, - 3717,3783,4011,5204,3805,564,3761,3739,2566,5498, - 5496,5505,5229,5504,5500,5501,5499,5502,5503,5506, - 5497,3849,3827,5254,3688,438,678,876,5256,797, - 3657,805,5257,5255,675,5250,5252,5253,5251,1876, - 4009,1876,5229,4824,4821,342,722,647,580,4011, - 342,519,1317,1,342,4830,5008,5229,1083,5207, - 45,4824,4821,4224,722,3717,3783,4011,5233,3805, - 564,3761,3739,45,5498,5496,5505,5273,5504,5500, - 5501,5499,5502,5503,5506,5497,3849,3827,5254,3688, - 5229,678,876,5256,797,3657,805,5257,5255,675, - 5250,5252,5253,5251,45,4824,4821,4224,722,3717, - 3783,4011,3468,3805,564,3761,3739,1255,5498,5496, - 5505,131,5504,5500,5501,5499,5502,5503,5506,5497, - 3849,3827,5254,3688,530,678,876,5256,797,3657, - 805,5257,5255,675,5250,5252,5253,5251,5589,230, - 5229,4824,4821,1,722,647,784,4011,5696,5690, - 452,1317,5694,5629,5688,5689,5491,5229,4824,4821, - 3468,722,4869,320,4011,132,5131,56,5232,5719, - 5720,5249,5697,5699,5229,5248,5249,5662,5663,5664, - 4833,3281,5241,5494,5567,5568,5488,5495,5467,5493, - 5492,5489,5490,47,5468,2508,130,5249,5229,2652, - 2793,784,636,5696,5690,1665,1684,5694,5700,5688, - 5689,2081,5698,5721,1,5089,5085,2819,5229,647, - 446,4011,1876,4854,5719,5720,5241,5697,5699,5229, - 4842,5710,5709,5722,5691,5692,5715,5716,5240,388, - 5713,5714,5693,5695,5717,5718,5723,5703,5704,5705, - 5701,5702,5711,5712,5707,5706,5708,636,2454,2427, - 1665,1684,1,5700,5229,4640,125,5698,5721,4860, - 443,45,45,1876,5273,5229,5047,3364,3339,5044, - 5229,5229,5240,4660,2652,2793,5710,5709,5722,5691, - 5692,5715,5716,573,2598,5713,5714,5693,5695,5717, - 5718,5723,5703,5704,5705,5701,5702,5711,5712,5707, - 5706,5708,45,4824,4821,4224,722,3717,3783,4011, - 5229,3805,564,3761,3739,5229,5498,5496,5505,5739, - 5504,5500,5501,5499,5502,5503,5506,5497,3849,3827, - 5254,3688,3016,678,876,5256,797,3657,805,5257, - 5255,675,5250,5252,5253,5251,55,1,45,4824, - 4821,4224,722,3717,3783,4011,5229,3805,564,3761, - 3739,1314,5498,5496,5505,5229,5504,5500,5501,5499, - 5502,5503,5506,5497,3849,3827,5254,3688,5229,678, - 876,5256,797,3657,805,5257,5255,675,5250,5252, - 5253,5251,45,4824,4821,3998,722,3717,3783,4011, - 1166,3805,564,3761,3739,1317,5498,5496,5505,5229, - 5504,5500,5501,5499,5502,5503,5506,5497,3849,3827, - 5254,3688,3630,678,876,5256,797,3657,805,5257, - 5255,675,5250,5252,5253,5251,45,4824,4821,4224, - 722,3717,3783,4011,5229,3805,564,3761,3739,45, - 5498,5496,5505,5273,5504,5500,5501,5499,5502,5503, - 5506,5497,3849,3827,5254,3688,5229,678,876,5256, - 797,3657,805,5257,5255,675,5250,5252,5253,5251, - 45,4824,4821,4224,722,3717,3783,4011,5229,3805, - 564,3761,3739,1905,5498,5496,5505,5229,5504,5500, - 5501,5499,5502,5503,5506,5497,3849,3827,5254,3688, - 231,678,876,5256,797,3657,805,5257,5255,675, - 5250,5252,5253,5251,5229,4824,4821,5491,5273,5229, - 1,5089,5085,5119,640,5122,134,5125,5498,5496, - 5505,5491,5504,5500,5501,5499,5502,5503,5506,5497, - 51,5029,5029,5668,5494,5567,5568,5488,5495,5467, - 5493,5492,5489,5490,5229,5468,2508,4693,5494,5567, - 5568,5488,5495,5467,5493,5492,5489,5490,5229,5468, - 98,1,1,3058,1,5626,5059,129,1,5059, - 941,5627,5628,246,4992,4988,167,4996,396,4824, - 4821,5038,5273,640,5026,5229,128,4979,4985,4958, - 4943,4961,4973,4970,4976,4967,4964,4955,4982,35, - 388,388,5020,388,388,5020,388,5023,5020,2454, - 2427,5229,5020,293,5248,5249,388,4934,4928,4925, - 4952,4931,4922,4937,4940,4949,4946,5229,4919,4827, - 5229,2132,45,4704,5626,5235,5229,5002,4999,941, - 5627,5628,167,388,388,388,388,388,388,388, - 388,388,388,5229,388,2652,2793,120,5023,38, - 389,389,5014,389,389,5014,389,5017,5014,42, - 5104,5101,5014,5023,2652,2793,389,5229,1,5173, - 5173,233,5173,233,233,233,5176,233,101,45, - 45,233,5273,5229,5137,8822,4712,5134,3871,1067, - 5229,5234,5229,389,389,389,389,389,389,389, - 389,389,389,1,389,5229,82,5229,5017,3462, - 5229,5188,1,5173,5173,233,5173,233,233,233, - 233,233,5170,5017,4121,233,2217,424,3148,8822, - 5229,5229,5299,5300,43,5056,5056,3893,5237,225, - 786,1,3057,3915,1,5173,5173,233,5173,233, - 233,233,5179,233,5229,5727,5229,233,5229,5082, - 5079,8822,133,2954,119,4244,5170,5240,4121,5229, - 2217,786,3148,118,1,5173,5173,233,5173,233, - 233,233,5176,233,5229,5035,5032,233,1483,5229, - 5229,8822,2508,5229,5097,5093,5682,4590,5170,5727, - 4121,5236,2217,1,3148,53,5110,5110,5229,659, - 5229,4494,5271,5182,105,224,1,5173,5173,233, - 5173,233,233,233,5176,233,1258,5041,5170,233, - 4121,5727,2217,8822,3148,1,5173,5173,233,5173, - 233,233,233,233,233,225,5229,5271,233,396, - 5248,5249,8822,5229,3893,2454,2427,3179,5229,5107, - 3915,5727,5229,3893,5185,304,5237,418,5229,3915, - 5170,4713,4121,2044,2217,5532,3148,1,5173,5173, - 233,5173,233,233,233,233,233,225,404,5170, - 233,4121,3057,2217,8822,3148,5113,1,1,109, - 232,5116,4720,5727,447,5191,5235,1,5173,5173, - 233,5173,233,233,233,233,233,5491,1,5229, - 233,2249,5727,5229,8822,311,526,5239,995,5236, - 56,5170,5238,4121,5248,2217,2183,3148,5229,8734, - 7931,5229,8734,7931,5494,5567,5568,5488,5495,5467, - 5493,5492,5489,5490,80,5468,5229,41,1,5229, - 5248,5170,1,4121,5727,2217,5239,3148,5236,1, - 197,5238,5234,8,627,197,5229,169,506,3558, - 283,5226,5229,5167,5140,3158,3629,5229,4000,4029, - 4721,504,526,5229,5727,4203,4476,5229,5229,5229, - 5229,4602,4623,3993,5229,5229,5229,4649,4612,5229, - 1,5229,5229,508,4730,2,5229,5229,1,5229, - 5229,5229,5229,5229,5229,5229,2778,5229,5229,5229, - 5229,5229,5229,5229,5229,5229,5229,5229,5229,5229, - 5229,5229,5229,169,5226,43,3125,4650,5229,5229, - 5229,5229,5229,5229,5229,5229,5229,5229,5229,5229, - 4651,5229,5229,5229,5229,5229,5229,5229,5229,5229, - 2991,5229,5229,5229,5229,5229,5229,5229,2778,3045, - 5229,1964,2536,5229,5229,5229,5229,5229,5229,5229, - 5229,5229,5229,5229,5229,5229,5229,5229,5229,5229, - 5229,5229,5229,5229,5229,4304 + 1,1,1,1,1,1,1,1,1,1854, + 1,1854,1,1,1,1,1,1,1,1, + 1,1,2473,1,2494,424,3396,1,1,1, + 5300,1,1,1,54,5103,5100,318,5468,5289, + 5209,1113,3674,2465,2196,2181,3568,3063,3652,2280, + 3637,4695,3626,5289,5254,5233,5233,5233,5233,5233, + 5233,5261,5233,1,1,1,5258,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1854,1,4196,1, + 1,1,1,1,1,1,1,1,1,2473, + 1,2494,124,3396,1,1,1,5300,1,1, + 1,118,5289,3476,3451,5468,2371,5289,1113,3674, + 2465,2196,2181,3568,3063,3652,2280,3637,4695,3626, + 5289,5254,5233,5233,5233,5233,5233,5233,5261,5233, + 1,1,1,5258,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5289,1,5289,1,1,1,1, + 1,1,1,1,1,1,2473,1,2494,134, + 3396,1,1,1,5300,1,1,1,117,5289, + 1,3910,5468,3932,387,1113,3674,2465,2196,2181, + 3568,3063,3652,2280,3637,4695,3626,5289,5254,5233, + 5233,5233,5233,5233,5233,5261,5233,1,1,1, + 5258,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 3554,1,5289,1,1,1,1,1,1,1, + 1,1,1,2473,1,2494,5289,3396,1,1, + 1,5300,1,1,1,116,2376,2348,3910,5468, + 3932,5289,1113,3674,2465,2196,2181,3568,3063,3652, + 2280,3637,4695,3626,5289,3570,1,1,1,1, + 1,1,3619,1,1,1,1,5298,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,528,1,5289, + 1,1,1,1,1,1,1,1,1,1, + 2473,1,2494,357,3396,1,1,1,5300,1, + 1,1,291,5308,5309,3910,5468,3932,189,1113, + 3674,2465,2196,2181,3568,3063,3652,2280,3637,4695, + 3626,45,4925,4922,4322,799,2431,3800,3060,137, + 3822,863,3778,3756,3553,5556,5554,5563,5549,5562, + 5558,5559,5557,5560,5561,5564,5555,3866,3844,5314, + 626,568,742,5316,580,2953,613,5317,5315,562, + 5310,5312,5313,5311,129,5552,5289,5625,5626,5546, + 5553,5525,5551,5550,5547,5548,5526,1,1294,394, + 4925,4922,5684,5333,5645,165,866,5685,5686,5289, + 5158,5158,232,5154,232,232,232,5162,232,1, + 4921,5289,232,1,1,1,1,1,1,1, + 1,1,1,1,1,5289,1,5013,5009,2418, + 5017,669,45,3060,5106,440,1,1,1172,1, + 5280,4949,5151,1,4949,1,1,1,1,1, + 1,1,1,1,1,1169,2697,2312,139,5289, + 1,165,2980,3006,1,1,1,5295,161,45, + 413,5698,232,5333,5289,5158,5158,232,5154,232, + 232,232,5206,232,1,1854,5785,232,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5109,1,5720,5721,5722,366,5013,5009,2418,5017, + 669,1,3060,1760,1,45,5289,5151,1,5333, + 1,1,1,1,1,1,1,1,1,1, + 1169,5289,2312,5294,4025,1,335,5289,1338,1, + 1,1,5289,8829,8829,412,5698,232,1,5013, + 5009,4229,5017,669,39,3060,5289,4964,2316,1067, + 4964,5785,4964,4964,1854,4964,4964,4964,1,5013, + 5009,4229,5017,669,1124,3060,3358,5720,5721,5722, + 4964,4964,5625,5626,2673,5331,226,5289,4925,4922, + 4229,799,669,1625,3060,5289,5618,140,4350,4964, + 5556,5554,5563,5549,5562,5558,5559,5557,5560,5561, + 5564,5555,5289,4964,143,5289,5308,5309,5720,5721, + 5722,2071,4964,4964,4964,4964,312,4964,4964,3731, + 5552,5289,5625,5626,5546,5553,5525,5551,5550,5547, + 5548,5526,4964,4964,4964,4964,4964,4964,4964,4964, + 4964,4964,4964,4964,4964,4964,4964,42,5182,5179, + 4964,4964,4964,4964,4964,4964,4964,4964,4964,4964, + 4964,4964,4964,5289,4964,4964,4967,3888,813,4967, + 2685,4967,4967,1811,4967,4967,4967,5289,5013,5009, + 4229,5017,669,5224,3060,1078,5221,2316,104,4967, + 4967,1,5013,5009,5197,5017,5203,95,5200,5299, + 4958,441,45,45,5298,5333,2245,5136,4967,5289, + 5133,4759,1768,1725,1682,1639,1596,1553,1510,1467, + 1424,1381,4967,1,5013,5009,2418,5017,669,5289, + 3060,4967,4967,4967,4967,240,4967,4967,5112,344, + 4925,4922,2418,799,669,1625,3060,4807,5618,5289, + 2071,4967,4967,4967,4967,4967,4967,4967,4967,4967, + 4967,4967,4967,4967,4967,4967,5289,5289,5289,4967, + 4967,4967,4967,4967,4967,4967,4967,4967,4967,4967, + 4967,4967,1854,4967,4967,5289,1,1,1,1, + 1,1,1,292,1,1,1,1,1854,1, + 1,1,43,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,310,5013, + 5009,4229,5017,669,5224,3060,4200,5221,2746,5289, + 4925,4922,1,799,669,5331,3060,1,1,1, + 5013,5009,4322,5017,2431,3800,3060,5821,3822,4973, + 3778,3756,1984,5000,5006,4979,143,4982,4994,4991, + 4997,4988,4985,4976,5003,3866,3844,5314,626,568, + 742,5316,580,2953,613,5317,5315,562,5310,5312, + 5313,5311,1,5142,5142,5289,5139,5289,1625,128, + 362,5618,1,5289,302,4063,1294,5289,5308,5309, + 340,45,45,1,5590,5301,4323,512,45,4925, + 4922,4322,799,2431,3800,3060,5283,3822,1024,3778, + 3756,2743,5556,5554,5563,53,5562,5558,5559,5557, + 5560,5561,5564,5555,3866,3844,5314,626,568,742, + 5316,580,2953,613,5317,5315,562,5310,5312,5313, + 5311,1854,44,4943,4940,2709,362,4937,2245,3060, + 340,5300,340,4759,5289,1294,340,5289,2903,5289, + 5308,5309,5267,362,669,5289,3060,2980,3006,5296, + 145,4925,4922,4322,799,2431,3800,3060,138,3822, + 1024,3778,3756,130,5556,5554,5563,5289,5562,5558, + 5559,5557,5560,5561,5564,5555,3866,3844,5314,626, + 568,742,5316,580,2953,613,5317,5315,562,5310, + 5312,5313,5311,1,5013,5009,4229,5017,669,5289, + 3060,310,3742,5289,2746,2760,310,1294,2606,5289, + 3256,5297,45,45,1,5013,5009,4322,5017,2431, + 3800,3060,369,3822,4973,3778,3756,5289,5000,5006, + 4979,4946,4982,4994,4991,4997,4988,4985,4976,5003, + 3866,3844,5314,626,568,742,5316,580,2953,613, + 5317,5315,562,5310,5312,5313,5311,1172,2541,2514, + 5289,5289,402,344,45,45,4063,5333,5297,1625, + 5191,1294,5618,991,5296,5194,45,45,45,4925, + 4922,4322,799,2431,3800,3060,5264,3822,1024,3778, + 3756,1205,5556,5554,5563,5797,5562,5558,5559,5557, + 5560,5561,5564,5555,3866,3844,5314,626,568,742, + 5316,580,2953,613,5317,5315,562,5310,5312,5313, + 5311,511,1854,1,5013,5009,5197,5017,5203,5289, + 5200,5296,5289,4925,4922,1294,5333,5301,5289,5289, + 5301,4771,5267,45,4925,4922,4322,799,2431,3800, + 3060,5264,3822,1024,3778,3756,5289,5556,5554,5563, + 5289,5562,5558,5559,5557,5560,5561,5564,5555,3866, + 3844,5314,626,568,742,5316,580,2953,613,5317, + 5315,562,5310,5312,5313,5311,96,1,1,361, + 1,877,5148,5300,1,5148,5300,99,45,45, + 1294,5333,5295,5215,5289,3174,5212,5267,45,4925, + 4922,4322,799,2431,3800,3060,5293,3822,1024,3778, + 3756,5289,5556,5554,5563,3029,5562,5558,5559,5557, + 5560,5561,5564,5555,3866,3844,5314,626,568,742, + 5316,580,2953,613,5317,5315,562,5310,5312,5313, + 5311,45,4925,4922,4322,799,2431,3800,3060,2661, + 3822,1024,3778,3756,132,5556,5554,5563,5294,5562, + 5558,5559,5557,5560,5561,5564,5555,3866,3844,5314, + 626,568,742,5316,580,2953,613,5317,5315,562, + 5310,5312,5313,5311,1,320,227,1332,45,5754, + 5748,5289,5333,5752,1625,5746,5747,5618,1294,2606, + 5289,4925,4922,5549,799,669,5289,3060,5289,4777, + 5777,5778,123,5755,228,5289,5292,1,4779,5289, + 4063,5289,5127,3476,3451,5106,5289,5103,5100,5757, + 5552,5549,5625,5626,5546,5553,5525,5551,5550,5547, + 5548,5526,435,995,1854,5289,1342,1371,4785,2541, + 2514,1,5758,5756,5779,394,5308,5309,5552,5248, + 5625,5626,5546,5553,5525,5551,5550,5547,5548,5526, + 5289,5289,5768,5767,5780,1464,1854,5749,5750,5773, + 5774,5771,5772,5751,5753,5775,5776,5726,3888,813, + 5781,5109,5761,5762,5763,5759,5760,5769,5770,5765, + 5764,5766,45,4925,4922,4322,799,2431,3800,3060, + 3686,3822,1024,3778,3756,5300,5556,5554,5563,5289, + 5562,5558,5559,5557,5560,5561,5564,5555,3866,3844, + 5314,626,568,742,5316,580,2953,613,5317,5315, + 562,5310,5312,5313,5311,5720,5721,5722,45,4925, + 4922,4322,799,2431,3800,3060,5289,3822,1024,3778, + 3756,1463,5556,5554,5563,5289,5562,5558,5559,5557, + 5560,5561,5564,5555,3866,3844,5314,626,568,742, + 5316,580,2953,613,5317,5315,562,5310,5312,5313, + 5311,5289,45,4925,4922,4751,799,2431,3800,3060, + 5289,3822,1024,3778,3756,1294,5556,5554,5563,5289, + 5562,5558,5559,5557,5560,5561,5564,5555,3866,3844, + 5314,626,568,742,5316,580,2953,613,5317,5315, + 562,5310,5312,5313,5311,45,4925,4922,4322,799, + 2431,3800,3060,1,3822,1024,3778,3756,5289,5556, + 5554,5563,1507,5562,5558,5559,5557,5560,5561,5564, + 5555,3866,3844,5314,626,568,742,5316,580,2953, + 613,5317,5315,562,5310,5312,5313,5311,45,4925, + 4922,4322,799,2431,3800,3060,5289,3822,1024,3778, + 3756,5289,5556,5554,5563,5289,5562,5558,5559,5557, + 5560,5561,5564,5555,3866,3844,5314,626,568,742, + 5316,580,2953,613,5317,5315,562,5310,5312,5313, + 5311,5289,4925,4922,5289,5333,103,119,5289,8715, + 8699,782,5289,3595,5647,5556,5554,5563,5549,5562, + 5558,5559,5557,5560,5561,5564,5555,5289,4925,4922, + 5289,799,4970,1,3060,5289,8715,8699,5289,127, + 5289,5251,3745,5740,5687,5552,5293,5625,5626,5546, + 5553,5525,5551,5550,5547,5548,5526,3395,3200,244, + 5093,5089,5684,5097,5289,2022,866,5685,5686,782, + 729,5289,4030,5080,5086,5059,5044,5062,5074,5071, + 5077,5068,5065,5056,5083,35,386,386,5118,386, + 386,5118,386,5118,5118,5289,80,5289,5118,4502, + 3572,3514,386,5035,5296,5029,5026,5053,5032,5023, + 5038,5041,5050,5047,5020,121,131,49,5124,5124, + 5684,3595,5357,5358,866,5685,5686,2980,3006,386, + 4928,386,386,386,386,386,386,386,386,386, + 386,35,4039,436,5118,38,387,387,5115,387, + 387,5115,387,5115,5115,4757,5292,5289,5115,5118, + 5121,2606,387,1,1,5233,5233,232,5233,232, + 232,232,5236,232,5289,5289,5289,232,5289,4925, + 4922,8836,799,4970,5130,3060,4928,5289,4931,387, + 4793,387,387,387,387,387,387,387,387,387, + 387,5289,576,5289,5115,450,4799,5230,3572,3514, + 5289,2541,2514,43,5145,5145,656,120,5145,5115, + 2242,2859,2494,3595,3396,1,5233,5233,232,5233, + 232,232,232,232,232,223,5289,126,232,43, + 5145,5145,8836,1,5299,2013,43,5145,5145,5298, + 4934,5785,5289,5242,3747,35,3224,386,1,5233, + 5233,232,5233,232,232,232,5239,232,5230,5289, + 3250,232,5289,5168,5165,8836,393,5289,5175,5171, + 386,2242,5331,2494,107,3396,3544,4821,229,2940, + 1,5233,5233,232,5233,232,232,232,5236,232, + 723,5230,4961,232,5245,5549,3998,8836,290,5289, + 3572,3514,5785,367,2242,5331,2494,5289,3396,1, + 5331,723,51,5188,5188,2980,3006,362,420,222, + 5289,5289,5552,5230,5625,5626,5546,5553,5525,5551, + 5550,5547,5548,5526,5289,5785,2242,444,2494,3155, + 3396,1,5233,5233,232,5233,232,232,232,5236, + 232,223,1,302,232,5185,5289,1,8836,43, + 5145,5145,5242,5590,5299,5299,723,5785,797,5298, + 5298,230,1249,1,5233,5233,232,5233,232,232, + 232,232,232,362,5230,5289,232,54,5549,5289, + 8836,5309,2801,5295,374,3544,5289,2242,1,2494, + 362,3396,5331,54,422,1,195,5308,5289,1930, + 2573,195,223,5245,416,5552,5230,5625,5626,5546, + 5553,5525,5551,5550,5547,5548,5526,5289,5785,2242, + 445,2494,5309,3396,1,5233,5233,232,5233,232, + 232,232,232,232,8,1,78,232,5308,1, + 723,8836,5286,524,5289,4693,41,167,281,5294, + 5785,5227,1,5233,5233,232,5233,232,232,232, + 232,232,3250,5289,1284,232,3404,5230,309,8836, + 5289,2109,5289,2158,5289,5289,504,4823,4685,502, + 2242,5218,2494,5289,3396,5289,5289,517,4703,3251, + 2772,5289,5289,5289,4717,5230,4324,5289,5289,5289, + 4731,4579,4826,3686,5289,5286,506,2,2242,524, + 2494,5785,3396,167,1,2748,5289,3439,5289,5289, + 5289,5289,5289,5289,5289,5289,5289,5289,5289,5289, + 5289,5289,5289,5289,5289,5289,5289,5289,4012,5785, + 5289,5289,3385,3100,5289,4335,5289,5289,4445,5289, + 5289,5289,43,5289,5289,5289,3137,5289,5289,3192, + 5289,2748,5289,5289,5289,5289,5289,5289,5289,5289, + 5289,5289,5289,1941,5289,2669,5289,5289,5289,5289, + 5289,5289,5289,5289,5289,5289,5289,5289,5289,5289, + 5289,5289,5289,5289,5289,5289,5289,5289,5289,5289, + 5289,5289,5289,5289,5289,5289,3686 }; }; public final static char termAction[] = TermAction.termAction; @@ -1708,59 +1715,59 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 558,7,397,1,351,706,706,706,706,1104, - 351,746,746,906,746,213,381,215,398,398, - 398,398,398,398,398,398,398,748,754,759, - 756,763,761,768,766,770,769,771,220,772, - 397,397,37,37,37,37,437,175,9,9, - 743,37,314,113,746,746,9,937,748,113, - 113,104,381,848,36,1017,1106,1041,397,746, - 748,836,836,175,397,398,398,398,398,398, - 398,398,398,398,398,398,398,398,398,398, - 398,398,398,398,397,397,397,397,397,397, - 397,397,397,397,397,397,398,113,976,976, - 976,976,491,113,9,9,1102,1030,1041,717, - 1041,712,1041,714,1041,1025,1104,437,314,314, - 9,398,1102,273,519,503,502,317,1048,1048, - 1104,215,314,36,397,435,1016,434,437,436, - 434,113,314,756,756,754,754,754,761,761, - 761,761,759,759,766,763,763,769,768,770, - 1118,771,351,351,351,351,437,437,976,975, - 976,743,437,739,446,437,513,491,602,511, - 717,652,437,437,437,491,976,104,314,787, - 113,521,523,437,1017,398,37,752,69,113, - 1106,437,437,706,436,1017,397,397,397,397, - 397,351,351,381,889,739,446,513,512,513, - 491,513,652,652,437,491,437,113,507,495, - 506,523,491,435,113,752,1102,1016,1106,437, - 435,113,113,113,113,175,175,739,738,659, - 437,446,1118,715,706,493,155,1108,446,513, - 513,730,437,652,659,657,658,437,720,397, - 504,504,162,162,437,517,1102,662,113,437, - 752,753,752,397,69,271,748,1106,113,113, - 739,1017,798,717,976,706,434,843,1110,431, - 351,695,64,731,437,659,398,437,720,397, - 397,523,1017,113,521,495,720,1083,752,175, - 398,314,271,435,798,798,608,462,435,513, - 513,431,792,1102,699,398,1118,170,730,437, - 1104,1104,437,898,523,435,720,753,113,314, - 793,659,600,978,262,351,715,644,798,798, - 462,435,513,717,1104,1110,431,398,398,437, - 437,437,898,113,898,607,262,600,708,1104, - 659,975,706,440,440,793,717,361,695,437, - 351,437,437,351,891,898,608,798,793,169, - 792,113,1104,437,462,608,462,974,974,1023, - 362,1104,437,175,524,891,798,397,117,431, - 793,437,437,462,37,37,1023,361,1118,398, - 1118,793,360,351,351,351,362,351,437,228, - 793,793,437,717,113,112,893,659,113,659, - 717,437,793,975,353,351,353,362,1118,362, - 381,381,379,796,381,793,793,904,1023,37, - 893,659,117,793,556,662,362,113,431,113, - 379,262,351,113,1023,117,440,113,113,1096, - 362,904,362,793,262,397,362,359,658,974, - 717,717,1098,397,360,175,793,113,791,116, - 434,362,113,793,791,791,362 + 121,7,209,1,163,871,871,871,871,1071, + 163,810,810,725,810,108,193,110,210,210, + 210,210,210,210,210,210,210,812,818,823, + 820,827,825,832,830,834,833,835,252,836, + 209,209,765,765,765,765,249,1075,9,9, + 807,765,501,349,810,810,9,249,349,349, + 340,193,896,764,978,1073,1008,209,810,812, + 552,552,1075,209,210,210,210,210,210,210, + 210,210,210,210,210,210,210,210,210,210, + 210,210,210,209,209,209,209,209,209,209, + 209,209,209,209,209,210,349,886,886,886, + 886,410,349,9,9,1069,997,1008,722,1008, + 717,1008,719,1008,992,1071,249,501,501,9, + 871,210,1069,460,577,567,566,419,1015,1015, + 1071,110,501,764,209,247,977,246,248,246, + 349,501,820,820,818,818,818,825,825,825, + 825,823,823,830,827,827,833,832,834,631, + 835,163,163,163,163,249,249,886,885,886, + 807,249,803,365,249,713,410,414,711,722, + 455,249,249,249,410,886,340,501,851,349, + 579,581,249,978,210,765,816,305,349,1073, + 249,249,248,978,209,209,209,209,209,163, + 163,193,303,803,365,713,712,713,410,713, + 455,455,249,410,249,349,571,559,570,581, + 410,247,349,816,1069,977,1073,249,247,349, + 349,349,349,1075,1075,803,802,799,249,365, + 631,720,871,412,62,621,365,713,713,984, + 249,455,799,797,798,249,504,209,568,568, + 352,352,249,575,1069,633,349,249,816,817, + 816,209,305,67,812,1073,349,349,803,978, + 514,722,886,871,246,616,623,243,163,860, + 792,985,249,799,210,249,504,209,209,581, + 249,978,349,579,559,504,1050,816,1075,210, + 501,67,247,514,514,667,381,247,713,713, + 243,856,1069,249,864,210,631,360,984,249, + 1071,1071,249,880,581,504,817,349,501,857, + 799,1118,939,294,163,720,703,514,514,381, + 247,713,722,1071,623,243,977,210,210,249, + 249,249,880,349,880,666,294,1118,888,1071, + 799,885,871,115,115,857,722,173,860,249, + 163,249,249,163,873,880,667,514,857,359, + 856,349,1071,249,381,667,381,884,884,892, + 174,1071,249,1075,582,873,514,209,70,243, + 857,249,249,381,765,765,892,173,631,210, + 631,857,172,163,163,163,174,163,249,260, + 857,857,249,722,349,348,875,799,349,799, + 722,249,857,885,165,163,165,174,631,174, + 193,193,191,894,193,857,857,363,892,765, + 875,799,70,857,614,633,174,349,243,349, + 191,294,163,349,892,70,115,349,349,1063, + 174,363,174,857,294,209,174,171,798,884, + 722,722,1065,209,172,1075,857,349,855,69, + 246,174,349,857,855,855,174 }; }; public final static char asb[] = Asb.asb; @@ -1768,118 +1775,118 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 8,73,118,74,13,70,121,0,31,62, - 32,33,63,7,34,35,36,37,57,38, - 39,40,41,42,28,26,27,9,6,11, - 12,5,29,65,43,3,47,14,15,61, - 45,16,66,48,17,18,49,50,19,20, - 51,52,21,22,53,67,55,10,68,23, - 24,46,25,1,2,4,44,0,96,90, - 11,12,91,92,88,89,30,93,94,97, - 98,99,100,101,102,117,73,95,69,104, - 105,106,107,108,109,110,111,112,113,118, - 71,13,121,65,1,2,9,6,4,3, - 59,70,74,8,0,71,62,63,57,26, - 27,9,6,11,12,29,35,3,40,43, - 41,42,28,38,33,37,15,25,14,21, - 19,20,22,23,18,16,24,32,36,34, - 31,39,64,8,7,1,2,5,4,10, - 0,75,65,73,95,74,64,59,3,8, - 70,13,69,0,8,74,14,15,31,16, - 32,33,18,19,20,34,21,22,35,36, - 37,57,38,39,10,23,24,25,40,41, - 42,28,3,26,27,9,6,11,12,29, - 4,43,5,7,1,2,63,62,0,65, - 73,95,70,118,74,71,121,14,15,31, - 62,16,32,33,18,19,20,63,34,21, - 22,35,36,37,57,38,39,10,23,24, - 25,40,41,42,28,26,27,11,12,29, - 43,8,9,6,4,13,1,2,7,3, - 5,0,62,63,3,10,32,36,34,31, - 39,15,25,14,21,19,20,22,23,18, - 16,24,40,43,41,42,28,38,33,37, - 5,7,4,26,27,9,6,11,12,29, - 35,1,2,118,8,0,47,14,15,45, - 16,48,17,18,49,50,19,20,51,7, - 52,21,22,53,55,23,44,24,46,25, - 1,2,8,59,9,6,5,4,74,13, - 3,0,87,114,115,116,54,73,119,122, - 71,72,75,58,56,60,77,79,85,83, - 76,81,82,84,86,64,78,80,13,8, - 47,61,45,66,48,17,49,50,51,52, - 53,67,55,68,44,46,57,62,63,10, - 32,36,34,31,39,15,25,14,21,19, - 20,22,23,18,16,24,40,43,41,42, - 28,38,33,37,26,27,11,12,29,35, - 9,6,3,4,7,5,1,2,0,65, - 69,70,1,2,0,87,56,7,114,115, - 116,58,8,3,9,6,5,73,71,13, - 72,47,14,15,61,45,16,66,48,17, - 18,49,50,19,20,51,52,21,22,53, - 67,55,10,68,23,44,24,46,25,4, - 1,2,54,0,9,6,4,5,7,1, - 2,3,59,65,69,70,8,74,95,0, - 4,30,8,73,64,0,7,5,3,59, - 6,9,95,47,14,15,45,16,66,48, - 17,18,49,50,19,20,51,52,21,22, - 53,67,55,10,68,23,44,24,46,25, - 1,2,4,74,8,61,0,14,15,31, - 62,16,32,33,18,19,20,63,7,34, - 21,22,35,36,37,57,38,39,10,23, - 24,25,40,41,42,1,2,3,26,27, - 9,6,11,12,5,29,4,43,72,28, - 0,4,8,73,64,0,64,61,45,16, - 66,48,18,49,50,19,20,51,52,21, - 22,53,67,55,68,23,44,24,46,25, - 15,14,47,8,3,9,6,13,58,60, - 87,17,54,7,1,2,5,4,10,56, - 0,1,2,8,71,0,69,70,71,8, - 0,47,14,15,61,45,16,66,48,17, - 18,49,50,19,20,51,52,21,22,53, - 67,55,10,68,23,44,24,46,25,1, - 2,4,95,0,8,64,70,0,73,8, - 59,3,69,70,13,30,0,8,64,69, - 0,54,73,4,1,2,64,8,0,45, - 57,46,8,65,95,69,70,74,0,44, - 1,2,4,114,115,116,0,57,45,7, - 46,5,1,2,4,75,64,120,103,26, - 27,59,3,96,90,6,91,92,11,12, - 89,88,30,93,94,97,98,9,99,100, - 101,65,95,74,121,69,104,105,106,107, - 108,109,110,111,112,113,73,118,102,117, - 71,70,13,8,0,76,0,60,47,14, - 15,61,45,16,66,48,87,17,18,49, - 50,19,20,51,56,52,21,22,53,67, - 55,10,68,23,58,44,24,46,25,8, - 3,9,6,71,13,7,4,54,5,1, - 2,0,8,73,64,75,0,62,63,26, - 27,9,11,12,5,29,35,3,4,7, - 40,43,41,42,28,38,33,37,15,25, + 8,73,118,74,13,70,121,0,48,14, + 15,61,46,30,62,16,31,65,49,17, + 32,18,50,51,19,20,52,63,53,33, + 21,22,34,54,35,66,36,57,37,55, + 38,67,23,44,24,47,25,39,40,41, + 28,3,26,27,9,6,11,12,29,68, + 42,7,1,2,4,10,5,0,71,57, + 26,27,9,6,11,12,29,34,3,4, + 39,42,40,41,28,37,32,36,15,25, 14,21,19,20,22,23,18,16,24,10, - 32,36,34,31,39,59,1,2,6,0, - 45,46,75,3,73,13,64,57,8,65, - 95,70,74,69,0,47,14,15,61,45, - 16,66,48,17,18,49,50,19,20,51, - 52,21,22,53,67,55,10,68,23,44, - 24,46,25,1,2,4,63,62,11,12, - 6,91,92,99,9,100,5,29,30,107, - 108,104,105,106,112,111,113,89,88,109, - 110,97,98,93,94,101,102,26,27,90, - 103,3,59,69,70,65,0,61,45,16, - 66,48,18,49,50,19,20,51,52,21, - 22,53,67,55,10,68,23,44,24,46, - 25,15,14,47,8,3,9,13,58,56, - 60,87,17,30,4,6,7,1,2,5, - 54,0,119,0,10,66,61,67,68,15, - 25,14,21,19,20,22,23,18,16,24, - 75,73,95,118,71,64,121,120,96,103, - 90,26,27,11,12,91,92,88,89,30, - 65,93,94,97,98,99,100,101,102,117, - 69,104,105,106,107,108,109,110,111,112, - 113,70,47,45,48,17,49,50,51,52, - 53,55,44,46,13,8,74,3,59,7, - 5,6,9,1,2,4,0,13,8,7, - 5,3,1,2,6,9,4,73,0 + 31,35,33,30,38,64,8,7,5,1, + 2,63,62,0,68,69,70,1,2,0, + 14,15,30,62,16,31,32,18,19,20, + 63,7,33,21,22,34,35,36,57,37, + 38,10,23,24,25,39,40,41,28,1, + 2,26,27,9,6,11,12,5,29,4, + 42,72,3,0,87,103,104,105,43,73, + 119,122,71,72,75,58,56,60,77,79, + 85,83,76,81,82,84,86,64,78,80, + 13,8,48,61,46,65,49,17,50,51, + 52,53,54,66,55,67,44,47,57,62, + 63,10,31,35,33,30,38,15,25,14, + 21,19,20,22,23,18,16,24,39,42, + 40,41,28,37,32,36,26,27,11,12, + 29,34,9,6,3,4,7,5,1,2, + 0,68,73,91,70,118,74,71,121,14, + 15,30,62,16,31,32,18,19,20,63, + 33,21,22,34,35,36,57,37,38,10, + 23,24,25,39,40,41,28,26,27,11, + 12,29,42,8,9,13,5,7,1,2, + 4,3,6,0,92,90,11,12,93,94, + 88,89,45,95,96,97,98,99,100,101, + 102,107,73,91,69,108,109,110,111,112, + 113,114,115,116,117,118,71,13,121,68, + 1,2,9,6,4,3,59,70,74,8, + 0,75,68,73,91,74,64,59,3,8, + 70,13,69,0,87,56,7,103,104,105, + 58,8,3,9,6,5,73,71,13,72, + 48,14,15,61,46,16,65,49,17,18, + 50,51,19,20,52,53,21,22,54,66, + 55,10,67,23,44,24,47,25,4,1, + 2,43,0,4,8,73,64,0,48,14, + 15,46,16,49,17,18,50,51,19,20, + 52,7,53,21,22,54,55,23,44,24, + 47,25,1,2,8,59,9,6,5,4, + 74,13,3,0,1,2,8,71,0,62, + 63,3,10,31,35,33,30,38,15,25, + 14,21,19,20,22,23,18,16,24,39, + 42,40,41,28,37,32,36,5,7,4, + 26,27,9,6,11,12,29,34,1,2, + 118,8,0,46,57,47,8,68,91,69, + 70,74,0,60,48,14,15,61,46,16, + 65,49,87,17,18,50,51,19,20,52, + 56,53,21,22,54,66,55,10,67,23, + 58,44,24,47,25,8,3,9,6,71, + 13,7,4,43,5,1,2,0,9,6, + 7,5,4,1,2,3,59,68,69,70, + 8,74,91,0,5,7,3,59,6,9, + 91,48,14,15,46,16,65,49,17,18, + 50,51,19,20,52,53,21,22,54,66, + 55,10,67,23,44,24,47,25,1,2, + 4,74,8,61,0,8,73,64,75,0, + 13,8,5,7,3,1,2,4,6,9, + 73,0,48,14,15,61,46,16,65,49, + 17,18,50,51,19,20,52,53,21,22, + 54,66,55,10,67,23,44,24,47,25, + 1,2,4,91,0,64,61,46,16,65, + 49,18,50,51,19,20,52,53,21,22, + 54,66,55,67,23,44,24,47,25,15, + 14,48,8,3,9,6,13,58,60,87, + 17,43,7,1,2,5,4,10,56,0, + 4,45,8,73,64,0,43,73,4,1, + 2,64,8,0,63,62,11,12,6,93, + 94,99,9,100,5,29,69,45,68,111, + 112,108,109,110,116,115,117,89,88,113, + 114,97,98,95,96,101,102,26,27,70, + 90,106,59,3,48,14,15,61,46,16, + 65,49,17,18,50,51,19,20,52,53, + 21,22,54,66,55,10,67,23,24,47, + 25,1,2,4,44,0,69,70,71,8, + 0,57,46,7,47,5,1,2,4,75, + 64,120,106,26,27,59,3,92,90,6, + 93,94,11,12,89,88,45,95,96,97, + 98,9,99,100,101,68,91,74,121,69, + 108,109,110,111,112,113,114,115,116,117, + 73,118,102,107,71,70,13,8,0,8, + 64,70,0,73,8,59,3,69,70,13, + 45,0,46,47,75,3,73,13,64,57, + 8,91,74,69,70,68,0,8,64,69, + 0,119,0,76,0,62,63,26,27,9, + 6,11,12,5,29,34,3,4,7,39, + 42,40,41,28,37,32,36,15,25,14, + 21,19,20,22,23,18,16,24,10,31, + 35,33,30,38,59,1,2,0,61,46, + 16,65,49,18,50,51,19,20,52,53, + 21,22,54,66,55,10,67,23,44,24, + 47,25,15,14,48,8,3,9,13,58, + 56,60,87,17,45,4,6,7,1,2, + 5,43,0,44,1,2,4,103,104,105, + 0,10,65,61,66,67,15,25,14,21, + 19,20,22,23,18,16,24,75,73,91, + 118,71,64,121,120,92,106,90,26,27, + 11,12,93,94,88,89,45,68,95,96, + 97,98,99,100,101,102,107,69,108,109, + 110,111,112,113,114,115,116,117,70,48, + 46,49,17,50,51,52,53,54,55,44, + 47,13,8,74,3,59,5,7,6,9, + 1,2,4,0,8,74,14,15,30,62, + 16,31,32,18,19,20,63,7,33,21, + 22,34,35,36,57,37,38,10,23,24, + 25,39,40,41,1,2,3,26,27,9, + 6,11,12,5,29,4,42,28,0 }; }; public final static byte asr[] = Asr.asr; @@ -1887,59 +1894,59 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasb { public final static char nasb[] = {0, - 135,12,64,12,12,12,12,12,12,68, - 12,12,12,220,12,42,236,156,64,64, - 200,64,64,64,64,64,64,12,12,12, - 12,12,12,12,12,12,12,12,64,12, - 64,113,37,37,37,37,156,83,133,133, - 21,5,97,264,12,12,133,222,12,264, - 264,160,1,64,72,48,12,12,113,12, - 12,26,26,83,113,64,64,64,64,64, - 64,64,64,64,64,64,64,64,64,64, - 64,64,64,64,64,64,64,64,64,64, - 64,64,64,64,64,113,64,264,12,12, - 12,12,80,264,32,32,170,233,234,121, - 234,173,234,57,234,227,10,156,97,97, - 32,64,170,92,159,13,13,12,12,12, - 10,156,97,37,77,188,143,187,204,156, - 187,264,97,12,12,12,12,12,12,12, + 82,12,57,12,12,12,12,12,12,61, + 12,12,12,185,12,118,240,101,57,57, + 122,57,57,57,57,57,57,12,12,12, + 12,12,12,12,12,12,12,12,57,12, + 57,144,31,31,31,31,101,249,139,139, + 75,5,99,258,12,12,139,126,258,258, + 213,1,57,40,168,12,12,144,12,12, + 13,13,249,144,57,57,57,57,57,57, + 57,57,57,57,57,57,57,57,57,57, + 57,57,57,57,57,57,57,57,57,57, + 57,57,57,57,144,57,258,12,12,12, + 12,19,258,26,26,175,227,228,152,228, + 180,228,50,228,221,10,101,99,99,26, + 12,57,175,94,212,48,48,12,12,12, + 10,101,99,31,45,118,106,117,101,117, + 258,99,12,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,175,11,12,12, - 12,140,156,133,133,175,133,192,133,12, - 121,133,192,156,11,12,12,138,97,12, - 264,147,133,156,48,64,37,133,54,264, - 12,11,156,12,224,48,64,113,113,113, - 113,12,12,32,12,40,244,133,133,70, - 47,70,133,205,11,47,175,264,12,126, - 12,209,46,175,264,88,140,143,12,204, - 175,264,264,264,264,83,83,133,40,218, - 156,154,12,74,12,12,99,254,244,70, - 70,178,175,205,218,12,12,175,133,64, - 12,12,13,13,156,125,170,209,264,175, - 133,52,12,113,140,225,12,12,264,264, - 40,48,133,121,12,12,68,133,164,128, - 12,12,68,86,192,218,64,205,40,64, - 64,133,48,264,147,182,133,12,88,83, - 64,97,225,188,195,133,212,133,192,133, - 19,184,154,170,12,64,12,24,269,192, - 68,68,11,133,209,188,40,52,264,97, - 154,218,12,212,255,12,58,99,212,195, - 209,188,19,266,15,128,184,64,64,11, - 192,192,50,264,133,120,164,12,12,68, - 218,12,12,123,123,154,266,217,12,192, - 12,11,11,12,133,50,212,133,154,90, - 12,264,68,192,209,212,133,12,12,133, - 110,15,11,83,262,40,195,77,62,128, - 154,192,75,209,37,37,101,116,12,64, - 12,154,12,12,12,12,117,12,205,152, - 154,154,205,107,264,264,133,218,264,133, - 121,75,154,12,105,12,12,117,12,117, - 273,273,207,12,273,154,154,12,133,37, - 50,218,133,154,12,37,117,264,128,264, - 240,133,12,264,101,62,123,264,264,133, - 117,12,117,154,128,113,117,105,218,12, - 107,107,126,64,12,251,154,264,103,61, - 187,117,264,154,103,12,117 + 12,12,12,12,12,182,11,12,12,12, + 163,101,139,139,182,139,237,139,12,152, + 139,237,101,11,12,12,189,99,12,258, + 197,139,101,168,57,31,139,87,258,12, + 11,101,194,168,57,144,144,144,144,12, + 12,26,12,178,230,139,139,38,167,38, + 139,127,11,167,182,258,12,113,12,246, + 166,182,258,22,163,106,12,126,182,258, + 258,258,258,249,249,139,178,155,101,262, + 12,72,12,12,104,133,230,38,38,217, + 182,127,155,12,12,182,139,57,12,12, + 48,48,101,112,175,246,258,182,139,34, + 12,144,163,195,12,12,258,258,178,168, + 139,152,12,12,61,139,170,115,12,12, + 61,63,237,155,57,127,178,57,57,139, + 11,168,258,197,157,139,12,22,249,57, + 99,195,118,202,139,207,139,237,139,36, + 159,262,175,101,12,57,12,90,78,237, + 61,61,11,139,246,178,34,258,99,262, + 155,12,207,134,12,51,104,207,202,246, + 118,36,42,129,115,159,168,57,57,11, + 237,237,65,258,139,151,170,12,12,61, + 155,12,12,70,70,262,42,154,12,237, + 12,11,11,12,139,65,207,139,262,24, + 12,258,61,237,246,207,139,12,12,139, + 141,129,11,249,256,178,202,45,55,115, + 262,237,73,246,31,31,110,147,12,57, + 12,262,12,12,12,12,148,12,127,260, + 262,262,127,67,258,258,139,155,258,139, + 152,73,262,12,85,12,12,148,12,148, + 264,264,244,12,264,262,262,12,139,31, + 65,155,139,262,12,31,148,258,115,258, + 252,139,12,258,110,55,70,258,258,139, + 148,12,148,262,115,144,148,85,155,12, + 67,67,113,57,12,268,262,258,92,54, + 117,148,258,262,92,12,148 }; }; public final static char nasb[] = Nasb.nasb; @@ -1947,34 +1954,33 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Nasr { public final static char nasr[] = {0, - 3,13,7,10,149,147,120,146,145,5, - 2,0,75,0,167,5,166,0,155,0, - 4,189,0,185,0,5,2,10,7,136, - 0,5,7,10,2,13,4,45,0,61, - 0,2,7,3,0,54,2,67,0,124, - 0,138,0,4,173,0,5,1,40,0, - 66,127,40,7,10,2,13,5,0,109, - 0,171,0,40,104,0,4,29,0,54, - 67,0,4,97,0,187,0,140,0,179, - 0,13,2,10,7,5,83,0,152,0, - 157,0,158,0,112,0,40,55,0,48, - 40,175,4,39,0,66,39,48,68,4, - 40,0,108,0,34,95,94,64,54,7, - 10,2,4,0,4,170,0,95,94,5, - 56,0,67,135,134,0,23,4,5,90, - 0,4,39,38,0,2,44,0,34,94, - 95,4,0,2,64,54,7,10,4,5, - 90,0,5,44,2,3,0,5,102,186, - 0,95,94,54,64,56,5,7,10,2, - 0,2,62,0,114,4,48,82,0,5, - 7,10,13,3,1,0,39,177,23,4, - 0,4,48,82,84,0,4,66,0,4, - 45,168,0,2,113,0,2,5,120,116, - 117,118,13,87,0,4,45,39,0,45, - 4,176,0,4,48,82,102,46,5,0, - 4,174,0,38,54,7,10,2,4,154, - 0,45,4,34,0,40,156,0,5,102, - 163,0,4,45,103,0 + 3,13,10,9,149,147,119,146,145,5, + 2,0,5,2,9,10,136,0,133,64, + 0,140,0,178,0,5,10,9,2,13, + 4,45,0,138,0,155,0,108,0,170, + 0,40,156,0,4,29,0,74,0,5, + 1,40,0,66,126,40,10,9,2,13, + 5,0,186,0,123,0,40,54,0,107, + 0,40,103,0,4,188,0,5,101,163, + 0,4,169,0,111,0,4,172,0,184, + 0,158,0,13,2,9,10,5,82,0, + 2,44,0,152,0,64,135,134,0,157, + 0,35,94,93,63,4,5,10,9,2, + 0,5,10,9,13,3,1,0,167,5, + 166,0,38,5,2,9,10,154,4,0, + 48,40,174,4,39,0,66,39,48,67, + 4,40,0,4,66,0,94,93,10,9, + 2,63,5,56,0,133,2,64,0,2, + 63,9,10,4,5,89,0,61,0,5, + 44,2,3,0,4,45,189,0,94,93, + 5,56,0,2,112,0,23,4,5,89, + 0,113,4,48,81,0,4,48,81,83, + 0,35,93,94,4,0,5,101,185,0, + 2,5,119,115,116,117,13,86,0,4, + 48,81,101,46,5,0,2,55,0,4, + 45,39,0,39,176,23,4,0,4,96, + 0,45,4,175,0,45,4,35,0,4, + 39,38,0,4,45,102,0,4,173,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1984,16 +1990,16 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final static char terminalIndex[] = {0, 113,114,2,31,13,10,79,115,9,100, 11,12,120,48,52,60,66,68,74,75, - 86,87,102,105,107,7,8,112,14,19, - 55,61,67,84,88,90,94,97,99,109, - 110,111,123,104,54,106,47,64,70,73, - 76,83,89,93,98,77,95,103,1,46, - 53,58,78,121,20,63,91,101,33,44, + 86,87,102,105,107,7,8,112,14,55, + 61,67,84,88,90,94,97,99,109,110, + 111,123,93,104,19,54,106,47,64,70, + 73,76,83,89,98,77,95,103,1,46, + 53,58,78,121,63,91,101,20,33,44, 119,122,30,118,96,108,49,50,56,57, 59,69,71,72,85,92,65,17,18,6, - 15,16,21,22,32,4,23,24,25,26, - 27,28,5,34,35,36,37,38,39,40, - 41,42,43,80,81,82,29,117,51,3, + 32,4,15,16,21,22,23,24,25,26, + 27,28,80,81,82,5,29,34,35,36, + 37,38,39,40,41,42,43,117,51,3, 124,62,116 }; }; @@ -2002,26 +2008,26 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 132,137,139,0,0,138,236,136,0,230, - 135,0,146,134,0,0,145,151,0,0, - 152,161,182,162,163,164,165,166,154,167, - 168,169,170,127,171,0,144,129,133,130, - 172,0,141,140,155,180,0,0,0,0, - 0,0,0,0,175,158,0,205,0,148, - 189,0,202,206,0,128,0,174,0,0, - 0,0,0,0,207,178,0,0,0,0, - 0,0,126,131,0,0,188,0,0,203, - 213,160,209,210,211,0,0,0,0,149, - 208,221,177,198,0,0,212,0,0,0, - 241,242,150,181,0,191,192,193,194,195, - 197,200,0,0,215,218,0,220,0,239, - 0,240,0,142,143,147,0,0,157,159, - 0,173,0,183,184,185,186,187,190,0, - 196,0,199,204,0,216,217,0,0,222, - 225,227,229,0,233,234,235,237,238,125, - 0,153,156,0,176,0,179,0,201,214, - 219,0,223,224,226,228,0,231,232,243, - 244,0,0,0,0,0,0 + 132,137,138,0,0,136,0,0,229,235, + 135,0,145,134,0,0,144,150,0,0, + 151,160,181,161,162,163,164,165,153,166, + 167,168,143,169,127,170,0,129,133,130, + 171,0,140,139,154,179,0,0,0,0, + 0,0,0,174,0,157,0,204,0,147, + 188,201,205,0,0,128,173,0,0,0, + 0,0,0,206,177,0,0,0,0,0, + 0,126,131,0,0,187,0,0,202,212, + 159,208,209,210,0,0,148,0,0,207, + 220,176,197,0,0,211,0,0,0,240, + 241,149,180,0,190,191,192,193,194,196, + 199,0,0,214,217,0,219,0,238,0, + 239,0,0,141,142,146,0,0,156,158, + 0,172,0,182,183,184,185,186,189,0, + 195,0,198,203,0,215,216,0,0,221, + 224,226,228,0,232,233,234,237,125,0, + 152,155,0,175,0,178,0,200,213,218, + 0,222,223,225,227,0,230,231,236,242, + 243,0,0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2029,18 +2035,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopePrefix { public final static char scopePrefix[] = { - 156,570,589,521,537,548,559,361,266,280, - 302,308,42,291,381,419,164,578,472,20, - 51,71,80,85,90,127,192,297,314,325, - 336,141,272,286,496,27,141,371,336,597, - 27,214,245,1,14,61,76,106,227,319, - 332,341,350,354,437,465,517,607,611,615, - 97,7,97,399,415,428,449,509,428,528, - 544,555,566,204,483,56,56,153,219,222, - 240,261,222,222,56,358,462,469,153,56, - 628,110,233,403,443,456,116,116,233,56, - 233,390,174,104,441,619,626,619,626,65, - 409,134,104,104,250 + 156,564,583,515,531,542,553,355,262,276, + 298,304,42,287,375,413,164,572,466,20, + 51,71,80,85,90,127,192,293,310,321, + 332,141,268,282,490,27,141,365,332,591, + 27,214,241,1,14,61,76,106,315,328, + 337,344,348,431,459,511,601,605,609,97, + 7,97,393,409,422,443,503,422,522,538, + 549,560,204,477,56,56,153,219,222,56, + 236,257,222,222,56,352,456,463,153,56, + 624,110,229,397,437,450,116,116,229,56, + 229,384,174,104,435,613,620,613,620,65, + 403,134,104,104,246 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2048,18 +2054,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,5,5,5,5,368,132,95, - 132,132,48,277,387,425,170,67,478,25, - 25,25,59,59,95,132,197,132,132,330, - 330,146,277,101,501,38,149,376,584,602, - 32,208,208,5,18,5,59,95,231,323, - 323,323,95,95,132,243,5,5,5,243, - 231,11,101,368,368,368,453,501,432,532, - 532,532,532,208,487,59,59,5,5,225, - 243,5,264,264,348,95,5,243,5,494, - 5,113,345,406,446,459,119,123,236,513, - 504,393,177,95,95,621,621,623,623,67, - 411,136,199,184,252 + 18,5,5,5,5,5,5,362,132,95, + 132,132,48,273,381,419,170,67,472,25, + 25,25,59,59,95,132,197,132,132,326, + 326,146,273,101,495,38,149,370,578,596, + 32,208,208,5,18,5,59,95,319,319, + 319,95,95,132,239,5,5,5,239,622, + 11,101,362,362,362,447,495,426,526,526, + 526,526,208,481,59,59,5,5,225,227, + 239,5,260,260,227,95,5,239,5,488, + 5,113,341,400,440,453,119,123,232,507, + 498,387,177,95,95,615,615,617,617,67, + 405,136,199,184,248 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2067,18 +2073,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLhs { public final static char scopeLhs[] = { - 46,17,17,17,17,17,17,71,86,47, - 80,118,77,52,71,70,46,17,19,3, - 6,9,163,163,160,116,46,81,118,117, - 119,126,53,47,136,131,126,71,17,17, - 131,96,57,133,74,166,163,160,59,117, - 117,119,178,50,55,140,17,17,17,17, - 12,112,160,71,70,70,36,136,70,17, - 17,17,17,96,19,167,163,179,94,101, - 75,58,154,76,119,72,141,140,171,136, - 16,160,119,103,69,21,128,128,56,136, - 136,71,46,160,65,134,44,134,44,166, - 103,116,46,46,57 + 46,17,17,17,17,17,17,70,85,47, + 79,117,76,52,70,69,46,17,19,3, + 7,8,163,163,160,115,46,80,117,116, + 118,125,53,47,136,130,125,70,17,17, + 130,95,57,132,73,166,163,160,116,116, + 118,177,50,54,140,17,17,17,17,12, + 111,160,70,69,69,37,136,69,17,17, + 17,17,95,19,167,163,178,93,100,59, + 74,58,154,75,118,71,141,140,170,136, + 16,160,118,102,68,21,127,127,56,136, + 136,70,46,160,65,134,44,134,44,166, + 102,115,46,46,57 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2087,16 +2093,16 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLa { public final static byte scopeLa[] = { 119,74,74,74,74,74,74,74,71,13, - 71,71,65,1,74,122,64,3,74,65, - 65,65,1,1,13,71,64,71,71,1, - 1,71,1,1,4,65,70,13,1,1, - 65,74,74,74,119,74,1,13,1,1, - 1,1,13,13,71,118,74,74,74,118, - 1,74,1,74,74,74,73,4,74,65, - 65,65,65,74,3,1,1,74,74,3, + 71,71,68,1,74,122,64,3,74,68, + 68,68,1,1,13,71,64,71,71,1, + 1,71,1,1,4,68,70,13,1,1, + 68,74,74,74,119,74,1,13,1,1, + 1,13,13,71,118,74,74,74,118,1, + 74,1,74,74,74,73,4,74,68,68, + 68,68,74,3,1,1,74,74,3,1, 118,74,1,1,1,13,74,118,74,5, - 74,1,54,69,73,74,1,1,6,1, - 54,76,75,13,13,4,4,4,4,3, + 74,1,43,69,73,74,1,1,6,1, + 43,76,75,13,13,4,4,4,4,3, 1,64,1,1,3 }; }; @@ -2105,16 +2111,16 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeStateSet { public final static char scopeStateSet[] = { - 96,248,248,248,248,248,248,106,87,96, - 85,154,85,98,106,106,96,248,248,181, - 223,224,57,57,82,154,96,85,154,154, - 154,311,98,96,137,50,311,106,248,248, - 50,146,66,26,106,30,57,82,66,154, - 154,154,22,98,33,63,248,248,248,248, - 243,6,82,106,106,106,280,137,106,248, - 248,248,248,146,248,30,57,24,146,148, + 96,250,250,250,250,250,250,106,87,96, + 85,154,85,98,106,106,96,250,250,182, + 226,226,57,57,82,154,96,85,154,154, + 154,313,98,96,137,50,313,106,250,250, + 50,146,66,26,106,30,57,82,154,154, + 154,22,98,33,63,250,250,250,250,230, + 6,82,106,106,106,282,137,106,250,250, + 250,250,146,250,30,57,24,146,148,66, 142,66,60,71,154,106,54,63,140,137, - 248,82,154,1,106,249,154,154,121,137, + 250,82,154,1,106,251,154,154,121,137, 137,106,96,82,11,118,158,118,158,30, 1,154,96,96,66 }; @@ -2125,68 +2131,68 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeRhs { public final static char scopeRhs[] = {0, 314,3,57,0,127,0,313,3,119,0, - 127,175,0,127,178,75,0,217,0,252, - 127,30,125,0,20,0,292,127,30,54, + 127,174,0,127,177,75,0,216,0,251, + 127,45,125,0,20,0,291,127,45,43, 0,20,53,0,33,134,0,20,53,0, - 0,292,127,30,54,205,0,20,131,0, - 252,127,30,130,0,185,128,0,144,0, - 220,3,290,0,290,0,2,0,127,0, - 252,127,30,133,0,185,128,225,0,185, - 128,44,225,0,185,128,310,44,0,131, - 190,167,128,0,129,0,190,167,128,0, - 136,129,0,171,0,306,127,171,0,127, - 171,0,223,129,0,167,243,0,139,0, - 0,0,137,0,0,0,305,127,163,251, - 0,128,0,251,0,130,0,0,128,0, - 304,127,163,250,0,128,0,0,44,128, + 0,291,127,45,43,204,0,20,131,0, + 251,127,45,133,0,178,128,0,143,0, + 219,3,290,0,290,0,2,0,127,0, + 251,127,45,132,0,178,128,224,0,178, + 128,44,224,0,178,128,309,44,0,129, + 187,167,128,0,129,0,187,167,128,0, + 136,129,0,171,0,305,127,171,0,127, + 171,0,222,129,0,167,242,0,138,0, + 0,0,137,0,0,0,304,127,163,250, + 0,128,0,250,0,130,0,0,128,0, + 303,127,163,249,0,128,0,0,44,128, 0,0,152,3,0,127,279,278,127,75, - 277,171,0,278,127,75,277,171,0,216, - 0,217,0,277,171,0,96,0,0,216, - 0,217,0,204,96,0,0,216,0,217, - 0,278,127,277,171,0,216,0,204,0, - 0,216,0,228,127,3,0,127,0,0, - 0,0,0,228,127,3,217,0,224,3, - 0,213,127,0,209,0,190,167,177,0, - 136,0,167,128,0,10,0,0,0,215, - 59,0,126,0,228,127,3,181,0,181, - 0,2,0,0,127,0,0,0,0,0, - 199,3,0,202,0,238,127,163,28,17, - 0,185,128,56,58,0,198,129,0,131, - 185,128,275,58,0,185,128,275,58,0, - 185,128,69,124,56,0,238,127,163,56, - 0,238,127,163,227,56,0,273,127,163, - 124,66,0,273,127,163,66,0,185,128, - 66,0,137,0,190,185,128,243,0,139, - 0,185,128,243,0,190,167,128,10,0, - 167,128,10,0,93,139,0,149,0,266, - 127,146,0,266,127,171,0,162,85,0, - 297,161,299,300,3,82,0,127,174,0, - 299,300,3,82,0,129,0,127,174,0, - 162,3,76,191,81,0,127,129,0,191, - 81,0,108,2,133,127,129,0,226,3, - 76,0,199,168,0,33,172,0,168,0, - 178,33,172,0,226,3,86,0,191,157, - 226,3,84,0,62,174,0,226,3,84, - 0,127,174,62,174,0,298,127,163,0, - 162,0,215,78,0,30,174,0,162,117, - 158,0,30,172,0,183,3,0,127,152, - 0,220,3,0,215,59,263,0,162,59, - 0,183,3,294,63,128,0,127,0,0, - 0,0,294,63,128,0,2,148,127,0, - 0,0,0,150,0,126,54,167,128,0, - 31,150,0,93,139,31,150,0,223,185, - 128,0,149,31,150,0,162,3,39,0, - 162,3,65,183,30,31,0,183,30,31, - 0,20,2,133,127,0,162,3,65,183, - 30,34,0,183,30,34,0,162,3,65, - 183,30,36,0,183,30,36,0,162,3, - 65,183,30,32,0,183,30,32,0,220, - 3,126,190,167,128,10,0,126,190,167, - 128,10,0,139,2,0,127,0,220,3, - 125,177,167,128,10,0,177,167,128,10, - 0,137,2,0,127,0,220,3,136,0, - 220,3,140,0,162,59,140,0,258,0, - 31,0,31,142,0,166,0,162,3,0 + 277,171,0,278,127,75,277,171,0,215, + 0,216,0,277,171,0,96,0,0,215, + 0,216,0,203,96,0,0,215,0,216, + 0,278,127,277,171,0,215,0,203,0, + 0,215,0,227,127,3,0,127,0,0, + 0,0,0,227,127,3,216,0,223,3, + 0,212,127,0,208,0,148,0,167,128, + 0,10,0,0,0,214,59,0,126,0, + 227,127,3,181,0,181,0,2,0,0, + 127,0,0,0,0,0,198,3,0,201, + 0,237,127,163,28,17,0,178,128,56, + 58,0,197,129,0,129,178,128,275,58, + 0,178,128,275,58,0,178,128,69,124, + 56,0,237,127,163,56,0,237,127,163, + 226,56,0,273,127,163,124,65,0,273, + 127,163,65,0,178,128,65,0,137,0, + 187,178,128,242,0,138,0,178,128,242, + 0,187,167,128,10,0,167,128,10,0, + 93,138,0,266,127,146,0,266,127,171, + 0,162,85,0,296,161,298,299,3,82, + 0,127,173,0,298,299,3,82,0,129, + 0,127,173,0,162,3,76,190,81,0, + 127,129,0,190,81,0,108,2,133,127, + 129,0,225,3,76,0,198,168,0,33, + 171,0,168,0,177,33,171,0,225,3, + 86,0,190,158,225,3,84,0,62,173, + 0,225,3,84,0,127,173,62,173,0, + 297,127,163,0,162,0,214,78,0,30, + 173,0,162,107,159,0,30,171,0,183, + 3,0,127,151,0,219,3,0,214,59, + 263,0,162,59,0,183,3,293,63,128, + 0,127,0,0,0,0,293,63,128,0, + 2,147,127,0,0,0,0,149,0,126, + 43,167,128,0,31,149,0,93,138,31, + 149,0,220,178,128,0,148,31,149,0, + 162,3,38,0,162,3,68,183,45,30, + 0,183,45,30,0,20,2,133,127,0, + 162,3,68,183,45,33,0,183,45,33, + 0,162,3,68,183,45,35,0,183,45, + 35,0,162,3,68,183,45,31,0,183, + 45,31,0,219,3,126,187,167,128,10, + 0,126,187,167,128,10,0,138,2,0, + 127,0,219,3,125,256,167,128,10,0, + 256,167,128,10,0,137,2,0,127,0, + 219,3,136,0,219,3,140,0,162,59, + 140,0,258,0,31,0,31,141,0,166, + 0,136,0,162,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2194,38 +2200,38 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 4226,4649,4623,4602,0,2635,2622,2182,1961,0, - 3264,3227,3173,3136,3082,3045,2991,2954,2898,2568, - 2531,3993,0,1862,0,2270,1566,744,0,627, - 573,0,3264,3227,3492,3415,3173,3136,3082,3045, - 2991,2954,2512,2898,2568,2531,4582,4581,0,3438, - 3050,2957,0,2166,848,0,4590,3451,0,2692, - 4446,0,1561,1303,0,4370,2692,4355,3480,4446, - 3400,3981,4381,4203,2833,580,4290,3389,2819,2681, - 0,4460,4241,0,4460,4241,3601,4116,4106,3541, - 4096,4013,4000,3531,0,4460,4241,3601,4116,4106, - 3541,4096,4013,4000,3531,3264,3227,3173,3136,3082, - 3045,2991,2954,2898,2568,2531,0,3036,2850,0, - 2833,4370,1781,4355,3480,4458,3389,1824,1695,1024, - 2906,2847,853,1351,1308,0,1258,659,0,1067, - 0,1400,1126,1120,558,3480,2847,3400,2819,2681, - 3067,2769,0,4214,535,2643,0,4566,4555,4543, - 4517,4489,4485,4472,4233,4570,4393,4308,4237,3595, - 4068,3523,3283,3192,2856,2587,3434,3214,3032,0, - 4566,4005,4555,3288,3197,4543,4517,4489,2592,2573, - 4485,4472,4233,1741,4570,1655,1612,4393,1569,1526, - 1483,1166,4018,4308,1950,4237,4072,3595,4068,3523, - 871,3283,734,3192,647,2856,2587,4214,3434,2643, - 3214,3032,722,3400,3981,4381,4203,2833,4370,580, - 2555,2692,2257,4355,2169,3480,4290,3389,2819,4446, - 2681,801,2536,2081,926,1258,659,3657,3959,3937, - 1038,2271,2340,2308,2399,2371,592,2793,2652,2508, - 2481,2454,2427,3497,3411,2707,3364,3339,3915,3893, - 3871,3849,3827,3805,3783,3761,3739,3717,3688,1964, - 2220,2183,2132,2095,2044,1274,1215,2007,1172,880, - 1913,1876,819,746,685,1833,1790,1747,1704,1661, - 1618,1575,1532,1489,1446,1403,535,1360,1317,1129, - 995,952,1083,0 + 4616,4731,4717,4703,0,2306,3518,1293,2380,0, + 3377,3340,3303,3266,3229,3192,3137,3100,3063,2741, + 2664,4324,0,673,0,1416,1287,1111,0,2772, + 2573,0,3377,3340,3159,2455,3303,3266,3229,3192, + 3137,3100,1113,3063,2741,2664,870,815,0,4683, + 2746,4045,0,931,718,0,1284,4196,0,3068, + 2648,0,2094,654,0,4424,3068,4401,2839,2648, + 2815,3501,4254,4012,2633,3998,4229,3032,2418,2404, + 0,4394,4296,0,4394,4296,3641,4200,4141,3630, + 4101,4042,4030,3620,0,4394,4296,3641,4200,4141, + 3630,4101,4042,4030,3620,3377,3340,3303,3266,3229, + 3192,3137,3100,3063,2741,2664,0,3029,2371,0, + 2633,4424,4561,4401,2839,4443,3032,4559,4047,4315, + 3543,3198,2744,925,721,0,656,576,0,813, + 0,1631,1588,1459,862,2839,3198,2815,2418,2404, + 4063,3565,0,4269,533,2830,0,4633,4609,4604, + 4588,4575,4570,4541,4525,4512,4507,4679,4671,4667, + 4418,4491,4305,4165,4128,2881,2723,3054,2457,1937, + 0,4633,3327,4609,3048,2852,4604,4588,4575,2469, + 622,4570,4541,4525,2796,4512,3345,4507,3321,3285, + 4679,3224,3155,2940,2903,3538,4671,2235,4667,2569, + 4418,4491,4305,2486,4165,2482,4128,2881,2723,4269, + 3054,669,2830,2457,1937,2147,2060,932,799,2669, + 2815,3501,4254,4012,2633,4424,3998,3068,4401,2839, + 4229,3032,2418,2648,2404,2859,729,656,576,2953, + 3976,3954,2245,2283,1172,2316,2376,2348,590,3006, + 2980,2606,2579,2541,2514,3595,3572,3514,3476,3451, + 3932,3910,3888,3866,3844,3822,3800,3778,3756,2431, + 626,1941,2196,2158,2109,2071,2022,1249,1205,1984, + 1124,877,1892,1854,816,744,683,1811,1768,1725, + 1682,1639,1596,1553,1510,1467,1424,1381,533,1338, + 1294,1034,991,948,1078,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2233,59 +2239,59 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface InSymb { public final static char inSymb[] = {0, - 0,293,127,265,39,31,34,36,32,10, - 136,125,133,7,130,4,3,128,35,29, + 0,292,127,265,38,30,33,35,31,10, + 136,125,132,7,133,4,3,128,34,29, 5,12,11,6,9,27,26,140,145,148, - 147,150,149,153,151,155,154,156,57,158, - 70,3,30,30,30,30,128,3,30,30, - 168,127,59,3,62,63,30,7,125,183, - 162,168,127,62,63,167,166,125,3,124, - 126,103,120,3,59,90,96,12,11,92, - 91,6,94,93,65,30,88,89,9,98, - 97,100,99,101,113,112,111,110,109,108, - 107,106,105,104,69,117,102,162,183,183, - 183,183,167,220,127,127,127,267,268,251, - 269,243,270,66,271,272,10,128,59,59, - 127,157,127,59,3,218,217,136,126,125, - 10,128,59,294,3,190,4,54,5,128, - 54,220,162,147,147,145,145,145,149,149, - 149,149,148,148,151,150,150,154,153,155, - 162,156,65,65,65,65,190,177,252,255, - 252,213,128,6,163,167,231,128,126,125, - 124,163,128,128,185,167,252,213,215,158, - 224,127,3,128,167,206,3,295,168,152, - 258,190,128,125,185,167,73,3,3,3, - 3,126,125,70,167,127,127,126,125,127, - 185,127,163,127,185,167,54,228,229,146, - 230,127,167,54,183,127,127,4,223,5, - 54,162,162,162,162,3,3,6,184,305, - 128,169,225,56,54,205,58,171,307,127, - 127,73,190,127,273,124,274,190,157,69, - 224,199,187,181,177,3,127,70,228,190, - 157,260,263,59,179,4,124,126,220,220, - 127,167,163,227,30,54,275,277,127,3, - 181,309,225,44,128,273,69,70,127,69, - 69,3,167,199,127,213,157,126,127,3, - 59,162,4,190,127,163,65,30,128,75, - 127,213,306,127,125,73,285,199,70,128, - 44,310,185,221,127,190,127,260,220,215, - 131,238,17,54,171,60,56,58,237,127, - 127,185,127,278,73,70,213,73,69,185, - 128,128,127,228,221,28,127,3,124,56, - 238,292,54,10,61,131,278,163,289,128, - 290,185,185,57,157,127,127,163,266,199, - 276,28,69,128,70,65,30,231,231,279, - 127,70,185,3,3,127,127,3,69,70, - 157,128,185,127,69,69,127,298,80,78, + 147,150,149,153,151,155,154,157,57,159, + 70,3,45,45,45,45,128,3,45,45, + 168,127,59,3,62,63,45,5,183,162, + 168,127,62,63,167,166,125,3,124,126, + 106,120,3,59,90,92,12,11,94,93, + 6,96,95,68,45,88,89,9,98,97, + 100,99,101,117,116,115,114,113,112,111, + 110,109,108,69,107,102,162,183,183,183, + 183,167,219,127,127,127,267,268,250,269, + 242,270,65,271,272,10,128,59,59,127, + 125,158,127,59,3,217,216,136,126,125, + 10,128,59,293,3,187,4,43,128,43, + 219,162,147,147,145,145,145,149,149,149, + 149,148,148,151,150,150,154,153,155,162, + 157,68,68,68,68,187,256,251,254,251, + 212,128,6,163,167,230,128,126,125,124, + 163,128,128,178,167,251,212,214,159,223, + 127,3,128,167,205,3,294,168,152,258, + 187,128,178,167,73,3,3,3,3,126, + 125,70,167,127,127,126,125,127,178,127, + 163,127,178,167,43,227,228,146,229,127, + 167,43,183,127,127,4,220,5,43,162, + 162,162,162,3,3,6,184,304,128,169, + 224,56,43,204,58,171,306,127,127,73, + 187,127,273,124,274,187,158,69,223,198, + 186,181,128,3,127,70,227,187,158,260, + 263,59,179,4,124,126,219,219,127,167, + 163,226,45,43,275,277,127,3,181,308, + 224,44,128,273,69,70,127,69,69,3, + 178,167,198,127,212,158,126,127,3,59, + 162,4,187,127,163,68,45,128,75,127, + 212,305,127,128,125,73,285,198,70,128, + 44,309,178,221,127,127,260,219,214,129, + 237,17,43,171,60,56,58,236,127,127, + 178,127,278,73,70,212,167,73,69,178, + 128,128,127,227,221,28,127,3,124,56, + 237,291,43,10,61,129,278,163,289,128, + 290,178,178,57,158,127,127,163,266,198, + 276,28,69,128,70,68,45,230,230,279, + 127,70,178,3,3,127,127,3,69,70, + 158,128,178,127,69,69,127,297,80,78, 1,162,8,86,84,82,81,76,83,85, - 79,77,56,75,220,314,221,238,152,163, - 250,185,227,292,280,119,8,73,215,73, - 3,3,3,191,3,124,162,124,178,70, - 127,127,163,227,65,3,73,226,168,226, - 300,146,76,226,127,127,61,95,313,168, - 157,199,157,299,127,3,157,280,304,231, - 157,157,127,69,191,161,266,162,189,70, - 69,122,297,157,189,8,157 + 79,77,56,75,219,314,221,237,152,163, + 249,178,226,291,280,119,8,73,214,73, + 3,3,3,190,3,124,162,124,177,70, + 127,127,163,226,68,3,73,225,168,225, + 299,146,76,225,127,127,61,91,313,168, + 158,198,158,298,127,3,158,280,303,230, + 158,158,127,69,190,161,266,162,189,70, + 69,122,296,158,189,8,158 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2431,7 +2437,6 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab "qualified_or_unqualified_name", "unqualified_id_name", "identifier_name", - "operator_function_id_name", "template_id_name", "nested_name_specifier", "class_or_namespace_name", @@ -2563,18 +2568,18 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final static int NUM_STATES = 527, NT_OFFSET = 123, - LA_STATE_OFFSET = 5763, + LA_STATE_OFFSET = 5821, MAX_LA = 2147483647, - NUM_RULES = 534, + NUM_RULES = 532, NUM_NONTERMINALS = 197, NUM_SYMBOLS = 320, SEGMENT_SIZE = 8192, - START_STATE = 2845, + START_STATE = 1288, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4820, - ERROR_ACTION = 5229; + ACCEPT_ACTION = 4921, + ERROR_ACTION = 5289; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java index 6f4e87322b3..da0467e7037 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParsersym.java @@ -16,71 +16,71 @@ package org.eclipse.cdt.internal.core.dom.lrparser.cpp; public interface CPPSizeofExpressionParsersym { public final static int TK_asm = 60, - TK_auto = 47, + TK_auto = 48, TK_bool = 14, TK_break = 77, TK_case = 78, TK_catch = 119, TK_char = 15, TK_class = 61, - TK_const = 45, - TK_const_cast = 31, + TK_const = 46, + TK_const_cast = 30, TK_continue = 79, TK_default = 80, TK_delete = 62, TK_do = 81, TK_double = 16, - TK_dynamic_cast = 32, + TK_dynamic_cast = 31, TK_else = 122, - TK_enum = 66, - TK_explicit = 48, + TK_enum = 65, + TK_explicit = 49, TK_export = 87, TK_extern = 17, - TK_false = 33, + TK_false = 32, TK_float = 18, TK_for = 82, - TK_friend = 49, + TK_friend = 50, TK_goto = 83, TK_if = 84, - TK_inline = 50, + TK_inline = 51, TK_int = 19, TK_long = 20, - TK_mutable = 51, + TK_mutable = 52, TK_namespace = 56, TK_new = 63, TK_operator = 7, - TK_private = 114, - TK_protected = 115, - TK_public = 116, - TK_register = 52, - TK_reinterpret_cast = 34, + TK_private = 103, + TK_protected = 104, + TK_public = 105, + TK_register = 53, + TK_reinterpret_cast = 33, TK_return = 85, TK_short = 21, TK_signed = 22, - TK_sizeof = 35, - TK_static = 53, - TK_static_cast = 36, - TK_struct = 67, + TK_sizeof = 34, + TK_static = 54, + TK_static_cast = 35, + TK_struct = 66, TK_switch = 86, - TK_template = 54, - TK_this = 37, + TK_template = 43, + TK_this = 36, TK_throw = 57, TK_try = 75, - TK_true = 38, + TK_true = 37, TK_typedef = 55, - TK_typeid = 39, + TK_typeid = 38, TK_typename = 10, - TK_union = 68, + TK_union = 67, TK_unsigned = 23, TK_using = 58, TK_virtual = 44, TK_void = 24, - TK_volatile = 46, + TK_volatile = 47, TK_wchar_t = 25, TK_while = 76, - TK_integer = 40, - TK_floating = 41, - TK_charconst = 42, + TK_integer = 39, + TK_floating = 40, + TK_charconst = 41, TK_stringlit = 28, TK_identifier = 1, TK_Completion = 2, @@ -89,8 +89,8 @@ public interface CPPSizeofExpressionParsersym { TK_LeftBracket = 59, TK_LeftParen = 3, TK_Dot = 120, - TK_DotStar = 96, - TK_Arrow = 103, + TK_DotStar = 92, + TK_Arrow = 106, TK_ArrowStar = 90, TK_PlusPlus = 26, TK_MinusMinus = 27, @@ -100,35 +100,35 @@ public interface CPPSizeofExpressionParsersym { TK_Minus = 12, TK_Tilde = 5, TK_Bang = 29, - TK_Slash = 91, - TK_Percent = 92, + TK_Slash = 93, + TK_Percent = 94, TK_RightShift = 88, TK_LeftShift = 89, - TK_LT = 30, - TK_GT = 65, - TK_LE = 93, - TK_GE = 94, + TK_LT = 45, + TK_GT = 68, + TK_LE = 95, + TK_GE = 96, TK_EQ = 97, TK_NE = 98, TK_Caret = 99, TK_Or = 100, TK_AndAnd = 101, TK_OrOr = 102, - TK_Question = 117, + TK_Question = 107, TK_Colon = 73, TK_ColonColon = 4, - TK_DotDotDot = 95, + TK_DotDotDot = 91, TK_Assign = 69, - 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_StarAssign = 108, + TK_SlashAssign = 109, + TK_PercentAssign = 110, + TK_PlusAssign = 111, + TK_MinusAssign = 112, + TK_RightShiftAssign = 113, + TK_LeftShiftAssign = 114, + TK_AndAssign = 115, + TK_CaretAssign = 116, + TK_OrAssign = 117, TK_Comma = 70, TK_RightBracket = 118, TK_RightParen = 74, @@ -136,7 +136,7 @@ public interface CPPSizeofExpressionParsersym { TK_SemiColon = 13, TK_LeftBrace = 64, TK_ERROR_TOKEN = 72, - TK_0 = 43, + TK_0 = 42, TK_EOF_TOKEN = 121; public final static String orderedTerminalSymbols[] = { @@ -170,7 +170,6 @@ public interface CPPSizeofExpressionParsersym { "MinusMinus", "stringlit", "Bang", - "LT", "const_cast", "dynamic_cast", "false", @@ -184,7 +183,9 @@ public interface CPPSizeofExpressionParsersym { "floating", "charconst", "0", + "template", "virtual", + "LT", "const", "volatile", "auto", @@ -194,7 +195,6 @@ public interface CPPSizeofExpressionParsersym { "mutable", "register", "static", - "template", "typedef", "namespace", "throw", @@ -205,10 +205,10 @@ public interface CPPSizeofExpressionParsersym { "delete", "new", "LeftBrace", - "GT", "enum", "struct", "union", + "GT", "Assign", "Comma", "RightBrace", @@ -231,19 +231,23 @@ public interface CPPSizeofExpressionParsersym { "RightShift", "LeftShift", "ArrowStar", + "DotDotDot", + "DotStar", "Slash", "Percent", "LE", "GE", - "DotDotDot", - "DotStar", "EQ", "NE", "Caret", "Or", "AndAnd", "OrOr", + "private", + "protected", + "public", "Arrow", + "Question", "StarAssign", "SlashAssign", "PercentAssign", @@ -254,10 +258,6 @@ public interface CPPSizeofExpressionParsersym { "AndAssign", "CaretAssign", "OrAssign", - "private", - "protected", - "public", - "Question", "RightBracket", "catch", "Dot", diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java index b73993f2181..fb6e01f37b9 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParser.java @@ -416,1871 +416,1864 @@ public CPPTemplateTypeParameterParser(String[] mapFrom) { // constructor } // - // Rule 47: qualified_id_name ::= :: identifier_name + // Rule 47: qualified_id_name ::= :: unqualified_id_name // case 47: { action.builder. consumeGlobalQualifiedId(); break; } // - // Rule 48: qualified_id_name ::= :: operator_function_id_name + // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template // case 48: { action.builder. - consumeGlobalQualifiedId(); break; + consumeNestedNameSpecifier(true); break; } // - // Rule 49: qualified_id_name ::= :: template_id_name + // Rule 49: nested_name_specifier ::= class_or_namespace_name :: // case 49: { action.builder. - consumeGlobalQualifiedId(); break; + consumeNestedNameSpecifier(false); break; } // - // Rule 50: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template // case 50: { action.builder. consumeNestedNameSpecifier(true); break; } // - // Rule 51: nested_name_specifier ::= class_or_namespace_name :: + // Rule 51: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: // case 51: { action.builder. consumeNestedNameSpecifier(false); break; } // - // Rule 52: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template + // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name // case 52: { action.builder. - consumeNestedNameSpecifier(true); break; - } - - // - // Rule 53: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: - // - case 53: { action.builder. - consumeNestedNameSpecifier(false); break; - } - - // - // Rule 54: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name - // - case 54: { action.builder. consumeNameWithTemplateKeyword(); break; } // - // Rule 56: nested_name_specifier_opt ::= $Empty + // Rule 54: nested_name_specifier_opt ::= $Empty // - case 56: { action.builder. + case 54: { action.builder. consumeNestedNameSpecifierEmpty(); break; } // - // Rule 59: postfix_expression ::= postfix_expression [ expression ] + // Rule 57: postfix_expression ::= postfix_expression [ expression ] // - case 59: { action.builder. + case 57: { action.builder. consumeExpressionArraySubscript(); break; } // - // Rule 60: postfix_expression ::= postfix_expression ( expression_list_opt ) + // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) // - case 60: { action.builder. + case 58: { action.builder. consumeExpressionFunctionCall(); break; } // - // Rule 61: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) // - case 61: { action.builder. + case 59: { action.builder. consumeExpressionSimpleTypeConstructor(); break; } // - // Rule 62: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier identifier_name ( expression_list_opt ) + // + case 60: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 61: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) + // + case 61: { action.builder. + consumeExpressionTypeName(); break; + } + + // + // Rule 62: postfix_expression ::= postfix_expression . qualified_or_unqualified_name // case 62: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 63: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt ) - // - case 63: { action.builder. - consumeExpressionTypeName(); break; - } - - // - // Rule 64: postfix_expression ::= postfix_expression . qualified_or_unqualified_name - // - case 64: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 65: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name // - case 65: { action.builder. + case 63: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 66: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name // - case 66: { action.builder. + case 64: { action.builder. consumeExpressionFieldReference(false, true); break; } // - // Rule 67: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name // - case 67: { action.builder. + case 65: { action.builder. consumeExpressionFieldReference(true, true); break; } // - // Rule 68: postfix_expression ::= postfix_expression . pseudo_destructor_name + // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name // - case 68: { action.builder. + case 66: { action.builder. consumeExpressionFieldReference(false, false); break; } // - // Rule 69: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name // - case 69: { action.builder. + case 67: { action.builder. consumeExpressionFieldReference(true, false); break; } // - // Rule 70: postfix_expression ::= postfix_expression ++ + // Rule 68: postfix_expression ::= postfix_expression ++ // - case 70: { action.builder. + case 68: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; } // - // Rule 71: postfix_expression ::= postfix_expression -- + // Rule 69: postfix_expression ::= postfix_expression -- // - case 71: { action.builder. + case 69: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; } // - // Rule 72: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) // - case 72: { action.builder. + case 70: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; } // - // Rule 73: postfix_expression ::= static_cast < type_id > ( expression ) + // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) // - case 73: { action.builder. + case 71: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; } // - // Rule 74: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) // - case 74: { action.builder. + case 72: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; } // - // Rule 75: postfix_expression ::= const_cast < type_id > ( expression ) + // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) // - case 75: { action.builder. + case 73: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; } // - // Rule 76: postfix_expression ::= typeid ( expression ) + // Rule 74: postfix_expression ::= typeid ( expression ) // - case 76: { action.builder. + case 74: { action.builder. consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; } // - // Rule 77: postfix_expression ::= typeid ( type_id ) + // Rule 75: postfix_expression ::= typeid ( type_id ) // - case 77: { action.builder. + case 75: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; } // - // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name + // + case 76: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name + // + case 77: { action.builder. + consumePsudoDestructorName(true); break; + } + + // + // Rule 78: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name // case 78: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 79: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name - // - case 79: { action.builder. - consumePsudoDestructorName(true); break; - } - - // - // Rule 80: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name - // - case 80: { action.builder. consumePsudoDestructorName(false); break; } // - // Rule 81: destructor_type_name ::= ~ identifier_token + // Rule 79: destructor_type_name ::= ~ identifier_token // - case 81: { action.builder. + case 79: { action.builder. consumeDestructorName(); break; } // - // Rule 82: destructor_type_name ::= ~ template_id_name + // Rule 80: destructor_type_name ::= ~ template_id_name // - case 82: { action.builder. + case 80: { action.builder. consumeDestructorNameTemplateId(); break; } // - // Rule 86: unary_expression ::= ++ cast_expression + // Rule 84: unary_expression ::= ++ cast_expression // - case 86: { action.builder. + case 84: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; } // - // Rule 87: unary_expression ::= -- cast_expression + // Rule 85: unary_expression ::= -- cast_expression // - case 87: { action.builder. + case 85: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; } // - // Rule 88: unary_expression ::= & cast_expression + // Rule 86: unary_expression ::= & cast_expression // - case 88: { action.builder. + case 86: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; } // - // Rule 89: unary_expression ::= * cast_expression + // Rule 87: unary_expression ::= * cast_expression // - case 89: { action.builder. + case 87: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; } // - // Rule 90: unary_expression ::= + cast_expression + // Rule 88: unary_expression ::= + cast_expression // - case 90: { action.builder. + case 88: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; } // - // Rule 91: unary_expression ::= - cast_expression + // Rule 89: unary_expression ::= - cast_expression // - case 91: { action.builder. + case 89: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; } // - // Rule 92: unary_expression ::= ~ cast_expression + // Rule 90: unary_expression ::= ~ cast_expression // - case 92: { action.builder. + case 90: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; } // - // Rule 93: unary_expression ::= ! cast_expression + // Rule 91: unary_expression ::= ! cast_expression // - case 93: { action.builder. + case 91: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; } // - // Rule 94: unary_expression ::= sizeof unary_expression + // Rule 92: unary_expression ::= sizeof unary_expression // - case 94: { action.builder. + case 92: { action.builder. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; } // - // Rule 95: unary_expression ::= sizeof ( type_id ) + // Rule 93: unary_expression ::= sizeof ( type_id ) // - case 95: { action.builder. + case 93: { action.builder. consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; } // - // Rule 96: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt + // Rule 94: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt // - case 96: { action.builder. + case 94: { action.builder. consumeExpressionNew(true); break; } // - // Rule 97: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt + // Rule 95: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt // - case 97: { action.builder. + case 95: { action.builder. consumeExpressionNew(false); break; } // - // Rule 99: new_placement_opt ::= $Empty + // Rule 97: new_placement_opt ::= $Empty // - case 99: { action.builder. + case 97: { action.builder. consumeEmpty(); break; } // - // Rule 100: new_type_id ::= type_specifier_seq + // Rule 98: new_type_id ::= type_specifier_seq // - case 100: { action.builder. + case 98: { action.builder. consumeTypeId(false); break; } // - // Rule 101: new_type_id ::= type_specifier_seq new_declarator + // Rule 99: new_type_id ::= type_specifier_seq new_declarator // - case 101: { action.builder. + case 99: { action.builder. consumeTypeId(true); break; } // - // Rule 102: new_declarator ::= new_pointer_operators + // Rule 100: new_declarator ::= new_pointer_operators // - case 102: { action.builder. + case 100: { action.builder. consumeNewDeclarator(); break; } // - // Rule 111: new_initializer_opt ::= $Empty + // Rule 109: new_initializer_opt ::= $Empty // - case 111: { action.builder. + case 109: { action.builder. consumeEmpty(); break; } // - // Rule 112: delete_expression ::= dcolon_opt delete cast_expression + // Rule 110: delete_expression ::= dcolon_opt delete cast_expression // - case 112: { action.builder. + case 110: { action.builder. consumeExpressionDelete(false); break; } // - // Rule 113: delete_expression ::= dcolon_opt delete [ ] cast_expression + // Rule 111: delete_expression ::= dcolon_opt delete [ ] cast_expression // - case 113: { action.builder. + case 111: { action.builder. consumeExpressionDelete(true); break; } // - // Rule 115: cast_expression ::= ( type_id ) cast_expression + // Rule 113: cast_expression ::= ( type_id ) cast_expression // - case 115: { action.builder. + case 113: { action.builder. consumeExpressionCast(ICPPASTCastExpression.op_cast); break; } // - // Rule 117: pm_expression ::= pm_expression .* cast_expression + // Rule 115: pm_expression ::= pm_expression .* cast_expression // - case 117: { action.builder. + case 115: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; } // - // Rule 118: pm_expression ::= pm_expression ->* cast_expression + // Rule 116: pm_expression ::= pm_expression ->* cast_expression // - case 118: { action.builder. + case 116: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; } // - // Rule 120: multiplicative_expression ::= multiplicative_expression * pm_expression + // Rule 118: multiplicative_expression ::= multiplicative_expression * pm_expression // - case 120: { action.builder. + case 118: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; } // - // Rule 121: multiplicative_expression ::= multiplicative_expression / pm_expression + // Rule 119: multiplicative_expression ::= multiplicative_expression / pm_expression // - case 121: { action.builder. + case 119: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; } // - // Rule 122: multiplicative_expression ::= multiplicative_expression % pm_expression + // Rule 120: multiplicative_expression ::= multiplicative_expression % pm_expression // - case 122: { action.builder. + case 120: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; } // - // Rule 124: additive_expression ::= additive_expression + multiplicative_expression + // Rule 122: additive_expression ::= additive_expression + multiplicative_expression // - case 124: { action.builder. + case 122: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; } // - // Rule 125: additive_expression ::= additive_expression - multiplicative_expression + // Rule 123: additive_expression ::= additive_expression - multiplicative_expression // - case 125: { action.builder. + case 123: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; } // - // Rule 127: shift_expression ::= shift_expression << additive_expression + // Rule 125: shift_expression ::= shift_expression << additive_expression // - case 127: { action.builder. + case 125: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; } // - // Rule 128: shift_expression ::= shift_expression >> additive_expression + // Rule 126: shift_expression ::= shift_expression >> additive_expression // - case 128: { action.builder. + case 126: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; } // - // Rule 130: relational_expression ::= relational_expression < shift_expression + // Rule 128: relational_expression ::= relational_expression < shift_expression // - case 130: { action.builder. + case 128: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; } // - // Rule 131: relational_expression ::= relational_expression > shift_expression + // Rule 129: relational_expression ::= relational_expression > shift_expression // - case 131: { action.builder. + case 129: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; } // - // Rule 132: relational_expression ::= relational_expression <= shift_expression + // Rule 130: relational_expression ::= relational_expression <= shift_expression // - case 132: { action.builder. + case 130: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; } // - // Rule 133: relational_expression ::= relational_expression >= shift_expression + // Rule 131: relational_expression ::= relational_expression >= shift_expression // - case 133: { action.builder. + case 131: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; } // - // Rule 135: equality_expression ::= equality_expression == relational_expression + // Rule 133: equality_expression ::= equality_expression == relational_expression // - case 135: { action.builder. + case 133: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; } // - // Rule 136: equality_expression ::= equality_expression != relational_expression + // Rule 134: equality_expression ::= equality_expression != relational_expression // - case 136: { action.builder. + case 134: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; } // - // Rule 138: and_expression ::= and_expression & equality_expression + // Rule 136: and_expression ::= and_expression & equality_expression // - case 138: { action.builder. + case 136: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; } // - // Rule 140: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // Rule 138: exclusive_or_expression ::= exclusive_or_expression ^ and_expression // - case 140: { action.builder. + case 138: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; } // - // Rule 142: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // Rule 140: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression // - case 142: { action.builder. + case 140: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; } // - // Rule 144: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // Rule 142: logical_and_expression ::= logical_and_expression && inclusive_or_expression // - case 144: { action.builder. + case 142: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; } // - // Rule 146: logical_or_expression ::= logical_or_expression || logical_and_expression + // Rule 144: logical_or_expression ::= logical_or_expression || logical_and_expression // - case 146: { action.builder. + case 144: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; } // - // Rule 148: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // Rule 146: conditional_expression ::= logical_or_expression ? expression : assignment_expression // - case 148: { action.builder. + case 146: { action.builder. consumeExpressionConditional(); break; } // - // Rule 149: throw_expression ::= throw + // Rule 147: throw_expression ::= throw // - case 149: { action.builder. + case 147: { action.builder. consumeExpressionThrow(false); break; } // - // Rule 150: throw_expression ::= throw assignment_expression + // Rule 148: throw_expression ::= throw assignment_expression // - case 150: { action.builder. + case 148: { action.builder. consumeExpressionThrow(true); break; } // - // Rule 153: assignment_expression ::= logical_or_expression = assignment_expression + // Rule 151: assignment_expression ::= logical_or_expression = assignment_expression // - case 153: { action.builder. + case 151: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; } // - // Rule 154: assignment_expression ::= logical_or_expression *= assignment_expression + // Rule 152: assignment_expression ::= logical_or_expression *= assignment_expression // - case 154: { action.builder. + case 152: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; } // - // Rule 155: assignment_expression ::= logical_or_expression /= assignment_expression + // Rule 153: assignment_expression ::= logical_or_expression /= assignment_expression // - case 155: { action.builder. + case 153: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; } // - // Rule 156: assignment_expression ::= logical_or_expression %= assignment_expression + // Rule 154: assignment_expression ::= logical_or_expression %= assignment_expression // - case 156: { action.builder. + case 154: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; } // - // Rule 157: assignment_expression ::= logical_or_expression += assignment_expression + // Rule 155: assignment_expression ::= logical_or_expression += assignment_expression // - case 157: { action.builder. + case 155: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; } // - // Rule 158: assignment_expression ::= logical_or_expression -= assignment_expression + // Rule 156: assignment_expression ::= logical_or_expression -= assignment_expression // - case 158: { action.builder. + case 156: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; } // - // Rule 159: assignment_expression ::= logical_or_expression >>= assignment_expression + // Rule 157: assignment_expression ::= logical_or_expression >>= assignment_expression // - case 159: { action.builder. + case 157: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; } // - // Rule 160: assignment_expression ::= logical_or_expression <<= assignment_expression + // Rule 158: assignment_expression ::= logical_or_expression <<= assignment_expression // - case 160: { action.builder. + case 158: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; } // - // Rule 161: assignment_expression ::= logical_or_expression &= assignment_expression + // Rule 159: assignment_expression ::= logical_or_expression &= assignment_expression // - case 161: { action.builder. + case 159: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; } // - // Rule 162: assignment_expression ::= logical_or_expression ^= assignment_expression + // Rule 160: assignment_expression ::= logical_or_expression ^= assignment_expression // - case 162: { action.builder. + case 160: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; } // - // Rule 163: assignment_expression ::= logical_or_expression |= assignment_expression + // Rule 161: assignment_expression ::= logical_or_expression |= assignment_expression // - case 163: { action.builder. + case 161: { action.builder. consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; } // - // Rule 165: expression_list ::= expression_list_actual + // Rule 163: expression_list ::= expression_list_actual // - case 165: { action.builder. + case 163: { action.builder. consumeExpressionList(); break; } // - // Rule 169: expression_list_opt ::= $Empty + // Rule 167: expression_list_opt ::= $Empty + // + case 167: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 169: expression_opt ::= $Empty // case 169: { action.builder. consumeEmpty(); break; } // - // Rule 171: expression_opt ::= $Empty + // Rule 172: constant_expression_opt ::= $Empty // - case 171: { action.builder. + case 172: { action.builder. consumeEmpty(); break; } // - // Rule 174: constant_expression_opt ::= $Empty + // Rule 181: statement ::= ERROR_TOKEN // - case 174: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 183: statement ::= ERROR_TOKEN - // - case 183: { action.builder. + case 181: { action.builder. consumeStatementProblem(); break; } // - // Rule 184: labeled_statement ::= identifier : statement + // Rule 182: labeled_statement ::= identifier : statement // - case 184: { action.builder. + case 182: { action.builder. consumeStatementLabeled(); break; } // - // Rule 185: labeled_statement ::= case constant_expression : statement + // Rule 183: labeled_statement ::= case constant_expression : statement // - case 185: { action.builder. + case 183: { action.builder. consumeStatementCase(); break; } // - // Rule 186: labeled_statement ::= default : statement + // Rule 184: labeled_statement ::= default : statement // - case 186: { action.builder. + case 184: { action.builder. consumeStatementDefault(); break; } // - // Rule 187: expression_statement ::= expression ; + // Rule 185: expression_statement ::= expression ; // - case 187: { action.builder. + case 185: { action.builder. consumeStatementExpression(); break; } // - // Rule 188: expression_statement ::= ; + // Rule 186: expression_statement ::= ; // - case 188: { action.builder. + case 186: { action.builder. consumeStatementNull(); break; } // - // Rule 189: compound_statement ::= { statement_seq } + // Rule 187: compound_statement ::= { statement_seq } // - case 189: { action.builder. + case 187: { action.builder. consumeStatementCompoundStatement(true); break; } // - // Rule 190: compound_statement ::= { } + // Rule 188: compound_statement ::= { } // - case 190: { action.builder. + case 188: { action.builder. consumeStatementCompoundStatement(false); break; } // - // Rule 193: selection_statement ::= if ( condition ) statement + // Rule 191: selection_statement ::= if ( condition ) statement // - case 193: { action.builder. + case 191: { action.builder. consumeStatementIf(false); break; } // - // Rule 194: selection_statement ::= if ( condition ) statement else statement + // Rule 192: selection_statement ::= if ( condition ) statement else statement // - case 194: { action.builder. + case 192: { action.builder. consumeStatementIf(true); break; } // - // Rule 195: selection_statement ::= switch ( condition ) statement + // Rule 193: selection_statement ::= switch ( condition ) statement // - case 195: { action.builder. + case 193: { action.builder. consumeStatementSwitch(); break; } // - // Rule 197: condition ::= type_specifier_seq declarator = assignment_expression + // Rule 195: condition ::= type_specifier_seq declarator = assignment_expression // - case 197: { action.builder. + case 195: { action.builder. consumeConditionDeclaration(); break; } // - // Rule 199: condition_opt ::= $Empty + // Rule 197: condition_opt ::= $Empty // - case 199: { action.builder. + case 197: { action.builder. consumeEmpty(); break; } // - // Rule 200: iteration_statement ::= while ( condition ) statement + // Rule 198: iteration_statement ::= while ( condition ) statement // - case 200: { action.builder. + case 198: { action.builder. consumeStatementWhileLoop(); break; } // - // Rule 201: iteration_statement ::= do statement while ( expression ) ; + // Rule 199: iteration_statement ::= do statement while ( expression ) ; // - case 201: { action.builder. + case 199: { action.builder. consumeStatementDoLoop(); break; } // - // Rule 202: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // Rule 200: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement // - case 202: { action.builder. + case 200: { action.builder. consumeStatementForLoop(); break; } // - // Rule 204: for_init_statement ::= simple_declaration_with_declspec + // Rule 202: for_init_statement ::= simple_declaration_with_declspec // - case 204: { action.builder. + case 202: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 205: jump_statement ::= break ; + // Rule 203: jump_statement ::= break ; // - case 205: { action.builder. + case 203: { action.builder. consumeStatementBreak(); break; } // - // Rule 206: jump_statement ::= continue ; + // Rule 204: jump_statement ::= continue ; // - case 206: { action.builder. + case 204: { action.builder. consumeStatementContinue(); break; } // - // Rule 207: jump_statement ::= return expression ; + // Rule 205: jump_statement ::= return expression ; // - case 207: { action.builder. + case 205: { action.builder. consumeStatementReturn(true); break; } // - // Rule 208: jump_statement ::= return ; + // Rule 206: jump_statement ::= return ; // - case 208: { action.builder. + case 206: { action.builder. consumeStatementReturn(false); break; } // - // Rule 209: jump_statement ::= goto identifier_token ; + // Rule 207: jump_statement ::= goto identifier_token ; // - case 209: { action.builder. + case 207: { action.builder. consumeStatementGoto(); break; } // - // Rule 210: declaration_statement ::= block_declaration + // Rule 208: declaration_statement ::= block_declaration // - case 210: { action.builder. + case 208: { action.builder. consumeStatementDeclarationWithDisambiguation(); break; } // - // Rule 211: declaration_statement ::= function_definition + // Rule 209: declaration_statement ::= function_definition // - case 211: { action.builder. + case 209: { action.builder. consumeStatementDeclaration(); break; } // - // Rule 228: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // Rule 226: simple_declaration ::= declaration_specifiers_opt init_declarator_list_opt ; + // + case 226: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 227: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; + // + case 227: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 228: declaration_specifiers ::= simple_declaration_specifiers // case 228: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 229: simple_declaration_with_declspec ::= declaration_specifiers init_declarator_list_opt ; - // - case 229: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 230: declaration_specifiers ::= simple_declaration_specifiers - // - case 230: { action.builder. consumeDeclarationSpecifiersSimple(); break; } // - // Rule 231: declaration_specifiers ::= class_declaration_specifiers + // Rule 229: declaration_specifiers ::= class_declaration_specifiers + // + case 229: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 230: declaration_specifiers ::= elaborated_declaration_specifiers + // + case 230: { action.builder. + consumeDeclarationSpecifiersComposite(); break; + } + + // + // Rule 231: declaration_specifiers ::= enum_declaration_specifiers // case 231: { action.builder. consumeDeclarationSpecifiersComposite(); break; } // - // Rule 232: declaration_specifiers ::= elaborated_declaration_specifiers + // Rule 232: declaration_specifiers ::= type_name_declaration_specifiers // case 232: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 233: declaration_specifiers ::= enum_declaration_specifiers - // - case 233: { action.builder. - consumeDeclarationSpecifiersComposite(); break; - } - - // - // Rule 234: declaration_specifiers ::= type_name_declaration_specifiers - // - case 234: { action.builder. consumeDeclarationSpecifiersTypeName(); break; } // - // Rule 235: declaration_specifiers_opt ::= $Empty + // Rule 234: declaration_specifiers_opt ::= $Empty // - case 235: { action.builder. + case 234: { action.builder. consumeEmpty(); break; } // - // Rule 240: no_type_declaration_specifier ::= friend + // Rule 238: no_type_declaration_specifier ::= friend // - case 240: { action.builder. + case 238: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 241: no_type_declaration_specifier ::= typedef + // Rule 239: no_type_declaration_specifier ::= typedef // - case 241: { action.builder. + case 239: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 261: storage_class_specifier ::= auto + // Rule 259: storage_class_specifier ::= auto + // + case 259: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 260: storage_class_specifier ::= register + // + case 260: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 261: storage_class_specifier ::= static // case 261: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 262: storage_class_specifier ::= register + // Rule 262: storage_class_specifier ::= extern // case 262: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 263: storage_class_specifier ::= static + // Rule 263: storage_class_specifier ::= mutable // case 263: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 264: storage_class_specifier ::= extern + // Rule 264: function_specifier ::= inline // case 264: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 265: storage_class_specifier ::= mutable + // Rule 265: function_specifier ::= virtual // case 265: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 266: function_specifier ::= inline + // Rule 266: function_specifier ::= explicit // case 266: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 267: function_specifier ::= virtual + // Rule 267: simple_type_specifier ::= char // case 267: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 268: function_specifier ::= explicit + // Rule 268: simple_type_specifier ::= wchar_t // case 268: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 269: simple_type_specifier ::= char + // Rule 269: simple_type_specifier ::= bool // case 269: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 270: simple_type_specifier ::= wchar_t + // Rule 270: simple_type_specifier ::= short // case 270: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 271: simple_type_specifier ::= bool + // Rule 271: simple_type_specifier ::= int // case 271: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 272: simple_type_specifier ::= short + // Rule 272: simple_type_specifier ::= long // case 272: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 273: simple_type_specifier ::= int + // Rule 273: simple_type_specifier ::= signed // case 273: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 274: simple_type_specifier ::= long + // Rule 274: simple_type_specifier ::= unsigned // case 274: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 275: simple_type_specifier ::= signed + // Rule 275: simple_type_specifier ::= float // case 275: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 276: simple_type_specifier ::= unsigned + // Rule 276: simple_type_specifier ::= double // case 276: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 277: simple_type_specifier ::= float + // Rule 277: simple_type_specifier ::= void // case 277: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 278: simple_type_specifier ::= double + // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name // - case 278: { action.builder. - consumeDeclSpecToken(); break; + case 280: { action.builder. + consumeQualifiedId(false); break; } // - // Rule 279: simple_type_specifier ::= void + // Rule 281: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name // - case 279: { action.builder. - consumeDeclSpecToken(); break; + case 281: { action.builder. + consumeQualifiedId(false); break; } // - // Rule 282: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // Rule 282: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name // case 282: { action.builder. consumeQualifiedId(false); break; } // - // Rule 283: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name + // Rule 283: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name // case 283: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 284: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name - // - case 284: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 285: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name - // - case 285: { action.builder. consumeQualifiedId(true); break; } // - // Rule 287: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // Rule 285: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name + // + case 285: { action.builder. + consumeTypeSpecifierElaborated(false); break; + } + + // + // Rule 286: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // + case 286: { action.builder. + consumeTypeSpecifierElaborated(true); break; + } + + // + // Rule 287: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name // case 287: { action.builder. consumeTypeSpecifierElaborated(false); break; } // - // Rule 288: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name + // Rule 288: enum_specifier ::= enum { enumerator_list_opt } // case 288: { action.builder. - consumeTypeSpecifierElaborated(true); break; - } - - // - // Rule 289: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name - // - case 289: { action.builder. - consumeTypeSpecifierElaborated(false); break; - } - - // - // Rule 290: enum_specifier ::= enum { enumerator_list_opt } - // - case 290: { action.builder. consumeTypeSpecifierEnumeration(false); break; } // - // Rule 291: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // Rule 289: enum_specifier ::= enum identifier_token { enumerator_list_opt } // - case 291: { action.builder. + case 289: { action.builder. consumeTypeSpecifierEnumeration(true); break; } // - // Rule 296: enumerator_definition ::= identifier_token + // Rule 294: enumerator_definition ::= identifier_token // - case 296: { action.builder. + case 294: { action.builder. consumeEnumerator(false); break; } // - // Rule 297: enumerator_definition ::= identifier_token = constant_expression + // Rule 295: enumerator_definition ::= identifier_token = constant_expression // - case 297: { action.builder. + case 295: { action.builder. consumeEnumerator(true); break; } // - // Rule 301: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } + // Rule 299: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } // - case 301: { action.builder. + case 299: { action.builder. consumeNamespaceDefinition(true); break; } // - // Rule 302: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // Rule 300: unnamed_namespace_definition ::= namespace { declaration_seq_opt } // - case 302: { action.builder. + case 300: { action.builder. consumeNamespaceDefinition(false); break; } // - // Rule 303: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 301: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; // - case 303: { action.builder. + case 301: { action.builder. consumeNamespaceAliasDefinition(); break; } // - // Rule 304: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // Rule 302: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; // - case 304: { action.builder. + case 302: { action.builder. consumeUsingDeclaration(); break; } // - // Rule 305: typename_opt ::= typename + // Rule 303: typename_opt ::= typename // - case 305: { action.builder. + case 303: { action.builder. consumePlaceHolder(); break; } // - // Rule 306: typename_opt ::= $Empty + // Rule 304: typename_opt ::= $Empty // - case 306: { action.builder. + case 304: { action.builder. consumeEmpty(); break; } // - // Rule 307: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // Rule 305: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; // - case 307: { action.builder. + case 305: { action.builder. consumeUsingDirective(); break; } // - // Rule 308: asm_definition ::= asm ( stringlit ) ; + // Rule 306: asm_definition ::= asm ( stringlit ) ; // - case 308: { action.builder. + case 306: { action.builder. consumeDeclarationASM(); break; } // - // Rule 309: linkage_specification ::= extern stringlit { declaration_seq_opt } + // Rule 307: linkage_specification ::= extern stringlit { declaration_seq_opt } // - case 309: { action.builder. + case 307: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 310: linkage_specification ::= extern stringlit declaration + // Rule 308: linkage_specification ::= extern stringlit declaration // - case 310: { action.builder. + case 308: { action.builder. consumeLinkageSpecification(); break; } // - // Rule 315: init_declarator_complete ::= init_declarator + // Rule 313: init_declarator_complete ::= init_declarator // - case 315: { action.builder. + case 313: { action.builder. consumeInitDeclaratorComplete(); break; } // - // Rule 317: init_declarator ::= declarator initializer + // Rule 315: init_declarator ::= declarator initializer // - case 317: { action.builder. + case 315: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 319: declarator ::= ptr_operator_seq direct_declarator + // Rule 317: declarator ::= ptr_operator_seq direct_declarator + // + case 317: { action.builder. + consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 319: function_declarator ::= ptr_operator_seq direct_declarator // case 319: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 321: function_declarator ::= ptr_operator_seq direct_declarator + // Rule 323: basic_direct_declarator ::= declarator_id_name // - case 321: { action.builder. - consumeDeclaratorWithPointer(true); break; - } - - // - // Rule 325: basic_direct_declarator ::= declarator_id_name - // - case 325: { action.builder. + case 323: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 326: basic_direct_declarator ::= ( declarator ) + // Rule 324: basic_direct_declarator ::= ( declarator ) // - case 326: { action.builder. + case 324: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 327: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 325: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 327: { action.builder. + case 325: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 328: array_direct_declarator ::= array_direct_declarator array_modifier + // Rule 326: array_direct_declarator ::= array_direct_declarator array_modifier + // + case 326: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 327: array_direct_declarator ::= basic_direct_declarator array_modifier + // + case 327: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 328: array_modifier ::= [ constant_expression ] // case 328: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 329: array_direct_declarator ::= basic_direct_declarator array_modifier - // - case 329: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 330: array_modifier ::= [ constant_expression ] - // - case 330: { action.builder. consumeDirectDeclaratorArrayModifier(true); break; } // - // Rule 331: array_modifier ::= [ ] + // Rule 329: array_modifier ::= [ ] // - case 331: { action.builder. + case 329: { action.builder. consumeDirectDeclaratorArrayModifier(false); break; } // - // Rule 332: ptr_operator ::= * cv_qualifier_seq_opt + // Rule 330: ptr_operator ::= * cv_qualifier_seq_opt // - case 332: { action.builder. + case 330: { action.builder. consumePointer(); break; } // - // Rule 333: ptr_operator ::= & + // Rule 331: ptr_operator ::= & // - case 333: { action.builder. + case 331: { action.builder. consumeReferenceOperator(); break; } // - // Rule 334: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // Rule 332: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt // - case 334: { action.builder. + case 332: { action.builder. consumePointerToMember(); break; } // - // Rule 340: cv_qualifier ::= const + // Rule 338: cv_qualifier ::= const // - case 340: { action.builder. + case 338: { action.builder. consumeDeclSpecToken(); break; } // - // Rule 341: cv_qualifier ::= volatile + // Rule 339: cv_qualifier ::= volatile + // + case 339: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 341: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name // case 341: { action.builder. - consumeDeclSpecToken(); break; + consumeQualifiedId(false); break; } // - // Rule 343: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name + // Rule 342: type_id ::= type_specifier_seq // - case 343: { action.builder. - consumeQualifiedId(true); break; - } - - // - // Rule 344: type_id ::= type_specifier_seq - // - case 344: { action.builder. + case 342: { action.builder. consumeTypeId(false); break; } // - // Rule 345: type_id ::= type_specifier_seq abstract_declarator + // Rule 343: type_id ::= type_specifier_seq abstract_declarator // - case 345: { action.builder. + case 343: { action.builder. consumeTypeId(true); break; } // - // Rule 348: abstract_declarator ::= ptr_operator_seq + // Rule 346: abstract_declarator ::= ptr_operator_seq // - case 348: { action.builder. + case 346: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 349: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // Rule 347: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator // - case 349: { action.builder. + case 347: { action.builder. consumeDeclaratorWithPointer(true); break; } // - // Rule 353: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // Rule 351: basic_direct_abstract_declarator ::= ( abstract_declarator ) // - case 353: { action.builder. + case 351: { action.builder. consumeDirectDeclaratorBracketed(); break; } // - // Rule 354: basic_direct_abstract_declarator ::= ( ) + // Rule 352: basic_direct_abstract_declarator ::= ( ) // - case 354: { action.builder. + case 352: { action.builder. consumeAbstractDeclaratorEmpty(); break; } // - // Rule 355: array_direct_abstract_declarator ::= array_modifier + // Rule 353: array_direct_abstract_declarator ::= array_modifier // - case 355: { action.builder. + case 353: { action.builder. consumeDirectDeclaratorArrayDeclarator(false); break; } // - // Rule 356: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // Rule 354: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // + case 354: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 355: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // + case 355: { action.builder. + consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 356: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // case 356: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 357: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier - // - case 357: { action.builder. - consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 358: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt - // - case 358: { action.builder. consumeDirectDeclaratorFunctionDeclarator(true); break; } // - // Rule 359: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // Rule 357: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt // - case 359: { action.builder. + case 357: { action.builder. consumeDirectDeclaratorFunctionDeclarator(false); break; } // - // Rule 360: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // Rule 358: parameter_declaration_clause ::= parameter_declaration_list_opt ... + // + case 358: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 359: parameter_declaration_clause ::= parameter_declaration_list_opt + // + case 359: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 360: parameter_declaration_clause ::= parameter_declaration_list , ... // case 360: { action.builder. consumePlaceHolder(); break; } // - // Rule 361: parameter_declaration_clause ::= parameter_declaration_list_opt + // Rule 366: abstract_declarator_opt ::= $Empty // - case 361: { action.builder. + case 366: { action.builder. consumeEmpty(); break; } // - // Rule 362: parameter_declaration_clause ::= parameter_declaration_list , ... + // Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator // - case 362: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 368: abstract_declarator_opt ::= $Empty - // - case 368: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 369: parameter_declaration ::= declaration_specifiers parameter_init_declarator - // - case 369: { action.builder. + case 367: { action.builder. consumeParameterDeclaration(); break; } // - // Rule 370: parameter_declaration ::= declaration_specifiers + // Rule 368: parameter_declaration ::= declaration_specifiers // - case 370: { action.builder. + case 368: { action.builder. consumeParameterDeclarationWithoutDeclarator(); break; } // - // Rule 372: parameter_init_declarator ::= declarator = parameter_initializer + // Rule 370: parameter_init_declarator ::= declarator = parameter_initializer + // + case 370: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 372: parameter_init_declarator ::= abstract_declarator = parameter_initializer // case 372: { action.builder. consumeDeclaratorWithInitializer(true); break; } // - // Rule 374: parameter_init_declarator ::= abstract_declarator = parameter_initializer + // Rule 373: parameter_init_declarator ::= = parameter_initializer // - case 374: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 375: parameter_init_declarator ::= = parameter_initializer - // - case 375: { action.builder. + case 373: { action.builder. consumeDeclaratorWithInitializer(false); break; } // - // Rule 376: parameter_initializer ::= assignment_expression + // Rule 374: parameter_initializer ::= assignment_expression // - case 376: { action.builder. + case 374: { action.builder. consumeInitializer(); break; } // - // Rule 377: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body // - case 377: { action.builder. + case 375: { action.builder. consumeFunctionDefinition(false); break; } // - // Rule 378: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq // - case 378: { action.builder. + case 376: { action.builder. consumeFunctionDefinition(true); break; } // - // Rule 381: initializer ::= ( expression_list ) + // Rule 379: initializer ::= ( expression_list ) // - case 381: { action.builder. + case 379: { action.builder. consumeInitializerConstructor(); break; } // - // Rule 382: initializer_clause ::= assignment_expression + // Rule 380: initializer_clause ::= assignment_expression // - case 382: { action.builder. + case 380: { action.builder. consumeInitializer(); break; } // - // Rule 383: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list + // Rule 381: initializer_clause ::= start_initializer_list { initializer_list , } end_initializer_list + // + case 381: { action.builder. + consumeInitializerList(); break; + } + + // + // Rule 382: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list + // + case 382: { action.builder. + consumeInitializerList(); break; + } + + // + // Rule 383: initializer_clause ::= { } // case 383: { action.builder. consumeInitializerList(); break; } // - // Rule 384: initializer_clause ::= start_initializer_list { initializer_list } end_initializer_list + // Rule 384: start_initializer_list ::= $Empty // case 384: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 385: initializer_clause ::= { } - // - case 385: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 386: start_initializer_list ::= $Empty - // - case 386: { action.builder. initializerListStart(); break; } // - // Rule 387: end_initializer_list ::= $Empty + // Rule 385: end_initializer_list ::= $Empty // - case 387: { action.builder. + case 385: { action.builder. initializerListEnd(); break; } // - // Rule 392: class_specifier ::= class_head { member_declaration_list_opt } + // Rule 390: class_specifier ::= class_head { member_declaration_list_opt } // - case 392: { action.builder. + case 390: { action.builder. consumeClassSpecifier(); break; } // - // Rule 393: class_head ::= class_keyword identifier_name_opt base_clause_opt + // Rule 391: class_head ::= class_keyword identifier_name_opt base_clause_opt + // + case 391: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 392: class_head ::= class_keyword template_id_name base_clause_opt + // + case 392: { action.builder. + consumeClassHead(false); break; + } + + // + // Rule 393: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt // case 393: { action.builder. - consumeClassHead(false); break; + consumeClassHead(true); break; } // - // Rule 394: class_head ::= class_keyword template_id_name base_clause_opt + // Rule 394: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt // case 394: { action.builder. - consumeClassHead(false); break; - } - - // - // Rule 395: class_head ::= class_keyword nested_name_specifier identifier_name base_clause_opt - // - case 395: { action.builder. consumeClassHead(true); break; } // - // Rule 396: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // Rule 396: identifier_name_opt ::= $Empty // case 396: { action.builder. - consumeClassHead(true); break; - } - - // - // Rule 398: identifier_name_opt ::= $Empty - // - case 398: { action.builder. consumeEmpty(); break; } // - // Rule 402: visibility_label ::= access_specifier_keyword : + // Rule 400: visibility_label ::= access_specifier_keyword : // - case 402: { action.builder. + case 400: { action.builder. consumeVisibilityLabel(); break; } // - // Rule 403: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // Rule 401: member_declaration ::= declaration_specifiers_opt member_declarator_list ; // - case 403: { action.builder. + case 401: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 404: member_declaration ::= declaration_specifiers_opt ; + // Rule 402: member_declaration ::= declaration_specifiers_opt ; // - case 404: { action.builder. + case 402: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 407: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // Rule 405: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; // - case 407: { action.builder. + case 405: { action.builder. consumeMemberDeclarationQualifiedId(); break; } // - // Rule 413: member_declaration ::= ERROR_TOKEN + // Rule 411: member_declaration ::= ERROR_TOKEN // - case 413: { action.builder. + case 411: { action.builder. consumeDeclarationProblem(); break; } // - // Rule 421: member_declarator ::= declarator constant_initializer + // Rule 419: member_declarator ::= declarator constant_initializer // - case 421: { action.builder. + case 419: { action.builder. consumeMemberDeclaratorWithInitializer(); break; } // - // Rule 422: member_declarator ::= bit_field_declarator : constant_expression + // Rule 420: member_declarator ::= bit_field_declarator : constant_expression // - case 422: { action.builder. + case 420: { action.builder. consumeBitField(true); break; } // - // Rule 423: member_declarator ::= : constant_expression + // Rule 421: member_declarator ::= : constant_expression // - case 423: { action.builder. + case 421: { action.builder. consumeBitField(false); break; } // - // Rule 424: bit_field_declarator ::= identifier_name + // Rule 422: bit_field_declarator ::= identifier_name // - case 424: { action.builder. + case 422: { action.builder. consumeDirectDeclaratorIdentifier(); break; } // - // Rule 425: constant_initializer ::= = constant_expression + // Rule 423: constant_initializer ::= = constant_expression // - case 425: { action.builder. + case 423: { action.builder. consumeInitializer(); break; } // - // Rule 431: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 429: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name // - case 431: { action.builder. + case 429: { action.builder. consumeBaseSpecifier(false, false); break; } // - // Rule 432: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // Rule 430: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name + // + case 430: { action.builder. + consumeBaseSpecifier(true, true); break; + } + + // + // Rule 431: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name + // + case 431: { action.builder. + consumeBaseSpecifier(true, true); break; + } + + // + // Rule 432: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name // case 432: { action.builder. - consumeBaseSpecifier(true, true); break; - } - - // - // Rule 433: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name - // - case 433: { action.builder. - consumeBaseSpecifier(true, true); break; - } - - // - // Rule 434: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name - // - case 434: { action.builder. consumeBaseSpecifier(true, false); break; } // - // Rule 435: access_specifier_keyword ::= private + // Rule 433: access_specifier_keyword ::= private + // + case 433: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 434: access_specifier_keyword ::= protected + // + case 434: { action.builder. + consumeAccessKeywordToken(); break; + } + + // + // Rule 435: access_specifier_keyword ::= public // case 435: { action.builder. consumeAccessKeywordToken(); break; } // - // Rule 436: access_specifier_keyword ::= protected - // - case 436: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 437: access_specifier_keyword ::= public + // Rule 437: access_specifier_keyword_opt ::= $Empty // case 437: { action.builder. - consumeAccessKeywordToken(); break; - } - - // - // Rule 439: access_specifier_keyword_opt ::= $Empty - // - case 439: { action.builder. consumeEmpty(); break; } // - // Rule 441: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // Rule 439: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > // - case 441: { action.builder. + case 439: { action.builder. consumeTemplateId(); break; } // - // Rule 442: conversion_function_id ::= operator conversion_type_id + // Rule 440: conversion_function_id ::= operator conversion_type_id // - case 442: { action.builder. + case 440: { action.builder. consumeConversionName(); break; } // - // Rule 443: conversion_type_id ::= type_specifier_seq conversion_declarator + // Rule 441: conversion_type_id ::= type_specifier_seq conversion_declarator // - case 443: { action.builder. + case 441: { action.builder. consumeTypeId(true); break; } // - // Rule 444: conversion_type_id ::= type_specifier_seq + // Rule 442: conversion_type_id ::= type_specifier_seq // - case 444: { action.builder. + case 442: { action.builder. consumeTypeId(false); break; } // - // Rule 445: conversion_declarator ::= ptr_operator_seq + // Rule 443: conversion_declarator ::= ptr_operator_seq // - case 445: { action.builder. + case 443: { action.builder. consumeDeclaratorWithPointer(false); break; } // - // Rule 451: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // Rule 449: mem_initializer ::= mem_initializer_name ( expression_list_opt ) // - case 451: { action.builder. + case 449: { action.builder. consumeConstructorChainInitializer(); break; } // - // Rule 452: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // Rule 450: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name // - case 452: { action.builder. + case 450: { action.builder. consumeQualifiedId(false); break; } // - // Rule 455: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // Rule 453: operator_function_id_name ::= operator_id_name < template_argument_list_opt > // - case 455: { action.builder. + case 453: { action.builder. consumeTemplateId(); break; } // - // Rule 456: operator_id_name ::= operator overloadable_operator + // Rule 454: operator_id_name ::= operator overloadable_operator // - case 456: { action.builder. + case 454: { action.builder. consumeOperatorName(); break; } // - // Rule 499: template_declaration ::= export_opt template < template_parameter_list > declaration + // Rule 497: template_declaration ::= export_opt template < template_parameter_list > declaration // - case 499: { action.builder. + case 497: { action.builder. consumeTemplateDeclaration(); break; } // - // Rule 500: export_opt ::= export + // Rule 498: export_opt ::= export // - case 500: { action.builder. + case 498: { action.builder. consumePlaceHolder(); break; } // - // Rule 501: export_opt ::= $Empty + // Rule 499: export_opt ::= $Empty // - case 501: { action.builder. + case 499: { action.builder. consumeEmpty(); break; } // - // Rule 505: template_parameter ::= parameter_declaration + // Rule 503: template_parameter ::= parameter_declaration // - case 505: { action.builder. + case 503: { action.builder. consumeTemplateParamterDeclaration(); break; } // - // Rule 506: type_parameter ::= class identifier_name_opt + // Rule 504: type_parameter ::= class identifier_name_opt + // + case 504: { action.builder. + consumeSimpleTypeTemplateParameter(false); break; + } + + // + // Rule 505: type_parameter ::= class identifier_name_opt = type_id + // + case 505: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 506: type_parameter ::= typename identifier_name_opt // case 506: { action.builder. consumeSimpleTypeTemplateParameter(false); break; } // - // Rule 507: type_parameter ::= class identifier_name_opt = type_id + // Rule 507: type_parameter ::= typename identifier_name_opt = type_id // case 507: { action.builder. consumeSimpleTypeTemplateParameter(true); break; } // - // Rule 508: type_parameter ::= typename identifier_name_opt + // Rule 508: type_parameter ::= template < template_parameter_list > class identifier_name_opt // case 508: { action.builder. - consumeSimpleTypeTemplateParameter(false); break; - } - - // - // Rule 509: type_parameter ::= typename identifier_name_opt = type_id - // - case 509: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 510: type_parameter ::= template < template_parameter_list > class identifier_name_opt - // - case 510: { action.builder. consumeTemplatedTypeTemplateParameter(false); break; } // - // Rule 511: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // Rule 509: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression // - case 511: { action.builder. + case 509: { action.builder. consumeTemplatedTypeTemplateParameter(true); break; } // - // Rule 512: template_id_name ::= identifier_name < template_argument_list_opt > + // Rule 510: template_id_name ::= identifier_name < template_argument_list_opt > // - case 512: { action.builder. + case 510: { action.builder. consumeTemplateId(); break; } // - // Rule 518: template_argument ::= type_id + // Rule 515: template_argument ::= assignment_expression // - case 518: { action.builder. + case 515: { action.builder. + consumeTemplateArgumentExpression(); break; + } + + // + // Rule 516: template_argument ::= type_id + // + case 516: { action.builder. consumeTemplateArgumentTypeId(); break; } // - // Rule 519: explicit_instantiation ::= template declaration + // Rule 517: explicit_instantiation ::= template declaration // - case 519: { action.builder. + case 517: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 520: explicit_specialization ::= template < > declaration + // Rule 518: explicit_specialization ::= template < > declaration // - case 520: { action.builder. + case 518: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 521: try_block ::= try compound_statement handler_seq + // Rule 519: try_block ::= try compound_statement handler_seq // - case 521: { action.builder. + case 519: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 524: handler ::= catch ( exception_declaration ) compound_statement + // Rule 522: handler ::= catch ( exception_declaration ) compound_statement // - case 524: { action.builder. + case 522: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 525: handler ::= catch ( ... ) compound_statement + // Rule 523: handler ::= catch ( ... ) compound_statement // - case 525: { action.builder. + case 523: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 526: exception_declaration ::= type_specifier_seq declarator + // Rule 524: exception_declaration ::= type_specifier_seq declarator + // + case 524: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 525: exception_declaration ::= type_specifier_seq abstract_declarator + // + case 525: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 526: exception_declaration ::= type_specifier_seq // case 526: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 527: exception_declaration ::= type_specifier_seq abstract_declarator - // - case 527: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 528: exception_declaration ::= type_specifier_seq - // - case 528: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 530: exception_specification ::= throw ( ) + // Rule 528: exception_specification ::= throw ( ) // - case 530: { action.builder. + case 528: { action.builder. consumePlaceHolder(); break; } // - // Rule 536: type_parameter_start ::= ERROR_TOKEN + // Rule 534: type_parameter_start ::= ERROR_TOKEN // - case 536: { action.builder. + case 534: { action.builder. consumeDeclarationProblem(); break; } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java index d6b1e1db244..4621b625d8b 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParserprs.java @@ -41,379 +41,391 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 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,2, - 1,1,0,1,0,4,2,2,2,3, - 2,3,2,2,1,0,1,1,4,4, - 4,8,8,3,3,4,4,3,3,2, - 2,7,7,7,7,4,4,5,6,3, - 2,2,1,1,1,2,2,2,2,2, - 2,2,2,2,4,7,9,3,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,2,1,3,1,0,1, - 0,1,1,0,1,1,1,1,1,1, - 1,1,1,3,4,3,2,1,4,2, - 1,2,5,7,5,1,4,1,0,5, - 7,8,1,1,2,2,3,2,3,1, + 1,1,0,1,0,4,2,3,2,3, + 2,2,1,0,1,1,4,4,4,8, + 8,3,3,4,4,3,3,2,2,7, + 7,7,7,4,4,5,6,3,2,2, + 1,1,1,2,2,2,2,2,2,2, + 2,2,4,7,9,3,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,2,1,3,1,0,1,0,1, + 1,0,1,1,1,1,1,1,1,1, + 1,3,4,3,2,1,4,2,1,2, + 5,7,5,1,4,1,0,5,7,8, + 1,1,2,2,3,2,3,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2,1,0,4,4,2, - 2,2,2,2,0,1,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,2,1,0,4,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,3,4,4,5,2,4,5,4,5, - 6,1,3,1,0,1,3,1,1,1, - 6,5,7,6,1,0,6,5,6,4, - 1,3,1,0,1,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,4,1,2,1,1,2,3,1, - 1,1,3,2,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,7,6,3,0,0,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,1,1,2,1,0,1,3,1, - 2,3,2,1,2,2,1,0,1,3, - 3,5,5,4,1,1,1,1,0,1, - 5,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,3, + 4,4,5,2,4,5,4,5,6,1, + 3,1,0,1,3,1,1,1,6,5, + 7,6,1,0,6,5,6,4,1,3, + 1,0,1,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,2,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, + 7,6,3,0,0,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, + 1,1,2,1,0,1,3,1,2,3, + 2,1,2,2,1,0,1,3,3,5, + 5,4,1,1,1,1,0,1,5,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,1,1,2,2,7,1, - 0,1,3,1,1,2,4,2,4,7, - 9,5,1,3,1,0,1,1,2,4, - 4,1,2,5,5,3,3,1,4,3, - 1,0,1,3,1,1,-131,0,0,0, - -22,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-2,0, - 0,0,0,0,0,0,-3,0,-7,0, - 0,0,0,0,-44,0,0,0,0,0, - -137,0,0,0,-8,0,0,0,0,0, - 0,0,0,-158,0,0,0,0,0,0, + 1,1,1,1,2,2,7,1,0,1, + 3,1,1,2,4,2,4,7,9,5, + 1,3,1,0,1,1,2,4,4,1, + 2,5,5,3,3,1,4,3,1,0, + 1,3,1,1,-130,0,0,0,-2,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-3,0,0,0, + 0,0,0,0,-265,0,-191,0,0,0, + 0,0,-45,0,0,0,0,0,-136,0, + 0,0,-22,0,0,0,0,0,0,0, + 0,-153,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-1,0,0,0,0,0,0, + 0,0,0,-354,0,0,0,-60,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,-8,0,0,-137,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-4,0,0,0,0,0,-193,0,0, + 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,0,0, - 0,0,0,0,0,0,-387,0,0,-459, - 0,0,-59,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-192,0, - 0,-199,0,0,0,0,0,0,0,0, - 0,0,0,0,-349,0,-463,0,0,-191, - 0,0,0,0,0,0,-177,0,0,0, + 0,0,0,0,0,0,0,0,-83,0, + 0,0,-34,0,-372,0,0,0,-206,0, + -26,0,0,0,-107,0,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,0,0,0,0,0,0,-206,0, - 0,0,0,-12,-252,0,-35,0,0,0, - 0,-30,0,0,0,-16,-176,-26,0,0, - 0,0,-178,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-406, + 0,-12,0,0,0,0,0,-16,0,0, + 0,0,0,-23,0,0,0,-218,-324,0, + 0,0,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,0,0,0, - 0,0,0,0,0,0,0,0,0,-19, - 0,0,0,0,0,0,0,0,0,0, - -83,0,0,0,-197,0,0,0,0,-138, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-36,0,0,0,0,-133,0,-196, - 0,0,-182,0,0,0,0,0,0,0, + 0,0,-6,0,-19,0,0,0,-179,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -350,0,-34,0,0,0,0,-20,-37,-1, - 0,0,0,0,0,0,-342,0,-298,0, + 0,0,0,0,0,0,0,0,-35,0, + 0,0,-20,0,-27,-5,0,0,0,-24, + 0,0,0,-297,0,0,0,0,0,0, 0,0,0,0,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, - -54,0,0,0,0,0,-436,0,0,0, - 0,0,0,0,-56,0,0,0,-6,0, - 0,0,0,0,0,0,-221,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-27,0,0,0,0,-501,0, + 0,0,0,-290,0,-28,0,0,0,0, + 0,-214,0,0,0,0,0,-55,0,0, + -30,0,0,-249,-192,0,0,0,0,0, + -220,0,0,0,-44,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-50,0, + -501,0,0,0,-51,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-349,0,0,0,0,0,0,-52, + 0,0,0,-523,0,0,0,-53,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-283,0,0,0,0, - 0,-523,0,0,0,-265,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-306,0,0,0,0,0,0, - 0,0,0,0,-92,-172,0,0,0,-260, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-127,0,-28,0,0, - -290,0,0,0,0,0,0,0,-317,0, - -442,0,0,0,-111,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-31,0,0,0,0,0,0,0, - -43,0,-49,0,0,0,0,0,0,0, - 0,0,0,-99,0,-18,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-50,0,0, - 0,0,-106,0,0,0,0,0,-81,0, - 0,0,-385,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -313,0,0,0,0,0,0,0,-327,0, - 0,0,0,0,0,-367,-51,0,0,0, - 0,-82,0,0,0,-402,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-52,0,0,0,0,0,0,-53,-473, - -55,0,0,0,-208,0,0,0,-68,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-69,0,0,0, - 0,0,0,0,-70,0,-312,0,0,0, - 0,0,0,-71,0,0,0,-21,0,0, - 0,-180,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-33,0,0,0,0,0, - -79,0,0,0,-512,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -72,0,-87,0,0,0,0,0,-73,-91, - 0,0,0,0,0,-354,0,0,0,0, - -23,0,-160,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,0,0, - 0,0,0,0,0,0,0,0,0,-198, - 0,0,0,0,0,-161,0,0,0,0, - 0,0,0,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,-271,0,0,0,0,0,-162,0, - 0,0,-76,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -77,0,0,0,0,0,0,0,-78,0, - -80,0,0,0,0,-276,0,0,0,0, - 0,-163,0,0,0,-84,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-88,0,0,0,0,0,0, - 0,-94,0,-95,0,0,0,0,-282,0, - 0,0,0,0,-164,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-96,0,0,0, - 0,0,0,0,-97,0,-428,0,0,0, - 0,-325,0,0,0,0,0,-165,0,0, - 0,-110,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-116, - 0,0,0,0,0,0,0,-119,0,-128, - 0,0,0,0,-330,0,0,0,0,0, - -166,0,0,0,-136,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-184,0,0,0,0,0,0,0, - -185,0,-186,0,0,0,0,-331,0,0, - 0,0,0,-167,0,0,0,-202,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-203,0,0,0,0, - 0,0,0,-204,0,-205,0,0,0,0, - -361,0,0,0,0,0,-168,0,0,0, - -210,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-211,0, - 0,0,0,0,0,0,-212,0,-213,0, - 0,0,0,-344,-226,0,-181,0,0,-169, - 0,0,0,-227,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-228,0,0,0,0,0,0,0,-229, - 0,0,0,0,0,0,-373,-230,-231,-216, - 0,0,-170,0,0,0,-232,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-233,0,0,0,0,0, - 0,0,-234,0,0,0,0,0,0,0, - -235,-236,-237,0,0,-284,0,0,0,-238, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-239,0,0, - 0,0,0,0,0,-240,0,-241,0,0, - 0,0,0,-522,-242,-243,0,0,-294,0, - 0,0,-244,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -247,0,0,0,0,0,0,0,-249,0, - -250,0,0,0,0,-4,0,0,-251,0, - 0,-517,0,0,0,-253,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-261,0,0,0,0,0,0, - 0,-263,0,-264,0,0,0,0,-24,-274, - -275,-278,0,0,-316,0,0,0,-225,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-372,0,0,0, - 0,0,0,0,-279,0,-280,0,0,0, - 0,-347,0,0,0,-281,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-223,0, - 0,0,-100,0,0,0,0,0,0,0, - 0,0,-390,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-304,0,-305,0,0,0,0,-391, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-310,0,0,0,0,-175,0,0,0, - -303,-311,0,0,0,0,0,-322,-39,-323, - -400,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-403,0,0,0,0,0,0,0, - 0,0,-329,0,0,0,0,-450,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-346,0,-348, - 0,0,0,0,-219,0,0,0,-129,-364, - 0,0,0,0,0,0,0,0,-159,0, - 0,0,0,0,0,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, - -86,0,0,-134,0,-157,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-154,0,0, + 0,0,0,0,0,-54,0,0,0,0, + 0,0,0,-367,0,-56,0,-37,0,0, + 0,-41,0,0,0,0,0,-18,0,0, 0,-25,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-286, - 0,0,0,0,0,0,-155,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-401,0, - 0,0,0,0,-156,0,0,0,-380,0, + 0,0,0,0,0,0,0,0,0,-132, + 0,0,0,0,0,0,0,0,0,0, + -306,-442,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-68,0,0,0,0,0,0, + 0,-69,0,-70,0,0,0,0,0,0, + 0,0,0,0,-464,-85,-387,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,-71,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -196,0,0,0,0,-156,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-72,0,0, + 0,0,0,0,0,-73,0,0,0,-82, + 0,0,0,-74,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,-76,0,-91,0,0,0,0,-317,0, + 0,0,-258,-208,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-92,0,0,0,0, + 0,0,0,-86,0,-177,0,0,0,0, + 0,0,0,0,0,0,-21,0,0,0, + -77,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-89,0,-78,0, + 0,0,0,0,0,-79,0,0,0,-428, 0,0,0,0,0,0,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,-268,0,0,0,0, + 0,0,0,-283,0,0,0,0,0,-392, + 0,0,0,-198,0,0,0,0,-80,-112, + -178,-159,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-368,0,0,0,0,-149, - 0,0,0,-369,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-150,0,0,0, - -375,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-378,0, - 0,0,0,-151,0,0,0,-397,0,0, + 0,-90,0,-84,0,0,0,0,0,0, + -473,0,0,0,-160,0,0,0,-342,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-87,0,0,0, + 0,0,0,0,-96,0,-88,0,0,0, + 0,0,0,0,0,0,0,-161,0,0, + 0,-385,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-94, + 0,0,0,0,0,0,0,-105,0,-95, + 0,0,0,0,0,-402,-98,0,0,0, + -162,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, + -106,0,-117,0,0,0,0,0,-459,0, + -120,0,0,-163,0,0,0,-447,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-135,0,0,0,0, + 0,0,0,0,0,-183,0,-108,0,0, + 0,0,0,-184,0,0,-164,0,0,0, + -500,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-186,0, + -110,0,0,0,0,0,-202,0,0,-165, + 0,0,0,-203,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-204,0,0,0,0,0,0,0,0, + 0,-205,0,-113,0,0,0,0,-463,0, + 0,0,-166,0,0,0,-210,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-211,0,0,0,0,0, + 0,0,0,0,0,0,-189,0,0,0, + 0,-512,-212,0,0,-167,0,0,0,-213, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-225,0,0, + 0,0,0,0,0,-190,0,0,0,0, + 0,0,0,-216,-226,-227,0,0,-168,0, + 0,0,-228,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -229,0,0,0,0,0,0,0,-194,0, + -230,0,0,0,0,0,-224,-231,-232,0, + 0,-169,0,0,0,-233,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-234,0,-235,0,0,0,0,0,-236, + -237,-238,0,0,-284,0,0,0,-239,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-240,0,0,0, + 0,0,0,0,-241,0,-242,0,0,0, + 0,0,-243,-403,-246,0,0,-294,0,0, + 0,-247,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-404, + 0,0,0,0,0,0,0,-253,0,-248, + 0,0,0,0,0,-250,-251,-261,0,0, + -517,0,0,0,-263,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-264,0,0,0,0,0,0,0, + -256,0,-274,0,0,0,0,0,-275,-278, + -279,0,0,-316,0,0,0,-280,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-281,0,0,0,0, + 0,0,0,-304,0,-260,0,0,0,0, + 0,-347,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-305,0,0,0,-32, + 0,0,0,-310,-344,0,0,0,0,0, + -390,0,0,0,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, + -441,0,0,0,0,0,0,0,-391,0, + 0,0,0,0,0,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, + -363,0,0,0,0,0,-181,0,0,0, + -322,-273,0,0,0,0,0,-400,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-323, + 0,0,0,0,0,0,0,-295,0,-373, + 0,0,0,0,0,-450,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-296,0,0,0,0, + 0,0,0,-335,0,0,0,-329,-315,0, + 0,0,0,0,-171,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-346,0,0,0, + 0,0,0,0,-99,0,-348,0,0,0, + -93,0,-158,0,0,0,0,0,0,0, + 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,0,-157,0,0,0, + -423,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-13,0,0,0, + 0,0,0,0,0,0,0,0,0,-15, + -133,-303,-36,0,-252,0,0,0,-33,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-222,0,0,0,-100,0,0,0,0, + 0,0,0,0,-255,-139,0,-101,0,0, + 0,0,0,-128,0,0,0,0,0,0, + -364,-368,-129,-39,0,0,0,0,0,-369, + 0,0,-286,0,0,0,0,0,0,0, + 0,0,-293,0,0,0,-375,-378,0,0, + 0,0,0,0,0,-397,0,0,0,0, 0,0,0,0,0,-405,0,0,0,0, - -435,-17,-89,-47,0,0,0,0,-335,0, - 0,0,-408,-293,0,0,0,0,0,-409, - 0,-363,0,0,-262,0,0,-324,0,0, - 0,-214,0,0,-130,0,0,-448,0,0, - 0,0,-392,0,0,0,0,0,0,0, - 0,0,0,0,-90,-412,0,-404,0,0, - -379,0,0,-297,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-416,0,0,0,0,0,0,0, - 0,-406,0,0,0,0,0,0,0,0, - 0,-301,0,0,0,0,0,0,0,0, - 0,0,0,-13,0,0,0,0,-258,0, - 0,0,0,0,-14,0,0,0,0,0, - 0,0,0,-152,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-352,0,0,0,0, - 0,0,0,-423,0,-15,-413,0,0,0, - -338,0,0,0,0,0,0,0,-292,0, - 0,0,0,-9,0,0,-353,0,0,0, - 0,0,0,-384,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -418,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-32,0,0,0,0, - -429,0,0,0,0,0,-5,0,0,-449, + 0,0,0,0,-154,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-419,0,0,0,0,-451,0,0, - 0,0,0,0,0,-40,0,-98,0,0, - 0,0,-453,0,0,0,-218,-41,0,0, - 0,-454,0,0,0,-48,0,0,-273,0, - 0,0,-407,0,0,0,0,0,0,0, - 0,0,0,-427,0,0,0,-464,0,0, - 0,0,-153,0,0,0,0,0,0,0, + 0,0,-155,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-413,0,0,0,0,0, + 0,-147,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-408,0,0,0,0,-148,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -409,0,0,0,0,-149,0,0,0,-412, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-457, - -126,0,0,0,0,-187,0,0,-410,0, 0,0,0,0,0,0,0,-38,0,0, - 0,0,0,0,0,0,0,-139,0,0, - 0,0,-455,-195,0,-456,-173,0,0,0, - 0,-458,0,-474,-475,0,0,0,0,0, - 0,0,0,0,0,0,-421,0,0,-104, - 0,-476,0,0,0,0,0,0,0,0, - 0,0,0,0,-183,0,0,-477,-45,0, - 0,0,-117,0,-200,-270,-527,0,-359,-360, - 0,0,0,0,-482,0,-315,0,-478,0, + 0,0,-150,0,0,0,-301,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-416,0,0,0,0,-407, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-427,-266,0,0,0,0,0,0, + 0,0,0,0,0,0,-40,-102,0,-327, + -435,0,0,-418,0,-384,0,0,0,-429, + 0,0,0,0,0,0,-262,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-49,0,0,-380,-449,0,0, + 0,0,0,0,0,-514,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-451, + -453,-58,0,0,0,0,-454,0,0,0, + 0,0,0,0,-254,-29,-217,-448,0,0, + 0,0,0,0,0,0,0,0,-455,-302, + -421,0,0,0,-456,0,0,0,0,0, + 0,0,0,0,0,0,-312,0,-197,0, + 0,0,0,-458,-307,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-474,0,-436,0,0,0,0,0,0, + 0,-182,0,0,0,0,0,0,0,0, + 0,-516,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-352,-14,0,0,0, + 0,0,0,0,0,-103,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-475, + -379,0,0,-271,0,0,0,-48,-119,-328, + 0,0,0,0,0,-419,0,0,0,0, + 0,0,-477,0,0,-482,-31,0,0,0, + 0,-276,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-481,0,0,0, + 0,-515,-522,0,0,0,0,0,-486,0, + 0,0,0,0,0,0,0,-334,0,0, + 0,0,0,0,0,-498,0,0,0,0, + 0,0,0,-506,0,0,-282,0,0,0, + -398,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-527,0,0,0,0, + 0,0,0,0,0,-325,0,0,0,-518, + 0,0,0,0,0,0,-151,0,0,0, + -187,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-152,0,0,0,-528,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-308,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-377,0,0,0,0,0,0,0, + 0,0,0,0,0,-330,0,0,0,-457, + 0,-337,-9,0,-118,0,0,-374,-411,0, + -172,-10,0,0,0,0,0,0,0,0, + 0,0,-444,-470,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-452,0,0,0,0,0, + 0,0,0,0,0,-476,0,0,-339,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-47,0,0,-200, + -415,0,0,0,0,0,-269,-292,0,0, + 0,-313,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,0,0,-180, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-201,0,0,-42,0,0, + -176,-97,0,0,0,0,0,0,0,0, + 0,0,-195,0,0,0,0,0,0,0, + 0,0,0,-492,0,0,0,0,-17,-383, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-116,0,0,0, + 0,0,0,0,0,0,-467,0,0,0, + 0,0,0,0,-341,-207,-272,0,0,0, + 0,0,0,0,0,0,0,-505,0,0, + 0,0,-460,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -420,0,0,0,0,0,0,0,-331,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-374,0,0,0,0,0,0,0, + 0,-507,0,0,0,0,-170,0,0,0, + 0,-298,0,0,0,0,0,0,0,0, + 0,0,-488,0,-437,0,0,0,0,0, + -353,0,0,0,0,0,0,0,-11,0, + 0,0,0,-461,-386,0,-219,0,0,0, + 0,0,0,0,0,-511,0,0,0,0, + 0,-361,0,0,0,-223,0,0,0,0, + 0,0,0,0,0,0,-122,0,0,-244, + 0,0,-245,0,0,0,0,0,0,0, + -257,0,0,0,0,0,-123,0,0,0, + 0,0,0,0,0,0,0,0,0,-524, + 0,0,-127,0,0,-173,0,-513,0,0, + 0,0,0,0,0,0,0,0,0,-410, + 0,0,-462,-345,0,-472,-318,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-291,0,-326,0,0,0,0,0, + 0,0,0,-529,0,-319,0,0,-320,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-321,0,0, + 0,0,-355,0,-431,0,0,-356,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-492,-486,0,0,0,0,-420,0, - 0,0,0,0,-447,-498,0,0,0,0, - 0,0,0,-506,0,0,0,0,0,-518, - -411,-528,0,0,0,0,0,0,0,-505, + 0,0,0,0,0,0,0,-357,0,0, + 0,0,0,0,0,0,0,-142,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-415,0,0,0, - 0,0,-248,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -193,-58,0,0,0,0,0,0,0,0, - 0,0,0,-507,0,0,0,0,0,0, - -437,0,0,0,0,0,-500,0,0,0, - 0,0,0,0,0,0,-383,0,0,-268, - 0,0,0,0,0,-398,0,0,-272,0, - -511,0,0,0,0,-269,0,0,0,0, - 0,0,0,0,0,0,0,0,-46,0, - -105,-179,0,0,0,-460,0,-514,0,0, + 0,0,-143,0,0,0,-484,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-103,0,0,0,0,0,0,0, - 0,0,0,0,-524,0,0,-431,0,0, - 0,-345,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-509,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-441,0,0,0,0,0,0,0, - 0,-529,0,0,0,0,-386,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,-358,0,-59,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, + 0,0,0,0,0,-446,0,0,-145,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -299,0,-146,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-336,0,0,-485,0,0, + 0,-471,0,0,-382,-362,-370,-138,0,0, + 0,0,0,-371,-440,-300,0,0,0,-359, + 0,-426,0,0,0,0,0,0,-360,-399, + 0,0,0,0,-434,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-107,0,0,0, - 0,0,0,-109,-112,0,0,0,0,0, - 0,0,0,0,0,0,-143,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-469,0,0,0, + 0,0,-395,0,0,0,-487,-489,0,0, + 0,0,-497,0,0,0,0,-504,0,0, 0,0,0,0,0,0,0,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,-470,0,0,-308,0,0,0, - 0,0,0,0,0,0,0,-516,0,0, - 0,0,-414,0,0,0,0,0,-515,0, - -328,-102,0,0,0,0,0,0,0,0, - 0,0,0,0,-309,0,0,0,0,0, - 0,0,0,0,0,-467,-257,-446,0,0, - 0,-299,0,0,0,0,0,-201,0,0, - 0,0,-471,0,0,0,0,0,0,-29, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-488,0,0, - -207,0,0,0,0,0,0,0,0,-366, - 0,0,0,0,0,-189,0,0,0,0, - 0,0,0,0,0,0,0,0,-145,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -220,0,-174,-255,0,0,0,0,-190,0, - 0,0,0,0,0,0,0,0,0,0, - -115,0,0,0,0,0,0,-194,0,-254, - -256,0,0,0,0,-146,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,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-336,0,-289,-295,0,-140,0,0,-224, - 0,-382,0,0,0,0,-171,0,0,0, - 0,-440,-10,0,-245,0,0,0,0,0, - -296,0,0,0,0,-399,0,0,-302,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-246,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,0,0,0,-307, - -291,-334,0,0,-337,0,0,0,0,-339, - -341,-362,0,0,0,0,0,0,0,-370, - -371,-426,0,0,0,0,0,0,-60,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -61,0,0,0,-513,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,-62,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -428,102 +440,104 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 0,0,0,0,0,0,0,0,0,0, 0,0,-67,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-132,0,0,0,0,0, + 0,0,0,0,-131,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-141,0,0,0, + 0,0,0,0,0,0,-140,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-142,0, + 0,0,0,0,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, -209,0,0,0,0,0,0,0,0,0, 0,0,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,0,0,0, - 0,0,0,0,-509,0,0,0,0,-326, - 0,0,0,0,0,-355,-108,0,0,0, - -356,-479,-424,-376,-357,0,0,0,-434,-469, - 0,0,0,0,-300,-381,-487,0,-489,0, - 0,0,0,0,0,0,-497,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-425, - 0,-358,-519,0,-395,0,0,0,0,0, - 0,0,0,0,0,0,-452,0,0,0, - -461,0,0,0,0,0,0,0,-396,0, - 0,0,0,0,0,-318,0,0,0,0, - -433,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-504,0,0,0,0, - 0,-462,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,-388,0,0,0,0,0, - 0,0,0,0,0,-443,0,0,0,0, + 0,0,0,0,0,0,0,-414,-443,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-104,0,0,0,0,-338,0,0,-438, + 0,-396,-350,0,0,0,-491,0,-376,0, + 0,0,0,0,0,0,0,0,0,0, -422,0,0,0,0,0,0,0,0,0, + 0,-430,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -42,0,0,0,0,0,0,-113,0,0, - 0,0,0,0,0,-319,0,-430,0,0, - 0,-217,0,0,0,0,-188,0,0,0, - 0,0,-439,0,0,0,-465,0,0,0, + -439,0,0,0,0,0,0,0,0,0, + 0,0,-332,0,-46,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-465,0, + 0,0,0,-490,0,0,0,0,0,0, + -381,0,0,0,0,0,-468,-493,0,-495, + 0,0,-425,0,0,-365,0,0,0,0, + 0,0,0,-115,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-499,0,0, + -502,0,-503,0,0,0,0,0,0,0, + 0,0,0,0,0,-521,-508,0,0,0, + 0,0,0,0,0,0,0,0,-366,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-472,-484,-11,-468, - -493,0,0,0,0,0,0,0,0,0, - 0,-320,0,0,0,0,-343,0,0,0, + 0,0,-433,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-481,0,0,0,0,0,0, + 0,0,0,-333,0,0,0,0,0,0, + -309,0,0,0,0,0,0,0,0,0, + 0,0,0,-525,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,-485,0,0,0,0,0, - 0,0,-333,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-490,-508,0, - 0,-389,0,0,0,-495,0,0,0,0, - 0,0,0,-494,0,0,0,0,0,0, - 0,0,0,0,-266,0,0,0,0,0, + -510,0,-520,-526,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-267,0,0,-520,0,0, - -526,0,-101,0,-499,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-321,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-377,0,0,0,0,0,0, - 0,0,0,0,-502,0,-118,0,0,0, - 0,0,-503,-521,0,0,-525,-215,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-222,0,0,0,0,-314,0,0, + 0,0,0,0,-43,0,0,0,-188,0, + 0,0,0,0,0,0,0,0,-57,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-340,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-351,0,0,0,-393,0, - 0,0,0,0,0,0,0,0,-491,0, + 0,0,0,0,0,0,0,0,0,-109, + 0,0,0,0,0,0,0,0,-343,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-394,0,0,0,0,-365, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-417,0,0,0,-432,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-445,0,0,0,0,0,0,0, - -496,0,-57,-438,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-267,0,0, + 0,0,0,0,0,0,-114,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-114,0,0,0,0, - 0,0,0,0,-120,0,0,0,0,0, - 0,0,0,0,0,0,0,-125,0,0, - 0,0,0,0,0,-135,0,0,0,0, - 0,0,0,-510,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-259, - 0,0,0,0,0,0,0,-480,0,0, - 0,0,0,0,0,-277,0,0,0,0, - 0,0,0,0,-285,0,0,0,-121,0, - 0,-122,0,0,-483,0,0,0,0,0, - 0,0,0,-123,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-124, - 0,0,-288,0,0,0,0,0,0,0, + 0,0,0,0,0,-389,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-466,0,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,0,-215,0,0,0,-221,0,0, + 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, + -496,0,0,0,0,-519,0,0,0,0, + 0,0,0,0,0,-340,0,0,0,0, + 0,0,0,0,0,0,-351,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -393,0,0,0,0,0,0,0,0,0, + 0,-394,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-417,0,0,0,0, + 0,0,0,0,0,0,-432,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -445,0,0,0,0,0,0,0,0,0, + -121,0,0,0,0,0,0,0,0,0, + 0,0,0,-126,0,0,0,0,0,0, + 0,0,0,0,0,-259,0,0,0,0, + 0,-134,0,0,0,0,0,0,0,0, + -277,0,0,0,0,0,0,0,-285,0, + 0,0,0,0,0,0,0,0,-424,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,-480, + 0,0,0,0,0,0,-483,0,-124,0, + 0,-125,0,0,0,0,0,0,0,-288, + 0,0,0,0,0,0,0,-466,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0 + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,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; @@ -533,534 +547,543 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface BaseAction { public final static char baseAction[] = { - 170,4,54,83,83,32,32,66,66,38, + 169,4,133,82,82,32,32,66,66,38, 38,40,40,193,193,194,194,195,195,1, 1,15,15,15,15,15,15,15,15,16, - 16,16,14,11,11,8,8,8,8,8, - 8,2,67,67,5,5,12,12,12,12, - 45,45,134,134,135,62,62,43,17,17, + 16,16,14,11,11,6,6,6,6,6, + 6,2,64,64,5,5,12,12,44,44, + 134,134,135,56,56,43,17,17,17,17, 17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,136,136, - 136,114,114,18,18,18,18,18,18,18, - 18,18,18,18,18,18,19,19,171,171, - 172,172,173,139,139,140,140,137,137,141, - 138,138,20,20,21,21,23,23,23,24, - 24,24,24,25,25,25,26,26,26,27, - 27,27,27,27,28,28,28,29,29,31, - 31,33,33,34,34,35,35,36,36,42, - 42,41,41,41,41,41,41,41,41,41, - 41,41,41,41,39,30,142,142,97,97, - 174,174,92,196,196,68,68,68,68,68, - 68,68,68,68,69,69,69,65,65,56, - 56,175,175,70,70,70,103,103,176,176, - 71,71,71,177,177,72,72,72,72,72, - 73,73,84,84,84,84,84,84,84,49, - 49,49,49,49,115,115,116,116,50,178, - 22,22,22,22,22,48,48,87,87,87, - 87,87,149,149,144,144,144,144,144,145, - 145,145,146,146,146,147,147,147,148,148, - 148,88,88,88,88,88,89,89,89,13, - 13,13,13,13,13,13,13,13,13,13, - 100,120,120,120,120,120,120,118,118,118, - 119,119,151,151,150,150,122,122,104,79, - 79,80,81,52,47,152,152,53,51,86, - 86,153,153,143,143,123,124,124,76,76, - 154,154,63,63,63,59,59,58,64,64, - 75,75,57,57,57,90,90,99,98,98, - 61,61,60,60,55,55,44,101,101,101, - 93,93,93,94,94,95,95,95,96,96, - 105,105,105,107,107,106,106,197,197,91, - 91,180,180,180,180,180,126,46,46,156, - 179,179,127,127,127,127,128,158,181,181, - 37,37,117,129,129,129,129,108,108,121, - 121,121,159,160,160,160,160,160,160,160, - 160,160,160,160,184,184,182,182,183,183, - 161,161,161,161,162,185,110,109,109,186, - 186,163,163,163,163,102,102,102,187,187, - 9,9,10,188,188,189,164,155,155,165, - 165,166,167,167,6,6,7,168,168,168, - 168,168,168,168,168,168,168,168,168,168, - 168,168,168,168,168,168,168,168,168,168, - 168,168,168,168,168,168,168,168,168,168, - 168,168,168,168,168,168,168,168,168,77, - 82,82,169,169,131,131,111,111,111,111, - 111,111,3,132,132,130,130,112,112,85, - 78,74,157,157,113,113,190,190,190,133, - 133,125,125,191,191,170,170,1132,41,1779, - 1777,1242,4498,36,954,33,37,1078,32,34, - 1769,31,29,58,1269,114,84,85,116,1075, - 1287,1304,1295,1389,1381,1478,1425,1213,1511,1481, - 1493,1519,1521,151,280,418,41,286,166,152, - 4666,2518,41,1113,38,1786,4513,36,954,33, - 37,1078,65,34,2402,41,1113,38,239,3112, - 36,954,33,37,1078,32,34,1261,31,29, - 58,1269,114,84,85,116,357,1287,1304,1295, - 1389,1381,1478,1908,242,237,238,418,41,453, - 1114,4298,4615,2357,41,1113,38,281,3112,36, - 954,33,37,1078,32,34,1261,31,29,58, - 1269,94,84,85,249,252,255,258,2898,2888, - 41,287,2110,41,1113,38,813,4736,36,954, - 33,37,1078,32,34,2802,511,1114,3034,1751, - 770,863,727,869,2179,2818,4241,1603,41,1113, - 38,2655,3112,36,954,33,37,1078,32,34, - 1261,31,29,58,1269,114,84,85,116,346, - 1287,1304,1295,1389,1381,1478,1425,69,1511,2906, - 1493,1519,1521,151,1300,2124,1483,1230,517,152, - 3203,2696,1114,1605,1597,40,74,1799,1114,41, - 1121,391,518,1603,41,1113,38,2655,3112,36, - 954,33,37,1078,32,34,1261,31,29,58, - 1269,114,84,85,116,346,1287,1304,1295,1389, - 1381,1478,1425,996,1511,57,1493,1519,1521,151, - 1797,1554,336,1383,517,152,1569,2696,239,393, - 427,1610,446,2613,2741,2888,41,284,518,513, - 2969,41,1113,38,3093,4513,36,954,33,37, - 1078,64,34,1654,251,237,238,1949,1536,1951, - 1114,41,289,1603,41,1113,38,2655,3112,36, - 954,33,37,1078,32,34,1261,31,29,58, - 1269,114,84,85,116,346,1287,1304,1295,1389, - 1381,1478,1425,3181,1511,513,1493,1519,1521,151, - 421,2495,1526,1398,517,152,4518,2696,1982,2089, - 2823,50,1941,1959,330,1951,246,2116,518,1805, - 41,1113,38,2655,3112,36,954,33,37,1078, - 32,34,1261,31,29,58,1269,114,84,85, - 116,346,1287,1304,1295,1389,1381,1478,1425,1190, - 1511,66,1493,1519,1521,151,4688,940,41,453, - 517,152,4615,2696,239,1351,41,1650,49,31, - 239,48,954,2714,518,513,68,2110,41,1113, - 38,497,4736,36,954,33,37,1078,67,34, - 247,237,238,1966,1402,1951,254,237,238,1934, - 41,1113,38,1297,3112,36,954,33,37,1078, - 32,34,1261,31,29,58,1269,114,84,85, - 116,535,1287,1304,1295,1389,1381,1478,1425,4262, - 1511,514,1493,1519,1521,151,1114,41,2180,4050, - 382,152,1669,41,1113,38,2337,3112,36,954, - 33,37,1078,32,34,1261,31,29,58,1269, - 114,84,85,116,430,1287,1304,1295,1389,1381, - 1478,1425,3257,1511,66,1493,1519,1521,151,4545, - 559,447,4050,382,152,1610,2402,41,1113,38, - 2793,3112,36,954,33,37,1078,32,34,1261, - 31,29,58,1269,114,84,85,116,2967,1287, - 1304,1295,1389,1381,1478,1425,2148,1511,2500,1493, - 1923,2527,450,2613,2741,3401,388,3374,405,1114, - 2000,1869,41,1113,38,1654,3112,36,954,33, - 37,1078,32,34,1261,31,29,58,1269,114, - 84,85,116,2562,1287,1304,1295,1389,1381,1478, - 1425,2655,1511,332,1493,1519,1521,151,498,389, - 3374,4050,382,152,1190,3548,2044,41,1113,38, - 3765,3112,36,954,33,37,1078,32,34,1261, - 31,29,58,1269,114,84,85,116,1034,1287, - 1304,1295,1389,1381,1478,1425,353,1511,2686,1493, - 1519,1521,151,1114,41,3529,3486,376,152,2044, - 41,1113,38,2116,3112,36,954,33,37,1078, - 32,34,1261,31,29,58,1269,114,84,85, - 116,1548,1287,1304,1295,1389,1381,1478,1425,684, - 1511,293,1493,1519,1521,151,1271,2711,380,3374, - 376,152,2044,41,1113,38,1271,3112,36,954, - 33,37,1078,32,34,1261,31,29,58,1269, - 114,84,85,116,456,1287,1304,1295,1389,1381, - 1478,1425,2712,1511,101,1493,1519,1521,151,2713, - 2747,506,375,376,152,2044,41,1113,38,1260, - 3112,36,954,33,37,1078,32,34,1261,31, - 29,58,1269,114,84,85,116,1835,1287,1304, - 1295,1389,1381,1478,1425,1321,1511,1346,1493,1519, - 1521,151,4565,438,501,374,166,152,1999,41, - 1113,38,1610,3112,36,954,33,37,1078,32, - 34,1261,31,29,58,1269,114,84,85,116, - 78,1287,1304,1295,1389,1381,1478,1425,3393,1511, - 79,1493,1519,1536,172,327,2552,447,372,2260, - 3203,1741,41,1113,38,2803,3112,36,954,33, - 37,1078,32,34,1261,31,29,58,1269,114, - 84,85,116,523,1287,1304,1295,1389,1381,1478, - 1425,1725,1511,1145,1493,1519,1521,151,2717,1318, - 1979,331,150,152,3182,460,1114,41,1121,391, - 791,162,335,2044,41,1113,38,1751,3112,36, - 954,33,37,1078,32,34,1261,31,29,58, - 1269,114,84,85,116,414,1287,1304,1295,1389, - 1381,1478,1425,431,1511,3402,1493,1519,1521,151, - 1114,41,1597,283,163,152,2044,41,1113,38, - 2167,3112,36,954,33,37,1078,32,34,1261, - 31,29,58,1269,114,84,85,116,523,1287, - 1304,1295,1389,1381,1478,1425,356,1511,60,1493, - 1519,1521,151,1114,41,1597,288,162,152,2044, - 41,1113,38,395,3112,36,954,33,37,1078, - 32,34,1261,31,29,58,1269,114,84,85, - 116,669,1287,1304,1295,1389,1381,1478,1425,582, - 1511,1411,1493,1519,1521,151,1114,41,1597,285, - 161,152,2044,41,1113,38,1409,3112,36,954, - 33,37,1078,32,34,1261,31,29,58,1269, - 114,84,85,116,71,1287,1304,1295,1389,1381, - 1478,1425,510,1511,597,1493,1519,1521,151,1114, - 41,1597,2178,160,152,2044,41,1113,38,443, - 3112,36,954,33,37,1078,32,34,1261,31, - 29,58,1269,114,84,85,116,2748,1287,1304, - 1295,1389,1381,1478,1425,1366,1511,2223,1493,1519, - 1521,151,2352,41,1597,283,159,152,2044,41, - 1113,38,1367,3112,36,954,33,37,1078,32, - 34,1261,31,29,58,1269,114,84,85,116, - 1735,1287,1304,1295,1389,1381,1478,1425,2097,1511, - 2760,1493,1519,1521,151,1114,2445,1597,82,158, - 152,2044,41,1113,38,1482,3112,36,954,33, - 37,1078,32,34,1261,31,29,58,1269,114, - 84,85,116,153,1287,1304,1295,1389,1381,1478, - 1425,1860,1511,234,1493,1519,1521,151,2352,41, - 1597,2454,157,152,2044,41,1113,38,1683,3112, - 36,954,33,37,1078,32,34,1261,31,29, - 58,1269,114,84,85,116,1792,1287,1304,1295, - 1389,1381,1478,1425,1883,1511,1899,1493,1519,1521, - 151,1114,41,1597,2508,156,152,2044,41,1113, - 38,1914,3112,36,954,33,37,1078,32,34, - 1261,31,29,58,1269,114,84,85,116,2498, - 1287,1304,1295,1389,1381,1478,1425,2644,1511,2582, - 1493,1519,1521,151,2821,588,317,1610,155,152, - 2044,41,1113,38,675,3112,36,954,33,37, - 1078,32,34,1261,31,29,58,1269,114,84, - 85,116,2074,1287,1304,1295,1389,1381,1478,1425, - 2179,1511,403,1493,1519,1521,151,2819,2460,1924, - 1610,154,152,2044,41,1113,38,2084,3112,36, - 954,33,37,1078,32,34,1261,31,29,58, - 1269,114,84,85,116,2127,1287,1304,1295,1389, - 1381,1478,1425,2146,1511,407,1493,1519,1521,151, - 459,2232,2670,147,153,152,2044,41,1113,38, - 2549,3112,36,954,33,37,1078,32,34,1261, - 31,29,58,1269,114,84,85,116,2799,1287, - 1304,1295,1389,1381,1478,1425,1139,1511,762,1493, - 1519,1521,151,4003,47,830,1031,167,152,2044, - 41,1113,38,756,3112,36,954,33,37,1078, - 32,34,1261,31,29,58,1269,114,84,85, - 116,1554,1287,1304,1295,1389,1381,1478,1425,1921, - 1511,2548,1493,1519,1521,151,1027,41,397,2029, - 148,152,2307,41,1113,38,2149,3112,36,954, - 33,37,1078,32,34,1261,31,29,58,1269, - 114,84,85,116,1193,1287,1304,1295,1389,1381, - 1478,1425,2781,1511,1812,1493,1519,1521,151,249, - 2233,2638,2707,197,152,2402,41,1113,38,1610, - 3112,36,954,33,37,1078,32,34,1261,31, - 29,58,1269,114,84,85,116,2597,1287,1304, - 1295,1389,1381,1478,1425,2813,1511,2814,1493,1519, - 1536,172,2402,41,1113,38,2954,3112,36,954, - 33,37,1078,32,34,1261,31,29,58,1269, - 114,84,85,116,569,1287,1304,1295,1389,1381, - 1478,1425,384,1511,328,1493,1519,1536,172,2220, - 41,1113,38,1190,4736,36,954,33,37,1078, - 66,34,59,2402,41,1113,38,297,3112,36, - 954,33,37,1078,32,34,1261,31,29,58, - 1269,114,84,85,116,326,1287,1304,1295,1389, - 1381,1478,1425,2432,1511,2835,1493,1519,1536,172, - 2402,41,1113,38,423,3112,36,954,33,37, - 1078,32,34,1261,31,29,58,1269,114,84, - 85,116,359,1287,1304,1295,1389,1381,1478,1425, - 531,1511,2987,1493,1519,1536,172,2796,41,1113, - 38,1654,2831,36,954,343,37,1078,2994,2674, - 2996,2402,41,1113,38,422,3112,36,954,33, - 37,1078,32,34,1261,31,29,58,1269,114, - 84,85,116,2597,1287,1304,1295,1389,1381,1478, - 1425,3715,1511,2534,1493,1519,1536,172,2447,41, - 1113,38,425,3112,36,954,33,37,1078,32, - 34,1261,31,29,58,1269,114,84,85,116, - 239,1287,1304,1295,1389,1381,1478,1425,2521,1511, - 2314,1493,1519,1536,172,2796,41,1113,38,1190, - 945,36,954,46,37,1078,257,237,238,2402, - 41,1113,38,2694,3112,36,954,33,37,1078, - 32,34,1261,31,29,58,1269,114,84,85, - 116,3981,1287,1304,1295,1389,1381,1478,1425,31, - 1511,31,1915,2917,1145,3523,2402,41,1113,38, - 2958,3112,36,954,33,37,1078,32,34,1261, - 31,29,58,1269,114,84,85,116,358,1287, - 1304,1295,1389,1381,1478,1425,531,1906,2402,41, - 1113,38,1736,3112,36,954,33,37,1078,32, - 34,1261,31,29,58,1269,114,84,85,116, - 2935,1287,1304,1295,1389,1381,1873,2402,41,1113, - 38,2255,3112,36,954,33,37,1078,32,34, - 1261,31,29,58,1269,114,84,85,116,1610, - 1287,1304,1295,1389,1880,2402,41,1113,38,1487, - 3112,36,954,33,37,1078,32,34,1261,31, - 29,58,1269,114,84,85,116,329,1287,1304, - 1295,1389,1898,2402,41,1113,38,2255,3112,36, - 954,33,37,1078,32,34,1261,31,29,58, - 1269,114,84,85,116,2902,1287,1304,1295,1829, - 2402,41,1113,38,2561,3112,36,954,33,37, - 1078,32,34,1261,31,29,58,1269,114,84, - 85,116,105,1287,1304,1295,1837,2402,41,1113, - 38,1919,3112,36,954,33,37,1078,32,34, - 1261,31,29,58,1269,114,84,85,116,3002, - 1287,1304,1295,1855,2402,41,1113,38,3006,3112, - 36,954,33,37,1078,32,34,1261,31,29, - 58,1269,114,84,85,116,3007,1287,1304,1295, - 1863,262,1348,31,1542,537,2655,687,4487,2796, - 41,1113,38,3008,2623,36,954,1827,37,1078, - 2976,1034,3001,236,2644,2919,41,298,2978,41, - 284,164,418,41,286,1190,354,4745,1,188, - 4127,3087,537,1114,41,1121,391,211,222,4474, - 210,219,220,221,223,31,1922,177,2597,743, - 236,2919,2550,298,2938,3639,176,30,164,191, - 175,178,179,180,181,182,188,4127,3087,355, - 434,2255,996,3011,211,222,4474,210,219,220, - 221,223,2212,505,177,1741,4110,347,541,1401, - 352,3639,1145,176,189,1134,192,175,178,179, - 180,181,182,504,1322,41,1113,38,1345,1434, - 36,954,342,37,1078,2492,41,1121,391,2171, - 2959,3093,3732,503,2402,41,1113,38,244,3112, - 36,954,33,37,1078,32,34,1261,31,29, - 58,1269,114,84,85,116,66,1287,1304,1871, - 96,4569,280,110,1610,2171,2106,2819,738,2539, - 3179,2854,323,2342,325,2655,2568,318,1999,853, - 41,1121,391,327,1348,392,239,66,2655,355, - 868,531,4595,236,2796,41,1113,38,52,1941, - 36,954,2697,37,1078,304,2644,347,541,1401, - 352,3013,242,237,238,780,280,213,222,4474, - 212,219,220,221,223,281,1650,41,1113,38, - 4433,3012,36,954,342,37,1078,1027,41,397, - 2566,355,249,252,255,258,2898,106,214,216, - 218,299,300,1994,813,520,215,217,354,347, - 541,1401,352,1114,41,1121,391,345,2776,863, - 727,869,2179,2818,4241,505,1426,1095,31,2213, - 738,4248,823,88,323,2342,325,31,2913,318, - 1999,1265,3014,80,369,504,1027,41,397,1434, - 433,355,2083,1529,41,1113,38,3222,3203,36, - 954,342,37,1078,2819,502,3315,3711,1654,347, - 541,1401,352,2402,41,1113,38,1134,3112,36, - 954,33,37,1078,32,34,1261,31,29,58, - 1269,114,84,85,116,585,1287,1304,1872,239, - 349,1649,228,724,537,1265,2100,738,3087,66, - 335,323,2342,325,4619,290,318,1999,1993,41, - 1622,3314,236,4037,4057,260,237,238,1649,1607, - 164,168,1265,3018,1596,2000,3019,2808,188,4127, - 3087,2655,3020,4317,3025,175,211,222,4474,210, - 219,220,221,223,1648,57,177,3001,168,2644, - 31,1554,436,1173,2886,176,537,3427,2975,175, - 178,179,180,181,182,1190,311,315,3026,1227, - 41,1121,391,1850,236,1190,2495,47,3203,1649, - 1649,4518,164,1265,1265,1368,2844,1434,3471,523, - 188,4127,3087,537,332,338,2761,3550,211,222, - 4474,210,219,220,221,223,57,77,177,168, - 168,236,1554,1434,1640,3610,3307,176,363,164, - 186,175,178,179,180,181,182,188,4127,3087, - 336,3541,3625,1683,1691,211,222,4474,210,219, - 220,221,223,610,3027,177,292,537,355,1114, - 41,1121,391,291,176,2640,3030,184,175,178, - 179,180,181,182,3031,236,349,541,1401,352, - 727,1434,2986,164,2829,2001,4115,4139,1297,302, - 697,188,4127,3087,537,97,432,5272,110,211, - 222,4474,210,219,220,221,223,2904,5272,177, - 5272,2531,236,1114,41,1121,391,5272,176,5272, - 164,185,175,178,179,180,181,182,188,4127, - 3087,770,1927,41,1121,391,211,222,4474,210, - 219,220,221,223,784,383,177,301,537,429, - 57,1114,41,1121,391,176,54,2640,195,175, - 178,179,180,181,182,5272,236,1364,5272,57, - 770,2655,2172,190,164,1554,684,2304,522,1596, - 2000,871,188,4127,3087,537,770,5272,452,2644, - 211,222,4474,210,219,220,221,223,5272,327, - 177,31,327,236,3203,4267,2916,3203,1654,176, - 1265,164,3060,175,178,179,180,181,182,188, - 4127,3087,1260,1114,41,1121,391,211,222,4474, - 210,219,220,221,223,958,164,177,66,537, - 394,427,327,4633,208,4355,176,3203,3087,200, - 175,178,179,180,181,182,335,236,505,335, - 57,5272,5272,31,525,164,1554,1265,1693,5272, - 522,5272,1045,188,4127,3087,537,1654,504,396, - 427,211,222,4474,210,219,220,221,223,2963, - 5272,177,725,4300,236,395,427,5272,502,335, - 176,292,164,194,175,178,179,180,181,182, - 188,4127,3087,2937,1355,5272,2260,3087,211,222, - 4474,210,219,220,221,223,5272,31,177,2977, - 2001,680,4382,379,1492,31,2586,176,3111,2914, - 202,175,178,179,180,181,182,2402,41,1113, - 38,5272,3112,36,954,33,37,1078,32,34, - 1261,31,29,58,1269,114,84,85,116,5272, - 1287,1785,2402,41,1113,38,5272,3112,36,954, - 33,37,1078,32,34,1261,31,29,58,1269, - 114,84,85,116,1654,1287,1794,1560,41,2248, - 38,3222,3203,36,954,342,37,1078,1915,41, - 1113,38,1345,1654,36,954,342,37,1078,1654, - 5272,327,1498,41,1113,38,3203,3203,36,954, - 342,37,1078,377,4059,2675,41,1113,38,3222, - 5272,36,954,342,37,1078,1434,2100,1114,41, - 298,738,2100,3087,335,323,2342,325,1190,3087, - 318,1999,738,1114,41,298,323,2342,325,379, - 2093,318,1999,675,2655,524,738,5272,3480,336, - 323,2342,325,355,526,319,1999,4317,1434,738, - 76,1190,346,323,2342,325,5272,355,318,1999, - 2700,347,541,1401,352,3203,31,5272,3427,527, - 3150,2083,309,3427,1390,349,541,1401,352,2402, - 41,1113,38,61,3112,36,954,33,37,1078, - 32,34,1261,31,29,58,1269,114,84,85, - 116,1190,1812,2808,1023,337,338,2655,2655,2764, - 3712,338,4297,3166,385,5272,5272,3480,418,2250, - 102,1114,41,1121,391,2644,2644,4378,31,4049, - 31,31,3159,95,3432,4055,2402,41,1113,38, - 1784,3112,36,954,33,37,1078,32,34,1261, - 31,29,58,1269,114,84,85,116,280,1820, - 2402,41,1113,38,5272,3112,36,954,33,37, - 1078,32,34,1261,31,29,58,1269,114,84, - 85,116,2659,1828,31,31,2655,31,1209,4184, - 1190,1265,2766,5272,363,364,2655,31,456,104, - 5272,1265,2838,31,236,1190,2655,2655,3677,1683, - 1691,31,5272,5272,236,4363,1649,164,442,31, - 1265,282,60,3602,236,346,2009,164,213,222, - 4474,212,219,220,221,223,1916,3605,213,222, - 4474,212,219,220,221,223,168,2696,213,222, - 4474,212,219,220,221,223,5272,1190,509,214, - 216,218,299,300,1994,2819,224,215,217,214, - 216,218,299,300,1994,5272,224,215,217,214, - 216,218,299,300,1994,5272,224,215,217,3631, - 1119,1190,31,5272,877,31,2027,4056,3003,3612, - 31,31,31,308,3147,1183,3156,4056,3061,5272, - 31,31,31,4221,2203,2588,3622,4056,3426,2402, - 41,1113,38,98,3112,36,954,33,37,1078, - 32,34,1261,31,29,58,1269,114,84,85, - 93,2402,1605,1113,1665,2454,3112,36,954,33, - 37,1078,32,34,1261,31,29,58,1269,114, - 84,85,92,2402,41,1113,38,5272,3112,36, - 954,33,37,1078,32,34,1261,31,29,58, - 1269,114,84,85,91,2402,41,1113,38,5272, - 3112,36,954,33,37,1078,32,34,1261,31, - 29,58,1269,114,84,85,90,2402,41,1113, - 38,1914,3112,36,954,33,37,1078,32,34, - 1261,31,29,58,1269,114,84,85,89,2402, - 41,1113,38,5272,3112,36,954,33,37,1078, - 32,34,1261,31,29,58,1269,114,84,85, - 88,2402,41,1113,38,5272,3112,36,954,33, - 37,1078,32,34,1261,31,29,58,1269,114, - 84,85,87,2402,41,1113,38,5272,3112,36, - 954,33,37,1078,32,34,1261,31,29,58, - 1269,114,84,85,86,2262,41,1113,38,5272, - 3112,36,954,33,37,1078,32,34,1261,31, - 29,58,1269,114,84,85,112,2402,41,1113, - 38,5272,3112,36,954,33,37,1078,32,34, - 1261,31,29,58,1269,114,84,85,118,2402, - 41,1113,38,5272,3112,36,954,33,37,1078, - 32,34,1261,31,29,58,1269,114,84,85, - 117,2402,41,1113,38,5272,3112,36,954,33, - 37,1078,32,34,1261,31,29,58,1269,114, - 84,85,115,2402,41,1113,38,5272,3112,36, - 954,33,37,1078,32,34,1261,31,29,58, - 1269,114,84,85,113,1714,41,1113,38,3222, - 1190,36,954,342,37,1078,1190,1399,41,1121, - 391,1190,31,2898,2731,1190,537,2655,2655,31, - 31,5272,5272,3045,3468,2100,2749,31,5272,31, - 2655,3137,3722,959,346,346,236,31,75,5272, - 5272,4025,164,74,57,530,5272,73,236,738, - 1554,196,55,323,2342,325,4394,2696,318,1999, - 213,222,4474,212,219,220,221,223,533,659, - 5272,1607,213,222,4474,212,219,220,221,223, - 2872,5272,1190,2985,2655,1190,3427,1265,5272,5272, - 5272,214,216,218,299,300,1994,2819,519,215, - 217,2819,236,214,216,218,299,300,1994,1190, - 225,215,217,164,72,4301,31,63,311,315, - 1265,2942,170,334,338,2655,213,222,4474,212, - 219,220,221,223,5272,187,2917,5272,4428,206, - 3388,62,2819,236,5272,5272,164,5272,2761,5272, - 5272,5272,5272,5272,2100,4036,5272,214,216,218, - 299,300,1994,5272,310,215,217,213,222,4474, - 212,219,220,221,223,1729,41,2248,38,3222, - 205,36,954,342,37,1078,2675,41,1113,38, - 3222,1190,36,954,342,37,1078,5272,214,216, - 218,299,300,1994,4273,499,215,217,5272,5272, - 5272,2553,41,1121,391,3427,2959,5272,1227,41, - 1121,391,5272,109,245,5272,31,5272,1190,738, - 1265,5272,2687,323,2342,325,2655,1201,318,1999, - 738,2655,4720,1188,323,2342,325,1190,280,318, - 1999,675,3730,338,346,57,164,4497,5272,236, - 3685,1554,1607,55,5272,4041,5272,2819,2819,31, - 1190,1190,239,2655,5272,529,1081,5272,5272,451, - 820,5272,31,1050,408,4405,1265,1231,41,1113, - 38,346,3203,36,954,342,37,1078,243,237, - 238,5272,381,3070,2916,307,209,5272,537,312, - 315,281,164,2696,409,410,411,299,300,1994, - 5272,4045,5272,5272,507,2819,4067,5272,250,253, - 256,259,2898,2100,164,5272,419,2250,5272,1984, - 813,738,188,4127,336,323,2342,325,2819,2819, - 321,1999,1231,41,1113,38,1190,3203,36,954, - 342,37,1078,207,2675,41,1113,38,3222,203, - 36,954,342,37,1078,1382,41,1113,38,3377, - 5272,36,954,342,37,1078,303,4113,3124,5272, - 5272,5272,5272,5272,3427,1289,412,414,2819,2655, - 4720,2819,5272,1787,3604,1190,738,2655,3203,336, - 323,2342,325,404,5272,319,1999,236,738,2649, - 5272,4425,323,2342,325,2644,31,318,1999,738, - 1265,3731,338,320,2162,325,229,3161,5272,201, - 3054,1050,408,4405,2783,41,1113,38,2833,5272, - 36,954,342,37,1078,1190,164,1787,5272,5272, - 335,2655,3203,1190,1190,4112,5272,1190,2167,41, - 1121,391,409,410,411,299,300,1994,5272,2644, - 5272,4641,204,1863,41,1121,391,3188,2090,41, - 1121,391,5272,3402,363,3399,4431,1984,738,3252, - 5272,5272,320,2162,325,57,5272,5272,2955,1683, - 1691,1554,5272,2360,335,1863,41,1121,391,5272, - 57,5272,5272,5272,5272,57,1554,5272,2544,3710, - 3541,1554,5272,55,5272,2090,41,1121,391,2090, - 41,1121,391,5272,5272,2709,5272,2963,363,1643, - 1396,5272,57,2655,412,415,5272,5272,1554,5272, - 55,5272,2955,1683,1691,2090,41,1121,391,5272, - 31,346,57,5272,1265,5272,57,2724,1554,5272, - 55,5272,1554,5272,55,2090,41,1121,391,2503, - 41,1121,391,4166,5272,5272,5272,2573,3710,5272, - 164,2793,57,2615,41,1121,391,5272,1554,2389, - 55,2982,5272,31,1649,537,5272,537,1265,5272, - 5272,5272,57,5272,5272,5272,57,3039,1554,5272, - 55,5272,1554,346,55,346,1114,41,1121,391, - 57,164,5272,164,168,31,1554,3131,55,537, - 196,3428,2565,5272,5272,4394,5272,2696,1114,41, - 1121,391,5272,5272,5272,3443,31,346,2259,5272, - 537,5272,5272,57,31,164,5272,5272,1265,1554, - 5272,795,5272,5272,3438,5272,5272,5272,346,2696, - 1114,41,1121,391,5272,57,164,5272,31,5272, - 2965,1554,537,719,164,2565,1114,41,1121,391, - 2696,4277,5272,4494,198,1114,41,1121,391,31, - 346,3521,31,2655,5272,31,2655,57,164,537, - 5272,5272,5272,1554,31,2632,5272,196,2655,4493, - 5272,346,4394,57,346,5272,5272,346,5272,1554, - 31,2304,57,31,2655,164,346,2655,1554,5272, - 2558,5272,5272,2696,196,5272,2696,5272,5272,4394, - 5272,5272,346,5272,1708,346,31,1726,2696,5272, - 2655,5272,5272,5272,5272,5272,5272,4379,5272,1734, - 5272,5272,5272,5272,2696,5272,5272,2696,346,5272, - 5272,4386,5272,5272,5272,1736,5272,5272,4030,5272, - 5272,5272,5272,5272,5272,5272,5272,5272,5272,5272, - 2696,5272,5272,5272,5272,5272,5272,5272,4435,5272, - 5272,534,5272,0,1956,1,0,2767,1,0, - 1,2,5292,0,1,2,5291,0,45,5292, - 0,45,5291,0,2301,322,0,454,2533,0, - 440,2585,0,2808,35,0,5278,1,0,5277, - 1,0,5513,248,0,5512,248,0,5613,248, - 0,5612,248,0,5540,248,0,5539,248,0, - 5538,248,0,5537,248,0,5536,248,0,5535, - 248,0,5534,248,0,5533,248,0,5551,248, - 0,5550,248,0,5549,248,0,5548,248,0, - 5547,248,0,5546,248,0,5545,248,0,5544, - 248,0,5543,248,0,5542,248,0,5541,248, - 0,45,248,5292,0,45,248,5291,0,5316, - 248,0,2808,390,0,56,5292,0,56,5291, - 0,44,5292,0,44,5291,0,2477,134,0, - 1,444,0,458,1312,0,457,1787,0,41, - 39,0,5316,1,0,45,1,0,45,2, - 5292,0,45,2,5291,0,2808,47,0,2817, - 99,0,38,40,0,45,732,0,51,5314, - 0,51,43,0,1,911,0,1,5551,0, - 1,5550,0,1,5549,0,1,5548,0,1, - 5547,0,1,5546,0,1,5545,0,1,5544, - 0,1,5543,0,1,5542,0,1,5541,0, - 45,1,5292,0,45,1,5291,0,925,1, - 0,501,1992,0,5316,235,1,0,45,235, - 1,0,235,417,0,43,5292,0,43,5291, - 0,244,2881,0,391,38,0,38,391,0, - 390,35,0,35,390,0,5292,56,0,5291, - 56,0,2477,136,0,2477,135,0,5605,445, - 0,2940,445,0,5282,406,0,5281,406,0, - 1,3415,0,1,732,0,1,3450,0,235, - 416,0,55,43,0,1,100,0,43,55, - 0,5314,53,0,53,43,0,1,5605,0, - 1,2940,0,45,1,2,5292,0,45,1, - 2,5291,0,43,5292,2,0,43,5291,2, - 0,5292,42,0,5291,42,0,501,4044,0, - 235,1,0,235,227,0,5605,103,0,2940, - 103,0,41,81,0,235,226,0,285,2969, - 0,5284,1,0,5280,1,0,235,1,2798, - 0,5281,235,0,2813,235,0,5284,386,0, - 5283,386,0,2925,235,0,10,12,0,8, - 10,12,0,193,3215,0,3062,386,0,8, - 12,0 + 17,17,17,17,17,17,136,136,136,113, + 113,18,18,18,18,18,18,18,18,18, + 18,18,18,18,19,19,170,170,171,171, + 172,139,139,140,140,137,137,141,138,138, + 20,20,21,21,23,23,23,24,24,24, + 24,25,25,25,26,26,26,27,27,27, + 27,27,28,28,28,29,29,31,31,33, + 33,35,35,36,36,37,37,42,42,41, + 41,41,41,41,41,41,41,41,41,41, + 41,41,39,30,142,142,96,96,173,173, + 91,196,196,67,67,67,67,67,67,67, + 67,67,68,68,68,65,65,55,55,174, + 174,69,69,69,102,102,175,175,70,70, + 70,176,176,71,71,71,71,71,72,72, + 83,83,83,83,83,83,83,49,49,49, + 49,49,114,114,115,115,50,177,22,22, + 22,22,22,48,48,86,86,86,86,86, + 149,149,144,144,144,144,144,145,145,145, + 146,146,146,147,147,147,148,148,148,87, + 87,87,87,87,88,88,88,13,13,13, + 13,13,13,13,13,13,13,13,97,119, + 119,119,119,119,119,117,117,117,118,118, + 151,151,150,150,121,121,103,78,78,79, + 80,52,47,152,152,53,51,85,85,153, + 153,143,143,122,123,123,75,75,154,154, + 62,62,62,59,59,58,63,63,74,74, + 57,57,57,89,89,99,98,98,61,61, + 60,60,54,54,45,100,100,100,92,92, + 92,93,93,94,94,94,95,95,104,104, + 104,106,106,105,105,197,197,90,90,179, + 179,179,179,179,125,46,46,156,178,178, + 126,126,126,126,127,158,180,180,34,34, + 116,128,128,128,128,107,107,120,120,120, + 159,160,160,160,160,160,160,160,160,160, + 160,160,183,183,181,181,182,182,161,161, + 161,161,162,184,109,108,108,185,185,163, + 163,163,163,101,101,101,186,186,8,8, + 9,187,187,188,164,155,155,165,165,166, + 167,167,7,7,10,189,189,189,189,189, + 189,189,189,189,189,189,189,189,189,189, + 189,189,189,189,189,189,189,189,189,189, + 189,189,189,189,189,189,189,189,189,189, + 189,189,189,189,189,189,189,76,81,81, + 168,168,130,130,110,110,110,110,110,110, + 3,131,131,129,129,111,111,84,77,73, + 157,157,112,112,190,190,190,132,132,124, + 124,191,191,169,169,1132,41,1740,1733,1018, + 4614,33,36,37,906,921,32,34,1715,31, + 29,56,1104,112,82,83,114,465,1112,1155, + 1114,1206,1198,1232,1214,2711,1301,1628,1242,278, + 1329,1389,149,331,41,284,164,150,4294,1993, + 41,865,38,507,4618,33,36,37,906,921, + 63,34,2361,41,865,38,237,2732,33,36, + 37,906,921,32,34,1026,31,29,56,1104, + 112,82,83,114,2791,1112,1155,1114,1206,1198, + 1860,240,235,236,243,41,935,389,2361,41, + 865,38,279,2732,33,36,37,906,921,32, + 34,1026,31,29,56,1104,112,82,83,91, + 1119,247,250,253,256,2424,1176,355,429,2119, + 41,865,38,1028,4618,33,36,37,906,921, + 62,34,156,41,395,391,425,1697,1628,859, + 2373,2608,2667,3208,4445,1621,41,865,38,2837, + 2732,33,36,37,906,921,32,34,1026,31, + 29,56,1104,112,82,83,114,344,1112,1155, + 1114,1206,1198,1232,1214,67,1301,1081,1242,1268, + 1329,1389,149,1376,533,75,515,150,4172,2573, + 2370,243,1467,1457,40,243,41,1766,1727,516, + 1621,41,865,38,2837,2732,33,36,37,906, + 921,32,34,1026,31,29,56,1104,112,82, + 83,114,344,1112,1155,1114,1206,1198,1232,1214, + 1938,1301,1232,1242,4283,1329,1389,149,1443,650, + 333,515,150,539,768,2370,392,425,30,2884, + 41,282,1254,2947,516,66,511,2160,41,865, + 38,328,4791,33,36,37,906,921,32,34, + 3772,509,2846,30,1905,1564,1912,3073,3493,1621, + 41,865,38,2837,2732,33,36,37,906,921, + 32,34,1026,31,29,56,1104,112,82,83, + 114,344,1112,1155,1114,1206,1198,1232,1214,357, + 1301,511,1242,3402,1329,1389,149,529,354,2604, + 515,150,1374,1650,2370,552,156,41,395,1940, + 1679,1912,244,516,1819,41,865,38,2837,2732, + 33,36,37,906,921,32,34,1026,31,29, + 56,1104,112,82,83,114,344,1112,1155,1114, + 1206,1198,1232,1214,2695,1301,726,1242,2870,1329, + 1389,149,331,41,284,515,150,4799,680,2370, + 237,987,1374,4764,2605,2540,41,285,516,4172, + 511,2160,41,865,38,1298,4791,33,36,37, + 906,921,65,34,326,245,235,236,1946,1029, + 1912,1947,41,865,38,1484,2732,33,36,37, + 906,921,32,34,1026,31,29,56,1104,112, + 82,83,114,656,1112,1155,1114,1206,1198,1232, + 1214,334,1301,2729,1242,512,1329,1389,149,2864, + 1543,3847,380,150,1690,41,865,38,1896,2732, + 33,36,37,906,921,32,34,1026,31,29, + 56,1104,112,82,83,114,1943,1112,1155,1114, + 1206,1198,1232,1214,2900,1301,2102,1242,1257,1329, + 1389,149,1742,1390,3847,380,150,4557,2056,41, + 865,38,594,2732,33,36,37,906,921,32, + 34,1026,31,29,56,1104,112,82,83,114, + 2966,1112,1155,1114,1206,1198,1232,1214,1551,1301, + 2265,1242,1684,1329,1389,149,99,386,3094,374, + 150,680,1884,41,865,38,4666,2732,33,36, + 37,906,921,32,34,1026,31,29,56,1104, + 112,82,83,114,2464,1112,1155,1114,1206,1198, + 1232,1214,591,1301,148,1242,327,1329,1389,149, + 387,3094,3847,380,150,1257,30,331,41,451, + 3081,3458,4716,2056,41,865,38,76,2732,33, + 36,37,906,921,32,34,1026,31,29,56, + 1104,112,82,83,114,2488,1112,1155,1114,1206, + 1198,1232,1214,373,1301,3151,1242,419,1329,1389, + 149,243,41,287,374,150,2361,41,865,38, + 3857,2732,33,36,37,906,921,32,34,1026, + 31,29,56,1104,112,82,83,114,2063,1112, + 1155,1114,1206,1198,1232,1214,678,1869,378,3094, + 2056,41,865,38,670,2732,33,36,37,906, + 921,32,34,1026,31,29,56,1104,112,82, + 83,114,757,1112,1155,1114,1206,1198,1232,1214, + 2747,1301,1113,1242,1801,1329,1389,149,3211,243, + 1983,374,150,1809,2056,41,865,38,372,2732, + 33,36,37,906,921,32,34,1026,31,29, + 56,1104,112,82,83,114,1268,1112,1155,1114, + 1206,1198,1232,1214,30,1301,1268,1242,3456,1329, + 1389,149,444,2635,2674,164,150,2010,41,865, + 38,1349,2732,33,36,37,906,921,32,34, + 1026,31,29,56,1104,112,82,83,114,390, + 1112,1155,1114,1206,1198,1232,1214,30,1301,322, + 1242,685,1329,1424,170,370,1754,41,865,38, + 1563,2732,33,36,37,906,921,32,34,1026, + 31,29,56,1104,112,82,83,114,496,1112, + 1155,1114,1206,1198,1232,1214,1628,1301,458,1242, + 291,1329,1389,149,243,41,2190,148,150,329, + 243,41,935,389,243,41,1457,281,719,1320, + 1257,1268,2056,41,865,38,1697,2732,33,36, + 37,906,921,32,34,1026,31,29,56,1104, + 112,82,83,114,432,1112,1155,1114,1206,1198, + 1232,1214,30,1301,1243,1242,740,1329,1389,149, + 1809,2891,441,161,150,2056,41,865,38,2576, + 2732,33,36,37,906,921,32,34,1026,31, + 29,56,1104,112,82,83,114,1958,1112,1155, + 1114,1206,1198,1232,1214,30,1301,1381,1242,819, + 1329,1389,149,457,394,425,160,150,2056,41, + 865,38,2576,2732,33,36,37,906,921,32, + 34,1026,31,29,56,1104,112,82,83,114, + 1766,1112,1155,1114,1206,1198,1232,1214,30,1301, + 2008,1242,2991,1329,1389,149,2900,1515,315,159, + 150,2056,41,865,38,1419,2732,33,36,37, + 906,921,32,34,1026,31,29,56,1104,112, + 82,83,114,521,1112,1155,1114,1206,1198,1232, + 1214,30,1301,1161,1242,4449,1329,1389,149,243, + 3607,1794,158,150,2056,41,865,38,2887,2732, + 33,36,37,906,921,32,34,1026,31,29, + 56,1104,112,82,83,114,1500,1112,1155,1114, + 1206,1198,1232,1214,3385,1301,1105,1242,30,1329, + 1389,149,567,445,1730,157,150,2056,41,865, + 38,2887,2732,33,36,37,906,921,32,34, + 1026,31,29,56,1104,112,82,83,114,77, + 1112,1155,1114,1206,1198,1232,1214,4158,1301,330, + 1242,1877,1329,1389,149,678,445,1195,156,150, + 2056,41,865,38,1233,2732,33,36,37,906, + 921,32,34,1026,31,29,56,1104,112,82, + 83,114,1504,1112,1155,1114,1206,1198,1232,1214, + 520,1301,1928,1242,30,1329,1389,149,3223,243, + 2919,155,150,2056,41,865,38,2100,2732,33, + 36,37,906,921,32,34,1026,31,29,56, + 1104,112,82,83,114,2456,1112,1155,1114,1206, + 1198,1232,1214,520,1301,1431,1242,30,1329,1389, + 149,1366,2893,2543,154,150,2056,41,865,38, + 2134,2732,33,36,37,906,921,32,34,1026, + 31,29,56,1104,112,82,83,114,2720,1112, + 1155,1114,1206,1198,1232,1214,2006,1301,1732,1242, + 3157,1329,1389,149,1268,2740,852,153,150,2056, + 41,865,38,1334,2732,33,36,37,906,921, + 32,34,1026,31,29,56,1104,112,82,83, + 114,1661,1112,1155,1114,1206,1198,1232,1214,30, + 1301,1286,1242,3277,1329,1389,149,1268,2144,2557, + 152,150,2056,41,865,38,2808,2732,33,36, + 37,906,921,32,34,1026,31,29,56,1104, + 112,82,83,114,521,1112,1155,1114,1206,1198, + 1232,1214,235,1301,844,1242,4123,1329,1389,149, + 1370,2111,2734,151,150,2056,41,865,38,2096, + 2732,33,36,37,906,921,32,34,1026,31, + 29,56,1104,112,82,83,114,2267,1112,1155, + 1114,1206,1198,1232,1214,1366,1301,2526,1242,57, + 1329,1389,149,1682,75,2322,165,150,2056,41, + 865,38,2210,2732,33,36,37,906,921,32, + 34,1026,31,29,56,1104,112,82,83,114, + 75,1112,1155,1114,1206,1198,1232,1214,30,1301, + 2368,1242,3721,1329,1389,149,2630,2110,2527,146, + 150,2269,41,865,38,2125,2732,33,36,37, + 906,921,32,34,1026,31,29,56,1104,112, + 82,83,114,1736,1112,1155,1114,1206,1198,1232, + 1214,30,1301,2647,1242,3766,1329,1389,149,2228, + 2610,2615,195,150,2361,41,865,38,2688,2732, + 33,36,37,906,921,32,34,1026,31,29, + 56,1104,112,82,83,114,2733,1112,1155,1114, + 1206,1198,1232,1214,2641,1301,1510,1242,356,1329, + 1424,170,2361,41,865,38,529,2732,33,36, + 37,906,921,32,34,1026,31,29,56,1104, + 112,82,83,114,325,1112,1155,1114,1206,1198, + 1232,1214,529,1301,403,1242,2799,1329,1424,170, + 1226,41,865,38,2738,2601,47,36,37,906, + 921,2361,41,865,38,295,2732,33,36,37, + 906,921,32,34,1026,31,29,56,1104,112, + 82,83,114,2451,1112,1155,1114,1206,1198,1232, + 1214,30,1301,401,1242,1254,1329,1424,170,2361, + 41,865,38,421,2732,33,36,37,906,921, + 32,34,1026,31,29,56,1104,112,82,83, + 114,4277,1112,1155,1114,1206,1198,1232,1214,30, + 1301,2846,1242,2670,1329,1424,170,2723,41,865, + 38,2739,1809,46,36,37,906,921,2361,41, + 865,38,420,2732,33,36,37,906,921,32, + 34,1026,31,29,56,1104,112,82,83,114, + 2747,1112,1155,1114,1206,1198,1232,1214,30,1301, + 2115,1242,4243,1329,1424,170,2407,41,865,38, + 423,2732,33,36,37,906,921,32,34,1026, + 31,29,56,1104,112,82,83,114,288,1112, + 1155,1114,1206,1198,1232,1214,30,1301,405,1242, + 4374,1329,1424,170,2723,41,865,38,2309,1809, + 2200,36,37,906,921,2361,41,865,38,2331, + 2732,33,36,37,906,921,32,34,1026,31, + 29,56,1104,112,82,83,114,1869,1112,1155, + 1114,1206,1198,1232,1214,1367,1301,2806,1242,94, + 1903,1446,108,2361,41,865,38,2883,2732,33, + 36,37,906,921,32,34,1026,31,29,56, + 1104,112,82,83,114,289,1112,1155,1114,1206, + 1198,1232,1214,495,1301,1268,1895,2361,41,865, + 38,1268,2732,33,36,37,906,921,32,34, + 1026,31,29,56,1104,112,82,83,114,2157, + 1112,1155,1114,1206,1198,1232,1887,1456,41,865, + 38,723,2887,33,36,37,906,921,340,34, + 1738,1673,1257,1230,3147,243,41,935,389,1545, + 41,865,38,2668,2887,33,36,37,906,921, + 340,34,2479,41,865,38,1446,4791,33,36, + 37,906,921,64,34,2460,30,103,1446,55, + 1254,352,3072,104,1446,321,1042,323,52,316, + 870,2588,2845,1446,1114,41,1525,1641,351,4500, + 2355,353,863,2803,237,2157,162,321,1042,323, + 324,316,870,2795,353,1817,4101,2104,2916,345, + 583,784,350,353,2408,30,2917,815,55,249, + 235,236,345,583,784,350,2918,1517,735,2157, + 343,345,583,784,350,2361,41,865,38,2396, + 2732,33,36,37,906,921,32,34,1026,31, + 29,56,1104,112,82,83,114,2157,1112,1155, + 1114,1206,1861,2361,41,865,38,2157,2732,33, + 36,37,906,921,32,34,1026,31,29,56, + 1104,112,82,83,114,2115,1112,1155,1114,1206, + 1862,1598,2361,41,865,38,367,2732,33,36, + 37,906,921,32,34,1026,31,29,56,1104, + 112,82,83,114,2373,1112,1155,1114,1811,2361, + 41,865,38,302,2732,33,36,37,906,921, + 32,34,1026,31,29,56,1104,112,82,83, + 114,2835,1112,1155,1114,1818,2361,41,865,38, + 1937,2732,33,36,37,906,921,32,34,1026, + 31,29,56,1104,112,82,83,114,1351,1112, + 1155,1114,1819,2361,41,865,38,1673,2732,33, + 36,37,906,921,32,34,1026,31,29,56, + 1104,112,82,83,114,2866,1112,1155,1114,1826, + 1575,41,865,38,3474,4603,33,36,37,906, + 921,340,34,2115,1336,41,865,38,3039,2887, + 33,36,37,906,921,340,34,2895,1438,237, + 2190,262,2837,4172,2923,535,2723,41,865,38, + 2867,2244,2525,36,37,906,921,2509,41,296, + 2357,226,402,233,252,235,236,333,321,1042, + 323,162,316,870,156,41,395,583,2903,186, + 3115,3151,318,2074,323,1340,1257,209,220,3053, + 208,217,218,219,221,333,175,2760,237,4509, + 2910,88,1522,41,935,389,174,2928,189,173, + 176,177,178,179,180,1976,2103,2495,1,2837, + 2837,2837,535,255,235,236,3151,2846,361,2929, + 30,2846,309,313,3745,2951,55,2357,344,344, + 233,523,2812,1596,1604,1517,2371,1999,162,2540, + 41,282,4677,2653,2968,2344,186,3115,3151,1439, + 2372,1244,904,2680,209,220,3053,208,217,218, + 219,221,2969,175,418,41,451,2151,2785,4716, + 2421,1561,1446,174,187,190,173,176,177,178, + 179,180,1870,41,865,38,723,2887,33,36, + 37,906,921,340,34,362,680,2453,41,935, + 389,4691,4245,2892,1938,2748,1288,41,865,38, + 242,4603,33,36,37,906,921,340,34,1081, + 175,2509,2581,296,243,41,1457,286,1674,1438, + 1376,278,2869,2837,4172,4172,243,41,935,389, + 321,1042,323,2922,316,870,1848,504,41,935, + 389,2357,243,41,1457,283,353,524,237,95, + 352,2760,108,334,321,1042,323,2840,317,870, + 431,535,1257,45,345,583,784,350,2149,2933, + 353,55,525,240,235,236,333,4339,30,3863, + 1517,2285,725,440,279,454,2974,162,347,583, + 784,350,353,3212,2934,186,3115,243,41,1457, + 2161,2190,3151,247,250,253,256,2424,3075,361, + 345,583,784,350,2372,1028,45,522,2396,448, + 2635,2674,201,2812,1596,1604,1686,41,1457,281, + 1383,859,2373,2608,2667,3208,4445,2361,41,865, + 38,1214,2732,33,36,37,906,921,32,34, + 1026,31,29,56,1104,112,82,83,114,100, + 1112,1155,1852,2361,41,865,38,2693,2732,33, + 36,37,906,921,32,34,1026,31,29,56, + 1104,112,82,83,114,5370,1112,1155,1854,1412, + 41,2277,38,3474,4603,33,36,37,906,921, + 340,34,3431,2149,41,865,38,2640,2887,33, + 36,37,906,921,340,34,243,2422,1457,80, + 349,382,30,1508,535,1235,3755,2837,1809,1809, + 4172,2737,30,4651,202,2837,2837,5370,2761,330, + 336,2421,233,2115,1257,2357,333,321,1042,323, + 162,316,870,2357,344,5370,5370,5370,186,3115, + 3151,318,2074,323,983,2115,209,220,3053,208, + 217,218,219,221,381,175,436,2370,4509,30, + 535,306,334,3240,3858,174,507,2886,173,176, + 177,178,179,180,300,299,5370,1376,233,353, + 1446,2485,4172,185,5370,2671,162,1628,69,41, + 935,389,1089,503,186,3115,3151,347,583,784, + 350,361,209,220,3053,208,217,218,219,221, + 523,175,75,502,535,3420,1596,1604,5370,5370, + 1866,174,278,184,173,176,177,178,179,180, + 416,2287,233,500,333,1446,5370,2785,2912,5370, + 162,1376,243,41,935,389,4172,188,186,3115, + 3151,2075,5370,1026,1983,5370,209,220,3053,208, + 217,218,219,221,610,175,3075,74,535,1508, + 2684,772,5370,2837,2837,174,278,182,173,176, + 177,178,179,180,2375,2248,233,243,41,935, + 389,2357,2357,436,162,393,425,1809,333,237, + 5370,78,186,3115,3151,30,1446,1026,1983,1482, + 209,220,3053,208,217,218,219,221,697,175, + 5370,278,535,2840,258,235,236,1254,5370,174, + 924,183,173,176,177,178,179,180,59,341, + 233,243,41,935,389,5370,5370,5370,162,1686, + 41,1457,2430,162,48,1947,186,3115,3151,503, + 503,206,3748,307,209,220,3053,208,217,218, + 219,221,784,175,290,430,535,30,3371,502, + 502,1254,2815,174,280,193,173,176,177,178, + 179,180,5370,1809,233,243,41,935,389,501, + 500,680,162,2162,1989,5370,4702,162,5370,30, + 186,3115,3151,2837,2115,1257,1897,1446,209,220, + 3053,208,217,218,219,221,871,175,290,450, + 535,344,243,41,1457,2456,1446,174,2590,2980, + 173,176,177,178,179,180,2375,30,233,93, + 1446,2837,204,1446,2370,3151,162,2249,1989,383, + 5370,1214,5370,505,186,3115,3151,30,58,344, + 377,2837,209,220,3053,208,217,218,219,221, + 958,175,2198,1676,535,2236,2737,1254,1262,344, + 2837,174,2370,198,173,176,177,178,179,180, + 680,1647,233,2115,1376,4727,2115,30,2357,4172, + 162,1254,2370,166,5370,5370,50,1947,186,3115, + 3151,1654,3431,1446,5370,1446,209,220,3053,208, + 217,218,219,221,1045,175,30,162,535,30, + 1254,203,5370,1254,305,174,3533,192,173,176, + 177,178,179,180,2913,96,233,3756,30,335, + 336,333,1254,1446,162,680,162,5370,1446,162, + 4741,375,186,3115,3151,3538,361,5370,3568,3276, + 209,220,3053,208,217,218,219,221,162,175, + 3423,1596,1604,4576,5370,73,5370,3663,1446,174, + 72,200,173,176,177,178,179,180,2361,41, + 865,38,5370,2732,33,36,37,906,921,32, + 34,1026,31,29,56,1104,112,82,83,114, + 71,1112,1758,2361,41,865,38,2115,2732,33, + 36,37,906,921,32,34,1026,31,29,56, + 1104,112,82,83,114,5370,1112,1775,1554,41, + 865,38,3474,2887,33,36,37,906,921,340, + 34,2361,41,865,38,207,2732,33,36,37, + 906,921,32,34,1026,31,29,56,1104,112, + 82,83,114,1446,1776,2315,41,865,38,5370, + 2732,33,36,37,906,921,32,34,1026,31, + 29,56,1104,92,82,83,321,1042,323,2482, + 316,870,5370,5370,4641,70,243,41,296,2361, + 41,865,38,1340,2732,33,36,37,906,921, + 32,34,1026,31,29,56,1104,112,82,83, + 114,1214,1783,2361,41,865,38,5370,2732,33, + 36,37,906,921,32,34,1026,31,29,56, + 1104,112,82,83,114,2631,1801,5370,2115,2837, + 309,313,243,41,296,2751,30,30,1676,2837, + 2951,1904,1254,5370,30,2765,1214,233,1930,2837, + 1676,4423,30,5370,1254,5370,3765,233,5370,1676, + 1676,2680,3431,1254,1254,30,205,233,166,1568, + 2777,211,220,3053,210,217,218,219,221,3476, + 166,211,220,3053,210,217,218,219,221,166, + 166,211,220,3053,210,217,218,219,221,2928, + 336,212,214,216,297,298,1973,3431,222,213, + 215,212,214,216,297,298,1973,5370,222,213, + 215,212,214,216,297,298,1973,30,222,213, + 215,3363,427,1446,3406,4264,5370,30,30,4271, + 3078,1611,951,30,332,336,3853,3628,2899,4271, + 3079,5370,2822,5370,2103,4182,4201,5370,5370,4271, + 3267,2361,1467,865,1586,61,2732,33,36,37, + 906,921,32,34,1026,31,29,56,1104,112, + 82,83,90,2361,41,865,38,5370,2732,33, + 36,37,906,921,32,34,1026,31,29,56, + 1104,112,82,83,89,2361,41,865,38,5370, + 2732,33,36,37,906,921,32,34,1026,31, + 29,56,1104,112,82,83,88,2361,41,865, + 38,5370,2732,33,36,37,906,921,32,34, + 1026,31,29,56,1104,112,82,83,87,2361, + 41,865,38,5370,2732,33,36,37,906,921, + 32,34,1026,31,29,56,1104,112,82,83, + 86,2361,41,865,38,5370,2732,33,36,37, + 906,921,32,34,1026,31,29,56,1104,112, + 82,83,85,2361,41,865,38,5370,2732,33, + 36,37,906,921,32,34,1026,31,29,56, + 1104,112,82,83,84,2221,41,865,38,5370, + 2732,33,36,37,906,921,32,34,1026,31, + 29,56,1104,112,82,83,110,2361,41,865, + 38,5370,2732,33,36,37,906,921,32,34, + 1026,31,29,56,1104,112,82,83,116,2361, + 41,865,38,5370,2732,33,36,37,906,921, + 32,34,1026,31,29,56,1104,112,82,83, + 115,2361,41,865,38,5370,2732,33,36,37, + 906,921,32,34,1026,31,29,56,1104,112, + 82,83,113,2361,41,865,38,5370,2732,33, + 36,37,906,921,32,34,1026,31,29,56, + 1104,112,82,83,111,1667,41,2277,38,3474, + 2887,33,36,37,906,921,340,34,1257,1931, + 41,865,38,3474,2887,33,36,37,906,921, + 340,34,243,41,935,389,5370,2781,5370,5370, + 1676,2837,1446,2482,1254,5370,5370,2405,4641,2661, + 5370,2837,5370,2837,5370,5370,5370,5370,3151,233, + 5370,1446,5370,321,1042,323,55,316,870,344, + 166,233,1446,377,60,1517,1639,321,1042,323, + 983,316,870,211,220,3053,210,217,218,219, + 221,2818,3868,107,1340,211,220,3053,210,217, + 218,219,221,1214,3093,504,41,935,389,5370, + 5370,5370,5370,212,214,216,297,298,1973,1446, + 518,213,215,527,2115,212,214,216,297,298, + 1973,2674,517,213,215,2837,4259,1446,1446,55, + 1446,310,313,2853,2777,5370,30,2837,1517,1553, + 1254,449,5370,233,243,41,935,389,5370,5370, + 5370,3257,301,5370,3431,233,417,2287,1446,379, + 3288,1446,3342,1446,3785,5370,162,211,220,3053, + 210,217,218,219,221,2325,1446,2115,55,211, + 220,3053,210,217,218,219,221,1517,2779,2706, + 3396,3757,336,2716,4172,2912,428,212,214,216, + 297,298,1973,2869,223,213,215,2837,4424,212, + 214,216,297,298,1973,4656,308,213,215,5370, + 5370,5370,5370,5370,1214,233,5370,4313,5370,5370, + 5370,1931,41,865,38,3474,2887,33,36,37, + 906,921,340,34,1446,5370,4339,5370,5370,211, + 220,3053,210,217,218,219,221,1931,41,865, + 38,3474,2887,33,36,37,906,921,340,34, + 5370,30,5370,2115,2115,1254,3504,5370,5370,212, + 214,216,297,298,1973,3431,497,213,215,321, + 1042,323,5370,316,870,2513,41,935,389,1200, + 4245,162,5370,2837,4776,5370,2408,5370,243,30, + 4326,227,199,535,5370,321,1042,323,5370,316, + 870,233,3764,336,5370,5370,5370,5370,102,278, + 5370,344,2944,5370,5370,5370,5370,5370,5370,162, + 5370,5370,5370,5370,5370,2026,406,2654,2423,5370, + 939,41,935,389,2370,5370,237,5370,5370,1530, + 41,865,38,2414,4603,33,36,37,906,921, + 340,34,5370,5370,5370,407,408,409,297,298, + 1973,241,235,236,55,5370,5370,5370,5370,5370, + 5370,5370,279,1517,53,5370,5370,5370,1306,5370, + 1948,5370,2837,4776,5370,5370,925,504,41,935, + 389,248,251,254,257,2424,334,321,1042,323, + 233,319,870,1028,5370,5370,1530,41,865,38, + 5370,4603,33,36,37,906,921,340,34,5370, + 5370,55,5370,5370,2026,406,2654,5370,5370,5370, + 1517,53,5370,504,41,935,389,5370,410,412, + 5370,5370,5370,1171,1540,41,935,389,939,41, + 935,389,5370,5370,407,408,409,297,298,1973, + 1253,5370,4548,334,321,1042,323,55,317,870, + 5370,504,41,935,389,5370,1517,2405,55,1948, + 5370,2883,55,5370,5370,535,2901,1517,2433,3212, + 1254,1517,2443,5370,5370,5370,939,41,935,389, + 3257,5370,5370,344,3158,55,5370,504,41,935, + 389,162,5370,5370,1517,53,162,5370,5370,5370, + 194,504,41,935,389,168,4407,624,5370,5370, + 55,5370,504,41,935,389,5370,410,413,1517, + 53,55,5370,5370,5370,5370,504,41,935,389, + 1517,53,2676,5370,5370,55,5370,1813,41,935, + 389,5370,5370,1380,1517,53,55,5370,5370,5370, + 5370,2175,41,935,389,1517,53,2876,5370,5370, + 55,30,5370,196,5370,535,5370,5370,3311,1517, + 53,55,5370,5370,243,41,935,389,5370,5370, + 1517,53,3365,344,5370,55,243,41,935,389, + 5370,162,30,3696,1517,53,535,5370,5370,5370, + 3205,243,41,935,389,5370,2370,3752,55,243, + 41,935,389,5370,344,3150,5370,1517,729,2841, + 55,5370,162,2837,5370,5370,5370,5370,5370,1517, + 2617,2423,5370,5370,5370,55,4327,2370,30,4394, + 5370,344,535,55,1517,2371,3387,5370,5370,5370, + 30,528,1517,789,535,5370,5370,30,5370,30, + 344,535,30,2837,2370,5370,2837,5370,162,5370, + 30,5370,344,531,2837,5370,5370,194,30,344, + 162,344,2837,4407,344,5370,5370,162,5370,194, + 5370,5370,344,5370,5370,4407,194,5370,5370,5370, + 344,5370,4407,5370,2370,5370,5370,2370,5370,5370, + 5370,5370,5370,1672,5370,2370,1682,5370,5370,5370, + 5370,5370,5370,2370,3495,5370,5370,5370,5370,5370, + 5370,5370,532,5370,5370,5370,5370,5370,5370,5370, + 4278,5370,5370,5370,5370,5370,5370,5370,5370,5370, + 5370,5370,4280,5370,5370,5370,5370,5370,5370,4308, + 5370,5370,5370,5370,5370,5370,5370,5370,5370,5370, + 5370,5370,5370,5370,5370,5370,5370,5370,5370,5370, + 5370,5370,5370,5370,5370,5370,5370,5370,5370,5370, + 5370,5370,5370,5370,5370,5370,5370,5370,5370,5370, + 5370,5370,5370,5370,5370,5370,5370,5370,5370,5370, + 4231,5370,0,672,1,0,866,1,0,45, + 1,5390,0,45,1,5389,0,2070,1,0, + 45,5390,0,45,5389,0,1284,320,0,1327, + 35,0,438,1422,0,452,1465,0,5390,54, + 0,5389,54,0,44,731,0,44,5390,0, + 44,5389,0,5376,1,0,5375,1,0,5609, + 246,0,5608,246,0,5709,246,0,5708,246, + 0,5636,246,0,5635,246,0,5634,246,0, + 5633,246,0,5632,246,0,5631,246,0,5630, + 246,0,5629,246,0,5647,246,0,5646,246, + 0,5645,246,0,5644,246,0,5643,246,0, + 5642,246,0,5641,246,0,5640,246,0,5639, + 246,0,5638,246,0,5637,246,0,45,246, + 5390,0,45,246,5389,0,5414,246,0,1327, + 388,0,2586,132,0,41,39,0,1,442, + 0,456,1286,0,455,1391,0,53,43,0, + 5414,1,0,45,1,0,788,97,0,38, + 40,0,45,731,0,1,918,0,1,5647, + 0,1,5646,0,1,5645,0,1,5644,0, + 1,5643,0,1,5642,0,1,5641,0,1, + 5640,0,1,5639,0,1,5638,0,1,5637, + 0,49,5412,0,49,43,0,499,1955,0, + 5414,1,234,0,45,1,234,0,234,415, + 0,5390,43,0,5389,43,0,242,3453,0, + 389,38,0,388,35,0,2586,134,0,2586, + 133,0,5701,443,0,1508,443,0,5380,404, + 0,5379,404,0,1,4381,0,1,2746,0, + 1,731,0,234,414,0,1,98,0,5412, + 51,0,43,51,0,1,5701,0,1,1508, + 0,2,5390,43,0,2,5389,43,0,5390, + 42,0,5389,42,0,499,4189,0,1,234, + 0,234,225,0,5701,101,0,1508,101,0, + 41,79,0,234,224,0,283,3770,0,5382, + 1,0,5378,1,0,1,234,2730,0,5379, + 234,0,2731,234,0,5382,384,0,5381,384, + 0,2860,234,0,10,12,0,8,10,12, + 0,191,3450,0,3017,384,0,8,12,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1072,320 +1095,314 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public final static byte termCheck[] = {0, 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, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,0,47,48,49, - 50,51,52,53,54,55,56,57,58,0, - 60,61,62,63,64,0,66,67,68,4, - 0,71,72,0,4,75,76,77,78,79, + 20,21,22,23,24,25,26,27,28,0, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,0,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 0,61,62,63,64,65,66,67,0,1, + 2,71,72,5,0,75,76,77,78,79, 80,81,82,83,84,85,86,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,0,31,32, + 23,24,25,26,27,28,0,30,31,32, 33,34,35,36,37,38,39,40,41,42, - 43,44,45,60,47,48,49,50,51,52, - 53,54,55,56,57,58,0,60,61,62, - 63,64,0,66,67,68,97,98,71,72, - 0,0,75,76,77,78,79,80,81,82, + 43,57,45,46,47,48,49,50,51,52, + 53,54,55,56,57,58,59,0,61,62, + 63,64,65,66,67,0,1,2,71,72, + 13,14,75,76,77,78,79,80,81,82, 83,84,85,86,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,0,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 59,47,48,49,50,51,52,53,54,55, - 56,57,58,0,60,61,62,63,64,6, - 66,67,68,97,98,71,72,95,0,75, + 26,27,28,0,30,31,32,33,34,35, + 36,37,38,39,40,41,42,43,0,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,59,0,61,62,63,64,65, + 66,67,0,1,2,71,72,13,14,75, 76,77,78,79,80,81,82,83,84,85, 86,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,0,31,32,33,34,35,36,37,38, - 39,40,41,42,43,44,45,59,47,48, + 0,30,31,32,33,34,35,36,37,38, + 39,40,41,42,43,0,45,46,47,48, 49,50,51,52,53,54,55,56,57,58, - 0,60,61,62,63,64,0,66,67,68, - 4,0,6,72,3,9,75,76,77,78, + 59,0,61,62,63,64,65,66,67,0, + 0,1,2,72,4,6,75,76,77,78, 79,80,81,82,83,84,85,86,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,0,31, + 22,23,24,25,26,27,28,0,30,31, 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,0,47,48,49,50,51, - 52,53,54,55,56,57,58,0,60,61, - 62,63,64,0,66,67,68,0,1,2, - 72,4,9,75,76,77,78,79,80,81, + 42,43,0,45,46,47,48,49,50,51, + 52,53,54,55,56,57,58,59,0,61, + 62,63,64,65,66,67,0,0,1,2, + 72,4,101,75,76,77,78,79,80,81, 82,83,84,85,86,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,0,31,32,33,34, - 35,36,37,38,39,40,41,42,43,44, - 45,0,47,48,49,50,51,52,53,54, - 55,56,57,58,100,60,61,62,63,64, - 0,66,67,68,0,0,6,72,3,0, + 25,26,27,28,0,30,31,32,33,34, + 35,36,37,38,39,40,41,42,43,0, + 45,46,47,48,49,50,51,52,53,54, + 55,56,57,58,59,0,61,62,63,64, + 65,66,67,0,1,2,0,72,44,3, 75,76,77,78,79,80,81,82,83,84, 85,86,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,0,31,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,59,47, + 28,0,30,31,32,33,34,35,36,37, + 38,39,40,41,42,43,60,45,46,47, 48,49,50,51,52,53,54,55,56,57, - 58,0,60,61,62,63,64,0,66,67, - 68,91,92,6,72,0,0,75,76,77, + 58,59,0,61,62,63,64,65,66,67, + 0,0,10,0,72,44,3,75,76,77, 78,79,80,81,82,83,84,85,86,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,0, + 21,22,23,24,25,26,27,28,56,30, 31,32,33,34,35,36,37,38,39,40, - 41,42,43,44,45,59,47,48,49,50, - 51,52,53,54,55,56,57,58,0,60, - 61,62,63,64,0,66,67,68,91,92, - 6,72,101,0,75,76,77,78,79,80, + 41,42,43,60,45,46,47,48,49,50, + 51,52,53,54,55,56,57,58,59,0, + 61,62,63,64,65,66,67,0,9,0, + 90,72,92,4,75,76,77,78,79,80, 81,82,83,84,85,86,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,0,31,32,33, + 24,25,26,27,28,0,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, - 44,45,59,47,48,49,50,51,52,53, - 54,55,56,57,58,0,60,61,62,63, - 64,0,66,67,68,91,92,99,72,0, - 9,75,76,77,78,79,80,81,82,83, + 0,45,46,47,48,49,50,51,52,53, + 54,55,56,57,58,59,0,61,62,63, + 64,65,66,67,0,88,89,0,72,44, + 0,75,76,77,78,79,80,81,82,83, 84,85,86,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,0,31,32,33,34,35,36, - 37,38,39,40,41,42,43,44,45,0, + 27,28,0,30,31,32,33,34,35,36, + 37,38,39,40,41,42,43,60,45,46, 47,48,49,50,51,52,53,54,55,56, - 57,58,73,60,61,62,63,64,122,66, - 67,68,0,1,2,72,101,5,75,76, + 57,58,59,0,61,62,63,64,65,66, + 67,0,0,97,98,72,13,14,75,76, 77,78,79,80,81,82,83,84,85,86, 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, - 0,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,0,47,48,49, - 50,51,52,53,54,55,56,57,58,100, - 60,61,62,63,64,0,66,67,68,0, - 1,2,72,4,0,75,76,77,78,79, + 20,21,22,23,24,25,26,27,28,0, + 30,31,32,33,34,35,36,37,38,39, + 40,41,42,43,0,45,46,47,48,49, + 50,51,52,53,54,55,56,57,58,59, + 0,61,62,63,64,65,66,67,0,1, + 2,90,72,92,0,75,76,77,78,79, 80,81,82,83,84,85,86,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,0,31,32, + 23,24,25,26,27,28,0,30,31,32, 33,34,35,36,37,38,39,40,41,42, - 43,44,45,59,47,48,49,50,51,52, - 53,54,55,56,57,58,0,60,61,62, - 63,64,0,66,67,68,0,1,2,72, - 0,0,75,76,77,78,79,80,81,82, + 43,0,45,46,47,48,49,50,51,52, + 53,54,55,56,57,58,59,0,61,62, + 63,64,65,66,67,0,1,2,0,72, + 44,3,75,76,77,78,79,80,81,82, 83,84,85,86,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,0,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 0,47,48,49,50,51,52,53,54,55, - 56,57,58,73,60,61,62,63,64,0, - 66,67,68,0,1,2,72,95,0,75, + 26,27,28,0,30,31,32,33,34,35, + 36,37,38,39,40,41,42,43,0,45, + 46,47,48,49,50,51,52,53,54,55, + 56,57,58,59,0,61,62,63,64,65, + 66,67,0,0,1,2,72,4,0,75, 76,77,78,79,80,81,82,83,84,85, - 86,0,1,2,3,4,5,6,0,8, - 9,10,11,12,0,14,15,16,17,18, + 86,0,1,2,3,4,5,6,121,8, + 9,10,29,12,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28, - 29,0,31,32,33,34,35,36,37,38, - 39,40,41,42,43,44,45,0,47,48, - 49,50,51,52,53,54,55,0,57,0, - 46,60,0,75,7,121,7,66,67,68, - 0,1,2,3,4,5,6,7,8,9, - 10,0,0,13,14,15,16,17,18,19, - 20,21,22,23,24,25,0,1,2,0, - 0,1,2,3,4,5,6,99,8,9, - 40,0,30,14,3,45,46,47,48,49, - 50,51,52,53,54,55,56,70,58,0, - 60,74,3,74,0,73,66,67,68,40, - 0,71,72,73,45,5,47,48,49,50, - 51,52,53,54,55,26,27,87,0,1, - 2,3,4,5,6,7,8,9,10,0, - 59,13,14,15,16,17,18,19,20,21, - 22,23,24,25,114,115,116,0,59,0, - 0,0,1,2,3,4,5,6,40,8, - 9,11,12,45,46,47,48,49,50,51, - 52,53,54,55,56,0,58,0,60,4, - 0,1,2,0,66,67,68,10,8,71, - 72,73,103,0,65,0,0,0,3,70, - 4,6,7,10,9,87,11,12,13,120, - 59,0,1,2,3,40,5,0,7,8, - 69,26,27,46,13,30,30,0,0,1, - 2,0,114,115,116,88,89,60,0,46, - 0,14,15,16,17,18,19,20,21,22, - 23,24,25,60,59,0,1,2,0,4, - 65,30,7,0,69,70,71,40,73,74, - 7,0,45,76,47,48,49,50,51,52, - 53,54,55,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,69, - 0,0,117,118,3,120,0,6,7,64, - 9,0,11,12,13,4,10,0,1,2, - 3,4,5,6,71,8,9,26,27,0, - 102,30,102,4,104,105,106,107,108,109, - 110,111,112,113,0,117,0,117,0,1, - 2,3,4,5,6,0,8,9,3,30, - 59,0,56,0,3,0,65,0,7,69, - 69,70,71,0,73,74,59,4,0,0, - 1,2,3,4,5,6,0,8,9,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,0,1,2,117,118, - 59,120,0,1,2,3,4,5,6,0, - 8,9,10,11,12,74,7,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 28,29,73,31,32,33,34,35,36,37, - 38,39,0,41,42,43,44,0,0,0, - 1,2,3,0,5,7,7,8,0,57, - 7,114,115,116,62,63,0,65,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,0,0,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,0,31, - 32,33,34,35,36,37,38,39,59,41, - 42,43,44,0,1,2,3,64,5,0, - 7,8,74,74,0,57,13,118,0,1, - 2,3,64,5,0,0,8,95,3,71, - 0,1,2,3,4,5,6,65,8,9, - 10,11,12,0,30,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29, - 0,31,32,33,34,35,36,37,38,39, - 46,41,42,43,44,0,0,1,2,65, - 4,0,6,7,59,9,0,57,0,1, - 2,73,62,63,0,1,2,3,4,5, - 6,0,8,9,10,11,12,93,94,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,28,29,0,31,32,33,34,35, - 36,37,38,39,46,41,42,43,44,0, - 1,2,3,4,69,6,65,46,9,0, - 74,57,0,1,2,69,62,63,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,95,0,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,0,31, - 32,33,34,35,36,37,38,39,59,41, - 42,43,44,0,0,1,2,3,0,5, - 0,0,8,0,90,57,0,1,2,70, - 96,0,64,0,1,2,3,4,5,6, - 7,8,9,10,11,12,28,65,15,16, + 0,30,31,32,33,34,35,36,37,38, + 39,40,41,42,43,0,45,46,47,48, + 49,50,51,52,53,54,55,69,57,29, + 59,103,104,105,0,91,65,66,67,0, + 1,2,3,4,5,6,7,8,9,10, + 11,12,100,0,15,16,17,18,19,20, + 21,22,23,24,25,0,1,2,29,0, + 5,0,0,8,0,1,2,3,4,40, + 6,12,0,9,69,46,47,48,49,50, + 51,52,53,54,55,56,0,58,59,46, + 47,0,68,7,65,66,67,0,7,40, + 71,72,73,0,7,46,47,48,49,50, + 51,52,53,54,55,0,87,0,1,2, + 3,4,5,6,60,8,9,0,0,68, + 68,70,103,104,105,0,1,2,3,4, + 5,6,7,8,9,10,11,12,62,0, + 15,16,17,18,19,20,21,22,23,24, + 25,70,71,0,29,0,1,2,3,4, + 5,44,7,8,102,40,11,60,0,107, + 0,46,47,48,49,50,51,52,53,54, + 55,56,12,58,59,0,0,1,2,0, + 65,66,67,88,89,0,71,72,73,4, + 0,6,0,3,9,118,6,7,69,9, + 40,11,87,13,14,29,46,47,48,49, + 50,51,52,53,54,55,26,27,103,104, + 105,0,1,2,3,4,5,6,0,8, + 9,102,4,90,44,92,107,108,109,110, + 111,112,113,114,115,116,117,0,1,2, + 60,4,0,6,7,0,9,99,68,69, + 70,71,7,73,74,0,1,2,3,4, + 5,6,44,8,9,100,97,98,88,89, + 90,91,92,93,94,95,96,97,98,99, + 100,101,102,0,73,0,106,107,108,109, + 110,111,112,113,114,115,116,117,118,0, + 120,59,3,0,122,6,7,0,9,0, + 11,74,13,14,0,60,7,10,4,74, + 11,0,1,2,69,26,27,44,91,0, + 1,2,3,4,5,6,29,8,9,0, + 1,2,0,44,0,1,2,3,4,5, + 0,7,8,0,1,2,3,4,5,60, + 7,8,0,0,11,3,59,68,69,70, + 71,68,73,74,0,1,2,3,4,5, + 6,0,8,9,63,64,44,88,89,90, + 91,92,93,94,95,96,97,98,99,100, + 101,102,63,64,60,106,107,108,109,110, + 111,112,113,114,115,116,117,118,74,120, + 0,1,2,3,4,5,6,0,8,9, + 10,69,69,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,0, + 30,31,32,33,34,35,36,37,38,39, + 0,41,42,43,0,45,0,1,2,3, + 4,5,0,0,8,0,3,57,0,0, + 7,0,7,63,64,0,1,2,68,0, + 1,2,3,4,5,6,7,8,9,10, + 73,29,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,69,30, + 31,32,33,34,35,36,37,38,39,0, + 41,42,43,60,45,0,0,0,60,73, + 3,0,1,2,7,4,57,74,7,74, + 90,62,92,0,1,2,3,4,5,6, + 71,8,9,10,29,0,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, - 27,28,29,65,31,32,33,34,35,36, - 37,38,39,59,41,42,43,44,0,1, - 2,0,4,70,6,65,65,9,62,63, - 57,70,0,1,2,0,4,64,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,88,89,15,16,17,18,19,20,21, - 22,23,24,25,26,27,28,29,0,31, - 32,33,34,35,36,37,38,39,46,41, - 42,43,44,0,1,2,3,4,5,6, - 69,8,9,10,11,12,0,0,15,16, + 27,28,101,30,31,32,33,34,35,36, + 37,38,39,0,41,42,43,60,45,70, + 0,1,2,62,4,68,6,70,0,9, + 57,74,0,1,2,7,63,64,0,1, + 2,3,4,5,6,60,8,9,10,0, + 0,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,0,30,31, + 32,33,34,35,36,37,38,39,121,41, + 42,43,69,45,0,0,1,2,0,0, + 1,2,3,4,5,57,0,8,0,71, + 4,63,64,0,1,2,3,4,5,6, + 7,8,9,10,29,0,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, - 27,28,29,0,31,32,33,34,35,36, - 37,38,39,0,41,42,43,44,0,0, - 1,2,0,65,0,3,0,5,6,0, - 57,9,14,11,12,0,0,0,3,0, - 1,2,7,4,5,0,118,8,26,27, - 0,29,30,0,1,2,0,4,40,6, - 0,0,9,45,4,47,48,49,50,51, - 52,53,54,55,45,0,47,0,0,0, - 3,59,5,6,62,63,9,65,11,12, - 30,69,70,90,59,69,0,1,2,96, - 65,88,89,26,27,70,29,30,0,74, - 88,89,90,91,92,93,94,0,73,97, - 98,99,100,101,102,103,104,105,106,107, - 108,109,110,111,112,113,59,0,0,62, - 63,0,65,65,88,89,69,70,7,0, - 1,2,0,4,5,3,121,8,62,63, - 0,0,0,88,89,88,89,90,91,92, - 93,94,11,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,90,8, - 9,10,11,12,96,64,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,69,31,32,33,34,35,36,37,38, - 39,69,41,42,43,44,0,1,2,3, - 4,5,6,0,8,9,10,11,12,0, - 59,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,0,31,32,33, - 34,35,36,37,38,39,10,41,42,43, - 44,0,1,2,0,0,0,1,2,3, - 4,5,6,57,8,9,10,11,12,0, - 0,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,73,31,32,33, - 34,35,36,37,38,39,0,41,42,43, - 44,0,1,2,3,4,5,6,0,8, - 9,10,11,12,0,0,15,16,17,18, - 19,20,21,22,23,24,25,26,27,28, - 29,0,31,32,33,34,35,36,37,38, - 39,0,41,42,43,44,0,1,2,3, - 4,5,6,0,8,9,10,11,12,0, - 7,15,16,17,18,19,20,21,22,23, - 24,25,26,27,28,29,0,31,32,33, - 34,35,36,37,38,39,0,41,42,43, - 44,0,1,2,0,4,65,0,4,0, - 3,10,0,1,2,14,15,16,17,18, - 19,20,21,22,23,24,25,0,1,2, - 0,4,5,70,71,8,0,1,2,30, - 4,40,6,0,40,9,45,4,47,48, - 49,50,51,52,53,54,55,0,0,90, - 30,60,0,1,2,96,4,66,67,68, - 0,0,10,46,4,0,14,15,16,17, - 18,19,20,21,22,23,24,25,30,0, - 0,0,1,2,3,4,5,6,7,8, - 9,30,40,73,13,14,0,45,0,47, - 48,49,50,51,52,53,54,55,114,115, - 116,30,60,65,0,1,2,70,66,67, - 68,40,0,1,2,0,45,5,47,48, - 49,50,51,52,53,54,55,0,73,0, - 59,93,94,0,1,2,3,4,5,6, - 7,8,9,57,0,74,13,14,0,1, - 2,3,4,5,6,7,8,9,46,0, - 0,13,14,0,0,1,2,3,0,5, - 11,12,8,40,30,0,0,14,45,3, + 27,28,44,30,31,32,33,34,35,36, + 37,38,39,76,41,42,43,0,45,60, + 0,1,2,3,4,5,0,0,8,44, + 57,73,0,0,7,62,0,1,2,3, + 4,5,6,7,8,9,10,0,0,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,0,30,31,32,33, + 34,35,36,37,38,39,44,41,42,43, + 0,45,0,1,2,68,4,5,0,62, + 8,44,4,57,68,0,70,0,62,0, + 1,2,3,4,5,6,7,8,9,10, + 0,29,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,28,40,30, + 31,32,33,34,35,36,37,38,39,44, + 41,42,43,0,45,0,1,2,3,4, + 5,6,0,8,9,10,91,60,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,28,0,30,31,32,33,34, + 35,36,37,38,39,0,41,42,43,0, + 45,0,0,0,3,3,44,5,6,0, + 0,9,57,4,0,13,14,0,0,1, + 2,7,4,5,0,11,8,118,26,27, + 68,28,30,0,1,2,3,4,5,6, + 7,8,9,0,11,12,44,29,0,1, + 2,3,4,5,44,0,8,95,96,0, + 1,2,60,4,5,63,64,8,44,70, + 68,69,70,40,0,1,2,44,68,46, 47,48,49,50,51,52,53,54,55,0, - 1,2,59,4,46,6,0,70,9,3, - 0,0,0,40,56,30,58,74,45,61, - 47,48,49,50,51,52,53,54,55,71, - 0,1,2,3,4,5,6,7,8,9, - 30,30,30,13,14,87,0,0,0,1, - 2,3,4,5,6,7,8,9,119,0, - 30,13,14,0,0,0,1,2,3,4, - 5,6,7,8,9,0,46,30,13,14, - 0,0,0,1,2,3,56,5,58,30, - 8,61,0,30,46,0,1,2,0,7, - 5,0,0,8,56,13,58,0,0,61, - 30,46,0,0,7,3,3,87,0,71, - 0,56,0,58,0,7,61,7,30,0, - 0,13,10,13,0,87,71,0,1,2, - 3,4,5,6,7,8,9,0,73,0, - 13,14,87,0,1,2,3,4,5,6, - 7,8,9,65,30,119,13,14,46,0, - 69,0,1,2,3,4,5,6,7,8, - 9,74,60,46,13,14,0,0,1,2, - 70,93,94,56,72,58,0,0,61,46, - 70,0,95,0,7,0,1,2,71,56, - 7,58,0,0,61,0,0,46,0,1, - 2,119,7,7,87,7,14,56,13,58, - 0,30,61,46,0,1,2,0,1,2, - 87,0,1,2,3,4,5,6,7,8, - 9,46,40,0,13,14,3,45,87,47, + 88,89,90,60,99,93,94,95,96,97, + 98,99,100,101,102,95,96,74,106,0, + 108,109,110,111,112,113,114,115,116,117, + 0,1,2,3,4,5,6,0,8,9, + 10,88,89,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,60, + 30,31,32,33,34,35,36,37,38,39, + 0,41,42,43,0,45,0,3,0,1, + 2,3,4,5,6,9,8,9,10,70, + 60,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,28,70,30,31, + 32,33,34,35,36,37,38,39,0,41, + 42,43,4,45,0,1,2,3,4,5, + 6,0,8,9,10,57,0,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,28,0,30,31,32,33,34,35, + 36,37,38,39,0,41,42,43,4,45, + 0,1,2,3,4,5,6,0,8,9, + 10,0,0,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,28,68, + 30,31,32,33,34,35,36,37,38,39, + 28,41,42,43,0,45,0,1,2,3, + 4,5,6,0,8,9,10,4,75,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,28,68,30,31,32,33, + 34,35,36,37,38,39,0,41,42,43, + 0,45,0,1,2,0,4,44,3,0, + 1,2,10,0,12,6,3,15,16,17, + 18,19,20,21,22,23,24,25,0,1, + 2,0,4,5,0,4,8,0,29,26, + 27,7,40,6,0,91,0,3,46,47, 48,49,50,51,52,53,54,55,0,1, - 2,74,4,5,71,0,8,0,1,2, - 46,0,64,46,0,0,0,46,7,3, - 74,7,7,0,13,0,3,56,3,58, - 0,0,61,3,3,0,0,0,3,3, - 0,0,0,0,46,3,3,0,0,0, - 3,3,3,46,0,0,0,3,87,0, - 0,0,3,0,0,28,0,0,0,0, - 0,0,0,0,69,0,0,0,0,0, - 0,0,0,0,0,0,71,0,74,0, - 0,30,28,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 70,70,0,0,0,0,0,0,0,0, - 0,0,0,0,0,69,0,0,73,69, + 2,59,0,1,2,7,4,65,66,67, + 70,40,10,60,12,0,0,15,16,17, + 18,19,20,21,22,23,24,25,0,0, + 1,2,0,1,2,3,4,5,6,7, + 8,9,40,11,12,71,0,0,46,47, + 48,49,50,51,52,53,54,55,29,106, + 62,59,0,1,2,0,0,65,66,67, + 93,94,40,120,103,104,105,0,46,47, + 48,49,50,51,52,53,54,55,73,73, + 0,29,60,0,0,1,2,7,4,0, + 6,11,3,9,0,12,74,3,15,16, + 17,18,19,20,21,22,23,24,25,0, + 0,1,2,3,4,5,6,7,8,9, + 0,11,12,40,88,89,0,60,73,46, + 47,48,49,50,51,52,53,54,55,29, + 0,1,2,3,4,5,6,7,8,9, + 70,11,12,0,1,2,3,4,5,6, + 7,8,9,0,11,12,56,0,58,29, + 3,61,0,10,0,1,2,68,4,7, + 6,71,29,9,44,0,1,2,68,4, + 0,6,29,0,9,69,56,87,58,0, + 10,61,0,1,2,6,0,5,0,56, + 8,58,0,0,61,3,0,0,0,0, + 3,3,59,7,71,6,0,87,0,3, + 0,1,2,3,4,5,6,7,8,9, + 87,11,12,71,0,1,2,3,4,5, + 6,7,8,9,0,11,12,44,4,29, + 0,1,2,3,4,5,6,7,8,9, + 0,11,12,29,0,1,2,69,0,5, + 10,68,0,1,2,0,56,0,58,29, + 74,61,93,94,0,1,2,0,44,29, + 56,71,58,29,7,61,0,91,95,96, + 0,29,93,94,0,71,56,87,58,0, + 0,61,44,29,0,0,7,7,3,59, + 11,87,0,1,2,3,4,5,6,7, + 8,9,72,11,12,0,0,87,0,1, + 2,3,4,5,6,7,8,9,73,11, + 12,29,0,0,1,2,0,70,44,7, + 0,74,0,11,0,88,89,29,0,0, + 0,0,0,69,5,7,12,7,56,0, + 58,0,29,61,74,0,0,0,3,3, + 3,0,0,12,56,3,58,0,0,61, + 3,3,0,0,40,70,70,0,0,87, + 46,47,48,49,50,51,52,53,54,55, + 0,40,0,3,0,87,0,46,47,48, + 49,50,51,52,53,54,55,0,0,0, + 3,3,74,0,74,73,3,0,0,0, + 28,44,73,0,0,0,0,0,0,0, + 0,0,0,0,73,0,0,0,0,0, + 0,69,69,0,0,119,0,0,0,119, + 0,119,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0 + 0,0,0,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; @@ -1393,316 +1410,308 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface TermAction { public final static char termAction[] = {0, - 5272,5237,5210,5210,5210,5210,5210,5253,5210,5210, - 1,1,1,5241,1,1,1,1,1,1, + 5370,5335,5308,5308,5308,5308,5308,5351,5308,5308, + 1,5339,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,387,1,1,1, - 1,1,1,1,1,1,677,1,2399,137, - 1,2499,1,1,5283,45,1,1,1,5316, - 5272,5279,5455,5272,737,2848,2922,4172,2218,4131, - 2770,2880,2916,630,2913,3186,2822,10,5256,5256, - 5256,5256,5256,5256,5256,5256,5256,5256,5256,5256, - 5256,5256,5256,5256,5256,5256,5256,5256,5256,5256, - 5256,5256,5256,5256,5256,5256,5256,5272,5256,5256, - 5256,5256,5256,5256,5256,5256,5256,5256,5256,5256, - 5256,5256,5256,2826,5256,5256,5256,5256,5256,5256, - 5256,5256,5256,5256,5256,5256,138,5256,5256,5256, - 5256,5256,361,5256,5256,5256,2395,2367,5256,5256, - 5272,351,5256,5256,5256,5256,5256,5256,5256,5256, - 5256,5256,5256,5256,8,5259,5259,5259,5259,5259, - 5259,5259,5259,5259,5259,5259,5259,5259,5259,5259, - 5259,5259,5259,5259,5259,5259,5259,5259,5259,5259, - 5259,5259,5259,5259,5272,5259,5259,5259,5259,5259, - 5259,5259,5259,5259,5259,5259,5259,5259,5259,5259, - 1308,5259,5259,5259,5259,5259,5259,5259,5259,5259, - 5259,5259,5259,5272,5259,5259,5259,5259,5259,3551, - 5259,5259,5259,2395,2367,5259,5259,5632,324,5259, - 5259,5259,5259,5259,5259,5259,5259,5259,5259,5259, - 5259,5272,5237,5210,5210,5210,5210,5210,5244,5210, - 5210,1,1,1,5241,1,1,1,1,1, + 1,1,1,1,385,1,1,1,1,1, + 1,1,1,1,1,1,1689,1,2707,1, + 5370,2448,5381,1,1,1,1,1,5370,5389, + 5390,5377,5551,3066,530,1125,2784,3473,2206,3384, + 2708,3070,2765,1559,2759,3293,2737,10,5354,5354, + 5354,5354,5354,5354,5354,5354,5354,5354,5354,5354, + 5354,5354,5354,5354,5354,5354,5354,5354,5354,5354, + 5354,5354,5354,5354,5354,5354,5370,5354,5354,5354, + 5354,5354,5354,5354,5354,5354,5354,5354,5354,5354, + 5354,2466,5354,5354,5354,5354,5354,5354,5354,5354, + 5354,5354,5354,5354,5354,5354,5354,124,5354,5354, + 5354,5354,5354,5354,5354,396,5389,5390,5354,5354, + 3603,3578,5354,5354,5354,5354,5354,5354,5354,5354, + 5354,5354,5354,5354,8,5357,5357,5357,5357,5357, + 5357,5357,5357,5357,5357,5357,5357,5357,5357,5357, + 5357,5357,5357,5357,5357,5357,5357,5357,5357,5357, + 5357,5357,5357,5370,5357,5357,5357,5357,5357,5357, + 5357,5357,5357,5357,5357,5357,5357,5357,5370,5357, + 5357,5357,5357,5357,5357,5357,5357,5357,5357,5357, + 5357,5357,5357,5357,126,5357,5357,5357,5357,5357, + 5357,5357,5370,5389,5390,5357,5357,3603,3578,5357, + 5357,5357,5357,5357,5357,5357,5357,5357,5357,5357, + 5357,5370,5335,5308,5308,5308,5308,5308,5342,5308, + 5308,1,5339,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5272,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1308,1,1, - 1,1,1,1,1,1,1,677,1,2399, - 5272,1,2499,1,1,5283,45,1,1,1, - 5316,5272,2940,5455,4675,5605,2848,2922,4172,2218, - 4131,2770,2880,2916,630,2913,3186,2822,5272,5237, - 5210,5210,5210,5210,5210,5244,5210,5210,1,1, - 1,5241,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5272,1, + 5370,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,5370,1,1,1,1, + 1,1,1,1,1,1,1,1689,1,2707, + 1,143,2448,5381,1,1,1,1,1,5370, + 5370,5023,5020,5551,5414,1981,1125,2784,3473,2206, + 3384,2708,3070,2765,1559,2759,3293,2737,5370,5335, + 5308,5308,5308,5308,5308,5342,5308,5308,1,5339, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,143,1,1,1,1,1, - 1,1,1,1,677,1,2399,5272,1,2499, - 1,1,5283,139,1,1,1,5272,4881,4878, - 5455,5316,2338,2848,2922,4172,2218,4131,2770,2880, - 2916,630,2913,3186,2822,5272,5237,5210,5210,5210, - 5210,5210,5244,5210,5210,1,1,1,5241,1, + 1,1,1,1,1,1,1,5370,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5272,1,1,1,1, + 1,1,5370,1,1,1,1,1,1,1, + 1,1,1,1,1689,1,2707,1,5370,2448, + 5381,1,1,1,1,1,5370,5370,5023,5020, + 5551,5414,2293,1125,2784,3473,2206,3384,2708,3070, + 2765,1559,2759,3293,2737,5370,5335,5308,5308,5308, + 5308,5308,5342,5308,5308,1,5339,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,5272,1,1,1,1,1,1,1,1, - 1,677,1,2399,2306,1,2499,1,1,5283, - 123,1,1,1,5272,5272,3580,5455,2881,458, - 2848,2922,4172,2218,4131,2770,2880,2916,630,2913, - 3186,2822,5272,5237,5210,5210,5210,5210,5210,5244, - 5210,5210,1,1,1,5241,1,1,1,1, + 1,1,1,1,5370,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5370, 1,1,1,1,1,1,1,1,1,1, - 1,1,5272,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5003,1, - 1,1,1,1,1,1,1,1,677,1, - 2399,145,1,2499,1,1,5283,125,1,1, - 1,3556,3499,3580,5455,5272,457,2848,2922,4172, - 2218,4131,2770,2880,2916,630,2913,3186,2822,5272, - 5237,5210,5210,5210,5210,5210,5244,5210,5210,1, - 1,1,5241,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,5272, + 1,1689,1,2707,1,5370,2448,5381,1,1, + 1,1,1,5370,5041,5038,348,5551,813,1126, + 1125,2784,3473,2206,3384,2708,3070,2765,1559,2759, + 3293,2737,5370,5335,5308,5308,5308,5308,5308,5342, + 5308,5308,1,5339,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,5006,1,1,1,1, - 1,1,1,1,1,677,1,2399,141,1, - 2499,1,1,5283,124,1,1,1,3556,3499, - 3580,5455,2269,108,2848,2922,4172,2218,4131,2770, - 2880,2916,630,2913,3186,2822,5272,5237,5210,5210, - 5210,5210,5210,5244,5210,5210,1,1,1,5241, + 1,35,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1297,1,1,1, + 1,1,1,1,1,1,1,1,1689,1, + 2707,1,304,2448,5381,1,1,1,1,1, + 117,5370,5673,320,5551,5029,5026,1125,2784,3473, + 2206,3384,2708,3070,2765,1559,2759,3293,2737,5370, + 5335,5308,5308,5308,5308,5308,5342,5308,5308,1, + 5339,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3470,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,193,1,1,1, + 1,1,1,1297,1,1,1,1,1,1, + 1,1,1,1,1,1689,1,2707,1,137, + 2448,5381,1,1,1,1,1,127,592,45, + 4057,5551,4079,5414,1125,2784,3473,2206,3384,2708, + 3070,2765,1559,2759,3293,2737,5370,5335,5308,5308, + 5308,5308,5308,5342,5308,5308,1,5339,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,4600,1,1,1,1,1,1,1, - 1,1,677,1,2399,146,1,2499,1,1, - 5283,140,1,1,1,3556,3499,594,5455,428, - 2338,2848,2922,4172,2218,4131,2770,2880,2916,630, - 2913,3186,2822,5272,5237,5210,5210,5210,5210,5210, - 5244,5210,5210,1,1,1,5241,1,1,1, + 1,1,1,1,1,438,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,5272,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,144, - 1,1,1,1,1,1,1,1,1,677, - 1,2399,2966,1,2499,1,1,5283,5263,1, - 1,1,5272,5291,5292,5455,2269,1655,2848,2922, - 4172,2218,4131,2770,2880,2916,630,2913,3186,2822, - 5272,5237,5210,5210,5210,5210,5210,5244,5210,5210, - 1,1,1,5241,1,1,1,1,1,1, + 5370,1,1,1,1,1,1,1,1,1, + 1,1,1689,1,2707,1,135,2448,5381,1, + 1,1,1,1,5370,2987,3013,349,5551,5032, + 5370,1125,2784,3473,2206,3384,2708,3070,2765,1559, + 2759,3293,2737,5370,5335,5308,5308,5308,5308,5308, + 5342,5308,5308,1,5339,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5272,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5272,1,1,1, - 1,1,1,1,1,1,677,1,2399,2306, - 1,2499,1,1,5283,5272,1,1,1,5272, - 4881,4878,5455,5316,107,2848,2922,4172,2218,4131, - 2770,2880,2916,630,2913,3186,2822,5272,5237,5210, - 5210,5210,5210,5210,5244,5210,5210,1,1,1, - 5241,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,5272,1,1, + 1,1,5370,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1297,1,1, + 1,1,1,1,1,1,1,1,1,1689, + 1,2707,1,125,2448,5381,1,1,1,1, + 1,120,5370,2503,2475,5551,3603,3578,1125,2784, + 3473,2206,3384,2708,3070,2765,1559,2759,3293,2737, + 5370,5335,5308,5308,5308,5308,5308,5342,5308,5308, + 1,5339,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,5370, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,2181,1,1,1,1,1,1, - 1,1,1,677,1,2399,5272,1,2499,1, - 1,5283,1,1,1,1,398,5291,5292,5455, - 5272,5272,2848,2922,4172,2218,4131,2770,2880,2916, - 630,2913,3186,2822,5272,2798,1,1,1,1, - 1,2813,1,1,1,1,1,5281,1,1, + 1,1,1,1,5370,1,1,1,1,1, + 1,1,1,1,1,1,1689,1,2707,1, + 5370,2448,5381,1,1,1,1,1,54,5041, + 5038,4057,5551,4079,5370,1125,2784,3473,2206,3384, + 2708,3070,2765,1559,2759,3293,2737,5370,5335,5308, + 5308,5308,5308,5308,5342,5308,5308,1,5339,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5272,1,1,1,1,1, + 1,1,1,1,1,1,452,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5272,1,1,1,1,1,1,1,1,1, - 677,1,2399,1919,1,2499,1,1,5283,5272, - 1,1,1,5272,5291,5292,5455,5634,1,2848, - 2922,4172,2218,4131,2770,2880,2916,630,2913,3186, - 2822,45,4881,4878,4643,925,3761,3827,142,3450, - 3849,2562,3805,3783,43,5536,5543,5541,5550,5549, - 5545,5546,5544,5547,5548,5551,5542,3893,3871,5297, - 3739,5272,1168,1259,5299,1217,633,1252,5300,5298, - 1123,5539,5293,5295,5296,5294,5612,5272,5613,5533, - 5540,5512,5538,5537,5534,5535,5513,5272,1351,5272, - 5314,5671,5272,3721,5278,4863,5278,2806,5672,5673, - 5272,5098,5098,235,5094,235,235,5102,235,235, - 1,5272,5272,235,1,1,1,1,1,1, - 1,1,1,1,1,1,5272,4988,4985,231, - 5272,5022,5018,3415,5316,732,2940,594,3450,5605, - 1,350,929,5536,2299,1,5091,1,1,1, - 1,1,1,1,1,1,2555,4806,1006,83, - 1,5277,2908,5277,5272,5674,1,1,1,5539, - 5272,417,5685,235,5612,1655,5613,5533,5540,5512, - 5538,5537,5534,5535,5513,5342,5343,5772,5272,5098, - 5098,235,5094,235,235,5159,235,235,1,5272, - 1308,235,1,1,1,1,1,1,1,1, - 1,1,1,1,5707,5708,5709,129,3607,5272, - 126,370,4874,4870,2756,1,732,1,1,3450, - 1,3352,3327,1,5091,1,1,1,1,1, - 1,1,1,1,2555,45,1006,1,1,5316, - 44,4994,4991,5272,1,1,1,4864,1076,416, - 5685,235,581,1,736,39,397,5272,5009,2532, - 390,5009,5009,4864,5009,5772,5009,5009,5009,800, - 1308,1,4874,4870,5150,2686,5153,5272,5282,5156, - 1136,5009,5009,567,5281,5009,2808,230,56,4988, - 4985,454,5707,5708,5709,2664,2853,4867,147,567, - 147,5536,5543,5541,5550,5549,5545,5546,5544,5547, - 5548,5551,5542,4867,5009,5272,4881,4878,5272,5316, - 5009,4887,5284,5272,5009,5009,5009,5539,5009,5009, - 5280,5272,5612,3046,5613,5533,5540,5512,5538,5537, - 5534,5535,5513,5009,5009,5009,5009,5009,5009,5009, - 5009,5009,5009,5009,5009,5009,5009,5009,5009,5009, - 5009,5009,5009,5009,5009,5009,5009,5009,5009,1833, - 508,5272,5009,5009,5032,5009,306,5032,5032,5283, - 5032,1,5032,5032,5032,391,5577,348,5022,5018, - 2756,5316,732,2940,5279,3450,5605,5032,5032,56, - 1046,5032,1046,5292,1790,1747,1704,1661,1618,1575, - 1532,1489,1446,1403,5272,3617,5272,3617,314,5188, - 5183,3415,5012,732,5180,99,3450,5177,5029,5292, - 5032,1,2889,5272,2534,5272,5032,439,4896,3623, - 5032,5032,5032,5272,5032,5032,1308,2594,5272,5272, - 5188,5183,3415,5012,732,5180,5272,3450,5177,5032, - 5032,5032,5032,5032,5032,5032,5032,5032,5032,5032, - 5032,5032,5032,5032,5032,5032,5032,5032,5032,5032, - 5032,5032,5032,5032,5032,295,5291,5292,5032,5032, - 1308,5032,1,5084,5080,4643,5088,3761,3827,5272, - 3450,3849,5044,3805,3783,4899,5276,5071,5077,5050, - 5053,5065,5062,5068,5059,5056,5047,5074,3893,3871, - 5297,3739,2042,1168,1259,5299,1217,633,1252,5300, - 5298,1123,1,5293,5295,5296,5294,5272,1,1, - 4874,4870,2756,5272,732,169,4896,3450,5272,1351, - 5284,5707,5708,5709,45,45,5272,516,45,4881, - 4878,4643,925,3761,3827,5266,3450,3849,911,3805, - 3783,5272,5272,5543,5541,5550,5549,5545,5546,5544, - 5547,5548,5551,5542,3893,3871,5297,3739,5272,1168, - 1259,5299,1217,633,1252,5300,5298,1123,1308,5293, - 5295,5296,5294,1,4874,4870,3415,5283,732,5272, - 314,3450,169,4899,134,1351,314,5275,1,4874, - 4870,3415,5250,732,55,322,3450,4485,4884,5279, - 149,4881,4878,4643,925,3761,3827,2002,3450,3849, - 911,3805,3783,5272,2504,5543,5541,5550,5549,5545, - 5546,5544,5547,5548,5551,5542,3893,3871,5297,3739, - 5272,1168,1259,5299,1217,633,1252,5300,5298,1123, - 1440,5293,5295,5296,5294,506,1,5015,5015,4997, - 5012,5272,2940,366,1308,5605,373,1351,51,5041, - 5041,2042,45,45,1,5084,5080,4643,5088,3761, - 3827,5272,3450,3849,5044,3805,3783,2450,2423,5071, - 5077,5050,5053,5065,5062,5068,5059,5056,5047,5074, - 3893,3871,5297,3739,119,1168,1259,5299,1217,633, - 1252,5300,5298,1123,5038,5293,5295,5296,5294,348, - 45,45,2534,5316,4299,2940,2035,2125,5605,365, - 366,1351,56,5129,5126,1179,45,45,45,4881, - 4878,4643,925,3761,3827,5247,3450,3849,911,3805, - 3783,366,5272,5543,5541,5550,5549,5545,5546,5544, - 5547,5548,5551,5542,3893,3871,5297,3739,5272,1168, - 1259,5299,1217,633,1252,5300,5298,1123,1308,5293, - 5295,5296,5294,165,1,4874,4870,2756,5272,732, - 5272,5272,3450,133,3937,1351,5272,5291,5292,3524, - 3959,5272,5250,45,4881,4878,4643,925,3761,3827, - 5247,3450,3849,911,3805,3783,2622,2037,5543,5541, - 5550,5549,5545,5546,5544,5547,5548,5551,5542,3893, - 3871,5297,3739,2046,1168,1259,5299,1217,633,1252, - 5300,5298,1123,1308,5293,5295,5296,5294,444,1, - 1,371,1,1876,5000,5727,4151,5000,3915,818, - 1351,2532,398,4881,4878,5272,5316,5250,45,4881, - 4878,4643,925,3761,3827,5276,3450,3849,911,3805, - 3783,2664,2853,5543,5541,5550,5549,5545,5546,5544, - 5547,5548,5551,5542,3893,3871,5297,3739,5272,1168, - 1259,5299,1217,633,1252,5300,5298,1123,45,5293, - 5295,5296,5294,45,4881,4878,4643,925,3761,3827, - 1222,3450,3849,911,3805,3783,5272,5272,5543,5541, - 5550,5549,5545,5546,5544,5547,5548,5551,5542,3893, - 3871,5297,3739,122,1168,1259,5299,1217,633,1252, - 5300,5298,1123,132,5293,5295,5296,5294,232,5272, - 5129,5126,1,5713,5272,909,510,5741,5735,339, - 1351,5739,5536,5733,5734,1,5272,5272,2534,5272, - 4881,4878,344,925,732,448,5275,3450,5764,5765, - 5272,5742,5744,445,45,45,131,5316,5539,5141, - 56,5272,5138,5612,5291,5613,5533,5540,5512,5538, - 5537,5534,5535,5513,5612,130,5613,5272,5272,5272, - 909,1045,5741,5735,1562,1564,5739,5745,5733,5734, - 5291,5743,5766,3937,1308,662,5272,4988,4985,3959, - 344,2664,2853,5764,5765,344,5742,5744,121,344, - 5755,5754,5767,5736,5737,5760,5761,5272,627,5758, - 5759,5738,5740,5762,5763,5768,5748,5749,5750,5746, - 5747,5756,5757,5752,5751,5753,1045,5272,5272,1562, - 1564,1,5745,5784,2664,2853,5743,5766,5231,5272, - 4881,4878,316,925,732,3243,344,3450,3915,818, - 5272,128,296,2664,2853,5755,5754,5767,5736,5737, - 5760,5761,3352,3327,5758,5759,5738,5740,5762,5763, - 5768,5748,5749,5750,5746,5747,5756,5757,5752,5751, - 5753,45,4881,4878,4643,925,3761,3827,3937,3450, - 3849,911,3805,3783,3959,5283,5543,5541,5550,5549, - 5545,5546,5544,5547,5548,5551,5542,3893,3871,5297, - 3739,1091,1168,1259,5299,1217,633,1252,5300,5298, - 1123,2005,5293,5295,5296,5294,45,4881,4878,4643, - 925,3761,3827,5272,3450,3849,911,3805,3783,5272, - 1830,5543,5541,5550,5549,5545,5546,5544,5547,5548, - 5551,5542,3893,3871,5297,3739,306,1168,1259,5299, - 1217,633,1252,5300,5298,1123,5577,5293,5295,5296, - 5294,42,5204,5201,5272,5272,45,4881,4878,4696, - 925,3761,3827,1351,3450,3849,911,3805,3783,5272, - 5272,5543,5541,5550,5549,5545,5546,5544,5547,5548, - 5551,5542,3893,3871,5297,3739,2093,1168,1259,5299, - 1217,633,1252,5300,5298,1123,5272,5293,5295,5296, - 5294,45,4881,4878,4643,925,3761,3827,5272,3450, - 3849,911,3805,3783,5272,5272,5543,5541,5550,5549, - 5545,5546,5544,5547,5548,5551,5542,3893,3871,5297, - 3739,5272,1168,1259,5299,1217,633,1252,5300,5298, - 1123,5272,5293,5295,5296,5294,45,4881,4878,4643, - 925,3761,3827,5272,3450,3849,911,3805,3783,120, - 5280,5543,5541,5550,5549,5545,5546,5544,5547,5548, - 5551,5542,3893,3871,5297,3739,5272,1168,1259,5299, - 1217,633,1252,5300,5298,1123,5272,5293,5295,5296, - 5294,5272,4881,4878,45,5316,2701,244,5316,440, - 5111,575,5272,7939,7318,5536,5543,5541,5550,5549, - 5545,5546,5544,5547,5548,5551,5542,5272,4881,4878, - 35,925,5035,1002,5279,3450,100,1,1,4890, - 1,5539,5165,5272,1201,5165,5612,1216,5613,5533, - 5540,5512,5538,5537,5534,5535,5513,515,136,3937, - 2808,5671,248,4975,4971,3959,4979,2806,5672,5673, - 5272,35,575,937,1226,5272,4926,4962,4968,4941, - 4944,4956,4953,4959,4950,4947,4938,4965,2504,5272, - 5272,35,390,390,5120,390,390,5120,5123,390, - 5120,4893,4917,424,5120,390,532,4911,5272,4908, - 4935,4914,4905,4920,4923,4932,4929,4902,5707,5708, - 5709,4893,5671,5132,5272,7939,7318,879,2806,5672, - 5673,390,43,5168,5168,5272,390,5168,390,390, - 390,390,390,390,390,390,390,294,2942,5272, - 5123,2450,2423,38,391,391,5114,391,391,5114, - 5117,391,5114,2526,390,5123,5114,391,1,5210, - 5210,235,5210,235,235,5213,235,235,1698,127, - 5272,235,8843,233,1,4874,4870,3415,5272,732, - 3352,3327,3450,391,4982,5272,1,5536,391,4783, - 391,391,391,391,391,391,391,391,391,103, - 45,45,5117,5316,5207,5219,5272,1089,5216,4146, - 5272,5272,5272,5539,2591,4749,2399,5117,5612,2499, - 5613,5533,5540,5512,5538,5537,5534,5535,5513,227, - 1,5210,5210,235,5210,235,235,235,235,235, - 4752,4764,4780,235,8843,5772,378,5272,1,5210, - 5210,235,5210,235,235,5225,235,235,2924,47, - 2123,235,8843,1,5272,1,5210,5210,235,5210, - 235,235,5213,235,235,5272,5207,2808,235,8843, - 5272,5272,1,4874,4870,5150,2591,5153,2399,5026, - 5156,2499,406,2808,5207,5272,5291,5292,135,5144, - 732,420,521,3450,2591,5147,2399,1,5272,2499, - 2123,5207,5272,5272,366,4256,4312,5772,5272,226, - 5272,2591,5272,2399,5272,5282,2499,5282,2504,5272, - 426,5281,1956,5281,5272,5772,227,1,5210,5210, - 235,5210,235,235,5213,235,235,5272,2979,5272, - 235,8843,5772,1,5210,5210,235,5210,235,235, - 235,235,235,5135,3720,2924,235,8843,567,5272, - 2130,1,5210,5210,235,5210,235,235,235,235, - 235,366,2767,5207,235,8843,5272,5272,5108,5105, - 4205,2450,2423,2591,5808,2399,5272,1,2499,5207, - 861,81,366,1,5278,5272,8840,8840,227,2591, - 5234,2399,234,5272,2499,1,1,5207,5272,5291, - 5292,2924,5282,528,5772,5284,5536,2591,5281,2399, - 5272,5222,2499,5314,43,5162,5162,53,5174,5174, - 5772,1,5210,5210,235,5210,235,235,235,235, - 235,5314,5539,5272,235,8843,4456,5612,5772,5613, - 5533,5540,5512,5538,5537,5534,5535,5513,5272,4881, - 4878,5277,925,5035,5279,41,3450,5272,5197,5193, - 1612,1,5283,5171,1,8,5272,5207,199,2301, - 528,171,5269,5272,199,5272,2969,2591,2970,2399, - 111,5272,2499,3636,2543,285,5272,5272,5228,4043, - 449,313,5272,5272,2079,4644,4042,5272,5272,5272, - 4728,4334,4755,5314,5272,5272,5272,4579,5772,5272, - 5272,2,4704,5272,1,4258,5272,5272,5272,5272, - 5272,5272,5272,5272,3218,5272,5272,5272,5272,5272, - 5272,5272,5272,5272,5272,5272,5269,5272,171,5272, - 5272,43,2481,5272,5272,5272,5272,5272,5272,5272, - 5272,5272,5272,5272,5272,5272,5272,5272,5272,5272, - 917,4216,5272,5272,5272,5272,5272,5272,5272,5272, - 5272,5272,5272,5272,5272,3218,5272,5272,3033,1962 + 1,5370,1,1,1,1,1,1,1,1, + 1,1,1,1689,1,2707,1,5370,2448,5381, + 1,1,1,1,1,293,5389,5390,5370,5551, + 5035,4751,1125,2784,3473,2206,3384,2708,3070,2765, + 1559,2759,3293,2737,5370,2730,1,1,1,1, + 1,2731,1,1,1,5379,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,5370,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,437,1, + 1,1,1,1,1,1,1,1,1,1, + 1689,1,2707,1,359,2448,5381,1,1,1, + 1,1,141,396,5023,5020,5551,5414,506,1125, + 2784,3473,2206,3384,2708,3070,2765,1559,2759,3293, + 2737,45,5023,5020,4459,2070,3881,3947,5002,2746, + 3969,912,45,5632,3925,3903,5639,5637,5646,5645, + 5641,5642,5640,5643,5644,5647,5638,4013,3991,5395, + 53,628,955,1016,5397,990,3665,998,5398,5396, + 949,5635,5391,5393,5394,504,5392,5708,5709,5629, + 5636,5608,5634,5633,5630,5631,5609,3082,1336,1384, + 5767,5803,5804,5805,5370,5728,1032,5768,5769,5370, + 5224,5224,234,5220,234,234,5228,234,234,1, + 234,1,1176,337,1,1,1,1,1,1, + 1,1,1,1,1,44,5050,5047,5217,229, + 5044,5370,5370,2746,346,45,45,2868,5414,1, + 1508,5632,145,5701,3379,1,1,1,1,1, + 1,1,1,1,1,2687,5370,565,1,5708, + 5709,5370,1990,5382,1,1,1,5370,5378,5635, + 415,5781,234,5370,5374,5708,5709,5629,5636,5608, + 5634,5633,5630,5631,5609,131,5868,346,5023,5020, + 2379,2070,731,1508,1297,2746,5701,388,5370,778, + 1991,3239,5803,5804,5805,5370,5224,5224,234,5220, + 234,234,5273,234,234,1,234,1,5381,145, + 1,1,1,1,1,1,1,1,1,1, + 1,994,5377,119,5217,1,5013,5009,5264,5017, + 5270,5139,5380,5267,2255,1,5379,1297,139,3347, + 230,1,1,1,1,1,1,1,1,1, + 1,2687,5632,565,1,142,43,5157,5157,136, + 1,1,1,2987,3013,45,414,5781,234,5414, + 39,1508,191,5145,5701,5373,5145,5145,1822,5145, + 5635,5145,5868,5145,5145,5412,5708,5709,5629,5636, + 5608,5634,5633,5630,5631,5609,5145,5145,5803,5804, + 5805,5370,5013,5009,4381,5017,731,5288,395,2746, + 5285,2255,388,4057,5145,4079,3347,1779,1736,1693, + 1650,1607,1564,1521,1478,1435,1392,1,5163,5163, + 5145,5160,5370,1508,364,5370,5701,2327,5145,5145, + 5145,5145,5376,5145,5145,368,5013,5009,2379,5017, + 731,1,1327,2746,1,1176,2503,2475,5145,5145, + 5145,5145,5145,5145,5145,5145,5145,5145,5145,5145, + 5145,5145,5145,5370,2032,5370,5145,5145,5145,5145, + 5145,5145,5145,5145,5145,5145,5145,5145,5145,5370, + 5145,2704,5169,5370,5361,5169,5169,1,5169,404, + 5169,364,5169,5169,5370,1297,5258,5003,3190,5375, + 5261,5370,5389,5390,1038,5169,5169,3417,364,5370, + 5023,5020,4381,2070,731,1508,557,2746,5701,5370, + 5041,5038,5370,5169,1,5013,5009,2379,5017,731, + 5370,5053,2746,1,5013,5009,4381,5017,731,5169, + 312,2746,314,371,312,2111,5006,5169,5169,5169, + 5169,1998,5169,5169,312,5013,5009,4381,5017,731, + 5288,5370,2746,5285,4035,1070,3437,5169,5169,5169, + 5169,5169,5169,5169,5169,5169,5169,5169,5169,5169, + 5169,5169,4035,1070,1297,5169,5169,5169,5169,5169, + 5169,5169,5169,5169,5169,5169,5169,5169,5056,5169, + 1,5013,5009,4459,5017,3881,3947,426,2746,3969, + 5175,1082,1133,3925,3903,5202,5208,5181,5184,5196, + 5193,5199,5190,5187,5178,5205,4013,3991,5395,369, + 628,955,1016,5397,990,3665,998,5398,5396,949, + 118,5391,5393,5394,5370,5392,1,5013,5009,4381, + 5017,731,43,1,2746,1,2868,1336,322,5370, + 5053,144,167,45,45,42,5302,5299,514,45, + 5023,5020,4459,2070,3881,3947,5364,2746,3969,918, + 3689,5412,3925,3903,5639,5637,5646,5645,5641,5642, + 5640,5643,5644,5647,5638,4013,3991,5395,1210,628, + 955,1016,5397,990,3665,998,5398,5396,949,363, + 5391,5393,5394,1297,5392,5370,5370,1,1297,2032, + 2868,5370,5023,5020,342,5414,1336,5056,5382,167, + 4057,5348,4079,147,5023,5020,4459,2070,3881,3947, + 5377,2746,3969,918,2066,456,3925,3903,5639,5637, + 5646,5645,5641,5642,5640,5643,5644,5647,5638,4013, + 3991,5395,2293,628,955,1016,5397,990,3665,998, + 5398,5396,949,508,5391,5393,5394,1297,5392,2745, + 442,1,1,5381,1,342,5148,342,5370,5148, + 1336,342,5370,8679,8318,5378,45,45,1,5013, + 5009,4459,5017,3881,3947,5151,2746,3969,5175,5370, + 5370,3925,3903,5202,5208,5181,5184,5196,5193,5199, + 5190,5187,5178,5205,4013,3991,5395,5370,628,955, + 1016,5397,990,3665,998,5398,5396,949,342,5391, + 5393,5394,797,5392,5370,49,5214,5214,35,1, + 5013,5009,2379,5017,731,1336,1,2746,5370,5377, + 389,45,45,45,5023,5020,4459,2070,3881,3947, + 5345,2746,3969,918,5211,5370,3925,3903,5639,5637, + 5646,5645,5641,5642,5640,5643,5644,5647,5638,4013, + 3991,5395,1327,628,955,1016,5397,990,3665,998, + 5398,5396,949,2936,5391,5393,5394,5370,5392,1297, + 1,5013,5009,4381,5017,731,5370,1,2746,4849, + 1336,422,5370,5370,5329,5348,45,5023,5020,4459, + 2070,3881,3947,5345,2746,3969,918,5370,5370,3925, + 3903,5639,5637,5646,5645,5641,5642,5640,5643,5644, + 5647,5638,4013,3991,5395,1,628,955,1016,5397, + 990,3665,998,5398,5396,949,4852,5391,5393,5394, + 5370,5392,5370,5023,5020,2016,2070,5172,45,5381, + 2746,1327,5414,1336,4353,1,3239,455,5348,45, + 5023,5020,4459,2070,3881,3947,5374,2746,3969,918, + 5370,931,3925,3903,5639,5637,5646,5645,5641,5642, + 5640,5643,5644,5647,5638,4013,3991,5395,2836,628, + 955,1016,5397,990,3665,998,5398,5396,949,1327, + 5391,5393,5394,5370,5392,45,5023,5020,4459,2070, + 3881,3947,132,2746,3969,918,5730,5154,3925,3903, + 5639,5637,5646,5645,5641,5642,5640,5643,5644,5647, + 5638,4013,3991,5395,5370,628,955,1016,5397,990, + 3665,998,5398,5396,949,140,5391,5393,5394,163, + 5392,5370,1,5370,3453,2291,2613,5837,5831,5370, + 134,5835,1336,3352,5370,5829,5830,5370,5370,5023, + 5020,5380,2070,5172,5370,5379,2746,5373,5860,5861, + 5142,770,5838,35,388,388,5243,388,388,5243, + 5243,388,5243,130,5243,388,5840,2392,1,5013, + 5009,5264,5017,5270,2613,5370,5267,2559,2532,5370, + 5023,5020,1276,2070,731,1500,1510,2746,2024,1865, + 5841,5839,5862,388,5370,8679,8318,5029,5246,388, + 388,388,388,388,388,388,388,388,388,106, + 5851,5850,5863,5243,2327,5832,5833,5856,5857,5854, + 5855,5834,5836,5858,5859,2559,2532,5243,5864,513, + 5844,5845,5846,5842,5843,5852,5853,5848,5847,5849, + 45,5023,5020,4459,2070,3881,3947,292,2746,3969, + 918,2987,3013,3925,3903,5639,5637,5646,5645,5641, + 5642,5640,5643,5644,5647,5638,4013,3991,5395,4286, + 628,955,1016,5397,990,3665,998,5398,5396,949, + 5370,5391,5393,5394,97,5392,138,5166,45,5023, + 5020,4459,2070,3881,3947,592,2746,3969,918,874, + 1774,3925,3903,5639,5637,5646,5645,5641,5642,5640, + 5643,5644,5647,5638,4013,3991,5395,1249,628,955, + 1016,5397,990,3665,998,5398,5396,949,5370,5391, + 5393,5394,1024,5392,45,5023,5020,4782,2070,3881, + 3947,5370,2746,3969,918,1336,5370,3925,3903,5639, + 5637,5646,5645,5641,5642,5640,5643,5644,5647,5638, + 4013,3991,5395,1,628,955,1016,5397,990,3665, + 998,5398,5396,949,5370,5391,5393,5394,1516,5392, + 45,5023,5020,4459,2070,3881,3947,5370,2746,3969, + 918,5370,5370,3925,3903,5639,5637,5646,5645,5641, + 5642,5640,5643,5644,5647,5638,4013,3991,5395,5880, + 628,955,1016,5397,990,3665,998,5398,5396,949, + 4212,5391,5393,5394,1,5392,45,5023,5020,4459, + 2070,3881,3947,54,2746,3969,918,5390,3275,3925, + 3903,5639,5637,5646,5645,5641,5642,5640,5643,5644, + 5647,5638,4013,3991,5395,5809,628,955,1016,5397, + 990,3665,998,5398,5396,949,5370,5391,5393,5394, + 424,5392,5370,5023,5020,242,5414,5390,5237,43, + 5157,5157,573,81,5632,1981,3758,5639,5637,5646, + 5645,5641,5642,5640,5643,5644,5647,5638,5370,5023, + 5020,45,2070,731,1,5414,2746,121,5412,5438, + 5439,5332,5635,3723,1,4311,5370,4860,5708,5709, + 5629,5636,5608,5634,5633,5630,5631,5609,5370,5389, + 5390,5767,246,5132,5128,5382,5136,1032,5768,5769, + 4183,3162,573,2406,5083,5370,5370,5119,5125,5098, + 5101,5113,5110,5116,5107,5104,5095,5122,5370,5370, + 5234,5231,38,389,389,5240,389,389,5240,5240, + 389,5240,5074,5240,389,5377,129,5370,5068,5065, + 5092,5071,5062,5077,5080,5089,5086,5059,5412,579, + 5381,5767,5370,8842,8842,446,5370,1032,5768,5769, + 3699,3641,389,659,5803,5804,5805,105,389,389, + 389,389,389,389,389,389,389,389,1908,5770, + 5370,5412,5240,228,443,45,45,5380,5414,5370, + 5255,5379,3477,5252,5370,5632,5240,3506,5639,5637, + 5646,5645,5641,5642,5640,5643,5644,5647,5638,5370, + 1,5308,5308,234,5308,234,234,5311,234,234, + 5370,234,8857,5635,2987,3013,294,2168,1127,5708, + 5709,5629,5636,5608,5634,5633,5630,5631,5609,5305, + 1,5308,5308,234,5308,234,234,234,234,234, + 4145,234,8857,1,5308,5308,234,5308,234,234, + 5323,234,234,1,234,8857,2861,5370,2707,5305, + 3509,2448,8,5003,98,1,1,5823,1,5367, + 5276,225,5305,5276,2024,101,45,45,4177,5414, + 304,5317,557,5370,5314,1994,2861,5868,2707,123, + 5673,2448,5370,5389,5390,3723,5370,731,418,2861, + 2746,2707,5370,133,2448,3528,1,5370,5370,122, + 1284,3770,5006,364,224,3723,5370,5868,5370,3779, + 1,5308,5308,234,5308,234,234,5311,234,234, + 5868,234,8857,5367,1,5308,5308,234,5308,234, + 234,5311,234,234,54,234,8857,2613,5389,5305, + 1,5308,5308,234,5308,234,234,234,234,234, + 5370,234,8857,5305,43,5157,5157,2119,5370,5157, + 672,5249,43,5157,5157,5370,2861,128,2707,5305, + 364,2448,3699,3641,51,5282,5282,5370,5389,557, + 2861,225,2707,3319,5376,2448,5370,364,2559,2532, + 5370,2976,3699,3641,41,225,2861,5868,2707,1, + 1,2448,3129,5279,79,109,5380,5376,3780,866, + 5379,5868,1,5308,5308,234,5308,234,234,234, + 234,234,5904,234,8857,447,311,5868,1,5308, + 5308,234,5308,234,234,234,234,234,2081,234, + 8857,5305,1,5370,5295,5291,5370,4868,5320,197, + 376,5375,519,197,231,2987,3013,5305,1,5370, + 1,5370,5370,3535,3066,526,5632,169,2861,5370, + 2707,232,5412,2448,5375,5370,283,5370,2554,5326, + 4809,5370,5370,5632,2861,4180,2707,5370,5370,2448, + 4828,4840,5370,5370,5635,2804,4159,2,5370,5868, + 5708,5709,5629,5636,5608,5634,5633,5630,5631,5609, + 5370,5635,1,2907,5370,5868,5370,5708,5709,5629, + 5636,5608,5634,5633,5630,5631,5609,5370,5370,5370, + 4847,4187,526,5370,169,3126,4421,5370,5370,5370, + 2447,43,3180,5370,5370,5370,5370,5370,5370,5370, + 5370,5370,5370,5370,3234,5370,5370,5370,5370,5370, + 5370,3535,1951,5370,5370,2802,5370,5370,5370,2802, + 5370,2802 }; }; public final static char termAction[] = TermAction.termAction; @@ -1710,59 +1719,59 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Asb { public final static char asb[] = {0, - 11,838,295,340,340,623,835,835,623,397, - 397,793,474,397,490,827,623,152,483,483, - 195,1,2,347,347,192,674,674,724,192, - 674,503,1067,995,1006,852,1006,589,1006,591, - 1006,990,1006,1069,192,1067,505,340,501,295, - 295,295,295,1069,501,582,136,584,153,153, - 153,153,153,153,153,153,153,677,683,688, - 685,692,690,697,695,699,698,700,239,701, - 152,152,236,715,509,509,982,1071,369,369, - 671,236,541,674,674,295,674,369,541,541, - 507,474,192,667,607,192,851,652,656,291, - 852,661,192,192,192,652,490,507,835,136, - 397,397,397,397,192,544,755,676,541,541, - 136,900,396,982,136,677,893,893,544,152, - 153,153,153,153,153,153,153,153,153,153, - 153,153,153,153,153,153,153,153,153,152, - 152,152,152,152,152,152,152,152,152,152, - 152,153,509,509,190,981,369,369,1067,236, - 236,369,541,7,485,338,667,607,851,292, - 851,652,851,661,661,192,652,192,189,541, - 541,794,794,794,794,652,541,152,153,297, - 304,1013,1013,1069,584,236,396,152,190,541, - 189,191,189,541,236,685,685,683,683,683, - 690,690,690,690,688,688,695,692,692,698, - 697,699,1083,700,541,541,1071,192,794,793, - 794,671,794,829,796,667,666,362,192,607, - 1083,592,295,654,55,1073,607,851,851,597, - 192,661,362,360,361,192,192,501,501,501, - 501,192,192,152,192,982,153,397,681,62, - 541,191,982,152,829,840,981,136,829,667, - 982,855,852,794,295,189,850,1075,186,501, - 365,424,598,192,362,153,192,152,152,152, - 152,501,501,652,190,541,681,1067,1071,192, - 190,829,840,831,190,855,855,430,623,190, - 851,851,186,720,1067,99,153,1083,103,597, - 192,1069,1069,192,541,541,541,541,544,544, - 192,681,682,681,152,62,289,677,1071,831, - 842,831,721,362,941,943,280,501,592,466, - 855,855,623,190,851,852,1069,1075,186,153, - 153,192,192,192,541,541,1048,681,544,153, - 236,289,831,842,501,429,280,941,356,1069, - 362,793,721,852,116,365,192,501,192,192, - 682,541,236,510,430,855,721,102,720,541, - 1069,192,430,988,117,1069,192,544,486,855, - 152,17,186,721,192,192,988,116,1083,153, - 1083,721,115,501,501,501,117,501,192,246, - 721,721,192,852,541,397,362,541,362,852, - 192,721,108,501,108,117,1083,117,136,136, - 134,605,136,721,721,106,988,362,17,721, - 796,117,541,186,541,134,280,501,541,988, - 17,541,541,1061,117,106,117,721,280,152, - 117,114,361,852,852,1063,152,115,544,721, - 541,719,16,117,541,721,719,719,117 + 11,533,420,16,16,438,530,530,438,722, + 722,585,559,722,575,627,438,373,568,568, + 173,1,2,68,68,413,809,809,682,809, + 413,166,588,1079,1007,1018,556,1018,629,1018, + 631,1018,1002,1018,1081,413,1079,590,16,522, + 420,420,420,420,1081,522,357,168,374,374, + 374,374,374,374,374,374,374,812,818,823, + 820,827,825,832,830,834,833,835,277,836, + 373,373,214,850,594,594,420,809,217,217, + 806,214,901,809,809,217,413,1083,996,901, + 901,592,559,413,802,422,413,555,467,471, + 416,556,476,413,413,413,467,575,592,530, + 357,722,722,722,722,413,859,901,901,357, + 914,721,996,357,812,792,792,859,373,374, + 374,374,374,374,374,374,374,374,374,374, + 374,374,374,374,374,374,374,374,373,373, + 373,373,373,373,373,373,373,373,373,373, + 374,594,594,217,217,1079,214,214,217,995, + 411,901,7,570,413,327,802,422,555,417, + 555,467,555,476,476,413,467,413,410,901, + 901,586,586,586,586,467,901,373,374,481, + 488,1025,1025,1081,168,214,721,373,901,410, + 412,410,901,214,820,820,818,818,818,825, + 825,825,825,823,823,830,827,827,833,832, + 834,647,835,901,901,586,585,586,806,586, + 1083,413,524,649,995,802,801,537,413,422, + 647,632,420,469,270,637,422,555,555,904, + 413,476,537,535,536,413,413,522,522,522, + 522,413,413,373,413,996,374,722,816,81, + 901,412,996,373,524,544,357,995,524,802, + 996,754,556,586,420,410,554,639,407,522, + 540,749,905,413,537,374,413,373,373,373, + 373,522,522,467,411,901,816,1079,1083,413, + 411,524,544,526,411,754,754,24,438,411, + 555,555,407,855,1079,118,374,647,122,904, + 413,1081,1081,413,901,901,901,901,859,859, + 413,816,817,816,373,81,275,812,1083,526, + 546,526,856,537,955,957,318,522,632,60, + 754,754,438,411,555,556,1081,639,407,374, + 374,413,413,413,901,901,1060,816,859,374, + 214,275,526,546,522,23,318,955,77,1081, + 537,585,856,556,337,540,413,522,413,413, + 817,901,214,595,24,754,856,121,855,901, + 1081,413,24,912,338,1081,413,859,571,754, + 373,128,407,856,413,413,912,337,647,374, + 647,856,336,522,522,522,338,522,413,284, + 856,856,413,556,901,722,537,901,537,556, + 413,856,329,522,329,338,647,338,357,357, + 355,799,357,856,856,125,912,537,128,856, + 649,338,901,407,901,355,318,522,901,912, + 128,901,901,1073,338,125,338,856,318,373, + 338,335,536,556,556,1075,373,336,859,856, + 901,854,127,338,901,856,854,854,338 }; }; public final static char asb[] = Asb.asb; @@ -1770,115 +1779,115 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Asr { public final static byte asr[] = {0, - 3,65,69,70,121,59,7,74,95,0, - 60,10,46,72,0,71,62,63,57,26, - 27,9,6,11,12,29,35,3,41,44, + 3,68,69,70,121,60,7,74,91,0, + 59,10,29,72,0,68,69,70,121,1, + 2,0,62,59,46,17,65,49,18,50, + 51,19,20,52,53,21,22,54,66,55, + 67,23,40,24,47,25,16,15,48,7, + 3,9,6,11,58,61,87,12,29,8, + 1,2,5,4,10,56,0,75,3,68, + 73,91,70,74,11,60,7,62,69,0, + 92,90,13,14,93,94,88,89,68,95, + 96,97,98,99,100,101,102,107,91,108, + 109,110,111,112,113,114,115,116,117,118, + 74,71,1,2,4,9,6,73,60,44, + 3,7,70,11,69,0,71,57,26,27, + 9,6,13,14,30,35,3,4,41,45, 42,43,28,38,33,37,16,25,15,21, - 19,20,22,23,18,17,24,32,36,34, - 31,39,64,7,8,1,2,5,4,10, - 0,96,90,11,12,91,92,88,89,65, - 93,94,97,98,99,100,101,102,117,95, - 104,105,106,107,108,109,110,111,112,113, - 118,74,71,1,2,4,9,6,73,59, - 30,3,7,70,13,69,0,87,114,115, - 116,46,73,119,122,71,72,75,58,56, - 61,77,79,85,83,76,81,82,84,86, - 64,78,80,13,7,48,60,45,66,49, - 14,50,51,52,53,54,67,55,68,40, - 47,57,62,63,10,32,36,34,31,39, - 16,25,15,21,19,20,22,23,18,17, - 24,41,44,42,43,28,38,33,37,26, - 27,11,12,29,35,9,6,3,4,8, - 5,1,2,0,62,63,3,10,32,36, - 34,31,39,16,25,15,21,19,20,22, - 23,18,17,24,41,44,42,43,28,38, - 33,37,5,8,4,26,27,9,6,11, - 12,29,35,1,2,118,7,0,65,73, - 95,70,118,74,71,15,16,31,62,17, - 32,33,18,19,20,63,34,21,22,35, - 36,37,57,38,39,10,23,24,25,41, - 42,43,28,26,27,11,12,29,44,7, - 9,6,4,13,1,2,8,3,5,0, - 4,7,73,64,30,0,7,73,118,74, - 13,70,0,48,15,16,45,17,49,14, - 18,50,51,19,20,52,8,53,21,22, - 54,55,23,40,24,47,25,1,2,7, - 59,9,5,4,74,13,3,6,0,65, - 69,70,121,1,2,0,75,3,65,73, - 95,70,74,13,59,7,64,69,0,69, - 70,71,7,0,7,64,70,0,31,62, - 32,33,63,8,34,35,36,37,57,38, - 39,41,42,43,28,26,27,9,6,11, - 12,5,29,65,44,3,48,15,16,60, - 45,17,66,49,14,18,50,51,19,20, - 52,53,21,22,54,67,55,10,68,23, - 24,47,25,1,2,4,40,0,64,60, - 45,17,66,49,18,50,51,19,20,52, - 53,21,22,54,67,55,68,23,40,24, - 47,25,16,15,48,7,3,9,6,13, - 58,61,87,14,46,8,1,2,5,4, - 10,56,0,9,6,4,3,5,8,59, - 1,2,65,69,95,74,7,70,0,7, - 65,70,74,121,1,2,9,6,4,59, - 3,0,8,5,3,59,6,9,95,48, - 15,16,60,45,17,66,49,14,18,50, - 51,19,20,52,53,21,22,54,67,55, - 10,68,23,40,24,47,25,1,2,4, - 74,7,0,7,74,15,16,31,17,32, - 33,18,19,20,34,21,22,35,36,37, + 19,20,22,23,18,17,24,10,32,36, + 34,31,39,62,7,8,5,1,2,64, + 63,0,63,64,3,10,32,36,34,31, + 39,16,25,15,21,19,20,22,23,18, + 17,24,41,45,42,43,28,38,33,37, + 5,8,4,26,27,9,6,13,14,30, + 35,1,2,118,7,0,48,15,16,59, + 46,31,63,17,32,65,49,12,33,18, + 50,51,19,20,52,64,53,34,21,22, + 35,54,36,66,37,57,38,55,39,67, + 23,40,24,47,25,41,42,43,28,3, + 26,27,9,6,13,14,30,68,45,8, + 1,2,4,10,5,0,68,73,91,70, + 118,74,71,15,16,31,63,17,32,33, + 18,19,20,64,34,21,22,35,36,37, 57,38,39,10,23,24,25,41,42,43, - 28,3,26,27,9,6,11,12,29,4, - 44,5,8,1,2,63,62,0,46,73, - 4,64,7,1,2,0,40,1,2,4, - 114,115,116,0,76,0,87,56,8,114, - 115,116,58,7,3,9,6,5,73,71, - 13,72,48,15,16,60,45,17,66,49, - 14,18,50,51,19,20,52,53,21,22, - 54,67,55,10,68,23,40,24,47,25, - 4,1,2,46,0,4,7,73,64,0, - 1,2,7,71,0,57,45,8,47,5, - 1,2,4,75,64,121,120,103,26,27, - 59,3,96,90,6,91,92,11,12,89, - 88,30,93,94,97,98,9,99,100,101, - 65,95,74,69,104,105,106,107,108,109, - 110,111,112,113,73,118,102,117,71,70, - 13,7,0,48,15,16,60,45,17,66, - 49,14,18,50,51,19,20,52,53,21, - 22,54,67,55,10,68,23,40,24,47, - 25,1,2,4,63,62,11,12,6,91, - 92,99,9,100,5,29,69,30,107,108, - 104,105,106,112,111,113,89,88,109,110, - 97,98,93,94,101,102,26,27,90,103, - 3,59,70,65,0,48,15,16,45,17, - 66,49,14,18,50,51,19,20,52,53, - 21,22,54,67,55,10,68,23,40,24, - 47,25,1,2,4,95,60,0,45,47, - 57,7,95,74,65,70,69,121,0,45, - 47,57,3,65,95,69,70,74,13,75, - 73,64,7,0,61,48,15,16,60,45, - 17,66,49,87,14,18,50,51,19,20, - 52,56,53,21,22,54,67,55,10,68, - 23,58,40,24,47,25,7,3,9,6, - 71,13,8,4,46,5,1,2,0,62, - 63,26,27,9,6,11,12,5,29,35, - 3,4,8,41,44,42,43,38,33,37, - 16,25,15,21,19,20,22,23,18,17, - 24,10,32,36,34,31,39,59,1,2, - 28,0,60,45,17,66,49,18,50,51, - 19,20,52,53,21,22,54,67,55,10, - 68,23,40,24,47,25,16,15,48,7, - 3,9,13,58,56,61,87,14,30,4, - 6,8,1,2,5,46,0,119,0,10, - 66,60,67,68,16,25,15,21,19,20, - 22,23,18,17,24,75,73,95,118,71, - 64,121,120,96,103,90,26,27,11,12, - 91,92,88,89,30,65,93,94,97,98, - 99,100,101,102,117,69,104,105,106,107, - 108,109,110,111,112,113,70,48,45,49, - 14,50,51,52,53,54,55,40,47,13, - 7,74,3,59,8,5,6,9,1,2, - 4,0,13,7,8,5,3,1,2,6, - 9,4,73,0 + 28,26,27,13,14,30,45,7,9,11, + 5,8,1,2,4,3,6,0,87,103, + 104,105,29,73,119,122,71,72,75,58, + 56,61,77,79,85,83,76,81,82,84, + 86,62,78,80,11,7,48,59,46,65, + 49,12,50,51,52,53,54,66,55,67, + 40,47,57,63,64,10,32,36,34,31, + 39,16,25,15,21,19,20,22,23,18, + 17,24,41,45,42,43,28,38,33,37, + 26,27,13,14,30,35,9,6,3,4, + 8,5,1,2,0,4,7,73,62,44, + 0,87,56,8,103,104,105,58,7,3, + 9,6,5,73,71,11,72,48,15,16, + 59,46,17,65,49,12,18,50,51,19, + 20,52,53,21,22,54,66,55,10,67, + 23,40,24,47,25,4,1,2,29,0, + 4,7,73,62,0,1,2,7,71,0, + 7,73,118,74,11,70,0,48,15,16, + 46,17,49,12,18,50,51,19,20,52, + 8,53,21,22,54,55,23,40,24,47, + 25,1,2,7,60,9,6,5,4,74, + 11,3,0,46,47,57,7,91,74,68, + 70,69,121,0,69,70,71,7,0,7, + 62,70,0,46,47,57,3,68,91,69, + 70,74,11,75,73,62,7,0,9,6, + 3,8,5,60,4,1,2,68,69,91, + 74,7,70,0,7,74,121,1,2,9, + 6,4,3,60,70,68,0,5,8,3, + 60,6,9,91,48,15,16,46,17,65, + 49,12,18,50,51,19,20,52,53,21, + 22,54,66,55,10,67,23,40,24,47, + 25,1,2,4,74,7,59,0,29,73, + 4,62,7,1,2,0,11,7,5,8, + 3,1,2,4,6,9,73,0,48,15, + 16,59,46,17,65,49,12,18,50,51, + 19,20,52,53,21,22,54,66,55,10, + 67,23,40,24,47,25,1,2,4,91, + 0,64,63,13,14,6,93,94,99,9, + 100,5,30,69,44,68,111,112,108,109, + 110,116,115,117,89,88,113,114,97,98, + 95,96,101,102,26,27,70,90,106,60, + 3,48,15,16,59,46,17,65,49,12, + 18,50,51,19,20,52,53,21,22,54, + 66,55,10,67,23,24,47,25,1,2, + 4,40,0,61,48,15,16,59,46,17, + 65,49,87,12,18,50,51,19,20,52, + 56,53,21,22,54,66,55,10,67,23, + 58,40,24,47,25,7,3,9,6,71, + 11,8,4,29,5,1,2,0,76,0, + 57,46,8,47,5,1,2,4,75,62, + 121,120,106,26,27,60,3,92,90,6, + 93,94,13,14,89,88,44,95,96,97, + 98,9,99,100,101,68,91,74,69,108, + 109,110,111,112,113,114,115,116,117,73, + 118,102,107,71,70,11,7,0,15,16, + 31,63,17,32,33,18,19,20,64,8, + 34,21,22,35,36,37,57,38,39,10, + 23,24,25,41,42,43,28,1,2,3, + 26,27,9,6,13,14,5,30,4,45, + 74,7,0,40,1,2,4,103,104,105, + 0,119,0,63,64,26,27,9,6,13, + 14,5,30,35,3,4,8,41,45,42, + 43,38,33,37,16,25,15,21,19,20, + 22,23,18,17,24,10,32,36,34,31, + 39,60,1,2,28,0,59,46,17,65, + 49,18,50,51,19,20,52,53,21,22, + 54,66,55,10,67,23,40,24,47,25, + 16,15,48,7,3,9,11,58,56,61, + 87,12,44,4,6,8,5,29,1,2, + 0,10,65,59,66,67,16,25,15,21, + 19,20,22,23,18,17,24,75,73,91, + 118,71,62,121,120,92,106,90,26,27, + 13,14,93,94,88,89,44,68,95,96, + 97,98,99,100,101,102,107,69,108,109, + 110,111,112,113,114,115,116,117,70,48, + 46,49,12,50,51,52,53,54,55,40, + 47,11,7,74,3,60,5,8,6,9, + 1,2,4,0 }; }; public final static byte asr[] = Asr.asr; @@ -1886,59 +1895,59 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Nasb { public final static char nasb[] = {0, - 53,12,12,95,95,142,12,12,252,37, - 37,12,135,5,106,12,252,64,12,12, - 81,13,13,13,13,44,12,12,204,217, - 12,134,191,240,241,124,241,159,241,144, - 241,234,12,10,44,191,105,95,12,12, - 12,12,12,68,12,57,272,44,64,64, - 213,64,64,64,64,64,64,12,12,12, - 12,12,12,12,12,12,12,12,64,12, - 64,64,86,12,142,142,117,12,142,142, - 88,86,229,12,12,12,12,142,229,229, - 263,194,44,142,142,161,142,220,142,12, - 124,142,220,44,11,12,164,263,12,272, - 37,37,37,37,44,154,206,12,229,229, - 1,64,47,117,272,12,15,15,154,102, - 64,64,64,64,64,64,64,64,64,64, - 64,64,64,64,64,64,64,64,64,64, - 64,64,64,64,64,64,64,64,64,64, - 102,64,252,252,200,40,32,32,191,86, - 86,32,229,12,12,12,157,243,142,142, - 30,25,30,142,218,11,25,161,199,229, - 229,12,12,12,12,116,229,64,64,12, - 12,12,12,10,44,86,37,148,200,229, - 199,44,199,229,86,12,12,12,12,12, + 25,12,12,27,27,117,12,12,165,34, + 34,12,97,5,156,12,165,57,12,12, + 79,23,23,23,23,220,12,12,135,12, + 160,102,96,177,238,239,144,239,106,239, + 63,239,232,12,10,160,177,155,27,12, + 12,12,12,12,61,12,248,160,57,57, + 216,57,57,57,57,57,57,12,12,12, + 12,12,12,12,12,12,12,12,57,12, + 57,57,84,12,117,117,12,12,117,117, + 76,84,264,12,12,117,11,12,44,264, + 264,119,146,160,117,117,108,117,252,117, + 12,144,117,252,160,11,12,180,119,12, + 248,34,34,34,34,160,204,264,264,1, + 57,67,44,248,12,17,17,204,129,57, + 57,57,57,57,57,57,57,57,57,57, + 57,57,57,57,57,57,57,57,57,57, + 57,57,57,57,57,57,57,57,57,129, + 57,165,165,29,29,177,84,84,29,193, + 102,264,12,12,160,12,170,241,117,117, + 15,49,15,117,221,11,49,108,101,264, + 264,12,12,12,12,43,264,57,57,12, + 12,12,12,10,160,84,34,39,264,101, + 160,101,264,84,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,229,229,12,11,12,12, - 12,166,12,142,252,142,157,176,44,180, - 12,112,12,12,70,255,243,30,30,169, - 161,218,176,12,12,161,44,12,12,12, - 12,161,11,64,44,117,64,37,142,72, - 229,131,117,64,142,142,40,32,157,157, - 117,142,124,12,12,68,142,185,137,12, - 12,68,75,220,176,64,218,102,102,102, - 102,12,12,115,161,229,77,166,12,217, - 161,157,157,142,200,208,142,126,142,220, - 142,55,196,180,191,12,64,12,28,49, - 220,68,68,11,229,229,229,229,154,154, - 161,142,110,12,102,166,132,12,12,142, - 142,97,180,176,12,126,256,12,145,70, - 126,208,252,200,55,182,21,137,196,64, - 64,11,220,220,229,229,12,77,154,64, - 86,132,97,97,12,123,185,12,12,68, - 176,12,180,182,175,12,220,12,11,11, - 110,229,86,227,126,142,180,91,12,229, - 68,220,126,142,99,21,11,154,229,208, - 148,62,137,180,220,113,173,119,12,64, - 12,180,12,12,12,12,120,12,218,178, - 180,180,218,151,229,37,176,229,142,124, - 113,180,79,12,12,120,12,120,223,223, - 250,12,223,180,180,12,142,176,142,180, - 37,120,229,137,229,268,142,12,229,173, - 62,229,229,142,120,12,120,180,137,102, - 120,79,176,151,151,135,64,12,231,180, - 229,93,61,120,229,180,93,12,120 + 12,12,12,264,264,12,12,12,152,12, + 12,11,117,165,44,117,170,186,160,199, + 12,132,12,12,13,111,241,15,15,207, + 108,221,186,12,12,108,160,12,12,12, + 12,108,11,57,160,44,57,34,117,46, + 264,188,44,57,117,117,29,193,170,170, + 44,117,144,12,12,61,117,172,99,12, + 12,61,191,252,186,57,221,129,129,129, + 129,12,12,42,108,264,124,152,12,220, + 108,170,170,117,102,211,117,223,117,252, + 117,90,148,199,177,12,57,12,52,228, + 252,61,61,11,264,264,264,264,204,204, + 108,117,94,12,129,152,189,12,12,117, + 117,37,199,186,12,223,112,12,64,13, + 223,211,165,102,90,201,72,99,148,57, + 57,11,252,252,264,264,12,124,204,57, + 84,189,37,37,12,143,172,12,12,61, + 186,12,199,201,185,12,252,12,11,11, + 94,264,84,262,223,117,199,86,12,264, + 61,252,223,117,126,72,11,204,264,211, + 39,55,99,199,252,133,92,139,12,57, + 12,199,12,12,12,12,140,12,221,197, + 199,199,221,69,264,34,186,264,117,144, + 133,199,88,12,12,140,12,140,266,266, + 163,12,266,199,199,12,117,186,117,199, + 34,140,264,99,264,255,117,12,264,92, + 55,264,264,117,140,12,140,199,99,129, + 140,88,186,69,69,97,57,12,259,199, + 264,168,54,140,264,199,168,12,140 }; }; public final static char nasb[] = Nasb.nasb; @@ -1946,34 +1955,33 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Nasr { public final static char nasr[] = {0, - 3,13,7,10,149,147,121,146,145,5, - 2,0,75,0,5,2,10,7,136,0, - 167,5,166,0,2,67,0,185,0,109, - 0,5,7,10,2,13,4,44,0,67, - 135,134,0,2,45,0,171,0,5,102, - 163,0,170,0,155,0,2,7,3,0, - 66,128,40,7,10,2,13,5,0,152, - 0,4,173,0,187,0,140,0,113,0, - 13,2,10,7,5,83,0,4,189,0, - 179,0,158,0,108,0,125,0,48,40, - 175,4,39,0,32,94,95,4,0,138, - 0,40,104,0,2,54,67,0,66,39, - 48,68,4,40,0,4,48,82,84,0, - 2,114,0,32,95,94,64,54,7,10, - 2,4,0,5,1,40,0,4,30,0, - 40,56,0,4,97,0,61,0,5,45, - 2,3,0,95,94,5,57,0,5,102, - 186,0,157,0,4,66,0,4,39,38, - 0,40,156,0,2,64,54,7,10,4, - 5,90,0,95,94,54,64,57,5,7, - 10,2,0,4,44,168,0,115,4,48, - 82,0,5,7,10,13,3,1,0,2, - 62,0,4,44,103,0,44,4,32,0, - 4,174,0,2,5,121,117,118,119,13, - 87,0,4,48,82,102,46,5,0,39, - 177,4,22,0,38,54,7,10,2,4, - 154,0,22,4,5,90,0,44,4,176, - 0,4,44,39,0 + 3,13,10,9,149,147,120,146,145,5, + 2,0,152,0,108,0,5,2,9,10, + 136,0,74,0,169,0,107,0,5,10, + 9,2,13,4,45,0,124,0,4,30, + 0,2,133,64,0,4,172,0,2,64, + 0,184,0,66,127,40,10,9,2,13, + 5,0,5,1,40,0,170,0,40,55, + 0,167,5,166,0,4,188,0,13,2, + 9,10,5,82,0,178,0,112,0,155, + 0,157,0,138,0,32,94,93,63,4, + 5,10,9,2,0,5,44,2,3,0, + 38,5,2,9,10,154,4,0,22,4, + 5,89,0,140,0,48,40,174,4,39, + 0,40,103,0,4,45,189,0,66,39, + 48,67,4,40,0,94,93,10,9,2, + 63,5,57,0,32,93,94,4,0,44, + 2,0,39,176,4,22,0,158,0,61, + 0,2,63,9,10,4,5,89,0,94, + 93,5,57,0,4,66,0,2,113,0, + 186,0,64,135,134,0,4,39,38,0, + 40,156,0,4,96,0,5,101,185,0, + 114,4,48,81,0,5,10,9,13,3, + 1,0,4,48,81,83,0,5,101,163, + 0,2,5,120,116,117,118,13,86,0, + 4,48,81,101,46,5,0,4,45,39, + 0,2,56,0,45,4,175,0,4,173, + 0,45,4,32,0,4,45,102,0 }; }; public final static char nasr[] = Nasr.nasr; @@ -1982,17 +1990,17 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface TerminalIndex { public final static char terminalIndex[] = {0, 113,114,2,31,13,10,115,79,9,100, - 11,12,120,66,48,52,60,68,74,75, - 86,87,102,105,107,7,8,112,14,19, + 120,66,11,12,48,52,60,68,74,75, + 86,87,102,105,107,7,8,112,93,14, 55,61,67,84,88,90,94,97,99,104, - 109,110,111,123,54,93,106,47,64,70, - 73,76,83,89,98,77,95,103,1,53, - 46,58,78,121,20,63,91,101,33,44, + 109,110,111,19,123,54,106,47,64,70, + 73,76,83,89,98,77,95,103,53,1, + 46,121,58,78,63,91,101,20,33,44, 119,122,30,118,96,108,49,50,56,57, 59,69,71,72,85,92,65,17,18,6, - 15,16,21,22,32,4,23,24,25,26, - 27,28,5,34,35,36,37,38,39,40, - 41,42,43,80,81,82,29,117,51,3, + 32,4,15,16,21,22,23,24,25,26, + 27,28,80,81,82,5,29,34,35,36, + 37,38,39,40,41,42,43,117,51,3, 124,62,116 }; }; @@ -2001,26 +2009,26 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface NonterminalIndex { public final static char nonterminalIndex[] = {0, - 132,137,139,0,0,138,236,136,0,230, - 135,0,146,134,0,0,145,151,0,0, - 152,182,161,162,163,164,165,166,167,154, - 168,127,169,170,171,0,144,129,133,130, - 172,0,141,155,140,180,0,0,0,0, - 0,0,0,0,148,175,158,0,205,0, - 189,0,202,206,0,128,0,174,0,0, - 0,0,0,0,207,178,0,0,0,0, - 0,0,126,131,0,0,188,0,0,203, - 213,160,209,210,211,0,0,0,0,149, - 208,221,177,198,0,0,212,0,0,0, - 0,241,242,150,181,0,191,192,193,194, - 195,197,200,0,0,215,218,0,220,0, - 239,240,0,142,143,147,0,0,157,159, - 0,173,0,183,184,185,186,187,190,0, - 196,0,199,204,0,216,217,0,0,222, - 225,227,229,0,233,234,235,237,238,125, - 0,153,156,0,176,0,179,0,201,214, - 219,0,223,224,226,228,0,231,232,243, - 244,0,0,0,0,0,0 + 132,137,138,0,0,136,0,0,229,235, + 135,0,145,134,0,0,144,150,0,0, + 151,181,160,161,162,163,164,165,166,153, + 167,127,168,143,169,170,0,129,133,130, + 171,0,140,139,154,179,0,0,0,0, + 0,0,0,147,174,0,157,0,204,0, + 188,201,205,0,0,128,173,0,0,0, + 0,0,0,206,177,0,0,0,0,0, + 0,126,131,0,0,187,0,0,202,212, + 159,208,209,210,0,0,148,0,0,207, + 220,176,197,0,0,211,0,0,0,0, + 240,241,149,180,0,190,191,192,193,194, + 196,199,0,0,214,217,0,219,0,238, + 239,0,0,141,142,146,0,0,156,158, + 0,172,0,182,183,184,185,186,189,0, + 195,0,198,203,0,215,216,0,0,221, + 224,226,228,0,232,233,234,237,125,0, + 152,155,0,175,0,178,0,200,213,218, + 0,222,223,225,227,0,230,231,236,242, + 243,0,0,0,0,0,0 }; }; public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; @@ -2028,18 +2036,18 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopePrefix { public final static char scopePrefix[] = { - 156,578,597,529,545,556,567,361,266,280, - 302,308,42,291,381,419,164,586,472,20, - 51,71,80,85,90,127,192,297,314,325, - 336,141,272,286,500,27,141,371,336,605, - 27,214,245,1,14,61,76,106,227,319, - 332,341,350,354,437,465,494,521,525,615, - 619,623,97,7,97,399,415,428,449,513, - 428,536,552,563,574,204,483,56,56,153, - 219,222,240,261,222,222,56,358,462,469, - 153,56,636,110,233,403,443,456,116,116, - 233,56,233,390,174,104,441,627,634,627, - 634,65,409,134,104,104,250 + 156,572,591,523,539,550,561,355,262,276, + 298,304,42,287,375,413,164,580,466,20, + 51,71,80,85,90,127,192,293,310,321, + 332,141,268,282,494,27,141,365,332,599, + 27,214,241,1,14,61,76,106,315,328, + 337,344,348,431,459,488,515,519,609,613, + 617,97,7,97,393,409,422,443,507,422, + 530,546,557,568,204,477,56,56,153,219, + 222,56,236,257,222,222,56,352,456,463, + 153,56,632,110,229,397,437,450,116,116, + 229,56,229,384,174,104,435,621,628,621, + 628,65,403,134,104,104,246 }; }; public final static char scopePrefix[] = ScopePrefix.scopePrefix; @@ -2047,18 +2055,18 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeSuffix { public final static char scopeSuffix[] = { - 18,5,5,5,5,5,5,368,132,95, - 132,132,48,277,387,425,170,67,478,25, - 25,25,59,59,95,132,197,132,132,330, - 330,146,277,101,505,38,149,376,592,610, - 32,208,208,5,18,5,59,95,231,323, - 323,323,95,95,132,243,5,5,5,5, - 5,243,231,11,101,368,368,368,453,505, - 432,540,540,540,540,208,487,59,59,5, - 5,225,243,5,264,264,348,95,5,243, - 5,498,5,113,345,406,446,459,119,123, - 236,517,508,393,177,95,95,629,629,631, - 631,67,411,136,199,184,252 + 18,5,5,5,5,5,5,362,132,95, + 132,132,48,273,381,419,170,67,472,25, + 25,25,59,59,95,132,197,132,132,326, + 326,146,273,101,499,38,149,370,586,604, + 32,208,208,5,18,5,59,95,319,319, + 319,95,95,132,239,5,5,5,5,5, + 239,630,11,101,362,362,362,447,499,426, + 534,534,534,534,208,481,59,59,5,5, + 225,227,239,5,260,260,227,95,5,239, + 5,492,5,113,341,400,440,453,119,123, + 232,511,502,387,177,95,95,623,623,625, + 625,67,405,136,199,184,248 }; }; public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; @@ -2066,18 +2074,18 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeLhs { public final static char scopeLhs[] = { - 46,17,17,17,17,17,17,71,86,47, - 80,119,77,52,71,70,46,17,19,3, - 6,9,163,163,160,117,46,81,119,118, - 120,127,53,47,136,111,127,71,17,17, - 111,96,58,133,74,166,163,160,60,118, - 118,120,178,50,56,140,18,17,17,17, - 17,17,12,113,160,71,70,70,36,136, - 70,17,17,17,17,96,19,167,163,179, - 94,101,75,59,154,76,120,72,141,140, - 171,136,16,160,120,103,69,21,129,129, - 57,136,136,71,46,160,65,134,45,134, - 45,166,103,117,46,46,58 + 46,17,17,17,17,17,17,70,85,47, + 79,118,76,52,70,69,46,17,19,3, + 7,8,163,163,160,116,46,80,118,117, + 119,126,53,47,136,110,126,70,17,17, + 110,95,58,132,73,166,163,160,117,117, + 119,177,50,55,140,18,17,17,17,17, + 17,12,112,160,70,69,69,37,136,69, + 17,17,17,17,95,19,167,163,178,93, + 100,60,74,59,154,75,119,71,141,140, + 170,136,16,160,119,102,68,21,128,128, + 57,136,136,70,46,160,65,134,44,134, + 44,166,102,116,46,46,58 }; }; public final static char scopeLhs[] = ScopeLhs.scopeLhs; @@ -2085,18 +2093,18 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeLa { public final static byte scopeLa[] = { - 119,74,74,74,74,74,74,74,71,13, - 71,71,65,1,74,122,64,3,74,65, - 65,65,1,1,13,71,64,71,71,1, - 1,71,1,1,4,65,70,13,1,1, - 65,74,74,74,119,74,1,13,1,1, - 1,1,13,13,71,118,74,74,74,74, - 74,118,1,74,1,74,74,74,73,4, - 74,65,65,65,65,74,3,1,1,74, - 74,3,118,74,1,1,1,13,74,118, - 74,5,74,1,46,69,73,74,1,1, - 6,1,46,76,75,13,13,4,4,4, - 4,3,1,64,1,1,3 + 119,74,74,74,74,74,74,74,71,11, + 71,71,68,1,74,122,62,3,74,68, + 68,68,1,1,11,71,62,71,71,1, + 1,71,1,1,4,68,70,11,1,1, + 68,74,74,74,119,74,1,11,1,1, + 1,11,11,71,118,74,74,74,74,74, + 118,1,74,1,74,74,74,73,4,74, + 68,68,68,68,74,3,1,1,74,74, + 3,1,118,74,1,1,1,11,74,118, + 74,5,74,1,29,69,73,74,1,1, + 6,1,29,76,75,11,11,4,4,4, + 4,3,1,62,1,1,3 }; }; public final static byte scopeLa[] = ScopeLa.scopeLa; @@ -2104,18 +2112,18 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeStateSet { public final static char scopeStateSet[] = { - 76,232,232,232,232,232,232,86,67,76, - 65,145,65,78,86,86,76,232,232,165, - 207,208,56,56,62,145,76,65,145,145, - 145,295,78,76,101,311,295,86,232,232, - 311,303,149,46,86,26,56,62,149,145, - 145,145,22,78,29,53,232,232,232,232, - 232,232,227,6,62,86,86,86,264,101, - 86,232,232,232,232,303,232,26,56,24, - 303,305,299,149,59,154,145,86,50,53, - 104,101,232,62,145,1,86,233,145,145, + 76,234,234,234,234,234,234,86,67,76, + 65,146,65,78,86,86,76,234,234,166, + 210,210,56,56,62,146,76,65,146,146, + 146,297,78,76,101,313,297,86,234,234, + 313,305,150,46,86,26,56,62,146,146, + 146,22,78,29,53,234,234,234,234,234, + 234,214,6,62,86,86,86,266,101,86, + 234,234,234,234,305,234,26,56,24,305, + 307,150,301,150,59,155,146,86,50,53, + 104,101,234,62,146,1,86,235,146,146, 106,101,101,86,76,62,11,98,122,98, - 122,26,1,145,76,76,149 + 122,26,1,146,76,76,150 }; }; public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; @@ -2124,69 +2132,69 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeRhs { public final static char scopeRhs[] = {0, 314,3,57,0,127,0,313,3,119,0, - 127,175,0,127,179,75,0,217,0,253, - 127,30,125,0,20,0,292,127,30,46, + 127,174,0,127,178,75,0,216,0,252, + 127,44,125,0,20,0,291,127,44,29, 0,20,53,0,33,134,0,20,53,0, - 0,292,127,30,46,205,0,20,131,0, - 253,127,30,130,0,185,128,0,144,0, - 220,3,290,0,290,0,2,0,127,0, - 253,127,30,133,0,185,128,225,0,185, - 128,40,225,0,185,128,310,40,0,131, - 190,168,128,0,129,0,190,168,128,0, - 136,129,0,171,0,306,127,171,0,127, - 171,0,223,129,0,168,244,0,139,0, - 0,0,137,0,0,0,305,127,163,252, - 0,128,0,252,0,130,0,0,128,0, - 304,127,163,251,0,128,0,0,44,128, + 0,291,127,44,29,204,0,20,131,0, + 252,127,44,133,0,179,128,0,143,0, + 219,3,290,0,290,0,2,0,127,0, + 252,127,44,132,0,179,128,224,0,179, + 128,40,224,0,179,128,309,40,0,129, + 187,167,128,0,129,0,187,167,128,0, + 136,129,0,171,0,305,127,171,0,127, + 171,0,222,129,0,167,243,0,138,0, + 0,0,137,0,0,0,304,127,163,251, + 0,128,0,251,0,130,0,0,128,0, + 303,127,163,250,0,128,0,0,44,128, 0,0,153,3,0,127,279,278,127,75, - 277,171,0,278,127,75,277,171,0,216, - 0,217,0,277,171,0,96,0,0,216, - 0,217,0,204,96,0,0,216,0,217, - 0,278,127,277,171,0,216,0,204,0, - 0,216,0,228,127,3,0,127,0,0, - 0,0,0,228,127,3,217,0,224,3, - 0,213,127,0,209,0,190,168,177,0, - 136,0,168,128,0,10,0,0,0,215, - 59,0,126,0,228,127,3,182,0,182, - 0,2,0,0,127,0,0,0,0,0, - 199,3,0,202,0,239,127,163,28,14, - 0,185,128,56,58,0,198,129,0,131, - 185,128,275,58,0,185,128,275,58,0, - 185,128,69,124,56,0,239,127,163,56, - 0,239,127,163,227,56,0,273,127,163, - 124,66,0,273,127,163,66,0,185,128, - 66,0,137,0,190,185,128,244,0,139, - 0,185,128,244,0,190,168,128,10,0, - 168,128,10,0,93,139,0,149,0,266, - 127,145,0,266,127,171,0,162,85,0, - 297,161,299,300,3,82,0,127,174,0, - 299,300,3,82,0,129,0,127,174,0, - 162,3,76,191,81,0,127,129,0,191, - 81,0,108,2,133,127,129,0,226,3, - 76,0,199,167,0,33,172,0,167,0, - 178,33,172,0,226,3,86,0,191,155, - 226,3,84,0,62,174,0,226,3,84, - 0,127,174,62,174,0,298,127,163,0, - 162,0,215,78,0,30,174,0,162,117, - 158,0,30,172,0,178,3,0,127,152, - 0,220,3,0,215,59,263,0,162,59, - 0,178,3,294,63,128,0,127,0,0, - 0,0,294,63,128,0,2,148,127,0, - 0,0,0,178,3,35,0,150,0,126, - 46,168,128,0,31,150,0,93,139,31, - 150,0,223,185,128,0,149,31,150,0, - 178,3,39,0,162,3,39,0,162,3, - 65,178,30,31,0,178,30,31,0,20, - 2,133,127,0,162,3,65,178,30,34, - 0,178,30,34,0,162,3,65,178,30, - 36,0,178,30,36,0,162,3,65,178, - 30,32,0,178,30,32,0,220,3,126, - 190,168,128,10,0,126,190,168,128,10, - 0,139,2,0,127,0,220,3,125,177, - 168,128,10,0,177,168,128,10,0,137, - 2,0,127,0,220,3,136,0,220,3, - 140,0,162,59,140,0,258,0,31,0, - 31,142,0,166,0,162,3,0 + 277,171,0,278,127,75,277,171,0,215, + 0,216,0,277,171,0,96,0,0,215, + 0,216,0,203,96,0,0,215,0,216, + 0,278,127,277,171,0,215,0,203,0, + 0,215,0,227,127,3,0,127,0,0, + 0,0,0,227,127,3,216,0,223,3, + 0,212,127,0,208,0,148,0,167,128, + 0,10,0,0,0,214,60,0,126,0, + 227,127,3,182,0,182,0,2,0,0, + 127,0,0,0,0,0,198,3,0,201, + 0,238,127,163,28,12,0,179,128,56, + 58,0,197,129,0,129,179,128,275,58, + 0,179,128,275,58,0,179,128,69,124, + 56,0,238,127,163,56,0,238,127,163, + 226,56,0,273,127,163,124,65,0,273, + 127,163,65,0,179,128,65,0,137,0, + 187,179,128,243,0,138,0,179,128,243, + 0,187,167,128,10,0,167,128,10,0, + 93,138,0,266,127,145,0,266,127,171, + 0,162,85,0,296,161,298,299,3,82, + 0,127,173,0,298,299,3,82,0,129, + 0,127,173,0,162,3,76,190,81,0, + 127,129,0,190,81,0,108,2,133,127, + 129,0,225,3,76,0,198,168,0,33, + 171,0,168,0,177,33,171,0,225,3, + 86,0,190,155,225,3,84,0,62,173, + 0,225,3,84,0,127,173,62,173,0, + 297,127,163,0,162,0,214,78,0,30, + 173,0,162,107,159,0,30,171,0,177, + 3,0,127,151,0,219,3,0,214,60, + 263,0,162,60,0,177,3,293,64,128, + 0,127,0,0,0,0,293,64,128,0, + 2,147,127,0,0,0,0,177,3,35, + 0,149,0,126,29,167,128,0,31,149, + 0,93,138,31,149,0,220,179,128,0, + 148,31,149,0,177,3,39,0,162,3, + 39,0,162,3,68,177,44,31,0,177, + 44,31,0,20,2,133,127,0,162,3, + 68,177,44,34,0,177,44,34,0,162, + 3,68,177,44,36,0,177,44,36,0, + 162,3,68,177,44,32,0,177,44,32, + 0,219,3,126,187,167,128,10,0,126, + 187,167,128,10,0,138,2,0,127,0, + 219,3,125,256,167,128,10,0,256,167, + 128,10,0,137,2,0,127,0,219,3, + 136,0,219,3,140,0,162,60,140,0, + 258,0,31,0,31,141,0,166,0,136, + 0,162,3,0 }; }; public final static char scopeRhs[] = ScopeRhs.scopeRhs; @@ -2194,38 +2202,38 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeState { public final static char scopeState[] = {0, - 4641,4755,4728,4042,0,1355,3137,1260,3045,0, - 3252,3215,3161,3124,3070,3033,2979,2942,2880,2568, - 2531,4334,0,1607,0,917,627,0,3252,3215, - 3399,3188,3161,3124,3070,3033,2979,2942,2848,2880, - 2568,2531,3393,3257,0,2588,2203,2027,0,2937, - 2552,0,3156,1209,0,861,2966,0,4474,4405, - 0,4425,4267,0,4425,4267,3622,4151,4110,3612, - 4056,4044,2701,3602,0,4425,4267,3622,4151,4110, - 3612,4056,4044,2701,3602,3252,3215,3161,3124,3070, - 3033,2979,2942,2880,2568,2531,0,2594,737,0, - 800,581,0,818,0,2833,4382,3480,3222,4317, - 3401,3377,725,3182,4487,2963,3402,4433,3179,1345, - 0,4633,4619,4615,4595,4569,4565,4545,4518,4745, - 4736,4720,4513,4498,4688,4666,4248,4037,3203,3112, - 2959,2898,738,0,537,4241,2655,0,4382,4474, - 4317,4405,3402,3388,4025,4394,4216,2833,4205,3415, - 3377,2756,2644,0,4633,3131,4619,3039,2793,4615, - 4595,4569,2573,1741,1396,4565,4545,1698,1655,1612, - 4518,2709,4745,1569,4736,1526,1483,4720,3093,4513, - 4498,1440,4688,3541,4666,4248,4037,1173,3203,3112, - 2959,4241,2898,732,738,2655,925,3388,4025,4394, - 4216,2833,4382,4205,2724,4474,4317,2539,3415,3377, - 4405,2255,2167,3402,2756,2644,2079,937,662,800, - 581,633,4003,3981,1046,2269,594,2306,2395,2367, - 2338,2853,2664,2504,2477,2450,2423,3580,3556,3499, - 3352,3327,3959,3937,3915,3893,3871,3849,3827,3805, - 3783,3761,3739,1962,2218,2181,2130,2093,2042,2005, - 879,1919,1876,1265,823,743,687,1833,1790,1747, - 1704,1661,1618,1575,1532,1489,1446,1403,537,1222, - 1179,1351,1308,1136,1002,959,1091,0,2342,1999, - 1401,541,2963,3402,3388,2534,2756,2696,2644,0, - 3147,2532,2714,870,0 + 4651,4847,4840,4828,0,1732,1611,1431,1568,0, + 3504,3450,3396,3342,3288,3234,3180,3126,3070,2748, + 2671,2907,0,1340,0,2804,1127,0,3504,3450, + 2912,2716,3396,3342,3288,3234,3180,3126,1125,3070, + 2748,2671,4158,3385,0,1930,1904,725,0,2761, + 2151,0,2951,2670,0,4183,3689,0,3053,2654, + 0,4548,4449,0,4548,4449,3765,4353,4283,3755, + 4271,4189,4177,3745,0,4548,4449,3765,4353,4283, + 3755,4271,4189,4177,3745,3504,3450,3396,3342,3288, + 3234,3180,3126,3070,2748,2671,0,3352,3190,0, + 659,579,0,1070,0,2640,4576,4339,3474,4509, + 2870,3039,924,3211,2869,3075,2846,2668,3147,723, + 0,4741,4727,4716,4702,4691,4677,4666,4641,4799, + 4791,4776,4618,4614,4603,4764,4294,4557,4500,4172, + 2732,4245,2424,2887,0,535,4445,2837,0,4576, + 3053,4509,2654,2846,2822,3628,4407,4159,2640,4145, + 4381,3039,2379,2357,0,4741,3365,4727,3311,2876, + 4716,4702,4691,1380,3402,624,4677,4666,3319,3066, + 2976,4641,3158,4799,2947,4791,2892,2864,4776,2375, + 4618,4614,1384,4603,4764,3257,4294,4557,4500,735, + 4172,3212,2732,4245,4445,2424,2887,731,2837,2676, + 2244,2157,2070,2822,3628,4407,4159,2640,4576,4145, + 3053,4509,4381,3039,2654,2392,931,797,659,579, + 2846,2379,2357,3665,4123,4101,2255,2293,2327,1176, + 2503,2475,592,3013,2987,2613,2586,2559,2532,3723, + 3699,3641,3603,3578,4079,4057,4035,4013,3991,3969, + 3947,3925,3903,3881,628,1951,2206,2168,2119,2081, + 2032,1994,874,1908,1865,1254,819,740,685,1822, + 1779,1736,1693,1650,1607,1564,1521,1478,1435,1392, + 535,1210,1133,1336,1297,1038,994,951,1082,0, + 1042,870,784,583,3075,2846,2822,2868,2379,2370, + 2357,0,3240,3239,3073,614,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2233,59 +2241,59 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface InSymb { public final static char inSymb[] = {0, - 0,293,46,10,60,30,231,231,127,69, - 69,292,145,127,167,65,70,69,224,199, - 59,217,218,187,182,177,130,133,8,5, - 125,3,127,267,268,252,269,244,270,66, - 271,272,125,10,128,127,3,60,39,31, - 34,36,32,10,136,4,3,128,35,29, - 5,12,11,6,9,27,26,140,146,148, - 147,150,149,152,151,156,154,157,57,158, - 69,69,215,158,3,3,168,166,30,30, - 167,59,3,62,63,125,124,30,224,199, - 127,213,128,6,163,168,231,128,126,125, - 124,163,128,128,185,168,213,127,231,3, - 30,30,30,30,128,3,8,125,178,162, - 127,62,63,168,3,126,103,120,3,59, - 90,96,12,11,92,91,6,94,93,65, - 30,88,89,9,98,97,100,99,101,113, - 112,111,110,109,108,107,106,105,104,69, - 117,102,127,127,190,4,127,127,127,59, - 59,127,228,229,230,168,127,127,126,125, - 127,185,127,163,127,185,168,46,69,178, - 162,178,178,178,178,168,220,127,155,265, - 136,126,125,10,128,59,294,3,190,178, - 46,128,46,220,162,147,147,146,146,146, - 149,149,149,149,148,148,151,150,150,154, - 152,156,162,157,228,228,258,190,253,255, - 253,213,253,155,70,6,184,305,128,169, - 225,56,46,205,58,171,307,127,127,73, - 190,127,273,124,274,190,128,65,65,65, - 65,190,177,70,128,168,206,3,295,167, - 153,185,168,73,155,155,4,70,127,127, - 168,163,227,30,46,275,277,127,3,182, - 309,225,40,128,273,69,70,3,3,3, - 3,126,125,168,46,178,127,127,223,5, - 46,127,127,221,190,127,163,65,30,128, - 75,127,213,306,127,125,73,285,199,70, - 128,40,310,185,162,162,162,162,3,3, - 190,155,260,263,59,180,4,124,126,221, - 221,127,131,239,14,46,171,61,56,58, - 238,127,127,185,127,278,73,70,213,73, - 69,185,128,128,220,220,126,127,3,59, + 0,292,29,10,59,44,230,230,127,69, + 69,291,145,127,168,68,70,69,223,198, + 60,216,217,186,182,5,125,132,8,133, + 128,4,3,127,267,268,251,269,243,270, + 65,271,272,125,10,128,127,3,59,39, + 31,34,36,32,10,136,3,128,35,30, + 5,14,13,6,9,27,26,140,146,148, + 147,150,149,152,151,156,154,158,57,159, + 69,69,214,159,3,3,125,124,44,44, + 168,60,3,63,64,44,179,166,167,223, + 198,127,212,128,6,163,167,230,128,126, + 125,124,163,128,128,179,167,212,127,230, + 3,44,44,44,44,128,3,177,162,127, + 63,64,167,3,126,106,120,3,60,90, + 92,14,13,94,93,6,96,95,68,44, + 88,89,9,98,97,100,99,101,117,116, + 115,114,113,112,111,110,109,108,69,107, + 102,127,127,127,127,127,60,60,127,4, + 187,227,228,229,128,167,127,127,126,125, + 127,179,127,163,127,179,167,29,69,177, + 162,177,177,177,177,167,219,127,155,265, + 136,126,125,10,128,60,293,3,177,29, + 128,29,219,162,147,147,146,146,146,149, + 149,149,149,148,148,151,150,150,154,152, + 156,162,158,227,227,252,254,252,212,252, + 258,187,155,70,167,6,184,304,128,169, + 224,56,29,204,58,171,306,127,127,73, + 187,127,273,124,274,187,128,68,68,68, + 68,187,256,70,128,167,205,3,294,168, + 153,179,167,73,155,155,70,4,127,127, + 167,163,226,44,29,275,277,127,3,182, + 308,224,40,128,273,69,70,3,3,3, + 3,126,125,167,29,177,127,127,220,5, + 29,127,127,221,187,127,163,68,44,128, + 75,127,212,305,127,125,73,285,198,70, + 128,40,309,179,162,162,162,162,3,3, + 187,155,260,263,60,180,4,124,126,221, + 221,127,129,238,12,29,171,61,56,58, + 237,127,127,179,127,278,73,70,212,73, + 69,179,128,128,219,219,126,127,3,60, 162,4,127,127,57,28,127,3,124,56, - 239,292,131,278,163,289,128,290,185,185, - 260,220,215,3,127,163,266,199,276,28, - 69,128,65,279,127,70,185,3,314,127, - 3,69,70,155,128,185,127,298,80,78, + 238,291,129,278,163,289,128,290,179,179, + 260,219,214,3,127,163,266,198,276,28, + 69,128,68,279,127,70,179,3,314,127, + 3,69,70,155,128,179,127,297,80,78, 1,162,7,86,84,82,81,76,83,85, - 79,77,56,75,220,70,239,153,163,251, - 185,227,280,119,7,73,215,73,3,3, - 3,191,3,124,162,124,179,127,163,227, - 3,73,226,167,226,300,145,76,226,127, - 127,95,313,167,155,199,155,299,127,3, - 155,280,304,155,155,127,69,191,161,266, - 162,189,70,122,297,155,189,7,155 + 79,77,56,75,219,70,238,153,163,250, + 179,226,280,119,7,73,214,73,3,3, + 3,190,3,124,162,124,178,127,163,226, + 3,73,225,168,225,299,145,76,225,127, + 127,91,313,168,155,198,155,298,127,3, + 155,280,303,155,155,127,69,190,161,266, + 162,189,70,122,296,155,189,7,155 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2431,7 +2439,6 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par "qualified_or_unqualified_name", "unqualified_id_name", "identifier_name", - "operator_function_id_name", "template_id_name", "nested_name_specifier", "class_or_namespace_name", @@ -2563,18 +2570,18 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public final static int NUM_STATES = 529, NT_OFFSET = 123, - LA_STATE_OFFSET = 5808, + LA_STATE_OFFSET = 5904, MAX_LA = 2147483647, - NUM_RULES = 536, + NUM_RULES = 534, NUM_NONTERMINALS = 197, NUM_SYMBOLS = 320, SEGMENT_SIZE = 8192, - START_STATE = 870, + START_STATE = 614, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4863, - ERROR_ACTION = 5272; + ACCEPT_ACTION = 5002, + ERROR_ACTION = 5370; public final static boolean BACKTRACK = true; diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java index dd63a1558d7..2c6b6b2295d 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPTemplateTypeParameterParsersym.java @@ -22,20 +22,20 @@ public interface CPPTemplateTypeParameterParsersym { TK_case = 78, TK_catch = 119, TK_char = 16, - TK_class = 60, - TK_const = 45, + TK_class = 59, + TK_const = 46, TK_const_cast = 31, TK_continue = 79, TK_default = 80, - TK_delete = 62, + TK_delete = 63, TK_do = 81, TK_double = 17, TK_dynamic_cast = 32, TK_else = 122, - TK_enum = 66, + TK_enum = 65, TK_explicit = 49, TK_export = 87, - TK_extern = 14, + TK_extern = 12, TK_false = 33, TK_float = 18, TK_for = 82, @@ -47,11 +47,11 @@ public interface CPPTemplateTypeParameterParsersym { TK_long = 20, TK_mutable = 52, TK_namespace = 56, - TK_new = 63, + TK_new = 64, TK_operator = 8, - TK_private = 114, - TK_protected = 115, - TK_public = 116, + TK_private = 103, + TK_protected = 104, + TK_public = 105, TK_register = 53, TK_reinterpret_cast = 34, TK_return = 85, @@ -60,9 +60,9 @@ public interface CPPTemplateTypeParameterParsersym { TK_sizeof = 35, TK_static = 54, TK_static_cast = 36, - TK_struct = 67, + TK_struct = 66, TK_switch = 86, - TK_template = 46, + TK_template = 29, TK_this = 37, TK_throw = 57, TK_try = 75, @@ -70,7 +70,7 @@ public interface CPPTemplateTypeParameterParsersym { TK_typedef = 55, TK_typeid = 39, TK_typename = 10, - TK_union = 68, + TK_union = 67, TK_unsigned = 23, TK_using = 58, TK_virtual = 40, @@ -86,57 +86,57 @@ public interface CPPTemplateTypeParameterParsersym { TK_Completion = 2, TK_EndOfCompletion = 7, TK_Invalid = 123, - TK_LeftBracket = 59, + TK_LeftBracket = 60, TK_LeftParen = 3, TK_Dot = 120, - TK_DotStar = 96, - TK_Arrow = 103, + TK_DotStar = 92, + TK_Arrow = 106, TK_ArrowStar = 90, TK_PlusPlus = 26, TK_MinusMinus = 27, TK_And = 9, TK_Star = 6, - TK_Plus = 11, - TK_Minus = 12, + TK_Plus = 13, + TK_Minus = 14, TK_Tilde = 5, - TK_Bang = 29, - TK_Slash = 91, - TK_Percent = 92, + TK_Bang = 30, + TK_Slash = 93, + TK_Percent = 94, TK_RightShift = 88, TK_LeftShift = 89, - TK_LT = 30, - TK_GT = 65, - TK_LE = 93, - TK_GE = 94, + TK_LT = 44, + TK_GT = 68, + TK_LE = 95, + TK_GE = 96, TK_EQ = 97, TK_NE = 98, TK_Caret = 99, TK_Or = 100, TK_AndAnd = 101, TK_OrOr = 102, - TK_Question = 117, + TK_Question = 107, TK_Colon = 73, TK_ColonColon = 4, - TK_DotDotDot = 95, + TK_DotDotDot = 91, TK_Assign = 69, - 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_StarAssign = 108, + TK_SlashAssign = 109, + TK_PercentAssign = 110, + TK_PlusAssign = 111, + TK_MinusAssign = 112, + TK_RightShiftAssign = 113, + TK_LeftShiftAssign = 114, + TK_AndAssign = 115, + TK_CaretAssign = 116, + TK_OrAssign = 117, TK_Comma = 70, TK_RightBracket = 118, TK_RightParen = 74, TK_RightBrace = 71, - TK_SemiColon = 13, - TK_LeftBrace = 64, + TK_SemiColon = 11, + TK_LeftBrace = 62, TK_ERROR_TOKEN = 72, - TK_0 = 44, + TK_0 = 45, TK_EOF_TOKEN = 121; public final static String orderedTerminalSymbols[] = { @@ -151,10 +151,10 @@ public interface CPPTemplateTypeParameterParsersym { "operator", "And", "typename", - "Plus", - "Minus", "SemiColon", "extern", + "Plus", + "Minus", "bool", "char", "double", @@ -169,8 +169,8 @@ public interface CPPTemplateTypeParameterParsersym { "PlusPlus", "MinusMinus", "stringlit", + "template", "Bang", - "LT", "const_cast", "dynamic_cast", "false", @@ -184,9 +184,9 @@ public interface CPPTemplateTypeParameterParsersym { "integer", "floating", "charconst", + "LT", "0", "const", - "template", "volatile", "auto", "explicit", @@ -199,16 +199,16 @@ public interface CPPTemplateTypeParameterParsersym { "namespace", "throw", "using", - "LeftBracket", "class", + "LeftBracket", "asm", + "LeftBrace", "delete", "new", - "LeftBrace", - "GT", "enum", "struct", "union", + "GT", "Assign", "Comma", "RightBrace", @@ -231,19 +231,23 @@ public interface CPPTemplateTypeParameterParsersym { "RightShift", "LeftShift", "ArrowStar", + "DotDotDot", + "DotStar", "Slash", "Percent", "LE", "GE", - "DotDotDot", - "DotStar", "EQ", "NE", "Caret", "Or", "AndAnd", "OrOr", + "private", + "protected", + "public", "Arrow", + "Question", "StarAssign", "SlashAssign", "PercentAssign", @@ -254,10 +258,6 @@ public interface CPPTemplateTypeParameterParsersym { "AndAssign", "CaretAssign", "OrAssign", - "private", - "protected", - "public", - "Question", "RightBracket", "catch", "Dot",