From 0676e6587ade38cd6f63a3e827ed732955d3f536 Mon Sep 17 00:00:00 2001 From: Mike Kucera Date: Mon, 26 May 2008 21:38:36 +0000 Subject: Bug 233310, support for ambiguous template arguments for LR parser --- .../grammar/build.xml | 9 +- .../grammar/c99/C99ExpressionParser.g | 34 + .../grammar/c99/C99ExpressionStatementParser.g | 34 - .../grammar/cpp/CPPExpressionParser.g | 33 + .../grammar/cpp/CPPExpressionStatementParser.g | 33 - .../grammar/cpp/CPPGrammar.g | 5 +- .../dom/lrparser/action/BuildASTParserAction.java | 28 +- .../action/c99/C99BuildASTParserAction.java | 7 +- .../dom/lrparser/action/cpp/CPPASTNodeFactory.java | 9 + .../action/cpp/CPPBuildASTParserAction.java | 45 +- .../lrparser/action/cpp/ICPPASTNodeFactory.java | 4 + .../core/dom/lrparser/c99/C99ExpressionParser.java | 1263 ++++++++ .../dom/lrparser/c99/C99ExpressionParserprs.java | 1134 +++++++ .../dom/lrparser/c99/C99ExpressionParsersym.java | 210 ++ .../lrparser/c99/C99ExpressionStatementParser.java | 1263 -------- .../c99/C99ExpressionStatementParserprs.java | 1128 ------- .../c99/C99ExpressionStatementParsersym.java | 210 -- .../core/dom/lrparser/cpp/CPPExpressionParser.java | 2277 ++++++++++++++ .../dom/lrparser/cpp/CPPExpressionParserprs.java | 2570 ++++++++++++++++ .../dom/lrparser/cpp/CPPExpressionParsersym.java | 270 ++ .../lrparser/cpp/CPPExpressionStatementParser.java | 2270 -------------- .../cpp/CPPExpressionStatementParserprs.java | 2571 ---------------- .../cpp/CPPExpressionStatementParsersym.java | 270 -- .../lrparser/cpp/CPPNoCastExpressionParser.java | 43 +- .../lrparser/cpp/CPPNoCastExpressionParserprs.java | 2877 +++++++++--------- .../lrparser/cpp/CPPNoCastExpressionParsersym.java | 12 +- .../cpp/CPPNoFunctionDeclaratorParser.java | 43 +- .../cpp/CPPNoFunctionDeclaratorParserprs.java | 3029 ++++++++++--------- .../cpp/CPPNoFunctionDeclaratorParsersym.java | 16 +- .../internal/core/dom/lrparser/cpp/CPPParser.java | 39 +- .../core/dom/lrparser/cpp/CPPParserprs.java | 3127 ++++++++++---------- .../core/dom/lrparser/cpp/CPPParsersym.java | 10 +- .../lrparser/cpp/CPPSizeofExpressionParser.java | 43 +- .../lrparser/cpp/CPPSizeofExpressionParserprs.java | 2925 +++++++++--------- .../lrparser/cpp/CPPSizeofExpressionParsersym.java | 12 +- .../cpp/CPPTemplateTypeParameterParser.java | 43 +- .../cpp/CPPTemplateTypeParameterParserprs.java | 2910 +++++++++--------- .../cpp/CPPTemplateTypeParameterParsersym.java | 10 +- 38 files changed, 15451 insertions(+), 15365 deletions(-) create mode 100644 lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99ExpressionParser.g delete mode 100644 lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99ExpressionStatementParser.g create mode 100644 lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPExpressionParser.g delete mode 100644 lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPExpressionStatementParser.g create mode 100644 lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java create mode 100644 lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParserprs.java create mode 100644 lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParsersym.java delete mode 100644 lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionStatementParser.java delete mode 100644 lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionStatementParserprs.java delete mode 100644 lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionStatementParsersym.java create mode 100644 lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java create mode 100644 lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java create mode 100644 lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java delete mode 100644 lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java delete mode 100644 lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java delete mode 100644 lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParsersym.java (limited to 'lrparser') diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/build.xml b/lrparser/org.eclipse.cdt.core.lrparser/grammar/build.xml index 869eec9fa0b..7ce515c2c73 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/build.xml +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/build.xml @@ -49,7 +49,7 @@ - + @@ -69,7 +69,7 @@ - + @@ -79,11 +79,6 @@ - diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99ExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99ExpressionParser.g new file mode 100644 index 00000000000..e7247988162 --- /dev/null +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99ExpressionParser.g @@ -0,0 +1,34 @@ +----------------------------------------------------------------------------------- +-- 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 +----------------------------------------------------------------------------------- + +%options la=2 +%options package=org.eclipse.cdt.internal.core.dom.lrparser.c99 +%options template=btParserTemplateD.g + +-- All we need to do is import the main parser and redefine the start symbol. + + +$Import + C99Grammar.g +$End + +$Start + expression_parser_start +$End + +$Rules + + expression_parser_start + ::= expression + | ERROR_TOKEN + /. $Build consumeExpressionProblem(); $EndBuild ./ + +$End \ No newline at end of file diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99ExpressionStatementParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99ExpressionStatementParser.g deleted file mode 100644 index b61a6d6cb18..00000000000 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/c99/C99ExpressionStatementParser.g +++ /dev/null @@ -1,34 +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 ------------------------------------------------------------------------------------ - -%options la=2 -%options package=org.eclipse.cdt.internal.core.dom.lrparser.c99 -%options template=btParserTemplateD.g - --- All we need to do is import the main parser and redefine the start symbol. - - -$Import - C99Grammar.g -$End - -$Start - expression_parser_start -$End - -$Rules - - expression_parser_start - ::= expression ';' - | ERROR_TOKEN - /. $Build consumeExpressionProblem(); $EndBuild ./ - -$End \ No newline at end of file diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPExpressionParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPExpressionParser.g new file mode 100644 index 00000000000..b86d86154f9 --- /dev/null +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPExpressionParser.g @@ -0,0 +1,33 @@ +----------------------------------------------------------------------------------- +-- 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 +----------------------------------------------------------------------------------- + +%options la=2 +%options package=org.eclipse.cdt.internal.core.dom.lrparser.cpp +%options template=btParserTemplateD.g + +-- All we need to do is import the main parser and redefine the start symbol. + +$Import + CPPGrammar.g +$End + +$Start + expression_parser_start +$End + +$Rules + + expression_parser_start + ::= expression + | ERROR_TOKEN + /. $Build consumeExpressionProblem(); $EndBuild ./ + +$End \ No newline at end of file diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPExpressionStatementParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPExpressionStatementParser.g deleted file mode 100644 index e9d5c216ef8..00000000000 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPExpressionStatementParser.g +++ /dev/null @@ -1,33 +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 ------------------------------------------------------------------------------------ - -%options la=2 -%options package=org.eclipse.cdt.internal.core.dom.lrparser.cpp -%options template=btParserTemplateD.g - --- All we need to do is import the main parser and redefine the start symbol. - -$Import - CPPGrammar.g -$End - -$Start - expression_parser_start -$End - -$Rules - - expression_parser_start - ::= expression ';' - | ERROR_TOKEN - /. $Build consumeExpressionProblem(); $EndBuild ./ - -$End \ 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 634b190cd4c..3e6bd1a957f 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g +++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g @@ -1737,12 +1737,11 @@ template_argument_list_opt | $empty --- TODO there are ambiguities here, for example f, i could be variable or type --- may need to double parse template_argument ::= assignment_expression | type_id - | qualified_or_unqualified_name + /. $Build consumeTemplateArgumentTypeId(); $EndBuild ./ + --| qualified_or_unqualified_name -- accessible through assignment_expression explicit_instantiation 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 906a87f26d3..7befff977bf 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 @@ -70,6 +70,7 @@ import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; import org.eclipse.cdt.core.parser.IProblem; import org.eclipse.cdt.core.parser.util.DebugUtil; import org.eclipse.cdt.internal.core.dom.parser.ASTNode; +import org.eclipse.cdt.internal.core.dom.parser.ASTTranslationUnit; /** @@ -122,9 +123,9 @@ public abstract class BuildASTParserAction { /** - * Get the parser that will recognize expression statements. + * Get the parser that will recognize expressions. */ - protected abstract IParser getExpressionStatementParser(); + protected abstract IParser getExpressionParser(); /** @@ -260,12 +261,19 @@ public abstract class BuildASTParserAction { } + /** + * Runs the given parser on the given token list. + * + */ + protected IASTNode runSecondaryParser(IParser secondaryParser) { + return runSecondaryParser(secondaryParser, parser.getRuleTokens()); + } + + /** * Runs the given parser on the tokens that make up the current rule. */ - protected IASTNode runSecondaryParser(IParser secondaryParser) { - List tokens = parser.getRuleTokens(); - + protected IASTNode runSecondaryParser(IParser secondaryParser, List tokens) { // the secondary parser will alter the token kinds, which will need to be undone int[] savedKinds = new int[tokens.size()]; @@ -430,6 +438,9 @@ public abstract class BuildASTParserAction { */ private void resolveAmbiguityNodes() { tu.accept(EMPTY_VISITOR); + if (tu instanceof ASTTranslationUnit) { + ((ASTTranslationUnit)tu).cleanupAfterAmbiguityResolution(); + } } @@ -469,8 +480,11 @@ public abstract class BuildASTParserAction { // attempt to also parse the tokens as an expression IASTExpressionStatement expressionStatement = null; if(decl instanceof IASTSimpleDeclaration) { - IParser expressionParser = getExpressionStatementParser(); - IASTExpression expr = (IASTExpression) runSecondaryParser(expressionParser); + List expressionTokens = parser.getRuleTokens(); + expressionTokens = expressionTokens.subList(0, expressionTokens.size()-1); // remove the semicolon at the end + + IParser expressionParser = getExpressionParser(); + IASTExpression expr = (IASTExpression) runSecondaryParser(expressionParser, expressionTokens); if(expr != null && !(expr instanceof IASTProblemExpression)) { // the parse may fail expressionStatement = nodeFactory.newExpressionStatement(expr); diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java index a0236549548..cd79d57abf8 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java @@ -62,7 +62,7 @@ import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; import org.eclipse.cdt.core.parser.util.CollectionUtils; import org.eclipse.cdt.core.parser.util.DebugUtil; -import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99ExpressionStatementParser; +import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99ExpressionParser; import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99NoCastExpressionParser; import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym; import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99SizeofExpressionParser; @@ -103,10 +103,9 @@ public class C99BuildASTParserAction extends BuildASTParserAction { return baseKind(token) == TK_Completion; } - @Override - protected IParser getExpressionStatementParser() { - return new C99ExpressionStatementParser(parser.getOrderedTerminalSymbols()); + protected IParser getExpressionParser() { + return new C99ExpressionParser(parser.getOrderedTerminalSymbols()); } @Override diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPASTNodeFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPASTNodeFactory.java index 3bf1c71de89..6fb0a5183b6 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPASTNodeFactory.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPASTNodeFactory.java @@ -64,6 +64,7 @@ import org.eclipse.cdt.core.dom.ast.IASTTypeIdExpression; import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression; import org.eclipse.cdt.core.dom.ast.IASTWhileStatement; import org.eclipse.cdt.core.dom.ast.IASTEnumerationSpecifier.IASTEnumerator; +import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTAmbiguousTemplateArgument; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCatchHandler; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTConstructorChainInitializer; @@ -103,6 +104,7 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTASMDeclaration; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguousDeclaration; 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; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTArrayDeclarator; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTArrayModifier; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTArraySubscriptExpression; @@ -560,6 +562,13 @@ public class CPPASTNodeFactory implements ICPPASTNodeFactory { return newCPPSimpleDeclSpecifier(); } + public ICPPASTAmbiguousTemplateArgument newAmbiguousTemplateArgument(IASTTypeId typeId, IASTIdExpression idExpression) { + ICPPASTAmbiguousTemplateArgument ambiguity = new CPPASTAmbiguousTemplateArgument(); + ambiguity.addTypeId(typeId); + ambiguity.addIdExpression(idExpression); + return ambiguity; + } + } 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 699cce7368a..76db85d0930 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 @@ -32,6 +32,7 @@ import org.eclipse.cdt.core.dom.ast.IASTFieldReference; import org.eclipse.cdt.core.dom.ast.IASTForStatement; import org.eclipse.cdt.core.dom.ast.IASTFunctionDeclarator; import org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition; +import org.eclipse.cdt.core.dom.ast.IASTIdExpression; import org.eclipse.cdt.core.dom.ast.IASTIfStatement; import org.eclipse.cdt.core.dom.ast.IASTInitializerExpression; import org.eclipse.cdt.core.dom.ast.IASTLiteralExpression; @@ -41,6 +42,7 @@ import org.eclipse.cdt.core.dom.ast.IASTParameterDeclaration; import org.eclipse.cdt.core.dom.ast.IASTPointer; import org.eclipse.cdt.core.dom.ast.IASTPointerOperator; import org.eclipse.cdt.core.dom.ast.IASTProblemDeclaration; +import org.eclipse.cdt.core.dom.ast.IASTProblemExpression; import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclSpecifier; import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration; import org.eclipse.cdt.core.dom.ast.IASTStatement; @@ -49,6 +51,7 @@ import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit; import org.eclipse.cdt.core.dom.ast.IASTTypeId; import org.eclipse.cdt.core.dom.ast.IASTUnaryExpression; import org.eclipse.cdt.core.dom.ast.IASTWhileStatement; +import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTAmbiguousTemplateArgument; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCatchHandler; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTConstructorChainInitializer; @@ -91,13 +94,14 @@ import org.eclipse.cdt.core.dom.lrparser.action.BuildASTParserAction; import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; import org.eclipse.cdt.core.parser.util.DebugUtil; -import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPExpressionStatementParser; +import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPExpressionParser; import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPNoCastExpressionParser; import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPNoFunctionDeclaratorParser; import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym; import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPSizeofExpressionParser; import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPTemplateTypeParameterParser; import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguityParent; +import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguousTemplateArgument; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTQualifiedName; import org.eclipse.cdt.internal.core.dom.parser.cpp.OverloadableOperator; @@ -141,8 +145,8 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { @Override - protected IParser getExpressionStatementParser() { - return new CPPExpressionStatementParser(parser.getOrderedTerminalSymbols()); + protected IParser getExpressionParser() { + return new CPPExpressionParser(parser.getOrderedTerminalSymbols()); } @Override @@ -386,8 +390,10 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { for(Object arg : templateArguments) { if(arg instanceof IASTExpression) templateId.addTemplateArgument((IASTExpression)arg); - else + else if(arg instanceof IASTTypeId) templateId.addTemplateArgument((IASTTypeId)arg); + else if(arg instanceof ICPPASTAmbiguousTemplateArgument) + templateId.addTemplateArgument((ICPPASTAmbiguousTemplateArgument)arg); } setOffsetAndLength(templateId); @@ -397,6 +403,32 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { } + /** + * Disambiguates template arguments. + */ + public void consumeTemplateArgumentTypeId() { + if(TRACE_ACTIONS) DebugUtil.printMethodTrace(); + + IParser secondaryParser = getExpressionParser(); + IASTNode result = runSecondaryParser(secondaryParser); + + // The grammar rule allows assignment_expression, but the ambiguity + // only arises with id_expressions. + if(!(result instanceof IASTIdExpression)) + return; + + IASTTypeId typeId = (IASTTypeId) astStack.pop(); + IASTIdExpression idExpression = (IASTIdExpression) result; + + ICPPASTAmbiguousTemplateArgument ambiguityNode = nodeFactory.newAmbiguousTemplateArgument(typeId, idExpression); + //setOffsetAndLength(ambiguityNode); + + astStack.push(ambiguityNode); + + if(TRACE_AST_STACK) System.out.println(astStack); + } + + /** * operator_id * ::= 'operator' overloadable_operator @@ -1170,7 +1202,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { IASTName typeName = findFirstAndRemove(topScope, IASTName.class); // TODO what does the second argument mean? - ICPPASTNamedTypeSpecifier declSpec = nodeFactory.newCPPNamedTypeSpecifier(typeName, true); + ICPPASTNamedTypeSpecifier declSpec = nodeFactory.newCPPNamedTypeSpecifier(typeName, false); // now apply the rest of the specifiers for(Object token : topScope) @@ -1836,6 +1868,9 @@ public class CPPBuildASTParserAction extends BuildASTParserAction { if(TRACE_AST_STACK) System.out.println(astStack); } + + + } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ICPPASTNodeFactory.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ICPPASTNodeFactory.java index 618cc58567b..e595eec0180 100644 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ICPPASTNodeFactory.java +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ICPPASTNodeFactory.java @@ -14,6 +14,7 @@ import org.eclipse.cdt.core.dom.ast.IASTDeclaration; import org.eclipse.cdt.core.dom.ast.IASTExpression; import org.eclipse.cdt.core.dom.ast.IASTFieldReference; import org.eclipse.cdt.core.dom.ast.IASTForStatement; +import org.eclipse.cdt.core.dom.ast.IASTIdExpression; import org.eclipse.cdt.core.dom.ast.IASTIfStatement; import org.eclipse.cdt.core.dom.ast.IASTName; import org.eclipse.cdt.core.dom.ast.IASTPointer; @@ -21,6 +22,7 @@ import org.eclipse.cdt.core.dom.ast.IASTStatement; import org.eclipse.cdt.core.dom.ast.IASTSwitchStatement; import org.eclipse.cdt.core.dom.ast.IASTTypeId; import org.eclipse.cdt.core.dom.ast.IASTWhileStatement; +import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTAmbiguousTemplateArgument; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCatchHandler; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier; import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTConstructorChainInitializer; @@ -140,4 +142,6 @@ public interface ICPPASTNodeFactory extends IASTNodeFactory { public ICPPASTTemplatedTypeTemplateParameter newTemplatedTypeTemplateParameter(IASTName name, IASTExpression idExpression); public IASTAmbiguousDeclaration newAmbiguousDeclaration(IASTDeclaration... declarations); + + public ICPPASTAmbiguousTemplateArgument newAmbiguousTemplateArgument(IASTTypeId typeId, IASTIdExpression idExpression); } diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java new file mode 100644 index 00000000000..1f440da1ec4 --- /dev/null +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParser.java @@ -0,0 +1,1263 @@ +/******************************************************************************* +* Copyright (c) 2006, 2008 IBM Corporation and others. +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* IBM Corporation - initial API and implementation +*********************************************************************************/ + +// This file was generated by LPG + +package org.eclipse.cdt.internal.core.dom.lrparser.c99; + +import lpg.lpgjavaruntime.*; + +import java.util.*; +import org.eclipse.cdt.core.dom.ast.*; +import org.eclipse.cdt.core.dom.lrparser.IParser; +import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; + +import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; +import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; + +import org.eclipse.cdt.core.dom.lrparser.action.c99.C99ASTNodeFactory; +import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction; + +public class C99ExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser +{ + private static ParseTable prs = new C99ExpressionParserprs(); + private BacktrackingParser btParser; + + public BacktrackingParser getParser() { return btParser; } + private void setResult(Object object) { btParser.setSym1(object); } + public Object getRhsSym(int i) { return btParser.getSym(i); } + + public int getRhsTokenIndex(int i) { return btParser.getToken(i); } + public IToken getRhsIToken(int i) { return super.getIToken(getRhsTokenIndex(i)); } + + public int getRhsFirstTokenIndex(int i) { return btParser.getFirstToken(i); } + public IToken getRhsFirstIToken(int i) { return super.getIToken(getRhsFirstTokenIndex(i)); } + + public int getRhsLastTokenIndex(int i) { return btParser.getLastToken(i); } + public IToken getRhsLastIToken(int i) { return super.getIToken(getRhsLastTokenIndex(i)); } + + public int getLeftSpan() { return btParser.getFirstToken(); } + public IToken getLeftIToken() { return super.getIToken(getLeftSpan()); } + + public int getRightSpan() { return btParser.getLastToken(); } + public IToken getRightIToken() { return super.getIToken(getRightSpan()); } + + public int getRhsErrorTokenIndex(int i) + { + int index = btParser.getToken(i); + IToken err = super.getIToken(index); + return (err instanceof ErrorToken ? index : 0); + } + public ErrorToken getRhsErrorIToken(int i) + { + int index = btParser.getToken(i); + IToken err = super.getIToken(index); + return (ErrorToken) (err instanceof ErrorToken ? err : null); + } + + public C99ExpressionParser(LexStream lexStream) + { + super(lexStream); + + try + { + super.remapTerminalSymbols(orderedTerminalSymbols(), C99ExpressionParserprs.EOFT_SYMBOL); + } + catch(NullExportedSymbolsException e) { + } + catch(NullTerminalSymbolsException e) { + } + catch(UnimplementedTerminalsException e) + { + java.util.ArrayList unimplemented_symbols = e.getSymbols(); + System.out.println("The Lexer will not scan the following token(s):"); + for (int i = 0; i < unimplemented_symbols.size(); i++) + { + Integer id = (Integer) unimplemented_symbols.get(i); + System.out.println(" " + C99ExpressionParsersym.orderedTerminalSymbols[id.intValue()]); + } + System.out.println(); + } + catch(UndefinedEofSymbolException e) + { + throw new Error(new UndefinedEofSymbolException + ("The Lexer does not implement the Eof symbol " + + C99ExpressionParsersym.orderedTerminalSymbols[C99ExpressionParserprs.EOFT_SYMBOL])); + } + } + + public String[] orderedTerminalSymbols() { return C99ExpressionParsersym.orderedTerminalSymbols; } + public String getTokenKindName(int kind) { return C99ExpressionParsersym.orderedTerminalSymbols[kind]; } + public int getEOFTokenKind() { return C99ExpressionParserprs.EOFT_SYMBOL; } + public PrsStream getParseStream() { return (PrsStream) this; } + + // + // Report error message for given error_token. + // + public final void reportErrorTokenMessage(int error_token, String msg) + { + int firsttok = super.getFirstErrorToken(error_token), + lasttok = super.getLastErrorToken(error_token); + String location = super.getFileName() + ':' + + (firsttok > lasttok + ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok)) + : (super.getLine(error_token) + ":" + + super.getColumn(error_token) + ":" + + super.getEndLine(error_token) + ":" + + super.getEndColumn(error_token))) + + ": "; + super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE), location, msg); + } + + public Object parser() + { + return parser(null, 0); + } + + public Object parser(Monitor monitor) + { + return parser(monitor, 0); + } + + public Object parser(int error_repair_count) + { + return parser(null, error_repair_count); + } + + public Object parser(Monitor monitor, int error_repair_count) + { + try + { + btParser = new BacktrackingParser(monitor, (TokenStream) this, prs, (RuleAction) this); + } + catch (NotBacktrackParseTableException e) + { + throw new Error(new NotBacktrackParseTableException + ("Regenerate C99ExpressionParserprs.java with -BACKTRACK option")); + } + catch (BadParseSymFileException e) + { + throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- C99ExpressionParsersym.java")); + } + + try + { + return (Object) btParser.parse(error_repair_count); + } + catch (BadParseException e) + { + reset(e.error_token); // point to error token + DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs); + diagnoseParser.diagnose(e.error_token); + } + + return null; + } + + +private C99BuildASTParserAction action; + +public C99ExpressionParser() { // constructor +} + +private void initActions(IASTTranslationUnit tu) { + action = new C99BuildASTParserAction ( C99ASTNodeFactory.DEFAULT_INSTANCE , this, tu); +} + + +public void addToken(IToken token) { + token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called? + super.addToken(token); +} + + +public IASTCompletionNode parse(IASTTranslationUnit tu) { + // this has to be done, or... kaboom! + setStreamLength(getSize()); + initActions(tu); + + final int errorRepairCount = -1; // -1 means full error handling + parser(null, errorRepairCount); // do the actual parse + super.resetTokenStream(); // allow tokens to be garbage collected + + // the completion node may be null + IASTCompletionNode compNode = action.getASTCompletionNode(); + + //action = null; + //parserAction = null; + return compNode; +} + +// uncomment this method to use with backtracking parser +public List getRuleTokens() { + return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1)); +} + + +public IASTNode getSecondaryParseResult() { + return action.getSecondaryParseResult(); +} + +public String[] getOrderedTerminalSymbols() { + return C99ExpressionParsersym.orderedTerminalSymbols; +} + +public String getName() { + return "C99ExpressionParser"; //$NON-NLS-1$ +} + + + +private ITokenMap tokenMap = null; + +public void setTokens(List tokens) { + resetTokenStream(); + addToken(new Token(null, 0, 0, 0)); // dummy token + for(IToken token : tokens) { + token.setKind(tokenMap.mapKind(token.getKind())); + addToken(token); + } + addToken(new Token(null, 0, 0, C99ExpressionParsersym.TK_EOF_TOKEN)); +} + +public C99ExpressionParser(String[] mapFrom) { // constructor + tokenMap = new TokenMap(C99ExpressionParsersym.orderedTerminalSymbols, mapFrom); +} + + + + public void ruleAction(int ruleNumber) + { + switch (ruleNumber) + { + + // + // Rule 1: ::= $Empty + // + case 1: { action. openASTScope(); break; + } + + // + // Rule 10: literal ::= integer + // + case 10: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break; + } + + // + // Rule 11: literal ::= floating + // + case 11: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break; + } + + // + // Rule 12: literal ::= charconst + // + case 12: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break; + } + + // + // Rule 13: literal ::= stringlit + // + case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break; + } + + // + // Rule 15: primary_expression ::= primary_expression_id + // + case 15: { action. consumeExpressionID(); break; + } + + // + // Rule 16: primary_expression ::= ( expression ) + // + case 16: { action. consumeExpressionBracketed(); break; + } + + // + // Rule 20: postfix_expression ::= postfix_expression [ expression ] + // + case 20: { action. consumeExpressionArraySubscript(); break; + } + + // + // Rule 21: postfix_expression ::= postfix_expression ( expression_list_opt ) + // + case 21: { action. consumeExpressionFunctionCall(); break; + } + + // + // Rule 22: postfix_expression ::= postfix_expression . member_name + // + case 22: { action. consumeExpressionFieldReference(false); break; + } + + // + // Rule 23: postfix_expression ::= postfix_expression -> member_name + // + case 23: { action. consumeExpressionFieldReference(true); break; + } + + // + // Rule 24: postfix_expression ::= postfix_expression ++ + // + case 24: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; + } + + // + // Rule 25: postfix_expression ::= postfix_expression -- + // + case 25: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; + } + + // + // Rule 26: postfix_expression ::= ( type_name ) { initializer_list comma_opt } + // + case 26: { action. consumeExpressionTypeIdInitializer(); break; + } + + // + // Rule 32: unary_expression ::= ++ unary_expression + // + case 32: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; + } + + // + // Rule 33: unary_expression ::= -- unary_expression + // + case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; + } + + // + // Rule 34: unary_expression ::= & cast_expression + // + case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; + } + + // + // Rule 35: unary_expression ::= * cast_expression + // + case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; + } + + // + // Rule 36: unary_expression ::= + cast_expression + // + case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; + } + + // + // Rule 37: unary_expression ::= - cast_expression + // + case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; + } + + // + // Rule 38: unary_expression ::= ~ cast_expression + // + case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; + } + + // + // Rule 39: unary_expression ::= ! cast_expression + // + case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; + } + + // + // Rule 40: unary_expression ::= sizeof unary_expression + // + case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; + } + + // + // Rule 41: unary_expression ::= sizeof ( type_name ) + // + case 41: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break; + } + + // + // Rule 43: cast_expression ::= ( type_name ) cast_expression + // + case 43: { action. consumeExpressionCast(IASTCastExpression.op_cast); break; + } + + // + // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression + // + case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; + } + + // + // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression + // + case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; + } + + // + // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression + // + case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; + } + + // + // Rule 49: additive_expression ::= additive_expression + multiplicative_expression + // + case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; + } + + // + // Rule 50: additive_expression ::= additive_expression - multiplicative_expression + // + case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; + } + + // + // Rule 52: shift_expression ::= shift_expression << additive_expression + // + case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; + } + + // + // Rule 53: shift_expression ::= shift_expression >> additive_expression + // + case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; + } + + // + // Rule 55: relational_expression ::= relational_expression < shift_expression + // + case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; + } + + // + // Rule 56: relational_expression ::= relational_expression > shift_expression + // + case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; + } + + // + // Rule 57: relational_expression ::= relational_expression <= shift_expression + // + case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; + } + + // + // Rule 58: relational_expression ::= relational_expression >= shift_expression + // + case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; + } + + // + // Rule 60: equality_expression ::= equality_expression == relational_expression + // + case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; + } + + // + // Rule 61: equality_expression ::= equality_expression != relational_expression + // + case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; + } + + // + // Rule 63: AND_expression ::= AND_expression & equality_expression + // + case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; + } + + // + // Rule 65: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression + // + case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; + } + + // + // Rule 67: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression + // + case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; + } + + // + // Rule 69: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression + // + case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; + } + + // + // Rule 71: logical_OR_expression ::= logical_OR_expression || logical_AND_expression + // + case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; + } + + // + // Rule 73: conditional_expression ::= logical_OR_expression ? expression : conditional_expression + // + case 73: { action. consumeExpressionConditional(); break; + } + + // + // Rule 75: assignment_expression ::= unary_expression = assignment_expression + // + case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; + } + + // + // Rule 76: assignment_expression ::= unary_expression *= assignment_expression + // + case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; + } + + // + // Rule 77: assignment_expression ::= unary_expression /= assignment_expression + // + case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; + } + + // + // Rule 78: assignment_expression ::= unary_expression %= assignment_expression + // + case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; + } + + // + // Rule 79: assignment_expression ::= unary_expression += assignment_expression + // + case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; + } + + // + // Rule 80: assignment_expression ::= unary_expression -= assignment_expression + // + case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; + } + + // + // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression + // + case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; + } + + // + // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression + // + case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; + } + + // + // Rule 83: assignment_expression ::= unary_expression &= assignment_expression + // + case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; + } + + // + // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression + // + case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; + } + + // + // Rule 85: assignment_expression ::= unary_expression |= assignment_expression + // + case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; + } + + // + // Rule 88: expression_list ::= expression_list_actual + // + case 88: { action. consumeExpressionList(); break; + } + + // + // Rule 90: expression_list_opt ::= $Empty + // + case 90: { action. consumeEmpty(); break; + } + + // + // Rule 100: statement ::= ERROR_TOKEN + // + case 100: { action. consumeStatementProblem(); break; + } + + // + // Rule 101: labeled_statement ::= identifier_or_typedefname : statement + // + case 101: { action. consumeStatementLabeled(); break; + } + + // + // Rule 102: labeled_statement ::= case constant_expression : + // + case 102: { action. consumeStatementCase(); break; + } + + // + // Rule 103: labeled_statement ::= default : + // + case 103: { action. consumeStatementDefault(); break; + } + + // + // Rule 104: compound_statement ::= { } + // + case 104: { action. consumeStatementCompoundStatement(false); break; + } + + // + // Rule 105: compound_statement ::= { block_item_list } + // + case 105: { action. consumeStatementCompoundStatement(true); break; + } + + // + // Rule 109: block_item ::= declaration + // + case 109: { action. consumeStatementDeclarationWithDisambiguation(); break; + } + + // + // Rule 110: expression_statement ::= ; + // + case 110: { action. consumeStatementNull(); break; + } + + // + // Rule 111: expression_statement ::= expression_in_statement ; + // + case 111: { action. consumeStatementExpression(); break; + } + + // + // Rule 112: selection_statement ::= if ( expression ) statement + // + case 112: { action. consumeStatementIf(false); break; + } + + // + // Rule 113: selection_statement ::= if ( expression ) statement else statement + // + case 113: { action. consumeStatementIf(true); break; + } + + // + // Rule 114: selection_statement ::= switch ( expression ) statement + // + case 114: { action. consumeStatementSwitch(); break; + } + + // + // Rule 116: expression_opt ::= $Empty + // + case 116: { action. consumeEmpty(); break; + } + + // + // Rule 117: iteration_statement ::= do statement while ( expression ) ; + // + case 117: { action. consumeStatementDoLoop(); break; + } + + // + // Rule 118: iteration_statement ::= while ( expression ) statement + // + case 118: { action. consumeStatementWhileLoop(); break; + } + + // + // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement + // + case 119: { action. consumeStatementForLoop(); break; + } + + // + // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement + // + case 120: { action. consumeStatementForLoop(); break; + } + + // + // Rule 121: jump_statement ::= goto identifier_or_typedefname ; + // + case 121: { action. consumeStatementGoto(); break; + } + + // + // Rule 122: jump_statement ::= continue ; + // + case 122: { action. consumeStatementContinue(); break; + } + + // + // Rule 123: jump_statement ::= break ; + // + case 123: { action. consumeStatementBreak(); break; + } + + // + // Rule 124: jump_statement ::= return ; + // + case 124: { action. consumeStatementReturn(false); break; + } + + // + // Rule 125: jump_statement ::= return expression ; + // + case 125: { action. consumeStatementReturn(true); break; + } + + // + // Rule 126: declaration ::= declaration_specifiers ; + // + case 126: { action. consumeDeclarationSimple(false); break; + } + + // + // Rule 127: declaration ::= declaration_specifiers init_declarator_list ; + // + case 127: { action. consumeDeclarationSimple(true); break; + } + + // + // Rule 128: declaration_specifiers ::= simple_declaration_specifiers + // + case 128: { action. consumeDeclarationSpecifiersSimple(); break; + } + + // + // Rule 129: declaration_specifiers ::= struct_or_union_declaration_specifiers + // + case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; + } + + // + // Rule 130: declaration_specifiers ::= elaborated_declaration_specifiers + // + case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; + } + + // + // Rule 131: declaration_specifiers ::= enum_declaration_specifiers + // + case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; + } + + // + // Rule 132: declaration_specifiers ::= typdef_name_declaration_specifiers + // + case 132: { action. consumeDeclarationSpecifiersTypedefName(); break; + } + + // + // Rule 157: init_declarator ::= complete_declarator = initializer + // + case 157: { action. consumeDeclaratorWithInitializer(true); break; + } + + // + // Rule 159: storage_class_specifier ::= storage_class_specifier_token + // + case 159: { action. consumeDeclSpecToken(); break; + } + + // + // Rule 165: simple_type_specifier ::= simple_type_specifier_token + // + case 165: { action. consumeDeclSpecToken(); break; + } + + // + // Rule 178: typedef_name_in_declspec ::= Completion + // + case 178: { action. consumeDeclSpecToken(); break; + } + + // + // Rule 179: typedef_name_in_declspec ::= identifier + // + case 179: { action. consumeDeclSpecToken(); break; + } + + // + // Rule 182: struct_or_union_specifier ::= struct { struct_declaration_list_opt } + // + case 182: { action. consumeTypeSpecifierComposite(false, IASTCompositeTypeSpecifier.k_struct); break; + } + + // + // Rule 183: struct_or_union_specifier ::= union { struct_declaration_list_opt } + // + case 183: { action. consumeTypeSpecifierComposite(false, IASTCompositeTypeSpecifier.k_union); break; + } + + // + // Rule 184: struct_or_union_specifier ::= struct identifier_or_typedefname { struct_declaration_list_opt } + // + case 184: { action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_struct); break; + } + + // + // Rule 185: struct_or_union_specifier ::= union identifier_or_typedefname { struct_declaration_list_opt } + // + case 185: { action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_union); break; + } + + // + // Rule 186: elaborated_specifier ::= struct identifier_or_typedefname + // + case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; + } + + // + // Rule 187: elaborated_specifier ::= union identifier_or_typedefname + // + case 187: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; + } + + // + // Rule 188: elaborated_specifier ::= enum identifier_or_typedefname + // + case 188: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; + } + + // + // Rule 193: struct_declaration ::= specifier_qualifier_list struct_declarator_list ; + // + case 193: { action. consumeStructDeclaration(true); break; + } + + // + // Rule 194: struct_declaration ::= specifier_qualifier_list ; + // + case 194: { action. consumeStructDeclaration(false); break; + } + + // + // Rule 195: struct_declaration ::= ERROR_TOKEN + // + case 195: { action. consumeDeclarationProblem(); break; + } + + // + // Rule 201: struct_declarator ::= : constant_expression + // + case 201: { action. consumeBitField(false); break; + } + + // + // Rule 202: struct_declarator ::= declarator : constant_expression + // + case 202: { action. consumeBitField(true); break; + } + + // + // Rule 203: enum_specifier ::= enum { enumerator_list_opt comma_opt } + // + case 203: { action. consumeTypeSpecifierEnumeration(false); break; + } + + // + // Rule 204: enum_specifier ::= enum identifier_or_typedefname { enumerator_list_opt comma_opt } + // + case 204: { action. consumeTypeSpecifierEnumeration(true); break; + } + + // + // Rule 209: enumerator ::= identifier_or_typedefname + // + case 209: { action. consumeEnumerator(false); break; + } + + // + // Rule 210: enumerator ::= identifier_or_typedefname = constant_expression + // + case 210: { action. consumeEnumerator(true); break; + } + + // + // Rule 211: type_qualifier ::= type_qualifier_token + // + case 211: { action. consumeDeclSpecToken(); break; + } + + // + // Rule 215: function_specifier ::= inline + // + case 215: { action. consumeDeclSpecToken(); break; + } + + // + // Rule 217: declarator ::= pointer_seq direct_declarator + // + case 217: { action. consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 222: basic_direct_declarator ::= declarator_id_name + // + case 222: { action. consumeDirectDeclaratorIdentifier(); break; + } + + // + // Rule 223: basic_direct_declarator ::= ( declarator ) + // + case 223: { action. consumeDirectDeclaratorBracketed(); break; + } + + // + // Rule 224: declarator_id_name ::= identifier + // + case 224: { action. consumeIdentifierName(); break; + } + + // + // Rule 225: array_direct_declarator ::= basic_direct_declarator array_modifier + // + case 225: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 226: array_direct_declarator ::= array_direct_declarator array_modifier + // + case 226: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 228: function_direct_declarator ::= basic_direct_declarator ( parameter_type_list ) + // + case 228: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + } + + // + // Rule 229: function_direct_declarator ::= basic_direct_declarator ( ) + // + case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + } + + // + // Rule 231: function_declarator ::= pointer_seq function_direct_declarator + // + case 231: { action. consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 232: knr_direct_declarator ::= basic_direct_declarator ( identifier_list ) + // + case 232: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; + } + + // + // Rule 234: knr_function_declarator ::= pointer_seq knr_direct_declarator + // + case 234: { action. consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 235: identifier_list ::= identifier + // + case 235: { action. consumeIdentifierKnR(); break; + } + + // + // Rule 236: identifier_list ::= identifier_list , identifier + // + case 236: { action. consumeIdentifierKnR(); break; + } + + // + // Rule 237: array_modifier ::= [ ] + // + case 237: { action. consumeDirectDeclaratorArrayModifier(false); break; + } + + // + // Rule 238: array_modifier ::= [ array_modifier_type_qualifiers ] + // + case 238: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; + } + + // + // Rule 239: array_modifier ::= [ assignment_expression ] + // + case 239: { action. consumeDirectDeclaratorArrayModifier(true); break; + } + + // + // Rule 240: array_modifier ::= [ array_modifier_type_qualifiers assignment_expression ] + // + case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; + } + + // + // Rule 241: array_modifier ::= [ static assignment_expression ] + // + case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; + } + + // + // Rule 242: array_modifier ::= [ static array_modifier_type_qualifiers assignment_expression ] + // + case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; + } + + // + // Rule 243: array_modifier ::= [ array_modifier_type_qualifiers static assignment_expression ] + // + case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; + } + + // + // Rule 244: array_modifier ::= [ * ] + // + case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; + } + + // + // Rule 245: array_modifier ::= [ array_modifier_type_qualifiers * ] + // + case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; + } + + // + // Rule 247: pointer_seq ::= * + // + case 247: { action. consumePointer(); break; + } + + // + // Rule 248: pointer_seq ::= pointer_seq * + // + case 248: { action. consumePointer(); break; + } + + // + // Rule 249: pointer_seq ::= * type_qualifier_list + // + case 249: { action. consumePointerTypeQualifierList(); break; + } + + // + // Rule 250: pointer_seq ::= pointer_seq * type_qualifier_list + // + case 250: { action. consumePointerTypeQualifierList(); break; + } + + // + // Rule 253: parameter_type_list ::= parameter_list + // + case 253: { action. consumeEmpty(); break; + } + + // + // Rule 254: parameter_type_list ::= parameter_list , ... + // + case 254: { action. consumePlaceHolder(); break; + } + + // + // Rule 255: parameter_type_list ::= ... + // + case 255: { action. consumePlaceHolder(); break; + } + + // + // Rule 258: parameter_declaration ::= declaration_specifiers complete_parameter_declarator + // + case 258: { action. consumeParameterDeclaration(); break; + } + + // + // Rule 259: parameter_declaration ::= declaration_specifiers + // + case 259: { action. consumeParameterDeclarationWithoutDeclarator(); break; + } + + // + // Rule 262: type_name ::= specifier_qualifier_list + // + case 262: { action. consumeTypeId(false); break; + } + + // + // Rule 263: type_name ::= specifier_qualifier_list abstract_declarator + // + case 263: { action. consumeTypeId(true); break; + } + + // + // Rule 265: abstract_declarator ::= pointer_seq + // + case 265: { action. consumeDeclaratorWithPointer(false); break; + } + + // + // Rule 266: abstract_declarator ::= pointer_seq direct_abstract_declarator + // + case 266: { action. consumeDeclaratorWithPointer(false); break; + } + + // + // Rule 270: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // + case 270: { action. consumeDirectDeclaratorBracketed(); break; + } + + // + // Rule 271: array_direct_abstract_declarator ::= array_modifier + // + case 271: { action. consumeDirectDeclaratorArrayDeclarator(false); break; + } + + // + // Rule 272: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier + // + case 272: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 273: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier + // + case 273: { action. consumeDirectDeclaratorArrayDeclarator(true); break; + } + + // + // Rule 274: function_direct_abstract_declarator ::= ( ) + // + case 274: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; + } + + // + // Rule 275: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) + // + case 275: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; + } + + // + // Rule 276: function_direct_abstract_declarator ::= ( parameter_type_list ) + // + case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; + } + + // + // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_type_list ) + // + case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; + } + + // + // Rule 278: initializer ::= assignment_expression + // + case 278: { action. consumeInitializer(); break; + } + + // + // Rule 279: initializer ::= { initializer_list comma_opt } + // + case 279: { action. consumeInitializerList(); break; + } + + // + // Rule 284: designated_initializer ::= designation = initializer + // + case 284: { action. consumeInitializerDesignated(); break; + } + + // + // Rule 288: designator_base ::= [ constant_expression ] + // + case 288: { action. consumeDesignatorArray(); break; + } + + // + // Rule 289: designator_base ::= . identifier_or_typedefname + // + case 289: { action. consumeDesignatorField(); break; + } + + // + // Rule 290: designator ::= [ constant_expression ] + // + case 290: { action. consumeDesignatorArray(); break; + } + + // + // Rule 291: designator ::= . identifier_or_typedefname + // + case 291: { action. consumeDesignatorField(); break; + } + + // + // Rule 292: translation_unit ::= external_declaration_list + // + case 292: { action. consumeTranslationUnit(); break; + } + + // + // Rule 293: translation_unit ::= $Empty + // + case 293: { action. consumeTranslationUnit(); break; + } + + // + // Rule 298: external_declaration ::= ; + // + case 298: { action. consumeDeclarationEmpty(); break; + } + + // + // Rule 299: external_declaration ::= ERROR_TOKEN + // + case 299: { action. consumeDeclarationProblem(); break; + } + + // + // Rule 302: function_definition ::= declaration_specifiers function_declarator function_body + // + case 302: { action. consumeFunctionDefinition(true); break; + } + + // + // Rule 303: function_definition ::= function_declarator function_body + // + case 303: { action. consumeFunctionDefinition(false); break; + } + + // + // Rule 304: function_definition ::= declaration_specifiers knr_function_declarator declaration_list compound_statement + // + case 304: { action. consumeFunctionDefinitionKnR(); break; + } + + // + // Rule 305: function_body ::= { } + // + case 305: { action. consumeStatementCompoundStatement(false); break; + } + + // + // Rule 306: function_body ::= { block_item_list } + // + case 306: { action. consumeStatementCompoundStatement(true); break; + } + + // + // Rule 308: expression_parser_start ::= ERROR_TOKEN + // + case 308: { action. consumeExpressionProblem(); break; + } + + + default: + break; + } + return; + } +} + diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParserprs.java new file mode 100644 index 00000000000..c1735bc7478 --- /dev/null +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParserprs.java @@ -0,0 +1,1134 @@ +/******************************************************************************* +* Copyright (c) 2006, 2008 IBM Corporation and others. +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* IBM Corporation - initial API and implementation +*********************************************************************************/ + +// This file was generated by LPG + +package org.eclipse.cdt.internal.core.dom.lrparser.c99; + +public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C99ExpressionParsersym { + + public interface IsKeyword { + public final static byte isKeyword[] = {0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0 + }; + }; + public final static byte isKeyword[] = IsKeyword.isKeyword; + public final boolean isKeyword(int index) { return isKeyword[index] != 0; } + + public interface BaseCheck { + public final static short baseCheck[] = {0, + 0,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,3,1,1,1,4, + 4,3,3,2,2,8,1,0,1,1, + 1,2,2,2,2,2,2,2,2,2, + 4,1,4,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,3,3,3,3,3,3, + 3,3,3,3,3,1,1,2,1,0, + 1,3,1,1,1,1,1,1,1,1, + 3,3,2,2,4,1,2,1,1,1, + 2,5,7,5,1,0,7,5,9,8, + 3,2,2,2,3,2,4,2,2,2, + 2,2,1,1,1,1,2,1,2,2, + 2,1,2,2,1,2,2,1,2,2, + 1,2,2,1,3,1,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,5,5,6,6,2,2,2,1,0, + 1,2,4,2,1,1,1,3,1,1, + 2,3,6,7,1,0,1,3,1,3, + 1,1,1,1,1,1,3,1,1,1, + 1,1,3,1,2,2,1,5,3,1, + 3,5,1,3,1,3,2,4,3,5, + 4,6,6,3,5,1,1,2,3,4, + 1,2,1,3,1,1,3,2,1,1, + 1,1,2,1,2,3,1,1,1,3, + 1,2,2,2,3,4,5,1,5,1, + 1,3,3,4,1,1,2,3,2,3, + 2,1,0,1,2,1,1,1,1,1, + 2,4,3,6,2,4,1,1,-37,0, + 0,0,0,0,0,0,-2,0,0,0, + 0,0,0,0,0,0,0,0,-73,0, + 0,-4,-14,-30,-16,-17,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,-180,0,-113,0,0,0,0,0,0, + 0,0,0,0,-34,-18,-19,0,-20,0, + 0,0,0,0,0,0,0,0,-35,-68, + -21,-172,-22,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-173,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,-31,-23,-194,-76,-130,-3,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,-24,0,-49,0,0,0,0, + 0,0,0,-158,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,-154,0,-25,-26,-87,0,-110,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-129,0, + 0,0,0,0,0,0,-88,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-188,0,0,0,0,0,0, + 0,-69,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,-89,-90,-91,-92,-93,-57,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,-70,0,0,0, + 0,0,0,0,0,0,0,0,-59,0, + 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,-114,0,0,0, + 0,0,0,0,0,0,0,0,-61,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-62,0, + 0,0,0,0,0,0,-131,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,-64,0, + 0,0,0,0,0,0,-156,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,-66,0, + 0,0,0,0,0,0,-94,0,0,0, + 0,0,0,0,0,0,0,0,-67,0, + 0,0,0,0,0,0,-133,0,0,0, + 0,0,0,0,0,0,0,0,-38,0, + 0,0,0,0,0,0,-177,0,0,-95, + -96,-97,-81,-98,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, + 0,-6,0,0,0,0,0,0,0,0, + 0,0,-5,0,0,0,0,0,0,0, + 0,0,0,0,-148,0,0,0,0,0, + 0,0,-202,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,-185,0,0,0,0,0,0, + 0,-99,0,0,0,0,0,0,0,0, + 0,0,-191,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-195,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -205,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-123, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-100,-132, + -12,0,0,0,0,0,0,0,-56,0, + 0,0,0,0,0,0,-101,0,0,0, + 0,0,0,0,0,-150,0,0,0,0, + 0,0,-151,0,0,0,0,0,0,0, + 0,0,0,0,0,-116,0,-107,-77,0, + -142,-102,0,0,-71,0,-109,0,-82,0, + -79,-103,-146,-111,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -104,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, + -52,0,0,0,0,0,0,0,-86,0, + 0,0,0,0,0,-53,0,0,0,0, + 0,0,0,-80,0,0,0,0,0,0, + 0,-186,-84,-198,-118,-120,0,0,0,0, + -182,-75,0,0,0,0,-174,-105,0,0, + -106,0,0,0,0,-204,-159,-121,0,0, + 0,0,0,0,0,0,0,0,0,-163, + 0,0,0,0,0,0,0,0,0,0, + 0,-117,0,0,0,0,0,0,-125,0, + 0,0,0,0,0,0,0,0,-128,-119, + -122,0,0,-50,0,0,0,0,0,0, + 0,-134,0,0,0,-136,-164,-162,0,0, + 0,-165,0,0,0,0,-7,0,0,0, + 0,0,0,0,0,-51,0,0,0,0, + 0,0,0,0,0,0,0,-43,0,0, + 0,0,0,0,0,-169,0,0,-44,0, + 0,0,0,0,0,0,-152,0,0,-45, + 0,0,0,0,0,0,0,-196,0,0, + -46,0,0,0,0,0,0,0,-197,0, + 0,0,-167,-149,-153,-207,0,-47,0,0, + 0,0,0,0,0,0,0,-48,0,0, + 0,0,0,0,0,-78,0,0,0,0, + 0,-179,0,0,0,0,0,0,0,0, + -36,-138,-32,0,0,0,0,0,0,0, + 0,0,-206,0,0,0,0,-39,0,0, + 0,0,0,0,0,0,-8,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,-9,0,0,0,0,0,0, + 0,-10,0,0,0,0,0,0,-11,0, + 0,0,0,0,0,-15,-144,-28,-170,-29, + -175,0,-176,0,0,0,0,0,-40,0, + 0,0,0,0,0,-189,0,-187,0,0, + 0,-192,0,0,0,0,0,0,0,0, + 0,0,0,-200,0,0,0,0,0,0, + 0,-41,0,0,0,0,0,0,-42,0, + 0,0,0,0,0,-83,0,0,0,-85, + 0,-72,0,0,0,0,0,0,0,0, + -115,-33,0,-190,-54,-181,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-137,0,0,-139,-178,-183,0,-193,0, + 0,0,0,0,0,-157,0,0,-161,-184, + -199,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-108,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,0,-140,0,0,-13,0,0,0,0, + 0,-1,-166,-112,0,0,0,0,0,0, + 0,-127,-160,-155,0,-201,0,-203,0,0, + 0,0,0,0,0,0,0,0,-126,0, + -145,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,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; + public final int baseCheck(int index) { return baseCheck[index]; } + public final static short rhs[] = baseCheck; + public final int rhs(int index) { return rhs[index]; }; + + public interface BaseAction { + public final static char baseAction[] = { + 83,8,24,24,20,20,26,26,68,68, + 1,1,1,1,2,2,2,3,3,4, + 4,4,4,4,4,4,4,51,51,69, + 69,5,5,5,5,5,5,5,5,5, + 5,5,6,6,7,7,7,7,9,9, + 9,10,10,10,11,11,11,11,11,12, + 12,12,13,13,14,14,15,15,16,16, + 17,17,18,18,19,19,19,19,19,19, + 19,19,19,19,19,19,93,41,33,84, + 84,71,71,46,94,94,94,94,94,94, + 94,95,95,95,96,96,101,101,102,102, + 97,97,98,98,98,104,104,99,99,99, + 99,100,100,100,100,100,103,103,23,23, + 23,23,23,28,28,28,77,77,72,72, + 72,72,73,73,73,74,74,74,75,75, + 75,76,76,76,105,105,106,106,107,29, + 31,31,31,31,31,52,54,54,54,54, + 54,54,54,54,54,54,54,54,65,65, + 27,27,62,62,62,62,63,63,63,55, + 55,56,56,48,48,48,32,85,85,78, + 79,79,79,64,64,80,80,81,81,66, + 66,21,22,22,22,30,47,47,34,34, + 34,34,37,37,39,35,35,36,40,40, + 108,108,38,109,109,86,86,25,25,25, + 25,25,25,25,25,25,82,49,49,49, + 49,58,58,57,57,57,59,59,50,50, + 87,87,61,61,60,60,60,42,42,42, + 43,44,44,44,45,45,45,45,53,53, + 70,70,70,70,67,88,89,89,90,90, + 91,91,110,110,111,111,112,112,112,112, + 114,114,113,113,113,115,115,83,83,1, + 14,19,15,333,526,44,336,107,335,377, + 376,391,379,453,393,525,484,74,91,260, + 134,211,42,831,248,192,209,136,133,135, + 159,554,14,19,15,333,526,44,336,481, + 335,377,376,391,379,453,393,525,484,74, + 278,138,429,165,463,14,19,15,333,42, + 35,142,145,148,151,470,13,56,1594,386, + 332,1366,1101,1174,1516,1520,1159,271,244,470, + 470,139,734,91,280,1522,217,1317,219,1345, + 221,222,227,23,266,1089,455,269,281,16, + 1198,1091,554,14,19,15,333,526,44,336, + 481,335,377,376,391,379,453,393,525,484, + 74,278,434,14,19,15,333,526,44,336, + 481,335,377,376,391,379,453,393,525,484, + 74,278,248,57,165,279,331,612,14,19, + 15,333,526,44,336,280,335,377,376,391, + 379,453,393,525,484,74,91,252,211,281, + 272,673,1482,287,374,282,612,14,19,15, + 333,42,44,336,309,335,377,376,852,283, + 368,14,19,15,333,526,44,336,1634,335, + 377,376,391,379,453,393,525,484,74,1104, + 183,22,193,260,237,218,702,724,332,696, + 14,19,15,333,526,44,336,1642,335,377, + 376,391,379,453,393,525,484,74,1249,401, + 14,19,15,333,526,44,336,743,335,377, + 376,391,379,453,393,525,484,74,1344,1306, + 392,286,362,238,583,14,19,15,333,526, + 44,336,470,335,377,376,391,379,453,393, + 525,484,74,278,612,14,19,15,333,526, + 44,336,1201,335,377,376,391,379,453,393, + 525,484,74,92,212,257,492,512,569,612, + 14,19,15,333,526,44,336,284,335,377, + 376,391,379,453,393,525,484,74,85,612, + 14,19,15,333,526,44,336,470,335,377, + 376,391,379,453,393,525,484,74,84,612, + 14,19,15,333,526,44,336,21,335,377, + 376,391,379,453,393,525,484,74,83,612, + 14,19,15,333,526,44,336,470,335,377, + 376,391,379,453,393,525,484,74,82,612, + 14,19,15,333,526,44,336,270,335,377, + 376,391,379,453,393,525,484,74,81,612, + 14,19,15,333,526,44,336,470,335,377, + 376,391,379,453,393,525,484,74,80,612, + 14,19,15,333,526,44,336,276,335,377, + 376,391,379,453,393,525,484,74,79,612, + 14,19,15,333,526,44,336,470,335,377, + 376,391,379,453,393,525,484,74,78,612, + 14,19,15,333,526,44,336,277,335,377, + 376,391,379,453,393,525,484,74,77,612, + 14,19,15,333,526,44,336,571,335,377, + 376,391,379,453,393,525,484,74,76,612, + 14,19,15,333,526,44,336,286,335,377, + 376,391,379,453,393,525,484,74,75,612, + 14,19,15,333,42,44,614,470,134,211, + 407,440,501,118,58,136,133,135,159,612, + 14,19,15,333,526,44,336,223,335,377, + 376,391,379,453,393,525,484,74,1461,138, + 1232,165,612,14,19,15,333,42,39,142, + 145,148,151,640,14,19,15,333,40,1366, + 1101,1174,1516,1520,1159,612,14,19,15,333, + 526,44,336,470,335,377,376,391,379,453, + 393,525,484,74,1463,612,14,19,15,333, + 42,44,336,228,335,377,376,391,379,453, + 393,525,484,93,612,14,19,15,333,42, + 44,336,106,335,377,376,391,379,453,393, + 525,484,93,612,14,19,15,333,42,44, + 336,1476,335,377,376,391,379,453,393,525, + 484,93,612,14,19,15,333,42,44,336, + 210,335,377,376,391,379,453,393,525,484, + 93,612,14,19,15,333,42,44,336,1494, + 335,377,376,391,379,453,393,525,484,93, + 612,14,19,15,333,42,44,336,201,335, + 377,376,391,379,453,393,525,484,73,385, + 396,668,14,19,15,333,33,202,523,612, + 14,19,15,333,42,44,336,524,335,377, + 376,391,379,453,1121,271,463,14,19,15, + 333,42,35,840,216,1317,219,1345,221,222, + 227,1556,264,1089,455,269,472,260,6,469, + 245,682,446,274,1612,117,341,59,271,166, + 261,782,413,340,117,1659,275,216,1317,219, + 1345,221,222,227,273,264,1089,455,269,20, + 847,415,134,211,252,211,1250,258,239,144, + 133,135,159,687,612,14,19,15,333,42, + 44,336,1343,335,377,376,391,379,453,393, + 1102,612,14,19,15,333,42,44,336,286, + 335,377,376,391,379,1039,612,14,19,15, + 333,42,44,336,795,335,377,376,391,1057, + 134,211,597,214,260,6,6,137,133,135, + 159,152,844,1552,1555,134,211,376,531,1184, + 1531,601,147,133,135,159,152,647,6,1267, + 1251,139,274,165,1184,1191,1623,271,252,211, + 708,143,146,149,152,216,1317,219,1345,221, + 222,227,621,1393,264,1089,455,269,1328,299, + 216,1317,219,1345,221,222,227,1661,208,117, + 628,675,687,1328,612,14,19,15,333,42, + 44,336,449,335,377,854,6,508,309,197, + 199,1570,711,241,1566,194,454,612,14,19, + 15,333,42,38,198,199,612,14,19,15, + 333,42,44,336,182,335,377,952,612,14, + 19,15,333,42,44,336,510,335,616,612, + 14,19,15,333,42,44,336,674,335,617, + 612,14,19,15,333,42,44,336,533,335, + 618,612,14,19,15,333,42,44,336,72, + 335,807,226,309,117,646,258,1184,612,14, + 19,15,333,42,44,336,1739,850,612,14, + 19,15,333,42,44,336,327,851,240,26, + 225,1739,472,216,1317,219,1345,221,222,227, + 1559,491,6,375,1739,1739,847,134,211,329, + 1569,457,229,350,141,133,135,159,612,14, + 19,15,333,42,44,615,271,612,14,19, + 15,333,42,37,6,1739,89,1739,140,1739, + 165,1739,1633,264,1089,455,269,217,1317,219, + 1345,221,222,227,612,14,19,15,333,42, + 36,263,612,14,19,15,333,42,35,612, + 14,19,15,333,42,34,6,6,6,597, + 6,117,1739,117,309,412,309,647,309,612, + 14,19,15,333,42,47,117,1739,708,196, + 1739,196,682,196,1739,242,289,243,1381,87, + 1381,87,1381,87,117,1739,1739,389,1739,389, + 288,389,612,14,19,15,333,42,46,612, + 14,19,15,333,42,45,808,375,290,390, + 821,582,525,14,19,15,333,42,43,1571, + 1739,595,6,1646,597,6,309,134,211,827, + 457,134,211,457,150,133,135,159,153,133, + 135,159,46,1739,1040,94,595,309,1739,626, + 827,291,185,827,827,87,142,827,87,238, + 309,309,1739,1095,827,196,1092,827,196,1040, + 1594,256,1040,184,1207,1739,1739,1207,727,196, + 1262,1739,196,1739,530,1739,203,204,1207,1739, + 191,1207,1739,191,1739,362,256,494,1643,256, + 1268,1643,48,727,191,1262,913,191,1262,271, + 827,1536,1643,588,1557,1643,668,14,19,15, + 333,32,496,588,290,1040,266,1089,455,269, + 457,1739,290,190,630,1648,309,1739,308,1739, + 1267,827,827,1739,1739,251,211,1739,1739,290, + 1267,290,256,251,211,87,196,1040,232,767, + 1739,1262,279,307,1739,1207,1739,1739,1739,1739, + 251,211,251,211,1739,1739,1739,1739,1739,207, + 1739,192,456,1739,257,1739,1739,1739,1739,207, + 456,1739,1739,1220,1272,1739,1739,1739,1739,1739, + 1739,1739,1739,1478,1272,317,549,1103,1739,1197, + 1739,1739,1739,1739,859,1739,0,17,179,0, + 18,178,0,1,1963,0,1,1974,0 + }; + }; + public final static char baseAction[] = BaseAction.baseAction; + public final int baseAction(int index) { return baseAction[index]; } + public final static char lhs[] = baseAction; + public final int lhs(int index) { return lhs[index]; }; + + public interface TermCheck { + public final static byte termCheck[] = {0, + 0,1,2,3,4,0,6,7,8,9, + 10,11,0,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,0,29, + 30,31,32,33,34,35,36,37,38,39, + 40,0,42,43,44,0,1,0,3,0, + 5,6,7,8,9,0,0,0,0,14, + 15,16,17,18,6,7,8,55,56,57, + 58,0,1,2,29,30,31,32,33,34, + 35,36,37,38,39,40,45,42,43,44, + 0,46,47,0,1,0,3,50,5,6, + 7,8,9,48,49,0,0,14,15,16, + 17,18,55,56,57,58,0,0,1,63, + 3,5,29,30,31,32,33,34,35,36, + 37,38,39,40,0,42,43,44,0,46, + 47,0,1,0,3,28,5,6,7,8, + 9,0,1,2,64,14,15,16,17,18, + 55,56,57,58,0,0,1,51,3,5, + 29,30,31,32,33,34,35,36,37,38, + 39,40,0,42,43,44,80,46,47,0, + 1,0,3,28,5,6,7,8,9,61, + 62,10,11,14,15,16,17,18,0,45, + 59,0,4,0,1,4,3,0,29,30, + 31,32,33,34,35,36,37,38,39,40, + 66,42,43,44,0,46,47,0,1,0, + 3,28,5,6,7,8,9,0,1,0, + 3,14,15,16,17,18,0,0,1,0, + 4,53,54,4,53,54,29,30,31,32, + 33,34,35,36,37,38,39,40,0,42, + 43,44,65,46,47,0,1,0,3,0, + 12,6,7,8,9,6,7,8,0,14, + 15,16,17,18,6,7,8,0,0,53, + 54,0,5,5,29,30,31,32,33,34, + 35,36,37,38,39,40,0,42,43,44, + 0,0,6,7,8,9,6,7,8,0, + 14,15,16,17,18,6,7,8,41,0, + 1,2,45,4,46,29,30,31,32,33, + 34,35,36,37,38,39,40,0,1,2, + 3,4,5,0,0,0,9,10,11,5, + 13,6,7,8,0,0,19,20,21,22, + 23,24,25,26,27,0,1,2,13,4, + 0,1,2,3,4,5,0,12,0,9, + 10,11,0,13,0,41,10,11,51,19, + 20,21,22,23,24,25,26,27,0,1, + 2,0,4,0,1,2,3,4,5,0, + 12,68,69,10,11,0,13,63,0,10, + 11,51,19,20,21,22,23,24,25,26, + 27,28,0,1,2,3,4,5,0,0, + 2,0,10,11,5,13,5,65,64,46, + 12,19,20,21,22,23,24,25,26,27, + 0,0,2,45,4,0,1,2,3,4, + 0,0,12,0,59,10,11,0,13,0, + 41,0,41,51,19,20,21,22,23,24, + 25,26,27,0,0,1,2,3,4,0, + 0,2,0,4,10,11,13,13,0,48, + 49,12,47,19,20,21,22,23,24,25, + 26,27,28,0,1,2,3,4,28,48, + 49,61,62,10,11,0,13,60,0,60, + 0,0,19,20,21,22,23,24,25,26, + 27,28,0,1,2,3,4,0,1,0, + 3,59,10,11,0,13,0,1,4,3, + 0,19,20,21,22,23,24,25,26,27, + 28,0,1,2,3,4,48,49,48,49, + 0,10,11,0,13,0,1,0,28,0, + 19,20,21,22,23,24,25,26,27,0, + 1,2,3,4,50,0,0,2,28,10, + 11,5,13,0,1,28,3,12,19,20, + 21,22,23,24,25,26,27,0,1,2, + 3,4,0,0,0,50,0,10,11,50, + 13,0,0,0,12,12,19,20,21,22, + 23,24,25,26,27,0,1,2,3,4, + 0,0,28,0,0,10,11,0,13,0, + 0,0,66,0,19,20,21,22,23,24, + 25,26,27,0,52,2,45,4,5,6, + 7,8,9,0,0,12,0,14,15,16, + 17,18,0,0,2,12,4,5,6,7, + 8,9,45,0,12,45,14,15,16,17, + 18,60,0,0,41,0,0,0,0,0, + 0,70,71,72,73,74,75,76,77,78, + 79,0,0,41,0,52,0,6,7,8, + 9,0,0,0,0,14,15,16,17,18, + 6,7,8,9,0,0,0,0,14,15, + 16,17,18,6,7,8,9,0,0,0, + 0,14,15,16,17,18,6,7,8,9, + 0,0,2,0,14,15,16,17,18,0, + 1,2,12,0,5,2,0,0,5,19, + 20,12,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, + 41,0,52,0,41,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,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; + public final int termCheck(int index) { return termCheck[index]; } + + public interface TermAction { + public final static char termAction[] = {0, + 1739,527,1456,557,1442,1,1951,1952,1953,1901, + 1434,1407,59,1449,1902,1900,1954,1903,1899,1626, + 1041,893,1749,1750,1751,1752,1277,882,1739,1906, + 1911,1910,1908,1909,1907,1912,1913,1905,1914,1915, + 1916,88,1183,1099,853,1739,1,1,1,1739, + 190,1,1,1,1,54,66,61,247,1, + 1,1,1,1,1,1,1,1331,1320,1309, + 1298,1,1963,1339,1,1,1,1,1,1, + 1,1,1,1,1,1,594,1,1,1, + 68,190,1934,1739,1,1739,1,1994,190,1, + 1,1,1,1348,1358,60,1739,1,1,1, + 1,1,1331,1320,1309,1298,1739,1739,1919,1166, + 1920,1742,1,1,1,1,1,1,1,1, + 1,1,1,1,1739,1,1,1,62,190, + 1934,1739,1,1739,1,1185,190,1,1,1, + 1,1,1963,1339,1151,1,1,1,1,1, + 1331,1320,1309,1298,1739,1739,1919,1741,1920,1748, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1739,1,1,1,1726,190,1934,1739, + 1,51,1,1186,189,1,1,1,1,1286, + 1254,1398,839,1,1,1,1,1,48,1206, + 982,50,1509,1739,1919,1509,1920,70,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1747,1,1,1,1739,189,1934,1739,1,1739, + 1,1208,190,1,1,1,1,1739,1768,1739, + 1769,1,1,1,1,1,49,1739,1975,1739, + 1509,1502,1469,1097,1502,1469,1,1,1,1, + 1,1,1,1,1,1,1,1,268,1, + 1,1,1049,190,1934,1739,1918,1739,1917,1739, + 500,1951,1952,1953,1901,1951,1952,1953,248,1902, + 1900,1954,1903,1899,1,1,1,1739,1739,1502, + 1469,1739,1744,1746,1906,1911,1910,1908,1909,1907, + 1912,1913,1905,1914,1915,1916,128,1183,1099,853, + 246,1739,1951,1952,1953,1901,1951,1952,1953,249, + 1902,1900,1954,1903,1899,1951,1952,1953,1743,1739, + 1963,1339,1346,1239,1745,1906,1911,1910,1908,1909, + 1907,1912,1913,1905,1914,1915,1916,1,1756,1456, + 1757,364,1742,72,1,250,529,1434,1407,90, + 1449,1951,1952,1953,67,64,1626,1041,893,1749, + 1750,1751,1752,1277,882,259,1963,1073,486,1, + 1739,1756,1456,1757,1066,1742,53,500,1739,905, + 1434,1407,71,1449,69,90,1398,839,1741,1626, + 1041,893,1749,1750,1751,1752,1277,882,265,1963, + 1073,1739,1239,1,1756,1456,1757,1442,27,52, + 500,1134,1535,1434,1407,1739,1449,1166,253,1398, + 839,1741,1626,1041,893,1749,1750,1751,1752,1277, + 882,1457,1739,1756,1456,1757,1442,1742,267,1739, + 1086,1,1434,1407,1744,1449,1744,1049,1151,27, + 500,1626,1041,893,1749,1750,1751,1752,1277,882, + 262,58,1192,1644,1,1739,1,1,1,1, + 63,1739,500,1739,1020,1,1,209,1,1739, + 1743,57,1743,1741,1,1,1,1,1,1, + 1,1,1,65,1739,1756,1456,1757,1442,265, + 41,1192,200,1239,1434,1407,486,1449,1739,1348, + 1358,500,2047,1626,1041,893,1749,1750,1751,1752, + 1277,882,1088,1,1756,1456,1757,1442,1088,1348, + 1358,1286,1254,1434,1407,1739,1449,944,56,574, + 55,1739,1626,1041,893,1749,1750,1751,1752,1277, + 882,1457,1739,1756,1456,1757,1442,206,1919,1739, + 1920,1001,1434,1407,1,1449,1739,1919,1097,1920, + 1739,1626,1041,893,1749,1750,1751,1752,1277,882, + 1457,1739,1756,1456,1757,1442,1348,1358,1348,1358, + 187,1434,1407,1739,1449,1,1736,186,1088,1, + 1626,1041,893,1749,1750,1751,1752,1277,882,1739, + 1756,1458,1757,1442,1994,220,1,1372,1266,1434, + 1407,1748,1449,205,1182,1382,1182,500,1626,1041, + 893,1749,1750,1751,1752,1277,882,1739,1756,1460, + 1757,1442,1739,218,188,1994,1739,1434,1407,1993, + 1449,28,1739,1739,925,500,1626,1041,893,1749, + 1750,1751,1752,1277,882,1,1756,1456,1757,1442, + 1739,42,1414,1739,1739,1434,1407,28,1449,1739, + 205,1739,1747,1739,1626,1041,893,1749,1750,1751, + 1752,1277,882,17,1459,1727,432,1727,1727,179, + 179,179,179,285,1739,1727,1739,179,179,179, + 179,179,18,1739,1730,963,1730,1730,178,178, + 178,178,1766,1739,1730,2701,178,178,178,178, + 178,819,1739,1739,1727,1739,1739,1739,1739,1739, + 1739,799,779,759,739,719,679,699,659,639, + 619,129,1739,1730,1739,1534,1739,1951,1952,1953, + 1901,1739,1739,1739,130,1902,1900,1954,1903,1899, + 1951,1952,1953,1901,1739,1739,1739,131,1902,1900, + 1954,1903,1899,1951,1952,1953,1901,1739,1739,1739, + 132,1902,1900,1954,1903,1899,1951,1952,1953,1901, + 31,1739,1383,1739,1902,1900,1954,1903,1899,1, + 1733,1073,1532,1,1744,1192,1739,1739,1744,1763, + 1764,500,1739,1739,1739,500,1739,1739,1739,1739, + 1739,1739,1739,1739,1739,1739,1739,1739,1739,1739, + 1739,1739,1739,1739,1739,1739,1739,1739,1739,1739, + 1743,1739,452,1739,1743,1739,1739,1739,1739,1739, + 1739,1739,1739,1739,1739,1739,1739,334 + }; + }; + public final static char termAction[] = TermAction.termAction; + public final int termAction(int index) { return termAction[index]; } + + public interface Asb { + public final static char asb[] = {0, + 427,1,80,41,80,80,80,80,80,80, + 80,80,80,3,357,244,241,248,246,254, + 252,256,255,258,257,10,80,357,357,226, + 226,338,80,143,143,332,357,80,80,80, + 80,80,80,80,80,80,80,80,80,80, + 80,80,80,80,80,80,80,80,80,80, + 80,80,80,80,80,80,80,143,143,143, + 45,56,336,74,196,141,140,307,319,319, + 70,70,319,70,319,371,97,97,241,241, + 246,246,246,246,244,244,252,248,248,255, + 254,300,257,256,229,72,54,332,327,146, + 45,394,78,143,398,199,282,166,282,166, + 276,282,80,54,327,394,394,45,77,74, + 143,330,371,142,201,166,166,166,166,276, + 276,278,49,54,394,327,80,80,45,78, + 196,295,294,336,201,143,166,193,269,166, + 166,193,278,302,278,276,193,52,305,226, + 80,48,54,327,45,45,143,398,199,330, + 193,271,193,193,80,226,278,56,45,226, + 80,278,201,265,80,264,93,336,193,45, + 193,143,142,271,80,93,227 + }; + }; + public final static char asb[] = Asb.asb; + public final int asb(int index) { return asb[index]; } + + public interface Asr { + public final static byte asr[] = {0, + 80,0,66,12,2,52,67,19,20,13, + 4,10,11,53,54,48,49,55,56,57, + 58,61,62,63,64,65,68,69,46,60, + 70,71,72,73,74,76,75,77,78,79, + 59,41,80,45,51,5,0,60,12,52, + 0,5,46,12,52,19,20,13,4,10, + 11,26,27,21,2,22,23,24,25,1, + 3,28,0,6,7,8,9,51,5,22, + 23,24,25,3,19,20,13,10,11,26, + 27,21,4,2,1,0,7,9,18,8, + 17,16,15,6,14,52,67,19,20,13, + 10,11,53,54,48,49,55,56,57,58, + 61,62,63,64,65,68,69,60,70,71, + 72,73,74,75,76,77,78,79,4,2, + 12,45,41,5,0,6,7,8,2,22, + 23,24,25,1,3,19,20,13,4,10, + 11,26,27,21,0,14,29,6,30,42, + 15,31,16,32,33,17,7,34,35,9, + 43,18,44,36,37,8,38,39,40,1, + 3,47,46,5,0,4,2,12,41,5, + 14,29,6,30,42,15,31,16,32,33, + 17,7,34,35,9,43,18,44,36,37, + 8,38,39,40,50,3,1,0,60,70, + 71,72,73,74,75,76,77,78,79,28, + 4,53,54,10,11,49,48,55,56,57, + 58,61,62,13,63,64,65,51,41,46, + 80,68,69,59,66,5,45,0,66,5, + 4,1,2,59,0,1,3,5,46,45, + 0,14,6,15,16,17,7,9,18,8, + 1,4,28,2,5,45,41,66,12,59, + 0,5,45,46,60,0,37,29,34,32, + 33,31,30,35,36,38,39,40,59,66, + 18,15,9,14,17,16,6,7,8,45, + 1,5,41,2,12,4,0,5,41,21, + 22,23,24,25,1,3,2,19,20,13, + 4,10,11,26,27,0,21,22,23,24, + 25,2,19,20,13,4,10,11,26,27, + 3,1,42,43,44,37,29,34,32,33, + 31,30,35,36,38,39,40,18,15,9, + 14,17,16,6,7,8,0,14,29,6, + 30,42,15,31,16,32,33,17,7,34, + 35,9,43,18,44,36,37,8,38,39, + 40,1,3,50,4,0,21,22,23,24, + 25,1,3,2,19,20,13,4,10,11, + 26,27,47,0 + }; + }; + public final static byte asr[] = Asr.asr; + public final int asr(int index) { return asr[index]; } + + public interface Nasb { + public final static byte nasb[] = {0, + 81,8,15,8,15,15,15,15,15,15, + 15,15,15,8,65,8,8,8,8,8, + 8,8,8,8,8,8,15,65,65,9, + 9,62,66,39,39,55,1,15,15,15, + 15,15,15,15,15,15,15,15,15,15, + 15,15,15,66,15,15,15,15,15,15, + 15,15,15,15,15,15,15,39,39,39, + 27,15,71,25,54,17,17,47,48,48, + 29,29,48,29,48,43,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,79,56,79,14, + 27,84,26,39,69,38,8,79,8,79, + 79,8,15,14,79,84,84,27,26,19, + 39,32,2,8,78,79,73,79,73,29, + 79,41,21,79,84,19,15,15,27,26, + 31,17,17,71,78,39,73,23,59,86, + 73,23,41,8,8,29,23,13,8,29, + 15,11,14,19,27,27,39,69,38,33, + 23,50,23,23,15,29,41,15,27,29, + 15,41,77,60,15,8,50,71,23,27, + 23,39,39,50,15,35,8 + }; + }; + public final static byte nasb[] = Nasb.nasb; + public final int nasb(int index) { return nasb[index]; } + + public interface Nasr { + public final static char nasr[] = {0, + 4,77,76,75,74,73,72,0,69,0, + 91,0,67,8,4,0,25,0,21,0, + 89,0,26,0,8,4,24,0,27,0, + 20,8,44,43,37,35,0,8,20,0, + 51,0,62,63,64,65,52,28,0,8, + 37,35,0,20,8,44,43,0,8,68, + 0,8,84,0,32,8,41,0,8,23, + 49,0,56,8,32,0,86,23,8,0, + 8,83,0,58,0,8,32,48,0 + }; + }; + public final static char nasr[] = Nasr.nasr; + public final int nasr(int index) { return nasr[index]; } + + public interface TerminalIndex { + public final static char terminalIndex[] = {0, + 85,2,86,9,87,48,64,76,69,10, + 11,1,8,44,55,60,63,72,6,7, + 68,81,82,83,84,12,13,3,47,52, + 56,61,62,66,67,74,75,78,79,80, + 90,54,70,73,42,91,93,16,17,30, + 89,4,14,15,18,19,20,21,29,31, + 22,23,24,25,26,92,5,27,28,32, + 33,34,35,36,37,38,39,40,41,94, + 45,46,49,50,51,53,57,58,59,65, + 71,77,88 + }; + }; + public final static char terminalIndex[] = TerminalIndex.terminalIndex; + public final int terminalIndex(int index) { return terminalIndex[index]; } + + public interface NonterminalIndex { + public final static char nonterminalIndex[] = {0, + 0,0,0,101,105,106,107,0,108,109, + 110,111,112,113,114,115,116,117,118,97, + 129,0,122,96,149,98,121,128,0,0, + 0,140,0,145,147,0,148,0,0,0, + 100,158,159,160,0,120,137,139,146,155, + 0,131,136,0,0,138,150,153,154,157, + 103,132,133,134,135,144,161,99,102,104, + 119,123,124,125,126,127,130,142,0,0, + 143,152,95,0,141,151,156,162,163,0, + 164,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 char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; + public final int nonterminalIndex(int index) { return nonterminalIndex[index]; } + + public interface ScopePrefix { + public final static char scopePrefix[] = { + 164,80,33,39,87,107,113,138,12,19, + 49,67,119,124,26,45,97,160,179,183, + 147,1,1,30,54,77,187,6,101,154, + 129,154,93,57,57,57 + }; + }; + public final static char scopePrefix[] = ScopePrefix.scopePrefix; + public final int scopePrefix(int index) { return scopePrefix[index]; } + + public interface ScopeSuffix { + public final static char scopeSuffix[] = { + 17,17,4,4,17,17,17,144,17,24, + 4,24,17,17,24,4,95,24,24,4, + 151,4,4,24,4,24,24,9,104,157, + 132,172,95,64,59,72 + }; + }; + public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; + public final int scopeSuffix(int index) { return scopeSuffix[index]; } + + public interface ScopeLhs { + public final static char scopeLhs[] = { + 4,64,25,25,64,62,62,98,53,45, + 25,40,62,62,45,25,48,5,4,4, + 18,91,90,43,25,37,2,67,48,6, + 99,4,48,40,38,40 + }; + }; + public final static char scopeLhs[] = ScopeLhs.scopeLhs; + public final int scopeLhs(int index) { return scopeLhs[index]; } + + public interface ScopeLa { + public final static byte scopeLa[] = { + 46,46,51,51,46,46,46,86,46,41, + 51,41,46,46,41,51,66,41,41,51, + 59,51,51,41,51,41,41,60,1,41, + 92,41,66,2,2,2 + }; + }; + public final static byte scopeLa[] = ScopeLa.scopeLa; + public final int scopeLa(int index) { return scopeLa[index]; } + + public interface ScopeStateSet { + public final static byte scopeStateSet[] = { + 34,19,23,23,19,19,19,-1,89,27, + 23,11,19,19,27,23,5,34,34,34, + 64,1,3,27,23,11,34,90,5,37, + -1,34,5,11,11,11 + }; + }; + public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet; + public final int scopeStateSet(int index) { return scopeStateSet[index]; } + + public interface ScopeRhs { + public final static char scopeRhs[] = {0, + 139,12,0,96,0,181,101,0,31,136, + 0,144,163,101,28,0,98,0,150,101, + 2,136,0,97,0,150,101,2,0,153, + 2,0,112,9,175,101,12,0,112,175, + 101,9,12,0,112,9,12,0,112,175, + 101,12,0,112,12,0,130,0,2,0, + 151,97,0,2,97,0,150,101,2,130, + 0,2,0,150,97,0,140,2,0,144, + 173,101,28,120,42,0,144,173,101,28, + 42,0,125,0,99,0,178,101,125,0, + 101,125,0,141,99,0,148,101,28,120, + 44,0,148,101,28,120,43,0,148,101, + 28,44,0,148,101,28,43,0,187,85, + 0,77,2,100,97,99,0,187,113,134, + 2,89,0,53,0,0,134,69,110,0, + 29,117,0,154,2,0,97,106,0,154, + 2,21,0,144,163,101,28,113,154,2, + 0,97,3,0,104,0,98,0,177,2, + 97,0,134,12,97,0,134,2,0 + }; + }; + public final static char scopeRhs[] = ScopeRhs.scopeRhs; + public final int scopeRhs(int index) { return scopeRhs[index]; } + + public interface ScopeState { + public final static char scopeState[] = {0, + 392,0,481,0,1569,1643,1566,1555,1552,0, + 1393,1206,1339,1191,362,1073,1040,0,827,1159, + 309,0,1345,1317,1089,455,362,1073,1040,1594, + 1192,1381,0,1626,1041,893,1066,364,1522,1049, + 1134,1166,1151,1286,1254,486,1358,1348,1331,1320, + 1309,1298,1509,1502,1469,1398,839,1449,1442,1434, + 1407,1277,882,1001,982,963,944,925,905,859, + 549,1020,529,500,819,799,779,759,739,719, + 699,679,659,639,619,309,594,457,574,412, + 432,341,0 + }; + }; + public final static char scopeState[] = ScopeState.scopeState; + public final int scopeState(int index) { return scopeState[index]; } + + public interface InSymb { + public final static char inSymb[] = {0, + 0,176,101,164,21,27,26,11,10,4, + 13,20,19,97,2,102,100,104,103,106, + 105,108,107,110,109,98,45,2,2,67, + 52,2,12,154,134,125,101,11,10,54, + 53,4,58,57,56,55,48,49,13,62, + 61,64,63,69,68,65,79,78,77,75, + 76,74,73,72,71,70,60,154,154,177, + 134,113,101,12,2,137,136,165,166,167, + 44,43,168,42,169,170,1,3,100,100, + 103,103,103,103,102,102,105,104,104,107, + 106,134,109,108,113,113,28,142,4,9, + 112,101,4,153,101,2,120,28,120,28, + 28,120,59,101,4,101,101,112,175,151, + 150,116,101,152,101,28,101,28,101,101, + 28,163,101,28,101,151,175,9,112,4, + 2,128,130,101,45,150,101,148,125,149, + 101,148,173,120,174,101,144,45,181,52, + 12,182,101,151,112,112,140,101,2,142, + 148,101,148,144,60,45,173,60,139,52, + 12,163,101,178,59,140,2,101,144,139, + 144,150,179,45,59,142,45 + }; + }; + public final static char inSymb[] = InSymb.inSymb; + public final int inSymb(int index) { return inSymb[index]; } + + public interface Name { + public final static String name[] = { + "", + "[", + "(", + "{", + ".", + "->", + "++", + "--", + "&", + "*", + "+", + "-", + "~", + "!", + "/", + "%", + ">>", + "<<", + "<", + ">", + "<=", + ">=", + "==", + "!=", + "^", + "|", + "&&", + "||", + "?", + ":", + "...", + "=", + "*=", + "/=", + "%=", + "+=", + "-=", + ">>=", + "<<=", + "&=", + "^=", + "|=", + ",", + "$empty", + "auto", + "break", + "case", + "char", + "const", + "continue", + "default", + "do", + "double", + "else", + "enum", + "extern", + "float", + "for", + "goto", + "if", + "inline", + "int", + "long", + "register", + "restrict", + "return", + "short", + "signed", + "sizeof", + "static", + "struct", + "switch", + "typedef", + "union", + "unsigned", + "void", + "volatile", + "while", + "_Bool", + "_Complex", + "_Imaginary", + "integer", + "floating", + "charconst", + "stringlit", + "identifier", + "Completion", + "EndOfCompletion", + "Invalid", + "RightBracket", + "RightParen", + "RightBrace", + "SemiColon", + "ERROR_TOKEN", + "EOF_TOKEN", + "expression_parser_start", + "]", + ")", + "}", + ";", + "expression", + "postfix_expression", + "member_name", + "type_name", + "initializer_list", + "unary_expression", + "cast_expression", + "multiplicative_expression", + "additive_expression", + "shift_expression", + "relational_expression", + "equality_expression", + "AND_expression", + "exclusive_OR_expression", + "inclusive_OR_expression", + "logical_AND_expression", + "logical_OR_expression", + "conditional_expression", + "assignment_expression", + "expression_list_actual", + "constant_expression", + "identifier_or_typedefname", + "declaration_specifiers", + "simple_declaration_specifiers", + "struct_or_union_declaration_sp" + + "ecifiers", + "elaborated_declaration_specifi" + + "ers", + "enum_declaration_specifiers", + "typdef_name_declaration_specif" + + "iers", + "no_type_declaration_specifier", + "type_qualifier", + "no_type_declaration_specifiers", + "simple_type_specifier", + "struct_or_union_specifier", + "elaborated_specifier", + "enum_specifier", + "typedef_name_in_declspec", + "initializer", + "declarator", + "struct_declaration_list", + "struct_declaration", + "specifier_qualifier_list", + "struct_declarator_list", + "complete_struct_declarator", + "enumerator_list", + "enumerator", + "direct_declarator", + "pointer_seq", + "array_direct_declarator", + "basic_direct_declarator", + "array_modifier", + "parameter_type_list", + "identifier_list", + "array_modifier_type_qualifiers", + "type_qualifier_list", + "parameter_list", + "parameter_declaration", + "complete_parameter_declarator", + "abstract_declarator", + "direct_abstract_declarator", + "basic_direct_abstract_declarat" + + "or", + "array_direct_abstract_declarat" + + "or", + "designated_initializer", + "designation", + "designator_list", + "designator" + }; + }; + public final static String name[] = Name.name; + public final String name(int index) { return name[index]; } + + public final static int + ERROR_SYMBOL = 47, + SCOPE_UBOUND = 35, + SCOPE_SIZE = 36, + MAX_NAME_LENGTH = 38; + + public final int getErrorSymbol() { return ERROR_SYMBOL; } + public final int getScopeUbound() { return SCOPE_UBOUND; } + public final int getScopeSize() { return SCOPE_SIZE; } + public final int getMaxNameLength() { return MAX_NAME_LENGTH; } + + public final static int + NUM_STATES = 207, + NT_OFFSET = 93, + LA_STATE_OFFSET = 2047, + MAX_LA = 2, + NUM_RULES = 308, + NUM_NONTERMINALS = 115, + NUM_SYMBOLS = 208, + SEGMENT_SIZE = 8192, + START_STATE = 1632, + IDENTIFIER_SYMBOL = 0, + EOFT_SYMBOL = 80, + EOLT_SYMBOL = 80, + ACCEPT_ACTION = 1726, + ERROR_ACTION = 1739; + + public final static boolean BACKTRACK = true; + + public final int getNumStates() { return NUM_STATES; } + public final int getNtOffset() { return NT_OFFSET; } + public final int getLaStateOffset() { return LA_STATE_OFFSET; } + public final int getMaxLa() { return MAX_LA; } + public final int getNumRules() { return NUM_RULES; } + public final int getNumNonterminals() { return NUM_NONTERMINALS; } + public final int getNumSymbols() { return NUM_SYMBOLS; } + public final int getSegmentSize() { return SEGMENT_SIZE; } + public final int getStartState() { return START_STATE; } + public final int getStartSymbol() { return lhs[0]; } + public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; } + public final int getEoftSymbol() { return EOFT_SYMBOL; } + public final int getEoltSymbol() { return EOLT_SYMBOL; } + public final int getAcceptAction() { return ACCEPT_ACTION; } + public final int getErrorAction() { return ERROR_ACTION; } + public final boolean isValidForParser() { return isValidForParser; } + public final boolean getBacktrack() { return BACKTRACK; } + + public final int originalState(int state) { + return -baseCheck[state]; + } + public final int asi(int state) { + return asb[originalState(state)]; + } + public final int nasi(int state) { + return nasb[originalState(state)]; + } + public final int inSymbol(int state) { + return inSymb[originalState(state)]; + } + + public final int ntAction(int state, int sym) { + return baseAction[state + sym]; + } + + public final int tAction(int state, int sym) { + int i = baseAction[state], + k = i + sym; + return termAction[termCheck[k] == sym ? k : i]; + } + public final int lookAhead(int la_state, int sym) { + int k = la_state + sym; + return termAction[termCheck[k] == sym ? k : la_state]; + } +} diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParsersym.java new file mode 100644 index 00000000000..9a85ef90c77 --- /dev/null +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionParsersym.java @@ -0,0 +1,210 @@ +/******************************************************************************* +* Copyright (c) 2006, 2008 IBM Corporation and others. +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* IBM Corporation - initial API and implementation +*********************************************************************************/ + +// This file was generated by LPG + +package org.eclipse.cdt.internal.core.dom.lrparser.c99; + +public interface C99ExpressionParsersym { + public final static int + TK_auto = 14, + TK_break = 81, + TK_case = 82, + TK_char = 29, + TK_const = 6, + TK_continue = 83, + TK_default = 84, + TK_do = 85, + TK_double = 30, + TK_else = 86, + TK_enum = 42, + TK_extern = 15, + TK_float = 31, + TK_for = 87, + TK_goto = 88, + TK_if = 89, + TK_inline = 16, + TK_int = 32, + TK_long = 33, + TK_register = 17, + TK_restrict = 7, + TK_return = 90, + TK_short = 34, + TK_signed = 35, + TK_sizeof = 21, + TK_static = 9, + TK_struct = 43, + TK_switch = 91, + TK_typedef = 18, + TK_union = 44, + TK_unsigned = 36, + TK_void = 37, + TK_volatile = 8, + TK_while = 92, + TK__Bool = 38, + TK__Complex = 39, + TK__Imaginary = 40, + TK_integer = 22, + TK_floating = 23, + TK_charconst = 24, + TK_stringlit = 25, + TK_identifier = 1, + TK_Completion = 3, + TK_EndOfCompletion = 5, + TK_Invalid = 93, + TK_LeftBracket = 12, + TK_LeftParen = 2, + TK_LeftBrace = 28, + TK_Dot = 52, + TK_Arrow = 67, + TK_PlusPlus = 19, + TK_MinusMinus = 20, + TK_And = 13, + TK_Star = 4, + TK_Plus = 10, + TK_Minus = 11, + TK_Tilde = 26, + TK_Bang = 27, + TK_Slash = 53, + TK_Percent = 54, + TK_RightShift = 48, + TK_LeftShift = 49, + TK_LT = 55, + TK_GT = 56, + TK_LE = 57, + TK_GE = 58, + TK_EQ = 61, + TK_NE = 62, + TK_Caret = 63, + TK_Or = 64, + TK_AndAnd = 65, + TK_OrOr = 68, + TK_Question = 69, + TK_Colon = 59, + TK_DotDotDot = 50, + TK_Assign = 60, + TK_StarAssign = 70, + TK_SlashAssign = 71, + TK_PercentAssign = 72, + TK_PlusAssign = 73, + TK_MinusAssign = 74, + TK_RightShiftAssign = 75, + TK_LeftShiftAssign = 76, + TK_AndAssign = 77, + TK_CaretAssign = 78, + TK_OrAssign = 79, + TK_Comma = 45, + TK_RightBracket = 51, + TK_RightParen = 41, + TK_RightBrace = 46, + TK_SemiColon = 66, + TK_ERROR_TOKEN = 47, + TK_EOF_TOKEN = 80; + + public final static String orderedTerminalSymbols[] = { + "", + "identifier", + "LeftParen", + "Completion", + "Star", + "EndOfCompletion", + "const", + "restrict", + "volatile", + "static", + "Plus", + "Minus", + "LeftBracket", + "And", + "auto", + "extern", + "inline", + "register", + "typedef", + "PlusPlus", + "MinusMinus", + "sizeof", + "integer", + "floating", + "charconst", + "stringlit", + "Tilde", + "Bang", + "LeftBrace", + "char", + "double", + "float", + "int", + "long", + "short", + "signed", + "unsigned", + "void", + "_Bool", + "_Complex", + "_Imaginary", + "RightParen", + "enum", + "struct", + "union", + "Comma", + "RightBrace", + "ERROR_TOKEN", + "RightShift", + "LeftShift", + "DotDotDot", + "RightBracket", + "Dot", + "Slash", + "Percent", + "LT", + "GT", + "LE", + "GE", + "Colon", + "Assign", + "EQ", + "NE", + "Caret", + "Or", + "AndAnd", + "SemiColon", + "Arrow", + "OrOr", + "Question", + "StarAssign", + "SlashAssign", + "PercentAssign", + "PlusAssign", + "MinusAssign", + "RightShiftAssign", + "LeftShiftAssign", + "AndAssign", + "CaretAssign", + "OrAssign", + "EOF_TOKEN", + "break", + "case", + "continue", + "default", + "do", + "else", + "for", + "goto", + "if", + "return", + "switch", + "while", + "Invalid" + }; + + public final static boolean isValidForParser = true; +} diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionStatementParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionStatementParser.java deleted file mode 100644 index 65cf6ec9960..00000000000 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionStatementParser.java +++ /dev/null @@ -1,1263 +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 -*********************************************************************************/ - -// This file was generated by LPG - -package org.eclipse.cdt.internal.core.dom.lrparser.c99; - -import lpg.lpgjavaruntime.*; - -import java.util.*; -import org.eclipse.cdt.core.dom.ast.*; -import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; - -import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; -import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; - -import org.eclipse.cdt.core.dom.lrparser.action.c99.C99ASTNodeFactory; -import org.eclipse.cdt.core.dom.lrparser.action.c99.C99BuildASTParserAction; - -public class C99ExpressionStatementParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser -{ - private static ParseTable prs = new C99ExpressionStatementParserprs(); - private BacktrackingParser btParser; - - public BacktrackingParser getParser() { return btParser; } - private void setResult(Object object) { btParser.setSym1(object); } - public Object getRhsSym(int i) { return btParser.getSym(i); } - - public int getRhsTokenIndex(int i) { return btParser.getToken(i); } - public IToken getRhsIToken(int i) { return super.getIToken(getRhsTokenIndex(i)); } - - public int getRhsFirstTokenIndex(int i) { return btParser.getFirstToken(i); } - public IToken getRhsFirstIToken(int i) { return super.getIToken(getRhsFirstTokenIndex(i)); } - - public int getRhsLastTokenIndex(int i) { return btParser.getLastToken(i); } - public IToken getRhsLastIToken(int i) { return super.getIToken(getRhsLastTokenIndex(i)); } - - public int getLeftSpan() { return btParser.getFirstToken(); } - public IToken getLeftIToken() { return super.getIToken(getLeftSpan()); } - - public int getRightSpan() { return btParser.getLastToken(); } - public IToken getRightIToken() { return super.getIToken(getRightSpan()); } - - public int getRhsErrorTokenIndex(int i) - { - int index = btParser.getToken(i); - IToken err = super.getIToken(index); - return (err instanceof ErrorToken ? index : 0); - } - public ErrorToken getRhsErrorIToken(int i) - { - int index = btParser.getToken(i); - IToken err = super.getIToken(index); - return (ErrorToken) (err instanceof ErrorToken ? err : null); - } - - public C99ExpressionStatementParser(LexStream lexStream) - { - super(lexStream); - - try - { - super.remapTerminalSymbols(orderedTerminalSymbols(), C99ExpressionStatementParserprs.EOFT_SYMBOL); - } - catch(NullExportedSymbolsException e) { - } - catch(NullTerminalSymbolsException e) { - } - catch(UnimplementedTerminalsException e) - { - java.util.ArrayList unimplemented_symbols = e.getSymbols(); - System.out.println("The Lexer will not scan the following token(s):"); - for (int i = 0; i < unimplemented_symbols.size(); i++) - { - Integer id = (Integer) unimplemented_symbols.get(i); - System.out.println(" " + C99ExpressionStatementParsersym.orderedTerminalSymbols[id.intValue()]); - } - System.out.println(); - } - catch(UndefinedEofSymbolException e) - { - throw new Error(new UndefinedEofSymbolException - ("The Lexer does not implement the Eof symbol " + - C99ExpressionStatementParsersym.orderedTerminalSymbols[C99ExpressionStatementParserprs.EOFT_SYMBOL])); - } - } - - public String[] orderedTerminalSymbols() { return C99ExpressionStatementParsersym.orderedTerminalSymbols; } - public String getTokenKindName(int kind) { return C99ExpressionStatementParsersym.orderedTerminalSymbols[kind]; } - public int getEOFTokenKind() { return C99ExpressionStatementParserprs.EOFT_SYMBOL; } - public PrsStream getParseStream() { return (PrsStream) this; } - - // - // Report error message for given error_token. - // - public final void reportErrorTokenMessage(int error_token, String msg) - { - int firsttok = super.getFirstErrorToken(error_token), - lasttok = super.getLastErrorToken(error_token); - String location = super.getFileName() + ':' + - (firsttok > lasttok - ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok)) - : (super.getLine(error_token) + ":" + - super.getColumn(error_token) + ":" + - super.getEndLine(error_token) + ":" + - super.getEndColumn(error_token))) - + ": "; - super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE), location, msg); - } - - public Object parser() - { - return parser(null, 0); - } - - public Object parser(Monitor monitor) - { - return parser(monitor, 0); - } - - public Object parser(int error_repair_count) - { - return parser(null, error_repair_count); - } - - public Object parser(Monitor monitor, int error_repair_count) - { - try - { - btParser = new BacktrackingParser(monitor, (TokenStream) this, prs, (RuleAction) this); - } - catch (NotBacktrackParseTableException e) - { - throw new Error(new NotBacktrackParseTableException - ("Regenerate C99ExpressionStatementParserprs.java with -BACKTRACK option")); - } - catch (BadParseSymFileException e) - { - throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- C99ExpressionStatementParsersym.java")); - } - - try - { - return (Object) btParser.parse(error_repair_count); - } - catch (BadParseException e) - { - reset(e.error_token); // point to error token - DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs); - diagnoseParser.diagnose(e.error_token); - } - - return null; - } - - -private C99BuildASTParserAction action; - -public C99ExpressionStatementParser() { // constructor -} - -private void initActions(IASTTranslationUnit tu) { - action = new C99BuildASTParserAction ( C99ASTNodeFactory.DEFAULT_INSTANCE , this, tu); -} - - -public void addToken(IToken token) { - token.setKind(mapKind(token.getKind())); // TODO does mapKind need to be called? - super.addToken(token); -} - - -public IASTCompletionNode parse(IASTTranslationUnit tu) { - // this has to be done, or... kaboom! - setStreamLength(getSize()); - initActions(tu); - - final int errorRepairCount = -1; // -1 means full error handling - parser(null, errorRepairCount); // do the actual parse - super.resetTokenStream(); // allow tokens to be garbage collected - - // the completion node may be null - IASTCompletionNode compNode = action.getASTCompletionNode(); - - //action = null; - //parserAction = null; - return compNode; -} - -// uncomment this method to use with backtracking parser -public List getRuleTokens() { - return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1)); -} - - -public IASTNode getSecondaryParseResult() { - return action.getSecondaryParseResult(); -} - -public String[] getOrderedTerminalSymbols() { - return C99ExpressionStatementParsersym.orderedTerminalSymbols; -} - -public String getName() { - return "C99ExpressionStatementParser"; //$NON-NLS-1$ -} - - - -private ITokenMap tokenMap = null; - -public void setTokens(List tokens) { - resetTokenStream(); - addToken(new Token(null, 0, 0, 0)); // dummy token - for(IToken token : tokens) { - token.setKind(tokenMap.mapKind(token.getKind())); - addToken(token); - } - addToken(new Token(null, 0, 0, C99ExpressionStatementParsersym.TK_EOF_TOKEN)); -} - -public C99ExpressionStatementParser(String[] mapFrom) { // constructor - tokenMap = new TokenMap(C99ExpressionStatementParsersym.orderedTerminalSymbols, mapFrom); -} - - - - public void ruleAction(int ruleNumber) - { - switch (ruleNumber) - { - - // - // Rule 1: ::= $Empty - // - case 1: { action. openASTScope(); break; - } - - // - // Rule 10: literal ::= integer - // - case 10: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 11: literal ::= floating - // - case 11: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_float_constant); break; - } - - // - // Rule 12: literal ::= charconst - // - case 12: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_char_constant); break; - } - - // - // Rule 13: literal ::= stringlit - // - case 13: { action. consumeExpressionLiteral(IASTLiteralExpression.lk_string_literal); break; - } - - // - // Rule 15: primary_expression ::= primary_expression_id - // - case 15: { action. consumeExpressionID(); break; - } - - // - // Rule 16: primary_expression ::= ( expression ) - // - case 16: { action. consumeExpressionBracketed(); break; - } - - // - // Rule 20: postfix_expression ::= postfix_expression [ expression ] - // - case 20: { action. consumeExpressionArraySubscript(); break; - } - - // - // Rule 21: postfix_expression ::= postfix_expression ( expression_list_opt ) - // - case 21: { action. consumeExpressionFunctionCall(); break; - } - - // - // Rule 22: postfix_expression ::= postfix_expression . member_name - // - case 22: { action. consumeExpressionFieldReference(false); break; - } - - // - // Rule 23: postfix_expression ::= postfix_expression -> member_name - // - case 23: { action. consumeExpressionFieldReference(true); break; - } - - // - // Rule 24: postfix_expression ::= postfix_expression ++ - // - case 24: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; - } - - // - // Rule 25: postfix_expression ::= postfix_expression -- - // - case 25: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; - } - - // - // Rule 26: postfix_expression ::= ( type_name ) { initializer_list comma_opt } - // - case 26: { action. consumeExpressionTypeIdInitializer(); break; - } - - // - // Rule 32: unary_expression ::= ++ unary_expression - // - case 32: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; - } - - // - // Rule 33: unary_expression ::= -- unary_expression - // - case 33: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; - } - - // - // Rule 34: unary_expression ::= & cast_expression - // - case 34: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; - } - - // - // Rule 35: unary_expression ::= * cast_expression - // - case 35: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; - } - - // - // Rule 36: unary_expression ::= + cast_expression - // - case 36: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; - } - - // - // Rule 37: unary_expression ::= - cast_expression - // - case 37: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; - } - - // - // Rule 38: unary_expression ::= ~ cast_expression - // - case 38: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; - } - - // - // Rule 39: unary_expression ::= ! cast_expression - // - case 39: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; - } - - // - // Rule 40: unary_expression ::= sizeof unary_expression - // - case 40: { action. consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; - } - - // - // Rule 41: unary_expression ::= sizeof ( type_name ) - // - case 41: { action. consumeExpressionTypeId(IASTTypeIdExpression.op_sizeof); break; - } - - // - // Rule 43: cast_expression ::= ( type_name ) cast_expression - // - case 43: { action. consumeExpressionCast(IASTCastExpression.op_cast); break; - } - - // - // Rule 45: multiplicative_expression ::= multiplicative_expression * cast_expression - // - case 45: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiply); break; - } - - // - // Rule 46: multiplicative_expression ::= multiplicative_expression / cast_expression - // - case 46: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divide); break; - } - - // - // Rule 47: multiplicative_expression ::= multiplicative_expression % cast_expression - // - case 47: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_modulo); break; - } - - // - // Rule 49: additive_expression ::= additive_expression + multiplicative_expression - // - case 49: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plus); break; - } - - // - // Rule 50: additive_expression ::= additive_expression - multiplicative_expression - // - case 50: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minus); break; - } - - // - // Rule 52: shift_expression ::= shift_expression << additive_expression - // - case 52: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeft); break; - } - - // - // Rule 53: shift_expression ::= shift_expression >> additive_expression - // - case 53: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRight); break; - } - - // - // Rule 55: relational_expression ::= relational_expression < shift_expression - // - case 55: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessThan); break; - } - - // - // Rule 56: relational_expression ::= relational_expression > shift_expression - // - case 56: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterThan); break; - } - - // - // Rule 57: relational_expression ::= relational_expression <= shift_expression - // - case 57: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_lessEqual); break; - } - - // - // Rule 58: relational_expression ::= relational_expression >= shift_expression - // - case 58: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_greaterEqual); break; - } - - // - // Rule 60: equality_expression ::= equality_expression == relational_expression - // - case 60: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_equals); break; - } - - // - // Rule 61: equality_expression ::= equality_expression != relational_expression - // - case 61: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_notequals); break; - } - - // - // Rule 63: AND_expression ::= AND_expression & equality_expression - // - case 63: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAnd); break; - } - - // - // Rule 65: exclusive_OR_expression ::= exclusive_OR_expression ^ AND_expression - // - case 65: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXor); break; - } - - // - // Rule 67: inclusive_OR_expression ::= inclusive_OR_expression | exclusive_OR_expression - // - case 67: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOr); break; - } - - // - // Rule 69: logical_AND_expression ::= logical_AND_expression && inclusive_OR_expression - // - case 69: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalAnd); break; - } - - // - // Rule 71: logical_OR_expression ::= logical_OR_expression || logical_AND_expression - // - case 71: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_logicalOr); break; - } - - // - // Rule 73: conditional_expression ::= logical_OR_expression ? expression : conditional_expression - // - case 73: { action. consumeExpressionConditional(); break; - } - - // - // Rule 75: assignment_expression ::= unary_expression = assignment_expression - // - case 75: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_assign); break; - } - - // - // Rule 76: assignment_expression ::= unary_expression *= assignment_expression - // - case 76: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_multiplyAssign); break; - } - - // - // Rule 77: assignment_expression ::= unary_expression /= assignment_expression - // - case 77: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_divideAssign); break; - } - - // - // Rule 78: assignment_expression ::= unary_expression %= assignment_expression - // - case 78: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_moduloAssign); break; - } - - // - // Rule 79: assignment_expression ::= unary_expression += assignment_expression - // - case 79: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_plusAssign); break; - } - - // - // Rule 80: assignment_expression ::= unary_expression -= assignment_expression - // - case 80: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_minusAssign); break; - } - - // - // Rule 81: assignment_expression ::= unary_expression <<= assignment_expression - // - case 81: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftLeftAssign); break; - } - - // - // Rule 82: assignment_expression ::= unary_expression >>= assignment_expression - // - case 82: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_shiftRightAssign); break; - } - - // - // Rule 83: assignment_expression ::= unary_expression &= assignment_expression - // - case 83: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryAndAssign); break; - } - - // - // Rule 84: assignment_expression ::= unary_expression ^= assignment_expression - // - case 84: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryXorAssign); break; - } - - // - // Rule 85: assignment_expression ::= unary_expression |= assignment_expression - // - case 85: { action. consumeExpressionBinaryOperator(IASTBinaryExpression.op_binaryOrAssign); break; - } - - // - // Rule 88: expression_list ::= expression_list_actual - // - case 88: { action. consumeExpressionList(); break; - } - - // - // Rule 90: expression_list_opt ::= $Empty - // - case 90: { action. consumeEmpty(); break; - } - - // - // Rule 100: statement ::= ERROR_TOKEN - // - case 100: { action. consumeStatementProblem(); break; - } - - // - // Rule 101: labeled_statement ::= identifier_or_typedefname : statement - // - case 101: { action. consumeStatementLabeled(); break; - } - - // - // Rule 102: labeled_statement ::= case constant_expression : - // - case 102: { action. consumeStatementCase(); break; - } - - // - // Rule 103: labeled_statement ::= default : - // - case 103: { action. consumeStatementDefault(); break; - } - - // - // Rule 104: compound_statement ::= { } - // - case 104: { action. consumeStatementCompoundStatement(false); break; - } - - // - // Rule 105: compound_statement ::= { block_item_list } - // - case 105: { action. consumeStatementCompoundStatement(true); break; - } - - // - // Rule 109: block_item ::= declaration - // - case 109: { action. consumeStatementDeclarationWithDisambiguation(); break; - } - - // - // Rule 110: expression_statement ::= ; - // - case 110: { action. consumeStatementNull(); break; - } - - // - // Rule 111: expression_statement ::= expression_in_statement ; - // - case 111: { action. consumeStatementExpression(); break; - } - - // - // Rule 112: selection_statement ::= if ( expression ) statement - // - case 112: { action. consumeStatementIf(false); break; - } - - // - // Rule 113: selection_statement ::= if ( expression ) statement else statement - // - case 113: { action. consumeStatementIf(true); break; - } - - // - // Rule 114: selection_statement ::= switch ( expression ) statement - // - case 114: { action. consumeStatementSwitch(); break; - } - - // - // Rule 116: expression_opt ::= $Empty - // - case 116: { action. consumeEmpty(); break; - } - - // - // Rule 117: iteration_statement ::= do statement while ( expression ) ; - // - case 117: { action. consumeStatementDoLoop(); break; - } - - // - // Rule 118: iteration_statement ::= while ( expression ) statement - // - case 118: { action. consumeStatementWhileLoop(); break; - } - - // - // Rule 119: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement - // - case 119: { action. consumeStatementForLoop(); break; - } - - // - // Rule 120: iteration_statement ::= for ( declaration expression_opt ; expression_opt ) statement - // - case 120: { action. consumeStatementForLoop(); break; - } - - // - // Rule 121: jump_statement ::= goto identifier_or_typedefname ; - // - case 121: { action. consumeStatementGoto(); break; - } - - // - // Rule 122: jump_statement ::= continue ; - // - case 122: { action. consumeStatementContinue(); break; - } - - // - // Rule 123: jump_statement ::= break ; - // - case 123: { action. consumeStatementBreak(); break; - } - - // - // Rule 124: jump_statement ::= return ; - // - case 124: { action. consumeStatementReturn(false); break; - } - - // - // Rule 125: jump_statement ::= return expression ; - // - case 125: { action. consumeStatementReturn(true); break; - } - - // - // Rule 126: declaration ::= declaration_specifiers ; - // - case 126: { action. consumeDeclarationSimple(false); break; - } - - // - // Rule 127: declaration ::= declaration_specifiers init_declarator_list ; - // - case 127: { action. consumeDeclarationSimple(true); break; - } - - // - // Rule 128: declaration_specifiers ::= simple_declaration_specifiers - // - case 128: { action. consumeDeclarationSpecifiersSimple(); break; - } - - // - // Rule 129: declaration_specifiers ::= struct_or_union_declaration_specifiers - // - case 129: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; - } - - // - // Rule 130: declaration_specifiers ::= elaborated_declaration_specifiers - // - case 130: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; - } - - // - // Rule 131: declaration_specifiers ::= enum_declaration_specifiers - // - case 131: { action. consumeDeclarationSpecifiersStructUnionEnum(); break; - } - - // - // Rule 132: declaration_specifiers ::= typdef_name_declaration_specifiers - // - case 132: { action. consumeDeclarationSpecifiersTypedefName(); break; - } - - // - // Rule 157: init_declarator ::= complete_declarator = initializer - // - case 157: { action. consumeDeclaratorWithInitializer(true); break; - } - - // - // Rule 159: storage_class_specifier ::= storage_class_specifier_token - // - case 159: { action. consumeDeclSpecToken(); break; - } - - // - // Rule 165: simple_type_specifier ::= simple_type_specifier_token - // - case 165: { action. consumeDeclSpecToken(); break; - } - - // - // Rule 178: typedef_name_in_declspec ::= Completion - // - case 178: { action. consumeDeclSpecToken(); break; - } - - // - // Rule 179: typedef_name_in_declspec ::= identifier - // - case 179: { action. consumeDeclSpecToken(); break; - } - - // - // Rule 182: struct_or_union_specifier ::= struct { struct_declaration_list_opt } - // - case 182: { action. consumeTypeSpecifierComposite(false, IASTCompositeTypeSpecifier.k_struct); break; - } - - // - // Rule 183: struct_or_union_specifier ::= union { struct_declaration_list_opt } - // - case 183: { action. consumeTypeSpecifierComposite(false, IASTCompositeTypeSpecifier.k_union); break; - } - - // - // Rule 184: struct_or_union_specifier ::= struct identifier_or_typedefname { struct_declaration_list_opt } - // - case 184: { action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_struct); break; - } - - // - // Rule 185: struct_or_union_specifier ::= union identifier_or_typedefname { struct_declaration_list_opt } - // - case 185: { action. consumeTypeSpecifierComposite(true, IASTCompositeTypeSpecifier.k_union); break; - } - - // - // Rule 186: elaborated_specifier ::= struct identifier_or_typedefname - // - case 186: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_struct); break; - } - - // - // Rule 187: elaborated_specifier ::= union identifier_or_typedefname - // - case 187: { action. consumeTypeSpecifierElaborated(IASTCompositeTypeSpecifier.k_union); break; - } - - // - // Rule 188: elaborated_specifier ::= enum identifier_or_typedefname - // - case 188: { action. consumeTypeSpecifierElaborated(IASTElaboratedTypeSpecifier.k_enum); break; - } - - // - // Rule 193: struct_declaration ::= specifier_qualifier_list struct_declarator_list ; - // - case 193: { action. consumeStructDeclaration(true); break; - } - - // - // Rule 194: struct_declaration ::= specifier_qualifier_list ; - // - case 194: { action. consumeStructDeclaration(false); break; - } - - // - // Rule 195: struct_declaration ::= ERROR_TOKEN - // - case 195: { action. consumeDeclarationProblem(); break; - } - - // - // Rule 201: struct_declarator ::= : constant_expression - // - case 201: { action. consumeBitField(false); break; - } - - // - // Rule 202: struct_declarator ::= declarator : constant_expression - // - case 202: { action. consumeBitField(true); break; - } - - // - // Rule 203: enum_specifier ::= enum { enumerator_list_opt comma_opt } - // - case 203: { action. consumeTypeSpecifierEnumeration(false); break; - } - - // - // Rule 204: enum_specifier ::= enum identifier_or_typedefname { enumerator_list_opt comma_opt } - // - case 204: { action. consumeTypeSpecifierEnumeration(true); break; - } - - // - // Rule 209: enumerator ::= identifier_or_typedefname - // - case 209: { action. consumeEnumerator(false); break; - } - - // - // Rule 210: enumerator ::= identifier_or_typedefname = constant_expression - // - case 210: { action. consumeEnumerator(true); break; - } - - // - // Rule 211: type_qualifier ::= type_qualifier_token - // - case 211: { action. consumeDeclSpecToken(); break; - } - - // - // Rule 215: function_specifier ::= inline - // - case 215: { action. consumeDeclSpecToken(); break; - } - - // - // Rule 217: declarator ::= pointer_seq direct_declarator - // - case 217: { action. consumeDeclaratorWithPointer(true); break; - } - - // - // Rule 222: basic_direct_declarator ::= declarator_id_name - // - case 222: { action. consumeDirectDeclaratorIdentifier(); break; - } - - // - // Rule 223: basic_direct_declarator ::= ( declarator ) - // - case 223: { action. consumeDirectDeclaratorBracketed(); break; - } - - // - // Rule 224: declarator_id_name ::= identifier - // - case 224: { action. consumeIdentifierName(); break; - } - - // - // Rule 225: array_direct_declarator ::= basic_direct_declarator array_modifier - // - case 225: { action. consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 226: array_direct_declarator ::= array_direct_declarator array_modifier - // - case 226: { action. consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 228: function_direct_declarator ::= basic_direct_declarator ( parameter_type_list ) - // - case 228: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; - } - - // - // Rule 229: function_direct_declarator ::= basic_direct_declarator ( ) - // - case 229: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; - } - - // - // Rule 231: function_declarator ::= pointer_seq function_direct_declarator - // - case 231: { action. consumeDeclaratorWithPointer(true); break; - } - - // - // Rule 232: knr_direct_declarator ::= basic_direct_declarator ( identifier_list ) - // - case 232: { action. consumeDirectDeclaratorFunctionDeclaratorKnR(); break; - } - - // - // Rule 234: knr_function_declarator ::= pointer_seq knr_direct_declarator - // - case 234: { action. consumeDeclaratorWithPointer(true); break; - } - - // - // Rule 235: identifier_list ::= identifier - // - case 235: { action. consumeIdentifierKnR(); break; - } - - // - // Rule 236: identifier_list ::= identifier_list , identifier - // - case 236: { action. consumeIdentifierKnR(); break; - } - - // - // Rule 237: array_modifier ::= [ ] - // - case 237: { action. consumeDirectDeclaratorArrayModifier(false); break; - } - - // - // Rule 238: array_modifier ::= [ array_modifier_type_qualifiers ] - // - case 238: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, false); break; - } - - // - // Rule 239: array_modifier ::= [ assignment_expression ] - // - case 239: { action. consumeDirectDeclaratorArrayModifier(true); break; - } - - // - // Rule 240: array_modifier ::= [ array_modifier_type_qualifiers assignment_expression ] - // - case 240: { action. consumeDirectDeclaratorModifiedArrayModifier(false, false, true, true); break; - } - - // - // Rule 241: array_modifier ::= [ static assignment_expression ] - // - case 241: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, false, true); break; - } - - // - // Rule 242: array_modifier ::= [ static array_modifier_type_qualifiers assignment_expression ] - // - case 242: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; - } - - // - // Rule 243: array_modifier ::= [ array_modifier_type_qualifiers static assignment_expression ] - // - case 243: { action. consumeDirectDeclaratorModifiedArrayModifier(true, false, true, true); break; - } - - // - // Rule 244: array_modifier ::= [ * ] - // - case 244: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, false, false); break; - } - - // - // Rule 245: array_modifier ::= [ array_modifier_type_qualifiers * ] - // - case 245: { action. consumeDirectDeclaratorModifiedArrayModifier(false, true, true, false); break; - } - - // - // Rule 247: pointer_seq ::= * - // - case 247: { action. consumePointer(); break; - } - - // - // Rule 248: pointer_seq ::= pointer_seq * - // - case 248: { action. consumePointer(); break; - } - - // - // Rule 249: pointer_seq ::= * type_qualifier_list - // - case 249: { action. consumePointerTypeQualifierList(); break; - } - - // - // Rule 250: pointer_seq ::= pointer_seq * type_qualifier_list - // - case 250: { action. consumePointerTypeQualifierList(); break; - } - - // - // Rule 253: parameter_type_list ::= parameter_list - // - case 253: { action. consumeEmpty(); break; - } - - // - // Rule 254: parameter_type_list ::= parameter_list , ... - // - case 254: { action. consumePlaceHolder(); break; - } - - // - // Rule 255: parameter_type_list ::= ... - // - case 255: { action. consumePlaceHolder(); break; - } - - // - // Rule 258: parameter_declaration ::= declaration_specifiers complete_parameter_declarator - // - case 258: { action. consumeParameterDeclaration(); break; - } - - // - // Rule 259: parameter_declaration ::= declaration_specifiers - // - case 259: { action. consumeParameterDeclarationWithoutDeclarator(); break; - } - - // - // Rule 262: type_name ::= specifier_qualifier_list - // - case 262: { action. consumeTypeId(false); break; - } - - // - // Rule 263: type_name ::= specifier_qualifier_list abstract_declarator - // - case 263: { action. consumeTypeId(true); break; - } - - // - // Rule 265: abstract_declarator ::= pointer_seq - // - case 265: { action. consumeDeclaratorWithPointer(false); break; - } - - // - // Rule 266: abstract_declarator ::= pointer_seq direct_abstract_declarator - // - case 266: { action. consumeDeclaratorWithPointer(false); break; - } - - // - // Rule 270: basic_direct_abstract_declarator ::= ( abstract_declarator ) - // - case 270: { action. consumeDirectDeclaratorBracketed(); break; - } - - // - // Rule 271: array_direct_abstract_declarator ::= array_modifier - // - case 271: { action. consumeDirectDeclaratorArrayDeclarator(false); break; - } - - // - // Rule 272: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier - // - case 272: { action. consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 273: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier - // - case 273: { action. consumeDirectDeclaratorArrayDeclarator(true); break; - } - - // - // Rule 274: function_direct_abstract_declarator ::= ( ) - // - case 274: { action. consumeDirectDeclaratorFunctionDeclarator(false, false); break; - } - - // - // Rule 275: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( ) - // - case 275: { action. consumeDirectDeclaratorFunctionDeclarator(true, false); break; - } - - // - // Rule 276: function_direct_abstract_declarator ::= ( parameter_type_list ) - // - case 276: { action. consumeDirectDeclaratorFunctionDeclarator(false, true); break; - } - - // - // Rule 277: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( parameter_type_list ) - // - case 277: { action. consumeDirectDeclaratorFunctionDeclarator(true, true); break; - } - - // - // Rule 278: initializer ::= assignment_expression - // - case 278: { action. consumeInitializer(); break; - } - - // - // Rule 279: initializer ::= { initializer_list comma_opt } - // - case 279: { action. consumeInitializerList(); break; - } - - // - // Rule 284: designated_initializer ::= designation = initializer - // - case 284: { action. consumeInitializerDesignated(); break; - } - - // - // Rule 288: designator_base ::= [ constant_expression ] - // - case 288: { action. consumeDesignatorArray(); break; - } - - // - // Rule 289: designator_base ::= . identifier_or_typedefname - // - case 289: { action. consumeDesignatorField(); break; - } - - // - // Rule 290: designator ::= [ constant_expression ] - // - case 290: { action. consumeDesignatorArray(); break; - } - - // - // Rule 291: designator ::= . identifier_or_typedefname - // - case 291: { action. consumeDesignatorField(); break; - } - - // - // Rule 292: translation_unit ::= external_declaration_list - // - case 292: { action. consumeTranslationUnit(); break; - } - - // - // Rule 293: translation_unit ::= $Empty - // - case 293: { action. consumeTranslationUnit(); break; - } - - // - // Rule 298: external_declaration ::= ; - // - case 298: { action. consumeDeclarationEmpty(); break; - } - - // - // Rule 299: external_declaration ::= ERROR_TOKEN - // - case 299: { action. consumeDeclarationProblem(); break; - } - - // - // Rule 302: function_definition ::= declaration_specifiers function_declarator function_body - // - case 302: { action. consumeFunctionDefinition(true); break; - } - - // - // Rule 303: function_definition ::= function_declarator function_body - // - case 303: { action. consumeFunctionDefinition(false); break; - } - - // - // Rule 304: function_definition ::= declaration_specifiers knr_function_declarator declaration_list compound_statement - // - case 304: { action. consumeFunctionDefinitionKnR(); break; - } - - // - // Rule 305: function_body ::= { } - // - case 305: { action. consumeStatementCompoundStatement(false); break; - } - - // - // Rule 306: function_body ::= { block_item_list } - // - case 306: { action. consumeStatementCompoundStatement(true); break; - } - - // - // Rule 308: expression_parser_start ::= ERROR_TOKEN - // - case 308: { action. consumeExpressionProblem(); break; - } - - - default: - break; - } - return; - } -} - diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionStatementParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionStatementParserprs.java deleted file mode 100644 index 871a8943444..00000000000 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionStatementParserprs.java +++ /dev/null @@ -1,1128 +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 -*********************************************************************************/ - -// This file was generated by LPG - -package org.eclipse.cdt.internal.core.dom.lrparser.c99; - -public class C99ExpressionStatementParserprs implements lpg.lpgjavaruntime.ParseTable, C99ExpressionStatementParsersym { - - public interface IsKeyword { - public final static byte isKeyword[] = {0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0 - }; - }; - public final static byte isKeyword[] = IsKeyword.isKeyword; - public final boolean isKeyword(int index) { return isKeyword[index] != 0; } - - public interface BaseCheck { - public final static short baseCheck[] = {0, - 0,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,3,1,1,1,4, - 4,3,3,2,2,8,1,0,1,1, - 1,2,2,2,2,2,2,2,2,2, - 4,1,4,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,3,3,3,3,3,3, - 3,3,3,3,3,1,1,2,1,0, - 1,3,1,1,1,1,1,1,1,1, - 3,3,2,2,4,1,2,1,1,1, - 2,5,7,5,1,0,7,5,9,8, - 3,2,2,2,3,2,4,2,2,2, - 2,2,1,1,1,1,2,1,2,2, - 2,1,2,2,1,2,2,1,2,2, - 1,2,2,1,3,1,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,5,5,6,6,2,2,2,1,0, - 1,2,4,2,1,1,1,3,1,1, - 2,3,6,7,1,0,1,3,1,3, - 1,1,1,1,1,1,3,1,1,1, - 1,1,3,1,2,2,1,5,3,1, - 3,5,1,3,1,3,2,4,3,5, - 4,6,6,3,5,1,1,2,3,4, - 1,2,1,3,1,1,3,2,1,1, - 1,1,2,1,2,3,1,1,1,3, - 1,2,2,2,3,4,5,1,5,1, - 1,3,3,4,1,1,2,3,2,3, - 2,1,0,1,2,1,1,1,1,1, - 2,4,3,6,2,4,2,1,-38,0, - 0,0,0,0,0,0,-3,0,0,0, - 0,0,0,0,0,0,0,0,-2,0, - 0,-5,-15,-31,-82,-17,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,-39,0,0,0,0,0,0, - 0,0,0,0,0,-18,-19,0,-20,0, - 0,0,0,0,0,0,-7,0,0,0, - 0,0,0,0,-54,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-32, - 0,-174,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,-181,-21,-22,-23,-187,-4,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-35,0,0, - -144,0,0,-24,0,0,0,0,0,0, - 0,0,-25,0,0,0,0,0,-77,0, - -75,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -143,-26,0,0,0,-173,-27,0,-111,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,-195,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-189,0,0,0,0,0,0, - 0,-36,0,0,0,0,0,0,0,0, - 0,0,0,-28,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-88,-89,-90,0,0,-58,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,-69,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,-61,0, - 0,0,0,0,0,0,-70,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,0,0,-63,0, - 0,0,0,0,0,0,-71,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,-65,0, - 0,0,0,0,0,0,-115,0,0,0, - 0,0,0,0,0,0,0,0,-66,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,-91,0,0,0, - 0,0,0,0,0,0,0,0,-68,0, - 0,0,0,0,0,0,-134,0,0,0, - 0,0,0,0,0,0,0,0,-40,0, - 0,0,0,0,0,0,-74,0,0,-92, - -93,-94,-83,-95,0,0,0,0,-148,0, - 0,0,0,0,0,0,-85,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-8,0,0,0,0,0,0,-72,0, - 0,0,0,0,-96,0,-97,-98,0,0, - 0,0,0,0,-149,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,-99,0,0,0,0,0,0,0, - 0,0,0,-186,0,0,0,0,0,0, - 0,-100,0,0,0,0,0,0,0,0, - 0,0,-192,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-196,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -206,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-124, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-101,-133, - -6,0,0,0,0,0,0,0,-57,0, - 0,0,0,0,0,0,-102,0,0,0, - 0,0,0,0,0,-114,0,0,0,0, - 0,0,-152,0,0,0,0,0,0,0, - 0,0,0,0,0,-117,0,-108,-78,0, - -110,-171,0,0,-33,0,-112,0,0,0, - -80,-103,0,-131,-104,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,-56,0,0,0,0,0,0, - 0,-129,0,0,0,0,0,0,0,0, - -53,0,0,0,0,0,0,0,-87,0, - 0,0,0,0,0,0,-183,-9,0,0, - 0,0,0,0,0,-119,-121,-122,0,0, - 0,-191,-153,0,0,0,0,0,0,0, - -48,0,0,0,0,0,0,0,-164,0, - 0,0,0,0,0,0,0,0,0,-106, - 0,-107,0,0,-151,0,0,0,0,0, - 0,0,0,0,0,-50,0,0,0,0, - 0,0,0,-205,0,0,0,0,0,-126, - -180,0,-137,-127,0,0,-132,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,-13,0,0,0,0,0, - 0,-52,0,0,0,0,0,0,0,-118, - 0,0,0,-44,0,0,0,0,0,0, - 0,0,0,0,-10,0,0,0,0,0, - 0,0,0,-45,0,0,0,0,0,0, - 0,-154,0,0,-46,0,0,0,0,0, - 0,0,-120,0,0,-47,0,0,0,0, - 0,0,0,-198,0,0,0,-123,-155,-150, - -135,0,-49,0,0,0,0,0,0,0, - -37,0,-159,-139,-76,-79,-142,-145,0,-165, - -81,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,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-188,0, - 0,-166,-157,-146,0,-11,0,0,0,0, - 0,0,-12,0,0,0,0,0,0,-16, - -178,-29,0,-30,0,0,-147,0,-170,0, - -197,0,-41,0,0,0,0,0,0,-176, - 0,-208,0,0,0,0,0,0,0,0, - -160,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-42,0,0,0,0, - 0,0,-43,0,0,0,0,0,0,-84, - -193,0,0,0,-86,0,-73,0,0,0, - 0,0,0,-199,-116,-163,-1,-168,-113,-182, - 0,0,0,-177,0,0,0,0,0,0, - 0,0,0,0,0,0,-138,0,-140,0, - 0,0,-158,0,0,0,0,0,0,0, - 0,0,-179,-184,0,0,-128,0,-194,0, - 0,0,0,0,0,0,0,-175,0,-141, - 0,0,-162,0,0,0,0,0,0,0, - 0,0,-190,-201,0,-203,0,-109,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,-167,0,0,0,0,0,0, - 0,-14,0,0,0,0,0,0,0,0, - 0,0,0,0,-161,-34,0,-55,0,-156, - 0,-204,0,0,0,0,-185,0,-200,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,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; - public final int baseCheck(int index) { return baseCheck[index]; } - public final static short rhs[] = baseCheck; - public final int rhs(int index) { return rhs[index]; }; - - public interface BaseAction { - public final static char baseAction[] = { - 83,8,24,24,20,20,26,26,61,61, - 1,1,1,1,2,2,2,3,3,4, - 4,4,4,4,4,4,4,51,51,69, - 69,5,5,5,5,5,5,5,5,5, - 5,5,6,6,7,7,7,7,9,9, - 9,10,10,10,11,11,11,11,11,12, - 12,12,13,13,14,14,15,15,16,16, - 17,17,18,18,19,19,19,19,19,19, - 19,19,19,19,19,19,93,41,33,84, - 84,71,71,46,94,94,94,94,94,94, - 94,95,95,95,96,96,101,101,102,102, - 97,97,98,98,98,104,104,99,99,99, - 99,100,100,100,100,100,103,103,23,23, - 23,23,23,28,28,28,77,77,72,72, - 72,72,73,73,73,74,74,74,75,75, - 75,76,76,76,105,105,106,106,107,29, - 31,31,31,31,31,52,54,54,54,54, - 54,54,54,54,54,54,54,54,66,66, - 27,27,63,63,63,63,64,64,64,55, - 55,56,56,48,48,48,32,85,85,78, - 79,79,79,65,65,80,80,81,81,67, - 67,21,22,22,22,30,47,47,34,34, - 34,34,37,37,39,35,35,36,40,40, - 108,108,38,109,109,86,86,25,25,25, - 25,25,25,25,25,25,82,49,49,49, - 49,58,58,57,57,57,59,59,50,50, - 87,87,62,62,60,60,60,42,42,42, - 43,44,44,44,45,45,45,45,53,53, - 70,70,70,70,68,88,89,89,90,90, - 91,91,110,110,111,111,112,112,112,112, - 114,114,113,113,113,115,115,83,83,1, - 14,19,15,333,527,44,376,139,336,379, - 377,454,453,484,455,522,493,74,91,155, - 134,211,42,831,415,118,192,136,133,135, - 159,554,14,19,15,333,527,44,376,481, - 336,379,377,454,453,484,455,522,493,74, - 278,138,1290,165,612,14,19,15,333,42, - 44,616,142,145,148,151,209,13,307,56, - 332,1366,1101,1371,1500,1505,1159,612,14,19, - 15,333,42,39,280,612,14,19,15,333, - 42,44,376,23,336,379,377,454,1057,281, - 415,521,554,14,19,15,333,527,44,376, - 481,336,379,377,454,453,484,455,522,493, - 74,278,434,14,19,15,333,527,44,376, - 481,336,379,377,454,453,484,455,522,493, - 74,278,429,107,187,183,626,612,14,19, - 15,333,527,44,376,280,336,379,377,454, - 453,484,455,522,493,74,91,271,472,22, - 281,673,1501,1370,537,282,217,1183,219,1322, - 221,222,227,374,266,1089,499,269,1507,279, - 283,368,14,19,15,333,527,44,376,1519, - 336,379,377,454,453,484,455,522,493,74, - 1097,479,135,208,272,237,754,702,332,696, - 14,19,15,333,527,44,376,1557,336,379, - 377,454,453,484,455,522,493,74,1142,401, - 14,19,15,333,527,44,376,708,336,379, - 377,454,453,484,455,522,493,74,1350,1449, - 526,286,1518,238,583,14,19,15,333,527, - 44,376,472,336,379,377,454,453,484,455, - 522,493,74,278,612,14,19,15,333,527, - 44,376,16,336,379,377,454,453,484,455, - 522,493,74,92,724,743,212,287,193,612, - 14,19,15,333,527,44,376,284,336,379, - 377,454,453,484,455,522,493,74,85,612, - 14,19,15,333,527,44,376,472,336,379, - 377,454,453,484,455,522,493,74,84,612, - 14,19,15,333,527,44,376,1210,336,379, - 377,454,453,484,455,522,493,74,83,612, - 14,19,15,333,527,44,376,472,336,379, - 377,454,453,484,455,522,493,74,82,612, - 14,19,15,333,527,44,376,1212,336,379, - 377,454,453,484,455,522,493,74,81,612, - 14,19,15,333,527,44,376,472,336,379, - 377,454,453,484,455,522,493,74,80,612, - 14,19,15,333,527,44,376,21,336,379, - 377,454,453,484,455,522,493,74,79,612, - 14,19,15,333,527,44,376,472,336,379, - 377,454,453,484,455,522,493,74,78,612, - 14,19,15,333,527,44,376,270,336,379, - 377,454,453,484,455,522,493,74,77,612, - 14,19,15,333,527,44,376,257,336,379, - 377,454,453,484,455,522,493,74,76,612, - 14,19,15,333,527,44,376,286,336,379, - 377,454,453,484,455,522,493,74,75,612, - 14,19,15,333,42,44,807,260,134,211, - 210,492,512,166,569,136,133,135,159,612, - 14,19,15,333,527,44,376,214,336,379, - 377,454,453,484,455,522,493,74,1460,138, - 1333,165,612,14,19,15,333,42,38,117, - 142,145,148,151,1348,375,1588,440,508,1366, - 1101,1371,1500,1505,1159,612,14,19,15,333, - 527,44,376,20,336,379,377,454,453,484, - 455,522,493,74,1524,612,14,19,15,333, - 42,44,376,58,336,379,377,454,453,484, - 455,522,493,93,612,14,19,15,333,42, - 44,376,106,336,379,377,454,453,484,455, - 522,493,93,612,14,19,15,333,42,44, - 376,1583,336,379,377,454,453,484,455,522, - 493,93,612,14,19,15,333,42,44,376, - 210,336,379,377,454,453,484,455,522,493, - 93,612,14,19,15,333,42,44,376,1584, - 336,379,377,454,453,484,455,522,493,93, - 612,14,19,15,333,42,44,376,201,336, - 379,377,454,453,484,455,522,493,73,592, - 396,640,14,19,15,333,40,202,1349,612, - 14,19,15,333,42,44,376,218,336,379, - 377,454,453,484,1124,271,463,14,19,15, - 333,42,35,840,216,1183,219,1322,221,222, - 227,1553,264,1089,499,269,705,260,6,469, - 244,59,626,274,1611,470,341,117,271,1244, - 261,782,562,457,331,380,275,216,1183,219, - 1322,221,222,227,273,264,1089,499,269,289, - 1441,239,134,211,413,252,211,258,89,144, - 133,135,159,767,612,14,19,15,333,42, - 44,376,117,336,379,377,454,453,484,455, - 1105,612,14,19,15,333,42,44,376,286, - 336,379,377,454,453,1039,241,152,612,14, - 19,15,333,42,37,1514,6,6,6,727, - 134,211,626,646,1537,1539,1570,137,133,135, - 159,612,14,19,15,333,42,44,376,630, - 895,216,1183,219,1322,221,222,227,226,291, - 29,139,531,165,1451,463,14,19,15,333, - 42,35,143,146,149,152,612,14,19,15, - 333,42,44,376,152,336,379,377,898,245, - 299,705,1514,6,290,197,199,472,1424,1559, - 1647,1543,557,612,14,19,15,333,42,44, - 376,229,336,379,933,251,211,276,216,1183, - 219,1322,221,222,227,668,14,19,15,333, - 33,1451,612,14,19,15,333,42,44,376, - 563,336,379,952,612,14,19,15,333,42, - 44,376,1447,336,850,612,14,19,15,333, - 42,36,198,199,612,14,19,15,333,42, - 44,376,588,336,851,612,14,19,15,333, - 42,44,376,620,336,852,612,14,19,15, - 333,42,44,376,72,336,854,225,624,260, - 117,449,1514,612,14,19,15,333,42,44, - 376,491,897,309,6,844,327,6,6,847, - 568,795,1573,1515,240,1614,412,350,216,1183, - 219,1322,221,222,227,274,271,134,211,183, - 271,1441,134,211,141,133,135,159,452,147, - 133,135,159,264,1089,499,269,264,1089,499, - 269,217,1183,219,1322,221,222,227,140,630, - 165,263,682,472,290,767,612,14,19,15, - 333,42,35,612,14,19,15,333,42,34, - 6,472,6,277,6,251,211,340,309,674, - 309,676,309,612,14,19,15,333,42,47, - 117,223,683,196,1710,196,1710,196,252,211, - 1649,505,1361,87,1361,87,1361,87,1710,1167, - 1710,582,1568,582,242,582,612,14,19,15, - 333,42,46,612,14,19,15,333,42,45, - 808,479,478,1710,647,821,687,525,14,19, - 15,333,42,43,260,595,309,496,309,290, - 309,134,211,827,117,457,134,211,150,133, - 135,159,194,153,133,135,159,46,1040,94, - 251,211,182,142,26,827,185,827,243,1710, - 87,827,1652,595,309,1710,1710,290,317,597, - 196,827,196,1377,1588,256,196,827,376,1471, - 501,1471,1247,238,1351,1471,1040,1104,251,211, - 184,827,1040,117,117,191,472,191,530,252, - 211,191,1363,1635,1516,1635,196,1370,1520,1635, - 329,549,452,256,1710,1471,228,288,290,256, - 1247,48,1351,271,501,1104,1586,1710,1351,827, - 1710,191,668,14,19,15,333,32,1554,1635, - 266,1089,499,269,1040,190,6,207,6,859, - 539,1370,308,827,457,1642,457,309,827,309, - 1199,1422,309,1710,1710,1710,1710,1710,196,1710, - 1710,256,232,1040,1710,1710,1710,1471,1423,87, - 1351,87,1710,203,1710,204,1710,889,279,1102, - 1710,207,1710,192,1710,1710,1710,1710,1710,1710, - 257,1710,1710,1710,1419,1422,1710,0,17,179, - 0,18,178,0,1,1934,0,1,1945,0 - }; - }; - public final static char baseAction[] = BaseAction.baseAction; - public final int baseAction(int index) { return baseAction[index]; } - public final static char lhs[] = baseAction; - public final int lhs(int index) { return lhs[index]; }; - - public interface TermCheck { - public final static byte termCheck[] = {0, - 0,1,2,3,4,0,6,7,8,9, - 10,11,0,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,0,29, - 30,31,32,33,34,35,36,37,38,39, - 40,0,42,43,44,0,1,0,3,0, - 5,6,7,8,9,0,28,0,0,14, - 15,16,17,18,6,7,8,55,56,57, - 58,0,1,2,29,30,31,32,33,34, - 35,36,37,38,39,40,45,42,43,44, - 0,46,47,0,1,0,3,50,5,6, - 7,8,9,48,49,0,0,14,15,16, - 17,18,55,56,57,58,0,0,1,13, - 3,5,29,30,31,32,33,34,35,36, - 37,38,39,40,0,42,43,44,0,46, - 47,0,1,5,3,28,5,6,7,8, - 9,0,1,2,0,14,15,16,17,18, - 55,56,57,58,0,0,1,51,3,0, - 29,30,31,32,33,34,35,36,37,38, - 39,40,0,42,43,44,0,46,47,0, - 1,0,3,28,5,6,7,8,9,61, - 66,10,11,14,15,16,17,18,0,0, - 59,0,4,0,1,4,3,0,29,30, - 31,32,33,34,35,36,37,38,39,40, - 13,42,43,44,80,46,47,0,1,0, - 3,28,5,6,7,8,9,65,62,63, - 0,14,15,16,17,18,0,48,49,0, - 4,53,54,4,53,54,29,30,31,32, - 33,34,35,36,37,38,39,40,0,42, - 43,44,0,46,47,0,1,0,3,0, - 12,6,7,8,9,6,7,8,0,14, - 15,16,17,18,6,7,8,0,0,53, - 54,0,5,5,29,30,31,32,33,34, - 35,36,37,38,39,40,0,42,43,44, - 0,0,6,7,8,9,6,7,8,0, - 14,15,16,17,18,6,7,8,41,0, - 1,2,45,4,46,29,30,31,32,33, - 34,35,36,37,38,39,40,0,1,2, - 3,4,5,0,0,0,9,10,11,0, - 13,6,7,8,10,11,19,20,21,22, - 23,24,25,26,27,0,1,2,0,4, - 0,1,2,3,4,5,0,12,0,9, - 10,11,0,13,0,1,0,3,51,19, - 20,21,22,23,24,25,26,27,0,1, - 2,0,4,0,1,2,3,4,5,0, - 12,68,69,10,11,66,13,0,0,10, - 11,51,19,20,21,22,23,24,25,26, - 27,28,0,1,2,3,4,5,0,0, - 2,0,10,11,5,13,5,65,0,46, - 12,19,20,21,22,23,24,25,26,27, - 0,0,2,45,4,0,1,2,3,4, - 0,1,12,3,0,10,11,0,13,5, - 41,0,41,51,19,20,21,22,23,24, - 25,26,27,45,0,1,2,3,4,0, - 0,2,0,4,10,11,0,13,0,48, - 49,12,47,19,20,21,22,23,24,25, - 26,27,28,0,1,2,3,4,28,48, - 49,0,0,10,11,61,13,0,0,62, - 63,0,19,20,21,22,23,24,25,26, - 27,28,0,1,2,3,4,0,50,2, - 28,0,10,11,0,13,0,1,4,12, - 64,19,20,21,22,23,24,25,26,27, - 28,0,1,2,3,4,48,49,0,0, - 59,10,11,0,13,0,1,60,3,0, - 19,20,21,22,23,24,25,26,27,0, - 1,2,3,4,50,0,50,28,0,10, - 11,28,13,0,1,64,3,12,19,20, - 21,22,23,24,25,26,27,0,1,2, - 3,4,0,0,45,0,0,10,11,0, - 13,0,0,1,12,0,19,20,21,22, - 23,24,25,26,27,0,1,2,3,4, - 0,0,0,0,0,10,11,0,13,5, - 0,0,5,0,19,20,21,22,23,24, - 25,26,27,0,52,2,45,4,5,6, - 7,8,9,60,59,12,0,14,15,16, - 17,18,0,0,2,41,4,5,6,7, - 8,9,45,0,12,0,14,15,16,17, - 18,60,0,0,41,12,0,0,61,0, - 0,70,71,72,73,74,75,76,77,78, - 79,0,0,41,0,0,0,6,7,8, - 9,0,0,0,0,14,15,16,17,18, - 6,7,8,9,0,52,0,0,14,15, - 16,17,18,6,7,8,9,0,0,0, - 0,14,15,16,17,18,6,7,8,9, - 0,0,2,0,14,15,16,17,18,0, - 1,2,12,0,5,2,0,0,5,19, - 20,12,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, - 41,0,52,0,41,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,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; - public final int termCheck(int index) { return termCheck[index]; } - - public interface TermAction { - public final static char termAction[] = {0, - 1710,614,1440,615,1426,1,1922,1923,1924,1872, - 1305,1168,59,1433,1873,1871,1925,1874,1870,1622, - 1275,1041,1720,1721,1722,1723,882,387,41,1877, - 1882,1881,1879,1880,1878,1883,1884,1876,1885,1886, - 1887,88,867,853,335,1710,1,1,1,1710, - 190,1,1,1,1,54,1088,61,247,1, - 1,1,1,1,1,1,1,1336,1325,1314, - 1294,1,1934,1344,1,1,1,1,1,1, - 1,1,1,1,1,1,594,1,1,1, - 1710,190,1905,1710,1,1710,1,1965,190,1, - 1,1,1,1191,1353,60,64,1,1,1, - 1,1,1336,1325,1314,1294,1710,1710,1890,1226, - 1891,1713,1,1,1,1,1,1,1,1, - 1,1,1,1,70,1,1,1,1710,190, - 1905,1710,1,1719,1,1176,190,1,1,1, - 1,1,1934,1344,1710,1,1,1,1,1, - 1336,1325,1314,1294,1710,1710,1890,1712,1891,1710, - 1,1,1,1,1,1,1,1,1,1, - 1,1,68,1,1,1,62,190,1905,1710, - 1,51,1,1177,189,1,1,1,1,1718, - 1049,839,364,1,1,1,1,1,48,58, - 982,50,1493,1710,1890,1493,1891,65,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1226,1,1,1,1697,189,1905,1710,1,1710, - 1,1178,190,1,1,1,1,1151,1282,1253, - 1710,1,1,1,1,1,49,1191,1353,1710, - 1493,1486,1453,1091,1486,1453,1,1,1,1, - 1,1,1,1,1,1,1,1,268,1, - 1,1,1710,190,1905,1710,1889,1710,1888,1710, - 501,1922,1923,1924,1872,1922,1923,1924,248,1873, - 1871,1925,1874,1870,1,1,1,1710,1710,1486, - 1453,1710,1715,1717,1877,1882,1881,1879,1880,1878, - 1883,1884,1876,1885,1886,1887,128,867,853,335, - 246,1710,1922,1923,1924,1872,1922,1923,1924,249, - 1873,1871,1925,1874,1870,1922,1923,1924,1714,1710, - 1934,1344,1462,1240,1716,1877,1882,1881,1879,1880, - 1878,1883,1884,1876,1885,1886,1887,1,1727,1440, - 1728,1066,1713,72,53,250,529,1305,1168,71, - 1433,1922,1923,1924,839,364,1622,1275,1041,1720, - 1721,1722,1723,882,387,259,1934,1073,1710,1, - 1710,1727,1440,1728,1215,1713,1710,501,1710,905, - 1305,1168,69,1433,1710,1739,1710,1740,1712,1622, - 1275,1041,1720,1721,1722,1723,882,387,265,1934, - 1073,1710,1240,1,1727,1440,1728,1426,27,52, - 501,1134,1638,1305,1168,1049,1433,1710,253,839, - 364,1712,1622,1275,1041,1720,1721,1722,1723,882, - 387,1368,1710,1727,1440,1728,1426,1713,267,1, - 1086,1710,1305,1168,90,1433,1715,1151,28,27, - 501,1622,1275,1041,1720,1721,1722,1723,882,387, - 262,57,1365,1640,1,1710,1,1,1,1, - 206,1890,501,1891,1,1,1,63,1,1719, - 90,56,1714,1712,1,1,1,1,1,1, - 1,1,1,432,1710,1727,1440,1728,1426,265, - 1710,1365,1710,1240,1305,1168,66,1433,1,1191, - 1353,501,2018,1622,1275,1041,1720,1721,1722,1723, - 882,387,1088,1,1727,1440,1728,1426,1088,1191, - 1353,1710,187,1305,1168,1718,1433,209,55,1282, - 1253,1710,1622,1275,1041,1720,1721,1722,1723,882, - 387,1368,1710,1727,1440,1728,1426,220,1964,1241, - 1243,67,1305,1168,1,1433,1,1707,1091,501, - 395,1622,1275,1041,1720,1721,1722,1723,882,387, - 1368,1710,1727,1440,1728,1426,1191,1353,1710,186, - 1020,1305,1168,188,1433,1710,1890,944,1891,28, - 1622,1275,1041,1720,1721,1722,1723,882,387,1710, - 1727,1442,1728,1426,1965,218,1965,1364,1710,1305, - 1168,1367,1433,205,456,395,456,501,1622,1275, - 1041,1720,1721,1722,1723,882,387,1710,1727,1444, - 1728,1426,1710,1710,1737,200,1710,1305,1168,1710, - 1433,205,1710,1946,925,1710,1622,1275,1041,1720, - 1721,1722,1723,882,387,1,1727,1440,1728,1426, - 1710,42,1710,1710,1,1305,1168,1710,1433,1715, - 1710,1710,1719,1710,1622,1275,1041,1720,1721,1722, - 1723,882,387,17,1092,1698,2672,1698,1698,179, - 179,179,179,574,1001,1698,1710,179,179,179, - 179,179,18,1710,1701,1714,1701,1701,178,178, - 178,178,1234,285,1701,1710,178,178,178,178, - 178,819,1710,1710,1698,963,1710,1710,1718,1710, - 1710,799,779,759,739,719,679,699,659,639, - 619,129,1710,1701,1710,1710,1710,1922,1923,1924, - 1872,1710,1710,1710,130,1873,1871,1925,1874,1870, - 1922,1923,1924,1872,1710,1182,1710,131,1873,1871, - 1925,1874,1870,1922,1923,1924,1872,1710,1710,1710, - 132,1873,1871,1925,1874,1870,1922,1923,1924,1872, - 31,1710,1095,1710,1873,1871,1925,1874,1870,1, - 1704,1073,1636,1,1715,1365,1710,1710,1715,1734, - 1735,501,1710,1710,1710,501,1710,1710,1710,1710, - 1710,1710,1710,1710,1710,1710,1710,1710,1710,1710, - 1710,1710,1710,1710,1710,1710,1710,1710,1710,1710, - 1714,1710,410,1710,1714,1710,1710,1710,1710,1710, - 1710,1710,1710,1710,1710,1710,1710,334 - }; - }; - public final static char termAction[] = TermAction.termAction; - public final int termAction(int index) { return termAction[index]; } - - public interface Asb { - public final static char asb[] = {0, - 425,1,44,75,40,75,75,75,75,75, - 75,75,75,75,3,346,23,20,27,25, - 33,31,35,34,37,36,9,75,346,346, - 312,312,168,75,162,162,340,346,75,75, - 75,75,75,75,75,75,75,75,75,75, - 75,75,75,75,75,75,75,75,75,75, - 75,75,75,75,75,75,75,75,162,162, - 162,165,51,344,69,282,160,159,315,327, - 327,65,65,327,65,327,360,116,116,20, - 20,25,25,25,25,23,23,31,27,27, - 34,33,280,36,35,223,67,49,340,335, - 96,165,383,73,162,396,285,262,187,262, - 187,217,262,75,49,335,383,383,165,72, - 69,162,338,360,161,287,187,187,187,187, - 217,217,258,93,49,383,335,75,75,165, - 73,282,275,274,344,287,162,187,259,389, - 187,187,259,258,257,258,217,259,47,387, - 312,75,92,49,335,165,165,162,396,285, - 338,259,391,259,259,75,312,258,51,165, - 312,75,258,287,43,75,42,88,344,259, - 165,259,162,161,391,75,88,313 - }; - }; - public final static char asb[] = Asb.asb; - public final int asb(int index) { return asb[index]; } - - public interface Asr { - public final static byte asr[] = {0, - 80,0,12,2,52,67,19,20,60,70, - 71,72,73,74,76,75,77,78,79,4, - 53,54,10,11,49,48,55,56,57,58, - 62,63,13,64,65,66,46,68,69,51, - 41,59,45,61,5,0,5,46,12,52, - 19,20,13,4,10,11,26,27,21,2, - 22,23,24,25,1,3,28,0,6,7, - 8,9,51,5,22,23,24,25,3,19, - 20,13,10,11,26,27,21,4,2,1, - 0,60,12,52,0,6,7,8,2,22, - 23,24,25,1,3,19,20,13,4,10, - 11,26,27,21,0,7,9,18,8,17, - 16,15,6,14,52,67,19,20,13,10, - 11,53,54,48,49,55,56,57,58,62, - 63,64,65,66,68,69,60,70,71,72, - 73,74,75,76,77,78,79,4,2,12, - 45,41,5,0,51,5,0,5,41,21, - 22,23,24,25,1,3,2,19,20,13, - 4,10,11,26,27,0,14,29,6,30, - 42,15,31,16,32,33,17,7,34,35, - 9,43,18,44,36,37,8,38,39,40, - 1,3,5,46,47,0,1,3,5,45, - 46,0,13,4,10,11,53,54,48,49, - 55,56,57,58,62,63,64,65,66,68, - 69,59,70,71,72,73,74,75,76,77, - 78,79,51,41,61,28,60,45,46,5, - 0,14,6,15,16,17,7,9,18,8, - 1,4,28,2,5,45,41,61,12,59, - 0,4,2,12,41,5,14,29,6,30, - 42,15,31,16,32,33,17,7,34,35, - 9,43,18,44,36,37,8,38,39,40, - 50,3,1,0,37,29,34,32,33,31, - 30,35,36,38,39,40,59,61,18,15, - 9,14,17,16,6,7,8,45,1,5, - 41,2,12,4,0,21,22,23,24,25, - 2,19,20,13,4,10,11,26,27,3, - 1,42,43,44,37,29,34,32,33,31, - 30,35,36,38,39,40,18,15,9,14, - 17,16,6,7,8,0,60,0,61,5, - 4,1,2,59,0,14,29,6,30,42, - 15,31,16,32,33,17,7,34,35,9, - 43,18,44,36,37,8,38,39,40,1, - 3,50,4,0,21,22,23,24,25,1, - 3,2,19,20,13,4,10,11,26,27, - 47,0 - }; - }; - public final static byte asr[] = Asr.asr; - public final int asr(int index) { return asr[index]; } - - public interface Nasb { - public final static byte nasb[] = {0, - 73,8,67,15,8,15,15,15,15,15, - 15,15,15,15,8,62,8,8,8,8, - 8,8,8,8,8,8,8,15,62,62, - 9,9,39,63,37,37,58,1,15,15, - 15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,63,15,15,15,15,15, - 15,15,15,15,15,15,15,15,37,37, - 37,23,15,71,21,57,19,19,48,49, - 49,11,11,49,11,49,44,8,8,8, - 8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,85,59,85, - 14,23,77,22,37,69,36,8,85,8, - 85,85,8,15,14,85,77,77,23,22, - 42,37,30,2,8,84,85,79,85,79, - 11,85,25,17,85,77,42,15,15,23, - 22,29,19,19,71,84,37,79,55,66, - 87,79,55,25,8,8,11,55,13,8, - 11,15,27,14,42,23,23,37,69,36, - 31,55,51,55,55,15,11,25,15,23, - 11,15,25,83,67,15,8,51,71,55, - 23,55,37,37,51,15,33,8 - }; - }; - public final static byte nasb[] = Nasb.nasb; - public final int nasb(int index) { return nasb[index]; } - - public interface Nasr { - public final static char nasr[] = {0, - 4,77,76,75,74,73,72,0,69,0, - 27,0,68,8,4,0,89,0,25,0, - 8,4,24,0,51,0,91,0,20,8, - 44,43,37,35,0,8,20,0,8,84, - 0,21,0,63,64,65,66,52,28,0, - 8,37,35,0,26,0,20,8,44,43, - 0,32,8,41,0,8,61,0,8,23, - 49,0,8,41,83,0,58,0,56,8, - 32,0,86,23,8,0,8,32,48,0 - }; - }; - public final static char nasr[] = Nasr.nasr; - public final int nasr(int index) { return nasr[index]; } - - public interface TerminalIndex { - public final static char terminalIndex[] = {0, - 85,2,86,9,87,48,64,76,69,10, - 11,1,8,44,55,60,63,72,6,7, - 68,81,82,83,84,12,13,3,47,52, - 56,61,62,66,67,74,75,78,79,80, - 90,54,70,73,42,91,93,16,17,30, - 89,4,14,15,18,19,20,21,29,31, - 92,22,23,24,25,26,5,27,28,32, - 33,34,35,36,37,38,39,40,41,94, - 45,46,49,50,51,53,57,58,59,65, - 71,77,88 - }; - }; - public final static char terminalIndex[] = TerminalIndex.terminalIndex; - public final int terminalIndex(int index) { return terminalIndex[index]; } - - public interface NonterminalIndex { - public final static char nonterminalIndex[] = {0, - 0,0,0,101,105,106,107,0,108,109, - 110,111,112,113,114,115,116,117,118,97, - 129,0,122,96,149,98,121,128,0,0, - 0,140,0,145,147,0,148,0,0,0, - 100,158,159,160,0,120,137,139,146,155, - 0,131,136,0,0,138,150,153,154,157, - 99,103,132,133,134,135,144,161,102,104, - 119,123,124,125,126,127,130,142,0,0, - 143,152,95,0,141,151,156,162,163,0, - 164,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 char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; - public final int nonterminalIndex(int index) { return nonterminalIndex[index]; } - - public interface ScopePrefix { - public final static char scopePrefix[] = { - 164,80,33,39,87,107,113,138,12,19, - 49,67,119,124,26,45,97,160,179,183, - 147,1,1,30,54,77,187,6,101,154, - 129,154,93,57,57,57 - }; - }; - public final static char scopePrefix[] = ScopePrefix.scopePrefix; - public final int scopePrefix(int index) { return scopePrefix[index]; } - - public interface ScopeSuffix { - public final static char scopeSuffix[] = { - 17,17,4,4,17,17,17,144,17,24, - 4,24,17,17,24,4,95,24,24,4, - 151,4,4,24,4,24,24,9,104,157, - 132,172,95,64,59,72 - }; - }; - public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; - public final int scopeSuffix(int index) { return scopeSuffix[index]; } - - public interface ScopeLhs { - public final static char scopeLhs[] = { - 4,65,25,25,65,63,63,98,53,45, - 25,40,63,63,45,25,48,5,4,4, - 18,91,90,43,25,37,2,68,48,6, - 99,4,48,40,38,40 - }; - }; - public final static char scopeLhs[] = ScopeLhs.scopeLhs; - public final int scopeLhs(int index) { return scopeLhs[index]; } - - public interface ScopeLa { - public final static byte scopeLa[] = { - 46,46,51,51,46,46,46,86,46,41, - 51,41,46,46,41,51,61,41,41,51, - 59,51,51,41,51,41,41,60,1,41, - 92,41,61,2,2,2 - }; - }; - public final static byte scopeLa[] = ScopeLa.scopeLa; - public final int scopeLa(int index) { return scopeLa[index]; } - - public interface ScopeStateSet { - public final static byte scopeStateSet[] = { - 34,19,23,23,19,19,19,-1,89,27, - 23,11,19,19,27,23,5,34,34,34, - 64,1,3,27,23,11,34,90,5,37, - -1,34,5,11,11,11 - }; - }; - public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet; - public final int scopeStateSet(int index) { return scopeStateSet[index]; } - - public interface ScopeRhs { - public final static char scopeRhs[] = {0, - 139,12,0,96,0,181,101,0,31,136, - 0,144,163,101,28,0,98,0,150,101, - 2,136,0,97,0,150,101,2,0,153, - 2,0,112,9,175,101,12,0,112,175, - 101,9,12,0,112,9,12,0,112,175, - 101,12,0,112,12,0,130,0,2,0, - 151,97,0,2,97,0,150,101,2,130, - 0,2,0,150,97,0,140,2,0,144, - 173,101,28,120,42,0,144,173,101,28, - 42,0,125,0,99,0,178,101,125,0, - 101,125,0,141,99,0,148,101,28,120, - 44,0,148,101,28,120,43,0,148,101, - 28,44,0,148,101,28,43,0,187,85, - 0,77,2,100,97,99,0,187,113,134, - 2,89,0,53,0,0,134,69,110,0, - 29,117,0,155,2,0,97,106,0,155, - 2,21,0,144,163,101,28,113,155,2, - 0,97,3,0,104,0,98,0,177,2, - 97,0,134,12,97,0,134,2,0 - }; - }; - public final static char scopeRhs[] = ScopeRhs.scopeRhs; - public final int scopeRhs(int index) { return scopeRhs[index]; } - - public interface ScopeState { - public final static char scopeState[] = {0, - 526,0,481,0,1573,1635,1543,1539,1537,0, - 1377,1234,1344,1167,452,1073,1040,0,827,1159, - 309,0,1322,1183,1089,499,452,1073,1040,1588, - 1365,1361,0,1622,1275,1041,1215,1066,1507,1049, - 1134,395,1151,1282,1253,1226,1353,1191,1336,1325, - 1314,1294,1493,1486,1453,839,364,1433,1426,1305, - 1168,882,387,1001,982,963,944,925,905,859, - 549,1020,529,501,819,799,779,759,739,719, - 699,679,659,639,619,309,594,457,574,412, - 432,341,0 - }; - }; - public final static char scopeState[] = ScopeState.scopeState; - public final int scopeState(int index) { return scopeState[index]; } - - public interface InSymb { - public final static char inSymb[] = {0, - 0,176,134,101,164,21,27,26,11,10, - 4,13,20,19,97,2,102,100,104,103, - 106,105,108,107,110,109,98,45,2,2, - 67,52,2,12,155,134,125,101,11,10, - 54,53,4,58,57,56,55,48,49,13, - 63,62,65,64,69,68,66,79,78,77, - 75,76,74,73,72,71,70,60,155,155, - 177,134,113,101,12,2,137,136,165,166, - 167,44,43,168,42,169,170,1,3,100, - 100,103,103,103,103,102,102,105,104,104, - 107,106,134,109,108,113,113,28,142,4, - 9,112,101,4,153,101,2,120,28,120, - 28,28,120,59,101,4,101,101,112,175, - 151,150,116,101,152,101,28,101,28,101, - 101,28,163,101,28,101,151,175,9,112, - 4,2,128,130,101,45,150,101,148,125, - 149,101,148,173,120,174,101,144,45,181, - 52,12,182,101,151,112,112,140,101,2, - 142,148,101,148,144,60,45,173,60,139, - 52,12,163,101,178,59,140,2,101,144, - 139,144,150,179,45,59,142,45 - }; - }; - public final static char inSymb[] = InSymb.inSymb; - public final int inSymb(int index) { return inSymb[index]; } - - public interface Name { - public final static String name[] = { - "", - "[", - "(", - "{", - ".", - "->", - "++", - "--", - "&", - "*", - "+", - "-", - "~", - "!", - "/", - "%", - ">>", - "<<", - "<", - ">", - "<=", - ">=", - "==", - "!=", - "^", - "|", - "&&", - "||", - "?", - ":", - "...", - "=", - "*=", - "/=", - "%=", - "+=", - "-=", - ">>=", - "<<=", - "&=", - "^=", - "|=", - ",", - "$empty", - "auto", - "break", - "case", - "char", - "const", - "continue", - "default", - "do", - "double", - "else", - "enum", - "extern", - "float", - "for", - "goto", - "if", - "inline", - "int", - "long", - "register", - "restrict", - "return", - "short", - "signed", - "sizeof", - "static", - "struct", - "switch", - "typedef", - "union", - "unsigned", - "void", - "volatile", - "while", - "_Bool", - "_Complex", - "_Imaginary", - "integer", - "floating", - "charconst", - "stringlit", - "identifier", - "Completion", - "EndOfCompletion", - "Invalid", - "RightBracket", - "RightParen", - "RightBrace", - "SemiColon", - "ERROR_TOKEN", - "EOF_TOKEN", - "expression_parser_start", - "]", - ")", - "}", - ";", - "expression", - "postfix_expression", - "member_name", - "type_name", - "initializer_list", - "unary_expression", - "cast_expression", - "multiplicative_expression", - "additive_expression", - "shift_expression", - "relational_expression", - "equality_expression", - "AND_expression", - "exclusive_OR_expression", - "inclusive_OR_expression", - "logical_AND_expression", - "logical_OR_expression", - "conditional_expression", - "assignment_expression", - "expression_list_actual", - "constant_expression", - "identifier_or_typedefname", - "declaration_specifiers", - "simple_declaration_specifiers", - "struct_or_union_declaration_sp" + - "ecifiers", - "elaborated_declaration_specifi" + - "ers", - "enum_declaration_specifiers", - "typdef_name_declaration_specif" + - "iers", - "no_type_declaration_specifier", - "type_qualifier", - "no_type_declaration_specifiers", - "simple_type_specifier", - "struct_or_union_specifier", - "elaborated_specifier", - "enum_specifier", - "typedef_name_in_declspec", - "initializer", - "declarator", - "struct_declaration_list", - "struct_declaration", - "specifier_qualifier_list", - "struct_declarator_list", - "complete_struct_declarator", - "enumerator_list", - "enumerator", - "direct_declarator", - "pointer_seq", - "array_direct_declarator", - "basic_direct_declarator", - "array_modifier", - "parameter_type_list", - "identifier_list", - "array_modifier_type_qualifiers", - "type_qualifier_list", - "parameter_list", - "parameter_declaration", - "complete_parameter_declarator", - "abstract_declarator", - "direct_abstract_declarator", - "basic_direct_abstract_declarat" + - "or", - "array_direct_abstract_declarat" + - "or", - "designated_initializer", - "designation", - "designator_list", - "designator" - }; - }; - public final static String name[] = Name.name; - public final String name(int index) { return name[index]; } - - public final static int - ERROR_SYMBOL = 47, - SCOPE_UBOUND = 35, - SCOPE_SIZE = 36, - MAX_NAME_LENGTH = 38; - - public final int getErrorSymbol() { return ERROR_SYMBOL; } - public final int getScopeUbound() { return SCOPE_UBOUND; } - public final int getScopeSize() { return SCOPE_SIZE; } - public final int getMaxNameLength() { return MAX_NAME_LENGTH; } - - public final static int - NUM_STATES = 208, - NT_OFFSET = 93, - LA_STATE_OFFSET = 2018, - MAX_LA = 2, - NUM_RULES = 308, - NUM_NONTERMINALS = 115, - NUM_SYMBOLS = 208, - SEGMENT_SIZE = 8192, - START_STATE = 1517, - IDENTIFIER_SYMBOL = 0, - EOFT_SYMBOL = 80, - EOLT_SYMBOL = 80, - ACCEPT_ACTION = 1697, - ERROR_ACTION = 1710; - - public final static boolean BACKTRACK = true; - - public final int getNumStates() { return NUM_STATES; } - public final int getNtOffset() { return NT_OFFSET; } - public final int getLaStateOffset() { return LA_STATE_OFFSET; } - public final int getMaxLa() { return MAX_LA; } - public final int getNumRules() { return NUM_RULES; } - public final int getNumNonterminals() { return NUM_NONTERMINALS; } - public final int getNumSymbols() { return NUM_SYMBOLS; } - public final int getSegmentSize() { return SEGMENT_SIZE; } - public final int getStartState() { return START_STATE; } - public final int getStartSymbol() { return lhs[0]; } - public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; } - public final int getEoftSymbol() { return EOFT_SYMBOL; } - public final int getEoltSymbol() { return EOLT_SYMBOL; } - public final int getAcceptAction() { return ACCEPT_ACTION; } - public final int getErrorAction() { return ERROR_ACTION; } - public final boolean isValidForParser() { return isValidForParser; } - public final boolean getBacktrack() { return BACKTRACK; } - - public final int originalState(int state) { - return -baseCheck[state]; - } - public final int asi(int state) { - return asb[originalState(state)]; - } - public final int nasi(int state) { - return nasb[originalState(state)]; - } - public final int inSymbol(int state) { - return inSymb[originalState(state)]; - } - - public final int ntAction(int state, int sym) { - return baseAction[state + sym]; - } - - public final int tAction(int state, int sym) { - int i = baseAction[state], - k = i + sym; - return termAction[termCheck[k] == sym ? k : i]; - } - public final int lookAhead(int la_state, int sym) { - int k = la_state + sym; - return termAction[termCheck[k] == sym ? k : la_state]; - } -} diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionStatementParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionStatementParsersym.java deleted file mode 100644 index 51d60650cb2..00000000000 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/c99/C99ExpressionStatementParsersym.java +++ /dev/null @@ -1,210 +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 -*********************************************************************************/ - -// This file was generated by LPG - -package org.eclipse.cdt.internal.core.dom.lrparser.c99; - -public interface C99ExpressionStatementParsersym { - public final static int - TK_auto = 14, - TK_break = 81, - TK_case = 82, - TK_char = 29, - TK_const = 6, - TK_continue = 83, - TK_default = 84, - TK_do = 85, - TK_double = 30, - TK_else = 86, - TK_enum = 42, - TK_extern = 15, - TK_float = 31, - TK_for = 87, - TK_goto = 88, - TK_if = 89, - TK_inline = 16, - TK_int = 32, - TK_long = 33, - TK_register = 17, - TK_restrict = 7, - TK_return = 90, - TK_short = 34, - TK_signed = 35, - TK_sizeof = 21, - TK_static = 9, - TK_struct = 43, - TK_switch = 91, - TK_typedef = 18, - TK_union = 44, - TK_unsigned = 36, - TK_void = 37, - TK_volatile = 8, - TK_while = 92, - TK__Bool = 38, - TK__Complex = 39, - TK__Imaginary = 40, - TK_integer = 22, - TK_floating = 23, - TK_charconst = 24, - TK_stringlit = 25, - TK_identifier = 1, - TK_Completion = 3, - TK_EndOfCompletion = 5, - TK_Invalid = 93, - TK_LeftBracket = 12, - TK_LeftParen = 2, - TK_LeftBrace = 28, - TK_Dot = 52, - TK_Arrow = 67, - TK_PlusPlus = 19, - TK_MinusMinus = 20, - TK_And = 13, - TK_Star = 4, - TK_Plus = 10, - TK_Minus = 11, - TK_Tilde = 26, - TK_Bang = 27, - TK_Slash = 53, - TK_Percent = 54, - TK_RightShift = 48, - TK_LeftShift = 49, - TK_LT = 55, - TK_GT = 56, - TK_LE = 57, - TK_GE = 58, - TK_EQ = 62, - TK_NE = 63, - TK_Caret = 64, - TK_Or = 65, - TK_AndAnd = 66, - TK_OrOr = 68, - TK_Question = 69, - TK_Colon = 59, - TK_DotDotDot = 50, - TK_Assign = 60, - TK_StarAssign = 70, - TK_SlashAssign = 71, - TK_PercentAssign = 72, - TK_PlusAssign = 73, - TK_MinusAssign = 74, - TK_RightShiftAssign = 75, - TK_LeftShiftAssign = 76, - TK_AndAssign = 77, - TK_CaretAssign = 78, - TK_OrAssign = 79, - TK_Comma = 45, - TK_RightBracket = 51, - TK_RightParen = 41, - TK_RightBrace = 46, - TK_SemiColon = 61, - TK_ERROR_TOKEN = 47, - TK_EOF_TOKEN = 80; - - public final static String orderedTerminalSymbols[] = { - "", - "identifier", - "LeftParen", - "Completion", - "Star", - "EndOfCompletion", - "const", - "restrict", - "volatile", - "static", - "Plus", - "Minus", - "LeftBracket", - "And", - "auto", - "extern", - "inline", - "register", - "typedef", - "PlusPlus", - "MinusMinus", - "sizeof", - "integer", - "floating", - "charconst", - "stringlit", - "Tilde", - "Bang", - "LeftBrace", - "char", - "double", - "float", - "int", - "long", - "short", - "signed", - "unsigned", - "void", - "_Bool", - "_Complex", - "_Imaginary", - "RightParen", - "enum", - "struct", - "union", - "Comma", - "RightBrace", - "ERROR_TOKEN", - "RightShift", - "LeftShift", - "DotDotDot", - "RightBracket", - "Dot", - "Slash", - "Percent", - "LT", - "GT", - "LE", - "GE", - "Colon", - "Assign", - "SemiColon", - "EQ", - "NE", - "Caret", - "Or", - "AndAnd", - "Arrow", - "OrOr", - "Question", - "StarAssign", - "SlashAssign", - "PercentAssign", - "PlusAssign", - "MinusAssign", - "RightShiftAssign", - "LeftShiftAssign", - "AndAssign", - "CaretAssign", - "OrAssign", - "EOF_TOKEN", - "break", - "case", - "continue", - "default", - "do", - "else", - "for", - "goto", - "if", - "return", - "switch", - "while", - "Invalid" - }; - - public final static boolean isValidForParser = true; -} 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 new file mode 100644 index 00000000000..267833ab074 --- /dev/null +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParser.java @@ -0,0 +1,2277 @@ +/******************************************************************************* +* Copyright (c) 2006, 2008 IBM Corporation and others. +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl_v10.html +* +* Contributors: +* IBM Corporation - initial API and implementation +*********************************************************************************/ + +// This file was generated by LPG + +package org.eclipse.cdt.internal.core.dom.lrparser.cpp; + +import lpg.lpgjavaruntime.*; + +import java.util.*; + +import org.eclipse.cdt.core.dom.ast.*; +import org.eclipse.cdt.core.dom.ast.cpp.*; +import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPASTNodeFactory; +import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPBuildASTParserAction; +import org.eclipse.cdt.core.dom.lrparser.IParser; +import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; + +import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; +import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; + +public class CPPExpressionParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser +{ + private static ParseTable prs = new CPPExpressionParserprs(); + private BacktrackingParser btParser; + + public BacktrackingParser getParser() { return btParser; } + private void setResult(Object object) { btParser.setSym1(object); } + public Object getRhsSym(int i) { return btParser.getSym(i); } + + public int getRhsTokenIndex(int i) { return btParser.getToken(i); } + public IToken getRhsIToken(int i) { return super.getIToken(getRhsTokenIndex(i)); } + + public int getRhsFirstTokenIndex(int i) { return btParser.getFirstToken(i); } + public IToken getRhsFirstIToken(int i) { return super.getIToken(getRhsFirstTokenIndex(i)); } + + public int getRhsLastTokenIndex(int i) { return btParser.getLastToken(i); } + public IToken getRhsLastIToken(int i) { return super.getIToken(getRhsLastTokenIndex(i)); } + + public int getLeftSpan() { return btParser.getFirstToken(); } + public IToken getLeftIToken() { return super.getIToken(getLeftSpan()); } + + public int getRightSpan() { return btParser.getLastToken(); } + public IToken getRightIToken() { return super.getIToken(getRightSpan()); } + + public int getRhsErrorTokenIndex(int i) + { + int index = btParser.getToken(i); + IToken err = super.getIToken(index); + return (err instanceof ErrorToken ? index : 0); + } + public ErrorToken getRhsErrorIToken(int i) + { + int index = btParser.getToken(i); + IToken err = super.getIToken(index); + return (ErrorToken) (err instanceof ErrorToken ? err : null); + } + + public CPPExpressionParser(LexStream lexStream) + { + super(lexStream); + + try + { + super.remapTerminalSymbols(orderedTerminalSymbols(), CPPExpressionParserprs.EOFT_SYMBOL); + } + catch(NullExportedSymbolsException e) { + } + catch(NullTerminalSymbolsException e) { + } + catch(UnimplementedTerminalsException e) + { + java.util.ArrayList unimplemented_symbols = e.getSymbols(); + System.out.println("The Lexer will not scan the following token(s):"); + for (int i = 0; i < unimplemented_symbols.size(); i++) + { + Integer id = (Integer) unimplemented_symbols.get(i); + System.out.println(" " + CPPExpressionParsersym.orderedTerminalSymbols[id.intValue()]); + } + System.out.println(); + } + catch(UndefinedEofSymbolException e) + { + throw new Error(new UndefinedEofSymbolException + ("The Lexer does not implement the Eof symbol " + + CPPExpressionParsersym.orderedTerminalSymbols[CPPExpressionParserprs.EOFT_SYMBOL])); + } + } + + public String[] orderedTerminalSymbols() { return CPPExpressionParsersym.orderedTerminalSymbols; } + public String getTokenKindName(int kind) { return CPPExpressionParsersym.orderedTerminalSymbols[kind]; } + public int getEOFTokenKind() { return CPPExpressionParserprs.EOFT_SYMBOL; } + public PrsStream getParseStream() { return (PrsStream) this; } + + // + // Report error message for given error_token. + // + public final void reportErrorTokenMessage(int error_token, String msg) + { + int firsttok = super.getFirstErrorToken(error_token), + lasttok = super.getLastErrorToken(error_token); + String location = super.getFileName() + ':' + + (firsttok > lasttok + ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok)) + : (super.getLine(error_token) + ":" + + super.getColumn(error_token) + ":" + + super.getEndLine(error_token) + ":" + + super.getEndColumn(error_token))) + + ": "; + super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE), location, msg); + } + + public Object parser() + { + return parser(null, 0); + } + + public Object parser(Monitor monitor) + { + return parser(monitor, 0); + } + + public Object parser(int error_repair_count) + { + return parser(null, error_repair_count); + } + + public Object parser(Monitor monitor, int error_repair_count) + { + try + { + btParser = new BacktrackingParser(monitor, (TokenStream) this, prs, (RuleAction) this); + } + catch (NotBacktrackParseTableException e) + { + throw new Error(new NotBacktrackParseTableException + ("Regenerate CPPExpressionParserprs.java with -BACKTRACK option")); + } + catch (BadParseSymFileException e) + { + throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- CPPExpressionParsersym.java")); + } + + try + { + return (Object) btParser.parse(error_repair_count); + } + catch (BadParseException e) + { + reset(e.error_token); // point to error token + DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs); + diagnoseParser.diagnose(e.error_token); + } + + return null; + } + + +private CPPParserAction action; + +// uncomment to use with backtracking parser +public CPPExpressionParser() { // constructor +} + +private void initActions(IASTTranslationUnit tu) { + // binding resolution actions need access to IASTName nodes, temporary + action = new CPPParserAction (); + //action.resolver = new C99TypedefTrackerParserAction (this); + action.builder = new CPPBuildASTParserAction ( CPPASTNodeFactory.DEFAULT_INSTANCE , this, tu); + //action.builder.setTokenMap(CPPParsersym.orderedTerminalSymbols); + + // comment this line to use with backtracking parser + //setParserAction(action); +} + + +public void addToken(IToken token) { + token.setKind(mapKind(token.getKind())); + super.addToken(token); +} + + +public IASTCompletionNode parse(IASTTranslationUnit tu) { + // this has to be done, or... kaboom! + setStreamLength(getSize()); + initActions(tu); + + final int errorRepairCount = -1; // _1 means full error handling + parser(null, errorRepairCount); // do the actual parse + super.resetTokenStream(); // allow tokens to be garbage collected + + // the completion node may be null + IASTCompletionNode compNode = action.builder.getASTCompletionNode(); + + //action = null; // causes getSecondaryParseResult() to fail + + // Comment this line to use with backtracking parser + //parserAction = null; + + return compNode; +} + + +// uncomment this method to use with backtracking parser +public List getRuleTokens() { + return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1)); +} + +public IASTNode getSecondaryParseResult() { + return action.builder.getSecondaryParseResult(); +} + +public String[] getOrderedTerminalSymbols() { + return CPPExpressionParsersym.orderedTerminalSymbols; +} + +public String getName() { + return "CPPExpressionParser"; //$NON-NLS-1$ +} + + + +private ITokenMap tokenMap = null; + +public void setTokens(List tokens) { + resetTokenStream(); + addToken(new Token(null, 0, 0, 0)); // dummy token + for(IToken token : tokens) { + token.setKind(tokenMap.mapKind(token.getKind())); + addToken(token); + } + addToken(new Token(null, 0, 0, CPPExpressionParsersym.TK_EOF_TOKEN)); +} + +public CPPExpressionParser(String[] mapFrom) { // constructor + tokenMap = new TokenMap(CPPExpressionParsersym.orderedTerminalSymbols, mapFrom); +} + + + + public void ruleAction(int ruleNumber) + { + switch (ruleNumber) + { + + // + // Rule 1: ::= $Empty + // + case 1: { action.builder. + openASTScope(); break; + } + + // + // Rule 2: ::= $Empty + // + case 2: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 11: translation_unit ::= external_declaration_list + // + case 11: { action.builder. + consumeTranslationUnit(); break; + } + + // + // Rule 12: translation_unit ::= $Empty + // + case 12: { action.builder. + consumeTranslationUnit(); break; + } + + // + // Rule 16: external_declaration ::= ERROR_TOKEN + // + case 16: { action.builder. + consumeDeclarationProblem(); break; + } + + // + // Rule 19: literal ::= integer + // + case 19: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; + } + + // + // Rule 20: literal ::= 0 + // + case 20: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; + } + + // + // Rule 21: literal ::= floating + // + case 21: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; + } + + // + // Rule 22: literal ::= charconst + // + case 22: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; + } + + // + // Rule 23: literal ::= stringlit + // + case 23: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; + } + + // + // Rule 24: literal ::= true + // + case 24: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; + } + + // + // Rule 25: literal ::= false + // + case 25: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; + } + + // + // Rule 26: literal ::= this + // + case 26: { action.builder. + consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; + } + + // + // Rule 28: primary_expression ::= ( expression ) + // + case 28: { action.builder. + consumeExpressionBracketed(); break; + } + + // + // Rule 30: id_expression ::= qualified_or_unqualified_name + // + case 30: { action.builder. + consumeExpressionName(); break; + } + + // + // Rule 37: unqualified_id_name ::= ~ identifier_token + // + case 37: { action.builder. + consumeDestructorName(); break; + } + + // + // Rule 38: unqualified_id_name ::= ~ template_id_name + // + case 38: { action.builder. + consumeDestructorNameTemplateId(); break; + } + + // + // Rule 39: identifier_name ::= identifier_token + // + case 39: { action.builder. + consumeIdentifierName(); break; + } + + // + // Rule 40: template_opt ::= template + // + case 40: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 41: template_opt ::= $Empty + // + case 41: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 42: dcolon_opt ::= :: + // + case 42: { action.builder. + consumeToken(); break; + } + + // + // Rule 43: dcolon_opt ::= $Empty + // + case 43: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 44: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name + // + case 44: { action.builder. + consumeQualifiedId(true); break; + } + + // + // Rule 45: qualified_id_name ::= :: identifier_name + // + case 45: { action.builder. + consumeGlobalQualifiedId(); break; + } + + // + // Rule 46: qualified_id_name ::= :: operator_function_id_name + // + case 46: { action.builder. + consumeGlobalQualifiedId(); break; + } + + // + // Rule 47: qualified_id_name ::= :: template_id_name + // + case 47: { action.builder. + consumeGlobalQualifiedId(); break; + } + + // + // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template + // + case 48: { action.builder. + consumeNestedNameSpecifier(true); break; + } + + // + // Rule 49: nested_name_specifier ::= class_or_namespace_name :: + // + case 49: { action.builder. + consumeNestedNameSpecifier(false); break; + } + + // + // 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_with_template ::= class_or_namespace_name_with_template :: + // + case 51: { action.builder. + consumeNestedNameSpecifier(false); break; + } + + // + // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name + // + case 52: { action.builder. + consumeNameWithTemplateKeyword(); break; + } + + // + // Rule 54: nested_name_specifier_opt ::= $Empty + // + case 54: { action.builder. + consumeNestedNameSpecifierEmpty(); break; + } + + // + // Rule 57: postfix_expression ::= postfix_expression [ expression ] + // + case 57: { action.builder. + consumeExpressionArraySubscript(); break; + } + + // + // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) + // + case 58: { action.builder. + consumeExpressionFunctionCall(); break; + } + + // + // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) + // + case 59: { action.builder. + consumeExpressionSimpleTypeConstructor(); break; + } + + // + // 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. + consumeExpressionFieldReference(false, false); break; + } + + // + // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name + // + case 63: { action.builder. + consumeExpressionFieldReference(true, false); break; + } + + // + // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name + // + case 64: { action.builder. + consumeExpressionFieldReference(false, true); break; + } + + // + // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name + // + case 65: { action.builder. + consumeExpressionFieldReference(true, true); break; + } + + // + // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name + // + case 66: { action.builder. + consumeExpressionFieldReference(false, false); break; + } + + // + // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name + // + case 67: { action.builder. + consumeExpressionFieldReference(true, false); break; + } + + // + // Rule 68: postfix_expression ::= postfix_expression ++ + // + case 68: { action.builder. + consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; + } + + // + // Rule 69: postfix_expression ::= postfix_expression -- + // + case 69: { action.builder. + consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; + } + + // + // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) + // + case 70: { action.builder. + consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; + } + + // + // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) + // + case 71: { action.builder. + consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; + } + + // + // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) + // + case 72: { action.builder. + consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; + } + + // + // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) + // + case 73: { action.builder. + consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; + } + + // + // Rule 74: postfix_expression ::= typeid ( expression ) + // + case 74: { action.builder. + consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; + } + + // + // Rule 75: postfix_expression ::= typeid ( type_id ) + // + case 75: { action.builder. + consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; + } + + // + // 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(false); break; + } + + // + // Rule 79: destructor_type_name ::= ~ identifier_token + // + case 79: { action.builder. + consumeDestructorName(); break; + } + + // + // Rule 80: destructor_type_name ::= ~ template_id_name + // + case 80: { action.builder. + consumeDestructorNameTemplateId(); break; + } + + // + // Rule 84: unary_expression ::= ++ cast_expression + // + case 84: { action.builder. + consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; + } + + // + // Rule 85: unary_expression ::= -- cast_expression + // + case 85: { action.builder. + consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; + } + + // + // Rule 86: unary_expression ::= & cast_expression + // + case 86: { action.builder. + consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; + } + + // + // Rule 87: unary_expression ::= * cast_expression + // + case 87: { action.builder. + consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; + } + + // + // Rule 88: unary_expression ::= + cast_expression + // + case 88: { action.builder. + consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; + } + + // + // Rule 89: unary_expression ::= - cast_expression + // + case 89: { action.builder. + consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; + } + + // + // Rule 90: unary_expression ::= ~ cast_expression + // + case 90: { action.builder. + consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; + } + + // + // Rule 91: unary_expression ::= ! cast_expression + // + case 91: { action.builder. + consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; + } + + // + // Rule 92: unary_expression ::= sizeof unary_expression + // + case 92: { action.builder. + consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; + } + + // + // Rule 93: unary_expression ::= sizeof ( type_id ) + // + case 93: { action.builder. + consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; + } + + // + // Rule 94: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt + // + case 94: { action.builder. + consumeExpressionNew(true); break; + } + + // + // Rule 95: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt + // + case 95: { action.builder. + consumeExpressionNew(false); break; + } + + // + // Rule 97: new_placement_opt ::= $Empty + // + case 97: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 98: new_type_id ::= type_specifier_seq + // + case 98: { action.builder. + consumeTypeId(false); break; + } + + // + // Rule 99: new_type_id ::= type_specifier_seq new_declarator + // + case 99: { action.builder. + consumeTypeId(true); break; + } + + // + // Rule 100: new_declarator ::= new_pointer_operators + // + case 100: { action.builder. + consumeNewDeclarator(); break; + } + + // + // Rule 109: new_initializer_opt ::= $Empty + // + case 109: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 110: delete_expression ::= dcolon_opt delete cast_expression + // + case 110: { action.builder. + consumeExpressionDelete(false); break; + } + + // + // Rule 111: delete_expression ::= dcolon_opt delete [ ] cast_expression + // + case 111: { action.builder. + consumeExpressionDelete(true); break; + } + + // + // Rule 113: cast_expression ::= ( type_id ) cast_expression + // + case 113: { action.builder. + consumeExpressionCast(ICPPASTCastExpression.op_cast); break; + } + + // + // Rule 115: pm_expression ::= pm_expression .* cast_expression + // + case 115: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; + } + + // + // Rule 116: pm_expression ::= pm_expression ->* cast_expression + // + case 116: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; + } + + // + // Rule 118: multiplicative_expression ::= multiplicative_expression * pm_expression + // + case 118: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; + } + + // + // Rule 119: multiplicative_expression ::= multiplicative_expression / pm_expression + // + case 119: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; + } + + // + // Rule 120: multiplicative_expression ::= multiplicative_expression % pm_expression + // + case 120: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; + } + + // + // Rule 122: additive_expression ::= additive_expression + multiplicative_expression + // + case 122: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; + } + + // + // Rule 123: additive_expression ::= additive_expression - multiplicative_expression + // + case 123: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; + } + + // + // Rule 125: shift_expression ::= shift_expression << additive_expression + // + case 125: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; + } + + // + // Rule 126: shift_expression ::= shift_expression >> additive_expression + // + case 126: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; + } + + // + // Rule 128: relational_expression ::= relational_expression < shift_expression + // + case 128: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; + } + + // + // Rule 129: relational_expression ::= relational_expression > shift_expression + // + case 129: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; + } + + // + // Rule 130: relational_expression ::= relational_expression <= shift_expression + // + case 130: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; + } + + // + // Rule 131: relational_expression ::= relational_expression >= shift_expression + // + case 131: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; + } + + // + // Rule 133: equality_expression ::= equality_expression == relational_expression + // + case 133: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; + } + + // + // Rule 134: equality_expression ::= equality_expression != relational_expression + // + case 134: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; + } + + // + // Rule 136: and_expression ::= and_expression & equality_expression + // + case 136: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; + } + + // + // Rule 138: exclusive_or_expression ::= exclusive_or_expression ^ and_expression + // + case 138: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; + } + + // + // Rule 140: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression + // + case 140: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; + } + + // + // Rule 142: logical_and_expression ::= logical_and_expression && inclusive_or_expression + // + case 142: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; + } + + // + // Rule 144: logical_or_expression ::= logical_or_expression || logical_and_expression + // + case 144: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; + } + + // + // Rule 146: conditional_expression ::= logical_or_expression ? expression : assignment_expression + // + case 146: { action.builder. + consumeExpressionConditional(); break; + } + + // + // Rule 147: throw_expression ::= throw + // + case 147: { action.builder. + consumeExpressionThrow(false); break; + } + + // + // Rule 148: throw_expression ::= throw assignment_expression + // + case 148: { action.builder. + consumeExpressionThrow(true); break; + } + + // + // Rule 151: assignment_expression ::= logical_or_expression = assignment_expression + // + case 151: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; + } + + // + // Rule 152: assignment_expression ::= logical_or_expression *= assignment_expression + // + case 152: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; + } + + // + // Rule 153: assignment_expression ::= logical_or_expression /= assignment_expression + // + case 153: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; + } + + // + // Rule 154: assignment_expression ::= logical_or_expression %= assignment_expression + // + case 154: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; + } + + // + // Rule 155: assignment_expression ::= logical_or_expression += assignment_expression + // + case 155: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; + } + + // + // Rule 156: assignment_expression ::= logical_or_expression -= assignment_expression + // + case 156: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; + } + + // + // Rule 157: assignment_expression ::= logical_or_expression >>= assignment_expression + // + case 157: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; + } + + // + // Rule 158: assignment_expression ::= logical_or_expression <<= assignment_expression + // + case 158: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; + } + + // + // Rule 159: assignment_expression ::= logical_or_expression &= assignment_expression + // + case 159: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; + } + + // + // Rule 160: assignment_expression ::= logical_or_expression ^= assignment_expression + // + case 160: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; + } + + // + // Rule 161: assignment_expression ::= logical_or_expression |= assignment_expression + // + case 161: { action.builder. + consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; + } + + // + // Rule 163: expression_list ::= expression_list_actual + // + case 163: { action.builder. + consumeExpressionList(); break; + } + + // + // Rule 167: expression_list_opt ::= $Empty + // + case 167: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 169: expression_opt ::= $Empty + // + case 169: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 172: constant_expression_opt ::= $Empty + // + case 172: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 181: statement ::= ERROR_TOKEN + // + case 181: { action.builder. + consumeStatementProblem(); break; + } + + // + // Rule 182: labeled_statement ::= identifier : statement + // + case 182: { action.builder. + consumeStatementLabeled(); break; + } + + // + // Rule 183: labeled_statement ::= case constant_expression : + // + case 183: { action.builder. + consumeStatementCase(); break; + } + + // + // Rule 184: labeled_statement ::= default : + // + case 184: { action.builder. + consumeStatementDefault(); break; + } + + // + // Rule 185: expression_statement ::= expression ; + // + case 185: { action.builder. + consumeStatementExpression(); break; + } + + // + // Rule 186: expression_statement ::= ; + // + case 186: { action.builder. + consumeStatementNull(); break; + } + + // + // Rule 187: compound_statement ::= { statement_seq } + // + case 187: { action.builder. + consumeStatementCompoundStatement(true); break; + } + + // + // Rule 188: compound_statement ::= { } + // + case 188: { action.builder. + consumeStatementCompoundStatement(false); break; + } + + // + // Rule 191: selection_statement ::= if ( condition ) statement + // + case 191: { action.builder. + consumeStatementIf(false); break; + } + + // + // Rule 192: selection_statement ::= if ( condition ) statement else statement + // + case 192: { action.builder. + consumeStatementIf(true); break; + } + + // + // Rule 193: selection_statement ::= switch ( condition ) statement + // + case 193: { action.builder. + consumeStatementSwitch(); break; + } + + // + // Rule 195: condition ::= type_specifier_seq declarator = assignment_expression + // + case 195: { action.builder. + consumeConditionDeclaration(); break; + } + + // + // Rule 197: condition_opt ::= $Empty + // + case 197: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 198: iteration_statement ::= while ( condition ) statement + // + case 198: { action.builder. + consumeStatementWhileLoop(); break; + } + + // + // Rule 199: iteration_statement ::= do statement while ( expression ) ; + // + case 199: { action.builder. + consumeStatementDoLoop(); break; + } + + // + // Rule 200: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement + // + case 200: { action.builder. + consumeStatementForLoop(); break; + } + + // + // Rule 202: for_init_statement ::= simple_declaration_with_declspec + // + case 202: { action.builder. + consumeStatementDeclaration(); break; + } + + // + // Rule 203: jump_statement ::= break ; + // + case 203: { action.builder. + consumeStatementBreak(); break; + } + + // + // Rule 204: jump_statement ::= continue ; + // + case 204: { action.builder. + consumeStatementContinue(); break; + } + + // + // Rule 205: jump_statement ::= return expression ; + // + case 205: { action.builder. + consumeStatementReturn(true); break; + } + + // + // Rule 206: jump_statement ::= return ; + // + case 206: { action.builder. + consumeStatementReturn(false); break; + } + + // + // Rule 207: jump_statement ::= goto identifier_token ; + // + case 207: { action.builder. + consumeStatementGoto(); break; + } + + // + // Rule 208: declaration_statement ::= block_declaration + // + case 208: { action.builder. + consumeStatementDeclarationWithDisambiguation(); break; + } + + // + // Rule 209: declaration_statement ::= function_definition + // + case 209: { action.builder. + consumeStatementDeclaration(); break; + } + + // + // 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. + consumeDeclarationSpecifiersSimple(); break; + } + + // + // 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 ::= type_name_declaration_specifiers + // + case 232: { action.builder. + consumeDeclarationSpecifiersTypeName(); break; + } + + // + // Rule 233: declaration_specifiers_opt ::= $Empty + // + case 233: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 238: no_type_declaration_specifier ::= friend + // + case 238: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 239: no_type_declaration_specifier ::= typedef + // + case 239: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // 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 ::= extern + // + case 262: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 263: storage_class_specifier ::= mutable + // + case 263: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 264: function_specifier ::= inline + // + case 264: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 265: function_specifier ::= virtual + // + case 265: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 266: function_specifier ::= explicit + // + case 266: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 267: simple_type_specifier ::= char + // + case 267: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 268: simple_type_specifier ::= wchar_t + // + case 268: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 269: simple_type_specifier ::= bool + // + case 269: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 270: simple_type_specifier ::= short + // + case 270: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 271: simple_type_specifier ::= int + // + case 271: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 272: simple_type_specifier ::= long + // + case 272: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 273: simple_type_specifier ::= signed + // + case 273: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 274: simple_type_specifier ::= unsigned + // + case 274: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 275: simple_type_specifier ::= float + // + case 275: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 276: simple_type_specifier ::= double + // + case 276: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 277: simple_type_specifier ::= void + // + case 277: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name + // + case 280: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 281: type_name_specifier ::= dcolon_opt nested_name_specifier template 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 + // + 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: enum_specifier ::= enum { enumerator_list_opt } + // + case 288: { action.builder. + consumeTypeSpecifierEnumeration(false); break; + } + + // + // Rule 289: enum_specifier ::= enum identifier_token { enumerator_list_opt } + // + case 289: { action.builder. + consumeTypeSpecifierEnumeration(true); break; + } + + // + // Rule 294: enumerator_definition ::= identifier_token + // + case 294: { action.builder. + consumeEnumerator(false); break; + } + + // + // Rule 295: enumerator_definition ::= identifier_token = constant_expression + // + case 295: { action.builder. + consumeEnumerator(true); break; + } + + // + // Rule 299: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } + // + case 299: { action.builder. + consumeNamespaceDefinition(true); break; + } + + // + // Rule 300: unnamed_namespace_definition ::= namespace { declaration_seq_opt } + // + case 300: { action.builder. + consumeNamespaceDefinition(false); break; + } + + // + // Rule 301: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; + // + case 301: { action.builder. + consumeNamespaceAliasDefinition(); break; + } + + // + // Rule 302: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; + // + case 302: { action.builder. + consumeUsingDeclaration(); break; + } + + // + // Rule 303: typename_opt ::= typename + // + case 303: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 304: typename_opt ::= $Empty + // + case 304: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 305: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; + // + case 305: { action.builder. + consumeUsingDirective(); break; + } + + // + // Rule 306: asm_definition ::= asm ( stringlit ) ; + // + case 306: { action.builder. + consumeDeclarationASM(); break; + } + + // + // Rule 307: linkage_specification ::= extern stringlit { declaration_seq_opt } + // + case 307: { action.builder. + consumeLinkageSpecification(); break; + } + + // + // Rule 308: linkage_specification ::= extern stringlit declaration + // + case 308: { action.builder. + consumeLinkageSpecification(); break; + } + + // + // Rule 313: init_declarator_complete ::= init_declarator + // + case 313: { action.builder. + consumeInitDeclaratorComplete(); break; + } + + // + // Rule 315: init_declarator ::= declarator initializer + // + case 315: { action.builder. + consumeDeclaratorWithInitializer(true); break; + } + + // + // 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 323: basic_direct_declarator ::= declarator_id_name + // + case 323: { action.builder. + consumeDirectDeclaratorIdentifier(); break; + } + + // + // Rule 324: basic_direct_declarator ::= ( declarator ) + // + case 324: { action.builder. + consumeDirectDeclaratorBracketed(); break; + } + + // + // Rule 325: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // + case 325: { action.builder. + consumeDirectDeclaratorFunctionDeclarator(true); break; + } + + // + // 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. + consumeDirectDeclaratorArrayModifier(true); break; + } + + // + // Rule 329: array_modifier ::= [ ] + // + case 329: { action.builder. + consumeDirectDeclaratorArrayModifier(false); break; + } + + // + // Rule 330: ptr_operator ::= * cv_qualifier_seq_opt + // + case 330: { action.builder. + consumePointer(); break; + } + + // + // Rule 331: ptr_operator ::= & + // + case 331: { action.builder. + consumeReferenceOperator(); break; + } + + // + // Rule 332: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt + // + case 332: { action.builder. + consumePointerToMember(); break; + } + + // + // Rule 338: cv_qualifier ::= const + // + case 338: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 339: cv_qualifier ::= volatile + // + case 339: { action.builder. + consumeDeclSpecToken(); break; + } + + // + // Rule 341: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name + // + case 341: { action.builder. + consumeQualifiedId(true); break; + } + + // + // Rule 342: type_id ::= type_specifier_seq + // + case 342: { action.builder. + consumeTypeId(false); break; + } + + // + // Rule 343: type_id ::= type_specifier_seq abstract_declarator + // + case 343: { action.builder. + consumeTypeId(true); break; + } + + // + // Rule 346: abstract_declarator ::= ptr_operator_seq + // + case 346: { action.builder. + consumeDeclaratorWithPointer(false); break; + } + + // + // Rule 347: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator + // + case 347: { action.builder. + consumeDeclaratorWithPointer(true); break; + } + + // + // Rule 351: basic_direct_abstract_declarator ::= ( abstract_declarator ) + // + case 351: { action.builder. + consumeDirectDeclaratorBracketed(); break; + } + + // + // Rule 352: basic_direct_abstract_declarator ::= ( ) + // + case 352: { action.builder. + consumeAbstractDeclaratorEmpty(); break; + } + + // + // Rule 353: array_direct_abstract_declarator ::= array_modifier + // + case 353: { action.builder. + consumeDirectDeclaratorArrayDeclarator(false); break; + } + + // + // 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. + consumeDirectDeclaratorFunctionDeclarator(true); break; + } + + // + // Rule 357: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt + // + case 357: { action.builder. + consumeDirectDeclaratorFunctionDeclarator(false); break; + } + + // + // 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 366: abstract_declarator_opt ::= $Empty + // + case 366: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator + // + case 367: { action.builder. + consumeParameterDeclaration(); break; + } + + // + // Rule 368: parameter_declaration ::= declaration_specifiers + // + case 368: { action.builder. + consumeParameterDeclarationWithoutDeclarator(); break; + } + + // + // 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 373: parameter_init_declarator ::= = parameter_initializer + // + case 373: { action.builder. + consumeDeclaratorWithInitializer(false); break; + } + + // + // Rule 374: parameter_initializer ::= assignment_expression + // + case 374: { action.builder. + consumeInitializer(); break; + } + + // + // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body + // + case 375: { action.builder. + consumeFunctionDefinition(false); break; + } + + // + // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq + // + case 376: { action.builder. + consumeFunctionDefinition(true); break; + } + + // + // Rule 379: initializer ::= ( expression_list ) + // + case 379: { action.builder. + consumeInitializerConstructor(); break; + } + + // + // Rule 380: initializer_clause ::= assignment_expression + // + case 380: { action.builder. + consumeInitializer(); break; + } + + // + // Rule 381: initializer_clause ::= { initializer_list , } + // + case 381: { action.builder. + consumeInitializerList(); break; + } + + // + // Rule 382: initializer_clause ::= { initializer_list } + // + case 382: { action.builder. + consumeInitializerList(); break; + } + + // + // Rule 383: initializer_clause ::= { } + // + case 383: { action.builder. + consumeInitializerList(); break; + } + + // + // Rule 388: class_specifier ::= class_head { member_declaration_list_opt } + // + case 388: { action.builder. + consumeClassSpecifier(); break; + } + + // + // Rule 389: class_specifier ::= class_head EOC member_declaration_list_opt } + // + case 389: { action.builder. + consumeClassSpecifier(); break; + } + + // + // 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(true); break; + } + + // + // Rule 393: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt + // + case 393: { action.builder. + consumeClassHead(true); break; + } + + // + // Rule 395: identifier_name_opt ::= $Empty + // + case 395: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 399: visibility_label ::= access_specifier_keyword : + // + case 399: { action.builder. + consumeVisibilityLabel(); break; + } + + // + // Rule 400: member_declaration ::= declaration_specifiers_opt member_declarator_list ; + // + case 400: { action.builder. + consumeDeclarationSimple(true); break; + } + + // + // Rule 401: member_declaration ::= declaration_specifiers_opt ; + // + case 401: { action.builder. + consumeDeclarationSimple(false); break; + } + + // + // Rule 404: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; + // + case 404: { action.builder. + consumeMemberDeclarationQualifiedId(); break; + } + + // + // Rule 410: member_declaration ::= ERROR_TOKEN + // + case 410: { action.builder. + consumeDeclarationProblem(); break; + } + + // + // Rule 418: member_declarator ::= declarator constant_initializer + // + case 418: { action.builder. + consumeMemberDeclaratorWithInitializer(); break; + } + + // + // Rule 419: member_declarator ::= bit_field_declarator : constant_expression + // + case 419: { action.builder. + consumeBitField(true); break; + } + + // + // Rule 420: member_declarator ::= : constant_expression + // + case 420: { action.builder. + consumeBitField(false); break; + } + + // + // Rule 421: bit_field_declarator ::= identifier_name + // + case 421: { action.builder. + consumeDirectDeclaratorIdentifier(); break; + } + + // + // Rule 422: constant_initializer ::= = constant_expression + // + case 422: { action.builder. + consumeInitializer(); break; + } + + // + // Rule 428: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name + // + case 428: { action.builder. + consumeBaseSpecifier(false, false); break; + } + + // + // 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, false); break; + } + + // + // 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 436: access_specifier_keyword_opt ::= $Empty + // + case 436: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 438: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > + // + case 438: { action.builder. + consumeTemplateId(); break; + } + + // + // Rule 439: conversion_function_id ::= operator conversion_type_id + // + case 439: { action.builder. + consumeConversionName(); break; + } + + // + // Rule 440: conversion_type_id ::= type_specifier_seq conversion_declarator + // + case 440: { action.builder. + consumeTypeId(true); break; + } + + // + // Rule 441: conversion_type_id ::= type_specifier_seq + // + case 441: { action.builder. + consumeTypeId(false); break; + } + + // + // Rule 442: conversion_declarator ::= ptr_operator_seq + // + case 442: { action.builder. + consumeDeclaratorWithPointer(false); break; + } + + // + // Rule 448: mem_initializer ::= mem_initializer_name ( expression_list_opt ) + // + case 448: { action.builder. + consumeConstructorChainInitializer(); break; + } + + // + // Rule 449: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name + // + case 449: { action.builder. + consumeQualifiedId(false); break; + } + + // + // Rule 452: operator_function_id_name ::= operator_id_name < template_argument_list_opt > + // + case 452: { action.builder. + consumeTemplateId(); break; + } + + // + // Rule 453: operator_id_name ::= operator overloadable_operator + // + case 453: { action.builder. + consumeOperatorName(); break; + } + + // + // Rule 496: template_declaration ::= export_opt template < template_parameter_list > declaration + // + case 496: { action.builder. + consumeTemplateDeclaration(); break; + } + + // + // Rule 497: export_opt ::= export + // + case 497: { action.builder. + consumePlaceHolder(); break; + } + + // + // Rule 498: export_opt ::= $Empty + // + case 498: { action.builder. + consumeEmpty(); break; + } + + // + // Rule 502: template_parameter ::= parameter_declaration + // + case 502: { action.builder. + consumeTemplateParamterDeclaration(); break; + } + + // + // 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 ::= typename identifier_name_opt = type_id + // + case 506: { action.builder. + consumeSimpleTypeTemplateParameter(true); break; + } + + // + // Rule 507: type_parameter ::= template < template_parameter_list > class identifier_name_opt + // + case 507: { action.builder. + consumeTemplatedTypeTemplateParameter(false); break; + } + + // + // Rule 508: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression + // + case 508: { action.builder. + consumeTemplatedTypeTemplateParameter(true); break; + } + + // + // Rule 509: template_id_name ::= identifier_name < template_argument_list_opt > + // + case 509: { action.builder. + consumeTemplateId(); break; + } + + // + // Rule 515: template_argument ::= type_id + // + case 515: { action.builder. + consumeTemplateArgumentTypeId(); break; + } + + // + // Rule 516: explicit_instantiation ::= template declaration + // + case 516: { action.builder. + consumeTemplateExplicitInstantiation(); break; + } + + // + // Rule 517: explicit_specialization ::= template < > declaration + // + case 517: { action.builder. + consumeTemplateExplicitSpecialization(); break; + } + + // + // Rule 518: try_block ::= try compound_statement handler_seq + // + case 518: { action.builder. + consumeStatementTryBlock(); break; + } + + // + // Rule 521: handler ::= catch ( exception_declaration ) compound_statement + // + case 521: { action.builder. + consumeStatementCatchHandler(false); break; + } + + // + // Rule 522: handler ::= catch ( ... ) compound_statement + // + case 522: { action.builder. + consumeStatementCatchHandler(true); break; + } + + // + // 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(false); break; + } + + // + // Rule 533: expression_parser_start ::= ERROR_TOKEN + // + case 533: { action.builder. + consumeExpressionProblem(); break; + } + + + default: + break; + } + return; + } +} + 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 new file mode 100644 index 00000000000..da9ba090d47 --- /dev/null +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParserprs.java @@ -0,0 +1,2570 @@ +/******************************************************************************* +* Copyright (c) 2006, 2008 IBM Corporation and others. +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl_v10.html +* +* Contributors: +* IBM Corporation - initial API and implementation +*********************************************************************************/ + +// This file was generated by LPG + +package org.eclipse.cdt.internal.core.dom.lrparser.cpp; + +public class CPPExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CPPExpressionParsersym { + + public interface IsKeyword { + public final static byte isKeyword[] = {0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0 + }; + }; + public final static byte isKeyword[] = IsKeyword.isKeyword; + public final boolean isKeyword(int index) { return isKeyword[index] != 0; } + + public interface BaseCheck { + public final static short baseCheck[] = {0, + 0,0,1,1,1,1,1,1,1,1, + 1,0,1,2,1,1,1,1,1,1, + 1,1,1,1,1,1,1,3,1,1, + 1,1,1,1,1,1,2,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,3,2,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,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, + 5,4,3,1,3,1,1,5,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,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,-53,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-137,0,0,0, + 0,0,0,0,-453,0,0,0,0,0, + 0,-125,0,0,0,-2,0,-66,-370,0, + 0,0,0,-138,0,0,0,0,0,-93, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-147,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-339,0,0, + 0,-4,0,0,0,0,0,0,0,0, + 0,0,0,-5,0,-72,0,0,0,0, + 0,0,0,0,0,0,0,0,-128,0, + 0,-6,-403,0,-7,0,0,0,0,0, + 0,0,0,-116,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-8,-201,0,0,0,0, + 0,-49,-9,0,0,0,0,-16,0,0, + 0,-212,0,0,0,0,0,0,-117,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-415, + 0,0,0,0,0,-142,0,0,0,0, + 0,0,-151,0,0,0,0,-130,-11,-148, + -12,0,0,0,-73,0,0,0,-13,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-354,0,-15,-58,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,0,0,0,0,0,0,0,-319, + 0,0,0,0,0,-51,-114,0,0,0, + 0,-184,0,-247,0,0,0,0,-28,-131, + 0,0,-227,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-10, + 0,0,0,0,0,0,0,-358,0,0, + 0,0,-29,0,0,-50,0,0,0,0, + 0,-519,0,0,0,-30,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,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-180,0,0, + 0,0,-150,0,0,0,-31,0,0,0, + 0,0,0,0,0,-18,0,0,0,-288, + -509,0,0,0,0,0,0,0,0,0, + 0,0,0,0,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,-20,0,0,0,-33,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,0,0,0, + 0,0,0,0,0,0,0,0,0,-346, + 0,0,0,0,0,0,0,-323,0,0, + 0,0,0,-268,0,0,0,0,-361,0, + 0,0,-353,-54,0,0,0,0,0,-144, + 0,-285,0,0,0,0,0,0,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,-239,0, + 0,0,0,-325,0,0,0,-468,0,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,0,-274,0,0,0,0, + -34,-57,-65,0,0,0,0,-388,0,-179, + 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,0,-35,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-378,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,-36,0,0,0, + 0,0,-37,-186,0,0,0,0,-39,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,0,0,-55, + 0,0,0,0,0,-56,-59,0,0,0, + 0,-41,0,0,0,-155,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-252,0,0,0,0,0, + 0,0,0,-202,0,0,0,0,-67,-68, + 0,0,0,-95,0,0,0,-70,0,0, + 0,0,0,0,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,-110,-271,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,0,0, + 0,0,0,0,0,0,-111,-312,0,0, + 0,0,0,-112,-113,0,0,-97,0,0, + 0,-301,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -208,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-121,-139,-140,0,0,-98, + 0,0,0,-337,0,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, + -141,-318,0,0,0,0,0,-156,-157,0, + 0,-99,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-158,0,0,0,0,0,0,-159, + -160,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,-307,0,0,0, + 0,0,0,0,-161,-365,0,0,0,0, + -338,-162,-163,0,0,-101,0,0,0,-508, + 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,-164,-356,0,0, + 0,0,0,-165,-373,0,0,-102,0,0, + 0,0,0,0,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,-357, + 0,0,0,0,0,-167,-168,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,0,0,0,0,0,0,0,0, + 0,-395,0,0,0,0,0,-442,-169,0, + 0,-104,0,0,0,-170,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,-171,-418,0,0,0,0,0,-172, + -173,0,0,-105,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,-175,-176,0,0,0,0, + -235,0,0,0,0,-135,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,-177,-178,0,0, + 0,0,-220,0,0,0,-495,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-411, + 0,0,0,0,0,-266,-181,-47,0,0, + 0,-182,-514,0,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, + -321,0,0,0,-322,0,0,0,-193,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-194,-199,0,0,0, + 0,-336,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,0,0,0, + 0,0,0,0,0,0,0,0,-153,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-351,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,0,0, + 0,0,-348,-483,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,-458,0,0,0,0,0,0,0,-297, + 0,0,0,0,0,-377,0,0,0,-214, + -60,0,0,0,0,0,-289,-217,-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,0,-225, + 0,0,0,0,0,-445,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,-189,0,0,0,0,-61,-228,-218, + 0,0,0,-366,-243,-107,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,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, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-245,0,0,0,0, + 0,0,0,-253,-267,0,-92,0,0,0, + -269,0,0,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,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,-90,0,0,0, + -270,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-367, + 0,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,-281,0,0, + 0,0,-83,0,0,0,-282,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-286,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,-396,0,0,0,-85,0,0,0, + -287,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-414, + 0,0,0,-86,0,0,0,-298,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-302,0,0,0, + -52,0,0,0,-146,0,0,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,-303,0,0,-309,0,0,-241,0, + 0,0,-385,0,0,0,-310,-123,0,0, + 0,-108,0,-372,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,0, + 0,0,0,-109,0,-311,0,0,0,0, + -136,0,-238,0,0,-244,0,0,0,0, + 0,0,0,0,0,0,-234,-187,-277,-279, + 0,0,-236,0,0,0,0,0,0,0, + -316,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, + -115,0,0,0,0,-188,0,0,0,0, + -48,0,-317,-17,0,-511,0,0,-275,0, + -291,0,0,0,0,-436,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-246,-149,0,0,0,-512,-475, + -190,0,0,0,0,-462,0,0,-240,0, + 0,-333,0,0,0,0,0,0,0,-62, + 0,0,0,0,0,0,0,0,0,0, + -154,0,0,0,-350,-430,-74,0,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,-352,0,0, + 0,0,0,0,0,-120,0,0,0,-129, + 0,0,0,0,-368,-143,0,0,0,0, + 0,0,-426,0,-204,-213,0,0,0,0, + 0,0,0,0,-371,-205,-393,0,0,0, + 0,0,0,0,0,0,0,-276,-229,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-242,0,0,-394,0,0,0, + 0,0,0,0,0,0,0,-152,0,0, + 0,0,-192,-433,-443,-195,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-397, + -191,0,0,0,0,0,0,-398,0,0, + -334,0,0,0,0,0,-404,-249,0,0, + 0,0,-406,0,0,0,0,0,0,0, + 0,0,-409,0,-416,0,0,0,0,-399, + 0,0,0,0,0,0,0,0,0,-256, + 0,0,0,0,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, + 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,-423,0,-314,0,0, + 0,0,0,0,0,0,0,0,-80,0, + 0,0,-263,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-196,0,0,0,-119,0,0,-451,-330, + 0,-424,0,0,0,0,-293,-206,0,-444, + 0,0,0,0,0,0,-446,-448,-449,0, + 0,0,0,-496,-320,0,0,0,0,0, + 0,0,0,0,-257,0,0,0,-248,0, + 0,0,-258,0,0,0,0,0,0,0, + 0,0,0,-259,0,0,-211,0,-1,-450, + 0,0,0,-472,-452,0,0,0,0,0, + 0,0,-467,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-344,0,0,0,0,0,0,-469,-470, + -294,0,0,0,0,0,-304,-360,0,0, + 0,0,0,0,0,0,0,0,0,-380, + 0,0,0,-501,0,-232,-471,0,0,0, + 0,0,-476,0,-480,0,0,0,0,0, + 0,0,0,0,0,0,0,-355,0,0, + 0,-486,0,-493,-502,0,-215,0,0,0, + -510,0,0,-254,0,0,0,-233,0,0, + 0,0,0,0,0,0,0,-255,0,0, + 0,-237,0,-503,0,0,-305,0,-262,0, + -251,0,0,0,-515,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-42,0,-454,0,0,0, + 0,0,0,-278,0,0,0,0,0,0, + 0,-447,0,0,0,0,0,0,-363,-427, + 0,0,0,-507,0,0,0,0,0,-198, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -513,0,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,-407,0,0, + 0,0,0,-283,0,0,0,-520,-473,0, + 0,0,0,-438,0,0,0,-329,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-400,0,0,-491,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,-523,-69, + 0,0,0,0,-296,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-386,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,-308,0,-313,-327,0,0,0,0, + 0,0,-295,0,0,0,0,0,0,-332, + 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,-82,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,-364,0,0,0,0,0,0,-381,0, + 0,0,0,0,0,0,0,0,0,-145, + -341,-343,0,0,0,0,-14,-340,-300,0, + 0,0,0,0,0,-465,0,0,-408,0, + 0,0,0,-345,-43,0,0,0,0,0, + 0,0,0,0,0,0,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,-375,0,0,-359,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -387,0,0,0,0,-389,-428,0,0,0, + 0,0,0,0,-417,-315,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-459, + 0,0,0,0,0,-432,0,0,0,0, + 0,0,0,0,0,0,-306,0,0,0, + 0,0,-460,0,-405,0,0,0,0,-456, + 0,0,-466,0,0,0,0,0,0,0, + -390,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,0,-410,-413, + -422,0,0,0,0,0,-463,0,0,0, + 0,-21,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-488,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,-133,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,-505,0,0,0,0,0,0,0, + 0,0,0,-474,-106,-221,-425,0,0,0, + 0,-342,-122,-516,-461,0,-487,0,0,-464, + 0,0,-490,0,0,-402,0,-481,-44,-478, + -479,0,0,0,0,0,0,0,-485,0, + 0,0,0,0,0,0,0,-504,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-260,0,0,0,0, + -369,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-494,0,-419, + 0,0,0,0,0,0,0,0,0,0, + 0,-347,0,0,0,0,0,0,0,0, + 0,0,-498,0,0,0,0,0,0,0, + 0,0,0,0,-374,-45,0,-517,0,0, + -261,0,0,0,0,0,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,-522,0,0,0, + 0,0,0,0,0,0,0,0,-412,0, + -492,0,0,-420,0,-500,0,0,0,0, + 0,0,0,0,0,0,0,-437,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-518,-435,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,-421,-222,0,-118,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-521, + 0,-127,0,0,0,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,-134,0,-477, + 0,0,0,0,-497,0,0,0,0,0, + 0,0,0,0,0,0,-185,0,0,0, + 0,0,0,0,0,0,0,0,-230,0, + 0,0,0,0,0,0,-231,0,0,-324, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-362,0,0,0,0,0, + 0,0,-382,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,0,-197, + 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, + -489,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-273,0,0,0,0,0,-272,0,0, + 0,0,0,0,0,0,0,0,-376,0, + 0,0,0,0,0,0,0,0,0,-335, + 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,-216,0,0, + 0,0,-439,0,0,0,0,0,0,0, + 0,0,-431,0,-265,0,0,0,-290,0, + 0,0,0,-46,-210,0,0,0,0,0, + -292,0,-224,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + -440,0,0,-441,0,0,0,0,0,-482, + 0,0,0,0,0,0,0,0,0,0, + -349,0,0,0,0,0,0,0,0,-299, + -429,0,0,0,0,0,0,0,0,0, + -506,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,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; + public final int baseCheck(int index) { return baseCheck[index]; } + public final static short rhs[] = baseCheck; + public final int rhs(int index) { return rhs[index]; }; + + public interface BaseAction { + public final static char baseAction[] = { + 169,4,48,75,75,31,31,64,64,38, + 38,190,190,191,191,192,192,1,1,15, + 15,15,15,15,15,15,15,16,16,16, + 14,11,11,8,8,8,8,8,8,2, + 65,65,5,5,12,12,12,12,44,44, + 134,134,135,61,61,42,17,17,17,17, + 17,17,17,17,17,17,17,17,17,17, + 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,22,22,22,24,24,24, + 24,25,25,25,26,26,26,27,27,27, + 27,27,28,28,28,29,29,30,30,33, + 33,34,34,35,35,36,36,41,41,40, + 40,40,40,40,40,40,40,40,40,40, + 40,40,39,32,142,142,96,96,173,173, + 91,193,193,76,76,76,76,76,76,76, + 76,76,77,77,77,73,73,59,59,174, + 174,78,78,78,102,102,175,175,79,79, + 79,176,176,80,80,80,80,80,81,81, + 83,83,83,83,83,83,83,49,49,49, + 49,49,113,113,114,114,50,177,23,23, + 23,23,23,47,47,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,100,118, + 118,118,118,118,118,116,116,116,117,117, + 151,151,150,150,120,120,103,68,68,69, + 70,52,46,152,152,53,51,85,85,153, + 153,143,143,121,122,122,74,74,154,154, + 62,62,62,57,57,56,63,63,71,71, + 55,55,55,89,89,98,97,97,60,60, + 58,58,54,54,43,101,101,101,92,92, + 92,93,93,94,94,94,95,95,104,104, + 104,106,106,105,105,194,194,90,90,179, + 179,179,179,179,124,45,45,156,178,178, + 125,125,125,125,180,180,37,37,115,115, + 126,126,126,126,107,107,119,119,119,127, + 128,128,128,128,128,128,128,128,128,128, + 128,159,159,158,158,181,181,160,160,160, + 160,161,182,109,108,108,183,183,162,162, + 162,162,99,99,99,184,184,9,9,10, + 185,185,186,163,155,155,164,164,165,166, + 166,6,6,7,167,167,167,167,167,167, + 167,167,167,167,167,167,167,167,167,167, + 167,167,167,167,167,167,167,167,167,167, + 167,167,167,167,167,167,167,167,167,167, + 167,167,167,167,167,167,66,72,72,168, + 168,130,130,131,131,131,131,131,131,3, + 132,132,129,129,110,110,84,67,82,157, + 157,111,111,187,187,187,133,133,123,123, + 188,188,169,169,881,39,1551,1517,1356,2826, + 34,814,31,35,799,30,32,1516,29,27, + 56,869,112,82,83,114,923,1693,997,936, + 1057,1049,1247,1211,1303,600,4100,1297,1313,1332, + 149,278,2146,2016,164,150,963,3062,296,2034, + 39,791,36,2786,1090,34,814,340,35,799, + 2360,39,791,36,237,1006,34,814,31,35, + 799,30,32,789,29,27,56,869,112,82, + 83,114,923,495,997,936,1057,1049,1247,1803, + 240,235,236,2052,39,791,36,4599,354,34, + 814,44,35,799,279,318,2661,323,2052,39, + 791,36,1115,623,34,814,2244,35,799,247, + 250,253,256,2588,29,355,1809,39,791,36, + 1515,2888,34,814,31,35,799,63,32,248, + 39,284,117,2080,4450,293,642,2833,3066,2816, + 4083,4330,4454,4322,1493,39,791,36,2541,1006, + 34,814,31,35,799,30,32,789,29,27, + 56,869,112,82,83,114,923,344,997,936, + 1057,1049,1247,1211,1303,381,1544,1297,1313,1332, + 149,4377,57,469,514,150,684,2760,2006,39, + 1347,47,1678,3495,46,814,3261,188,515,1493, + 39,791,36,2541,1006,34,814,31,35,799, + 30,32,789,29,27,56,869,112,82,83, + 114,923,344,997,936,1057,1049,1247,1211,1303, + 1660,334,1297,1313,1332,149,248,39,284,514, + 150,4570,2760,600,1398,2158,38,353,1356,205, + 994,557,67,515,510,1922,39,791,36,645, + 2888,34,814,31,35,799,62,32,347,584, + 557,350,2554,1937,733,2101,1942,3095,1493,39, + 791,36,2541,1006,34,814,31,35,799,30, + 32,789,29,27,56,869,112,82,83,114, + 923,344,997,936,1057,1049,1247,1211,1303,510, + 233,1297,1313,1332,149,3227,1353,979,514,150, + 4306,2760,1614,457,2124,39,282,4377,1966,1999, + 1356,1942,515,1761,39,791,36,2541,1006,34, + 814,31,35,799,30,32,789,29,27,56, + 869,112,82,83,114,923,344,997,936,1057, + 1049,1247,1211,1303,99,988,1297,1313,1332,149, + 890,1552,988,514,150,1938,2760,334,600,39, + 1390,387,1220,1091,48,2150,57,515,510,3503, + 739,66,2116,39,791,36,1251,4578,34,814, + 31,35,799,30,32,456,508,2026,315,435, + 1942,1559,39,791,36,428,1006,34,814,31, + 35,799,30,32,789,29,27,56,869,112, + 82,83,114,923,427,997,936,1057,1049,1247, + 1211,1303,453,511,1297,1313,1332,149,600,39, + 2219,380,150,1605,39,791,36,849,4578,34, + 814,31,35,799,65,32,1478,39,1390,387, + 2391,1632,39,791,36,383,1006,34,814,31, + 35,799,30,32,789,29,27,56,869,112, + 82,83,114,923,1720,997,936,1057,1049,1247, + 1211,1303,440,55,1297,1313,1332,149,1389,2457, + 578,380,150,2360,39,791,36,67,1006,34, + 814,31,35,799,30,32,789,29,27,56, + 869,112,82,83,91,381,384,1936,39,791, + 36,326,1006,34,814,31,35,799,30,32, + 789,29,27,56,869,112,82,83,114,923, + 2423,997,936,1057,1049,1247,1211,1303,600,2428, + 1297,1313,1332,149,1280,39,296,164,150,2052, + 39,791,36,2639,2038,34,814,341,35,799, + 1356,3094,1936,39,791,36,385,1006,34,814, + 31,35,799,30,32,789,29,27,56,869, + 112,82,83,114,923,494,997,936,1057,1049, + 1247,1211,1303,600,3205,1297,1313,1332,149,600, + 39,287,374,150,1936,39,791,36,2633,1006, + 34,814,31,35,799,30,32,789,29,27, + 56,869,112,82,83,114,923,1160,997,936, + 1057,1049,1247,1211,1303,4041,1160,1297,1313,1332, + 149,596,57,821,374,150,818,2576,2596,642, + 600,39,2158,2190,1936,39,791,36,291,1006, + 34,814,31,35,799,30,32,789,29,27, + 56,869,112,82,83,114,923,415,997,936, + 1057,1049,1247,1211,1303,3632,373,1297,1313,1332, + 149,389,2423,444,374,150,1873,39,791,36, + 388,1006,34,814,31,35,799,30,32,789, + 29,27,56,869,112,82,83,114,923,520, + 997,936,1057,1049,1247,1211,1303,912,372,1297, + 1313,1332,149,63,57,418,380,150,2859,1695, + 39,791,36,239,1006,34,814,31,35,799, + 30,32,789,29,27,56,869,112,82,83, + 114,923,1234,997,936,1057,1049,1247,1211,1303, + 1245,357,1297,1313,1332,149,1627,1134,370,148, + 150,528,1936,39,791,36,1356,1006,34,814, + 31,35,799,30,32,789,29,27,56,869, + 112,82,83,114,923,2311,997,936,1057,1049, + 1247,1211,1303,3590,1356,1297,1313,1332,149,978, + 1191,378,165,150,1936,39,791,36,1177,1006, + 34,814,31,35,799,30,32,789,29,27, + 56,869,112,82,83,114,923,4096,997,936, + 1057,1049,1247,1211,1303,444,1296,1297,1313,1332, + 149,57,1184,2144,161,150,1936,39,791,36, + 3227,1006,34,814,31,35,799,30,32,789, + 29,27,56,869,112,82,83,114,923,328, + 997,936,1057,1049,1247,1211,1303,1314,890,1297, + 1313,1332,149,3162,1316,1318,160,150,1936,39, + 791,36,1817,1006,34,814,31,35,799,30, + 32,789,29,27,56,869,112,82,83,114, + 923,1070,997,936,1057,1049,1247,1211,1303,50, + 2150,1297,1313,1332,149,937,1521,2132,159,150, + 1936,39,791,36,1356,1006,34,814,31,35, + 799,30,32,789,29,27,56,869,112,82, + 83,114,923,2458,997,936,1057,1049,1247,1211, + 1303,2015,1054,1297,1313,1332,149,3218,2517,2630, + 158,150,1936,39,791,36,623,1006,34,814, + 31,35,799,30,32,789,29,27,56,869, + 112,82,83,114,923,1468,997,936,1057,1049, + 1247,1211,1303,1241,76,1297,1313,1332,149,103, + 1712,1824,157,150,1936,39,791,36,623,1006, + 34,814,31,35,799,30,32,789,29,27, + 56,869,112,82,83,114,923,296,997,936, + 1057,1049,1247,1211,1303,243,1356,1297,1313,1332, + 149,1817,419,595,156,150,1936,39,791,36, + 2680,1006,34,814,31,35,799,30,32,789, + 29,27,56,869,112,82,83,114,923,296, + 997,936,1057,1049,1247,1211,1303,771,890,1297, + 1313,1332,149,3465,2103,2249,155,150,1936,39, + 791,36,638,1006,34,814,31,35,799,30, + 32,789,29,27,56,869,112,82,83,114, + 923,104,997,936,1057,1049,1247,1211,1303,2158, + 890,1297,1313,1332,149,3671,767,2552,154,150, + 1936,39,791,36,1119,1006,34,814,31,35, + 799,30,32,789,29,27,56,869,112,82, + 83,114,923,77,997,936,1057,1049,1247,1211, + 1303,520,890,1297,1313,1332,149,4160,2611,2578, + 153,150,1936,39,791,36,909,1006,34,814, + 31,35,799,30,32,789,29,27,56,869, + 112,82,83,114,923,1935,997,936,1057,1049, + 1247,1211,1303,772,890,1297,1313,1332,149,4268, + 1335,1736,152,150,1936,39,791,36,591,1006, + 34,814,31,35,799,30,32,789,29,27, + 56,869,112,82,83,114,923,1468,997,936, + 1057,1049,1247,1211,1303,1608,1789,1297,1313,1332, + 149,1370,39,285,151,150,1827,39,791,36, + 1160,1006,34,814,31,35,799,30,32,789, + 29,27,56,869,112,82,83,114,923,519, + 997,936,1057,1049,1247,1211,1303,1855,1901,1297, + 1313,2095,170,1936,39,791,36,2611,1006,34, + 814,31,35,799,30,32,789,29,27,56, + 869,112,82,83,114,923,3294,997,936,1057, + 1049,1247,1211,1303,288,1178,1297,1313,1332,149, + 2596,329,2140,146,150,2518,151,1629,600,39, + 1390,387,1360,2265,39,791,36,1384,1006,34, + 814,31,35,799,30,32,789,29,27,56, + 869,112,82,83,114,923,1689,997,936,1057, + 1049,1247,1211,1303,402,55,1297,1313,1332,149, + 1389,1160,857,195,150,2360,39,791,36,1088, + 1006,34,814,31,35,799,30,32,789,29, + 27,56,869,112,82,83,114,923,519,997, + 936,1057,1049,1247,1211,1303,1339,472,1297,1313, + 2095,170,2360,39,791,36,1708,1006,34,814, + 31,35,799,30,32,789,29,27,56,869, + 112,82,83,114,923,289,997,936,1057,1049, + 1247,1211,1303,356,1650,1297,1313,2095,170,1605, + 39,791,36,528,4578,34,814,31,35,799, + 64,32,2360,39,791,36,295,1006,34,814, + 31,35,799,30,32,789,29,27,56,869, + 112,82,83,114,923,1470,997,936,1057,1049, + 1247,1211,1303,1919,2596,1297,1313,2095,170,2360, + 39,791,36,1636,1006,34,814,31,35,799, + 30,32,789,29,27,56,869,112,82,83, + 114,923,2496,997,936,1057,1049,1247,1211,1303, + 2042,400,1297,1313,2095,170,2052,39,791,36, + 1882,2038,34,814,2371,35,799,2434,1949,2360, + 39,791,36,420,1006,34,814,31,35,799, + 30,32,789,29,27,56,869,112,82,83, + 114,923,4019,997,936,1057,1049,1247,1211,1303, + 1964,4098,1297,1313,2095,170,2406,39,791,36, + 419,1006,34,814,31,35,799,30,32,789, + 29,27,56,869,112,82,83,114,923,1982, + 997,936,1057,1049,1247,1211,1303,325,327,1297, + 1313,2095,170,600,39,3238,3196,528,2038,1164, + 943,39,1390,387,1320,2027,2360,39,791,36, + 422,1006,34,814,31,35,799,30,32,789, + 29,27,56,869,112,82,83,114,923,28, + 997,936,1057,1049,1247,1211,1303,278,94,1297, + 1818,108,404,2360,39,791,36,3197,1006,34, + 814,31,35,799,30,32,789,29,27,56, + 869,112,82,83,114,923,1823,997,936,1057, + 1049,1247,1211,1303,1997,2175,1810,2360,39,791, + 36,2345,1006,34,814,31,35,799,30,32, + 789,29,27,56,869,112,82,83,114,923, + 2314,997,936,1057,1049,1247,1211,1776,2360,39, + 791,36,78,1006,34,814,31,35,799,30, + 32,789,29,27,56,869,112,82,83,114, + 923,1320,997,936,1057,1049,1726,2360,39,791, + 36,648,1006,34,814,31,35,799,30,32, + 789,29,27,56,869,112,82,83,114,923, + 1160,997,936,1057,1727,2360,39,791,36,302, + 1006,34,814,31,35,799,30,32,789,29, + 27,56,869,112,82,83,114,923,1475,997, + 936,1057,1769,2360,39,791,36,2164,1006,34, + 814,31,35,799,30,32,789,29,27,56, + 869,112,82,83,114,923,1621,997,936,1635, + 2360,39,791,36,300,1006,34,814,31,35, + 799,30,32,789,29,27,56,869,112,82, + 83,114,923,1160,997,936,1642,2360,39,791, + 36,1778,1006,34,814,31,35,799,30,32, + 789,29,27,56,869,112,82,83,114,923, + 1320,997,936,1643,2360,39,791,36,2455,1006, + 34,814,31,35,799,30,32,789,29,27, + 56,869,112,82,83,114,923,2484,997,936, + 1677,2452,39,1390,387,57,2820,299,226,1077, + 2360,39,791,36,242,1006,34,814,31,35, + 799,30,32,789,29,27,56,869,112,82, + 83,114,923,2415,997,1684,2401,2836,278,600, + 39,2158,281,600,39,1390,387,2464,2029,39, + 1989,2893,2038,2921,1280,2877,296,2360,39,791, + 36,237,1006,34,814,31,35,799,30,32, + 789,29,27,56,869,112,82,83,114,923, + 431,997,1719,75,2038,55,2497,240,235,236, + 1389,2676,2233,1017,2428,2846,1136,39,791,36, + 4611,279,34,814,340,35,799,2156,57,2554, + 1017,2428,4389,2156,3095,74,247,250,253,256, + 2588,2480,352,2314,39,791,36,1515,1006,34, + 814,31,35,799,30,32,789,29,27,56, + 869,92,82,83,4599,3066,2816,4083,4330,4454, + 4322,2038,321,2157,323,2741,57,2576,316,1010, + 4397,1925,353,2197,57,1077,2496,353,534,2156, + 2491,1310,39,791,36,3070,1320,34,814,340, + 35,799,59,345,584,557,350,344,345,584, + 557,350,2835,166,1481,2038,162,2456,2541,2496, + 2478,57,352,2238,534,2647,1160,2760,1552,1370, + 39,282,2574,290,306,390,424,2636,2151,4599, + 1685,391,424,4251,4358,522,93,321,2157,323, + 290,2038,162,316,1010,1431,2162,1925,186,3302, + 2541,1077,353,1860,2437,3388,1210,39,791,36, + 4651,4377,34,814,340,35,799,2691,521,344, + 1981,2437,58,345,584,557,350,527,2576,166, + 307,426,2835,201,3374,367,2806,393,424,2760, + 688,39,1390,387,361,2058,2508,39,1390,387, + 530,353,2703,177,4599,2038,2038,534,3171,2245, + 2306,333,321,2157,323,2601,1373,2079,316,1010, + 2541,4377,345,584,557,350,234,55,2156,1774, + 770,343,1389,55,2017,162,351,96,1389,2636, + 1501,186,3302,2771,2038,4172,237,2650,209,220, + 579,3320,208,217,218,219,221,3320,776,39, + 1390,387,175,1506,57,1,57,2653,1077,534, + 2633,333,249,235,236,3358,174,309,313,189, + 173,176,177,178,179,180,3409,202,234,3043, + 1472,1014,39,1390,387,55,3787,162,2600,2510, + 1389,1935,1543,186,3302,716,361,2617,2038,2955, + 209,220,579,2607,208,217,218,219,221,2240, + 2874,2245,2306,2629,175,2652,330,336,55,187, + 1755,39,394,1389,3723,53,392,424,174,3445, + 2038,190,173,176,177,178,179,180,2360,39, + 791,36,1851,1006,34,814,31,35,799,30, + 32,789,29,27,56,869,112,82,83,114, + 923,73,1558,2360,39,791,36,2895,1006,34, + 814,31,35,799,30,32,789,29,27,56, + 869,112,82,83,114,923,2651,1559,1193,39, + 2775,36,4651,4377,34,814,340,35,799,2360, + 39,791,36,1774,1006,34,814,31,35,799, + 30,32,789,29,27,56,869,112,82,83, + 114,1593,688,39,1390,387,1206,3026,3309,265, + 1373,2518,2682,534,2541,4377,4599,2282,57,244, + 2637,2541,2734,333,321,2157,323,2638,2653,2686, + 316,1010,234,2636,1921,1166,39,1390,387,55, + 2636,162,1123,3043,1389,2038,53,186,3302,1147, + 39,2158,281,2038,209,220,579,4172,208,217, + 218,219,221,1169,2038,333,237,57,175,1418, + 2688,1795,55,1077,353,2710,72,1389,534,53, + 335,336,174,2110,71,3203,173,176,177,178, + 179,180,245,235,236,70,918,234,382,3568, + 361,162,776,39,1390,387,162,362,532,2712, + 89,2038,186,3302,2874,2245,2306,2038,1481,209, + 220,579,2541,208,217,218,219,221,415,2808, + 248,39,450,175,441,3725,57,2655,534,55, + 2709,2636,3510,1094,1389,2714,53,174,61,2103, + 182,173,176,177,178,179,180,234,1166,39, + 1390,387,1303,2146,2728,2723,162,600,39,1390, + 387,2727,186,3302,600,2537,2158,80,2102,209, + 220,579,2858,208,217,218,219,221,1147,39, + 2158,2573,57,175,529,55,2650,2038,534,57, + 1389,68,53,3717,55,964,4377,174,361,52, + 193,173,176,177,178,179,180,234,5149,2583, + 5149,5149,3676,2245,2306,57,162,2478,60,534, + 5149,1077,186,3302,600,39,2158,286,576,209, + 220,579,1320,208,217,218,219,221,344,2042, + 424,39,450,175,617,3725,3599,162,534,162, + 600,39,1390,387,2624,206,4101,174,2760,5149, + 3265,173,176,177,178,179,180,234,5149,2592, + 185,1484,39,791,36,4611,162,34,814,340, + 35,799,186,3302,443,2937,2943,278,57,209, + 220,579,4400,208,217,218,219,221,600,39, + 1390,387,5149,175,600,39,2158,283,705,57, + 5149,5149,534,534,600,39,296,174,2038,4599, + 198,173,176,177,178,179,180,321,2157,323, + 100,234,344,316,1010,430,1755,39,394,2479, + 162,162,353,534,5149,523,186,3302,194,324, + 280,5149,4501,209,220,579,1320,208,217,218, + 219,221,344,345,584,557,350,175,5149,793, + 57,162,524,534,534,57,5149,95,194,2931, + 108,174,4501,5149,192,173,176,177,178,179, + 180,5149,234,344,204,1166,39,1390,387,57, + 5149,162,162,1077,447,2937,2943,186,3302,2238, + 5149,3816,5149,2760,209,220,579,3733,208,217, + 218,219,221,57,2735,2293,57,3598,175,1100, + 3178,162,55,600,39,2158,2752,1389,1356,53, + 57,196,174,3072,4415,200,173,176,177,178, + 179,180,2360,39,791,36,3368,1006,34,814, + 31,35,799,30,32,789,29,27,56,869, + 112,82,83,114,1600,2360,39,791,36,5149, + 1006,34,814,31,35,799,30,32,789,29, + 27,56,869,112,82,83,114,1601,984,39, + 791,36,2038,4377,34,814,340,35,799,1235, + 39,2775,36,4651,4118,34,814,340,35,799, + 1553,57,57,5149,2541,3652,4539,1984,2540,1742, + 5149,2541,2541,107,4377,5149,600,39,296,600, + 39,1390,387,344,57,57,4599,5149,1262,2541, + 344,234,5149,334,321,2157,323,4599,5149,5149, + 317,1010,2496,732,5149,321,2157,323,344,353, + 856,316,1010,211,220,579,429,210,217,218, + 219,221,2661,1123,3599,57,2541,5149,2760,1218, + 347,584,557,350,212,214,216,297,298,1432, + 2381,1166,39,1390,387,234,2038,600,39,1390, + 387,222,213,215,5149,2038,1623,39,791,36, + 4651,377,34,814,340,35,799,211,220,579, + 2038,210,217,218,219,221,2694,3779,55,4109, + 2541,4195,2400,1389,449,53,2716,1774,212,214, + 216,297,298,1745,2381,1166,39,1390,387,234, + 1320,448,3609,1320,4599,222,213,215,102,416, + 2808,57,321,2157,323,1930,2581,5149,316,1010, + 4249,211,220,579,526,210,217,218,219,221, + 3388,3127,55,5149,453,4195,2483,1389,203,53, + 5149,305,212,214,216,297,298,3043,2381,57, + 57,57,439,4593,3706,4583,3677,2038,375,222, + 213,215,2360,1398,791,1426,5149,1006,34,814, + 31,35,799,30,32,789,29,27,56,869, + 112,82,83,90,332,336,2038,5149,379,4195, + 2746,2360,39,791,36,5149,1006,34,814,31, + 35,799,30,32,789,29,27,56,869,112, + 82,83,89,2360,39,791,36,3194,1006,34, + 814,31,35,799,30,32,789,29,27,56, + 869,112,82,83,88,2360,39,791,36,5149, + 1006,34,814,31,35,799,30,32,789,29, + 27,56,869,112,82,83,87,2360,39,791, + 36,5149,1006,34,814,31,35,799,30,32, + 789,29,27,56,869,112,82,83,86,2360, + 39,791,36,5149,1006,34,814,31,35,799, + 30,32,789,29,27,56,869,112,82,83, + 85,2360,39,791,36,5149,1006,34,814,31, + 35,799,30,32,789,29,27,56,869,112, + 82,83,84,2218,39,791,36,5149,1006,34, + 814,31,35,799,30,32,789,29,27,56, + 869,112,82,83,110,2360,39,791,36,5149, + 1006,34,814,31,35,799,30,32,789,29, + 27,56,869,112,82,83,116,2360,39,791, + 36,5149,1006,34,814,31,35,799,30,32, + 789,29,27,56,869,112,82,83,115,2360, + 39,791,36,5149,1006,34,814,31,35,799, + 30,32,789,29,27,56,869,112,82,83, + 113,2360,39,791,36,5149,1006,34,814,31, + 35,799,30,32,789,29,27,56,869,112, + 82,83,111,1464,39,791,36,4651,5149,34, + 814,340,35,799,57,57,57,57,534,1077, + 1077,1768,2737,2832,2570,57,2541,2634,1077,2104, + 57,2541,5149,2038,951,5149,2496,344,57,57, + 1320,1320,1897,2541,5149,234,162,162,162,1320, + 344,4599,5149,194,1811,2970,162,4501,1320,321, + 2157,323,344,168,3254,316,1010,211,220,579, + 4256,210,217,218,219,221,1925,770,207,205, + 1077,2585,2760,237,5149,2541,5149,301,212,214, + 216,297,298,1467,2381,377,4084,5149,2038,5149, + 2003,39,1390,387,234,517,213,215,166,252, + 235,236,1060,39,791,36,4093,4377,34,814, + 340,35,799,2038,309,313,211,220,579,3314, + 210,217,218,219,221,2618,57,55,1320,2541, + 2541,1925,1389,5149,53,1077,4198,212,214,216, + 297,298,2038,2381,2706,5149,2955,5149,234,344, + 4599,3384,5149,5149,516,213,215,334,321,2157, + 323,5149,3177,166,319,1010,227,1320,5149,2760, + 211,220,579,2739,210,217,218,219,221,2770, + 1474,57,4077,2541,2143,4063,2486,4320,2541,5149, + 3341,212,214,216,297,298,5149,2381,2159,39, + 1390,387,234,5149,4212,199,5149,2636,223,213, + 215,5149,2038,1623,39,791,36,4651,5149,34, + 814,340,35,799,211,220,579,3257,210,217, + 218,219,221,2813,57,55,68,2541,1077,5149, + 1389,4377,53,4237,5149,212,214,216,297,298, + 2038,2381,2514,39,1390,387,234,2820,5149,3606, + 2848,4599,308,213,215,243,162,5149,5149,321, + 2157,323,5149,3105,502,316,1010,5149,211,220, + 579,3439,210,217,218,219,221,770,68,278, + 57,333,5149,4377,534,1755,39,394,5149,212, + 214,216,297,298,5149,2381,5149,600,39,1390, + 387,5149,237,344,500,501,496,213,215,952, + 237,5149,162,2541,4595,862,5149,1028,5149,194, + 1774,2541,4595,4501,310,313,5149,5149,241,235, + 236,5149,234,333,55,1774,255,235,236,1389, + 234,2239,279,1060,39,791,36,5149,4377,34, + 814,340,35,799,1936,405,4528,248,251,254, + 257,2588,1936,405,4528,57,5149,716,1515,1077, + 600,39,1390,387,2874,406,407,408,297,298, + 3043,2381,4158,406,407,408,297,298,5149,2381, + 5149,4599,3231,5149,5149,3043,5149,162,334,321, + 2157,323,5149,5149,3113,317,1010,55,2315,5149, + 5149,5149,1389,5149,2749,5149,2315,3655,336,5149, + 5149,1623,39,791,36,4651,5149,34,814,340, + 35,799,3741,336,237,5149,409,411,5149,5149, + 5149,5149,1104,5149,409,411,2541,4595,1325,39, + 791,36,3028,5149,34,814,340,35,799,2143, + 258,235,236,2541,5149,234,5149,1197,4522,4599, + 1925,5149,5149,5149,1077,1206,4522,321,2157,323, + 5149,5149,2636,316,1010,5149,401,1936,405,4528, + 600,39,1390,387,5149,3225,4599,5149,600,39, + 1390,387,166,2673,318,2661,323,2541,406,407, + 408,297,298,1774,2381,600,39,1390,387,600, + 39,1390,387,5149,57,57,2636,55,2541,2541, + 5149,68,1389,57,864,55,4377,1077,5149,5149, + 1389,2315,578,5149,5149,5149,5149,344,344,502, + 5149,57,55,5149,57,2541,55,1389,2541,1627, + 57,1389,5149,1669,2541,162,3572,2760,2760,409, + 412,68,3124,3043,344,5149,4377,344,1475,2938, + 57,1925,5149,344,1077,1077,333,5149,5149,499, + 501,57,5149,502,2760,1077,5149,2760,5149,5149, + 5149,5149,3495,2760,5149,506,5149,5149,504,5149, + 4085,336,162,166,531,5149,5149,5149,5149,1524, + 3568,5149,5149,162,5149,5149,333,2920,5149,5149, + 4282,5149,5149,499,501,5149,5149,5149,5149,5149, + 5149,5149,5149,5149,5149,5149,5149,5149,5149,5149, + 5149,5149,5149,5149,5149,5149,5149,5149,5149,5149, + 4423,5149,5149,5149,5149,5149,5149,5149,5149,5149, + 5149,3143,5149,5149,5149,5149,5149,3700,5149,0, + 43,5167,0,43,5166,0,722,33,0,437, + 926,0,451,1212,0,42,5167,0,42,5166, + 0,2487,132,0,1,441,0,455,788,0, + 454,870,0,722,45,0,2545,97,0,722, + 386,0,39,37,0,36,38,0,43,783, + 0,1,910,0,1,5426,0,1,5425,0, + 1,5424,0,1,5423,0,1,5422,0,1, + 5421,0,1,5420,0,1,5419,0,1,5418, + 0,1,5417,0,1,5416,0,43,1,5167, + 0,43,1,5166,0,728,1,0,5388,246, + 0,5387,246,0,5488,246,0,5487,246,0, + 5415,246,0,5414,246,0,5413,246,0,5412, + 246,0,5411,246,0,5410,246,0,5409,246, + 0,5408,246,0,5426,246,0,5425,246,0, + 5424,246,0,5423,246,0,5422,246,0,5421, + 246,0,5420,246,0,5419,246,0,5418,246, + 0,5417,246,0,5416,246,0,43,246,5167, + 0,43,246,5166,0,5191,246,0,54,5167, + 0,54,5166,0,5155,1,0,5154,1,0, + 242,2701,0,387,36,0,36,387,0,386, + 33,0,33,386,0,49,5189,0,49,41, + 0,5167,54,0,5166,54,0,2487,134,0, + 2487,133,0,5480,442,0,1304,442,0,5191, + 1,0,43,1,0,53,41,0,1,98, + 0,41,53,0,498,2321,0,5191,233,1, + 0,43,233,1,0,233,414,0,41,5167, + 0,41,5166,0,1,5167,2,0,1,5166, + 2,0,41,5167,2,0,41,5166,2,0, + 5167,40,0,5166,40,0,5189,51,0,51, + 41,0,5159,403,0,5158,403,0,1,3686, + 0,1,783,0,1,3597,0,233,413,0, + 3496,320,0,5480,101,0,1304,101,0,39, + 79,0,1,5480,0,1,1304,0,43,1, + 5167,2,0,43,1,5166,2,0,43,5167, + 2,0,43,5166,2,0,283,4136,0,498, + 4141,0,233,1,0,233,225,0,233,224, + 0,1,2960,0,1,3406,0,5157,1,0, + 233,1,3087,0,5159,233,0,5158,233,0, + 3170,233,0,8,10,0,191,3378,0 + }; + }; + public final static char baseAction[] = BaseAction.baseAction; + public final int baseAction(int index) { return baseAction[index]; } + public final static char lhs[] = baseAction; + public final int lhs(int index) { return lhs[index]; }; + + public interface TermCheck { + 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,0,29, + 30,3,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,0,57,58,59, + 60,61,0,63,64,65,0,0,68,69, + 70,4,72,6,74,8,76,77,78,79, + 80,81,82,83,84,85,86,87,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,0,29,30,0, + 32,33,34,35,36,37,38,39,40,41, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,55,28,57,58,59,60,61, + 0,63,64,65,88,89,68,69,70,9, + 72,99,74,13,76,77,78,79,80,81, + 82,83,84,85,86,87,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,0,29,30,3,32,33, + 34,35,36,37,38,39,40,41,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,55,0,57,58,59,60,61,0,63, + 64,65,0,0,68,69,70,0,1,2, + 74,4,76,77,78,79,80,81,82,83, + 84,85,86,87,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,0,29,30,0,32,33,34,35, + 36,37,38,39,40,41,42,43,44,45, + 46,47,48,49,50,51,52,53,54,55, + 28,57,58,59,60,61,31,63,64,65, + 88,89,68,69,70,103,104,105,74,101, + 76,77,78,79,80,81,82,83,84,85, + 86,87,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 0,29,30,0,32,33,34,35,36,37, + 38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,55,28,57, + 58,59,60,61,0,63,64,65,0,0, + 68,69,70,0,1,2,74,4,76,77, + 78,79,80,81,82,83,84,85,86,87, + 0,1,2,3,4,5,6,7,8,9, + 10,11,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,0,29, + 30,0,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,28,57,58,59, + 60,61,31,63,64,65,88,89,68,69, + 70,97,98,0,74,0,76,77,78,79, + 80,81,82,83,84,85,86,87,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,0,29,30,0, + 32,33,34,35,36,37,38,39,40,41, + 42,43,44,45,46,47,48,49,50,51, + 52,53,54,55,28,57,58,59,60,61, + 0,63,64,65,0,0,68,69,70,0, + 1,2,74,8,76,77,78,79,80,81, + 82,83,84,85,86,87,0,1,2,3, + 4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,0,29,30,0,32,33, + 34,35,36,37,38,39,40,41,42,43, + 44,45,46,47,48,49,50,51,52,53, + 54,55,28,57,58,59,60,61,31,63, + 64,65,88,89,68,69,70,0,1,2, + 74,101,76,77,78,79,80,81,82,83, + 84,85,86,87,0,1,2,3,4,5, + 6,7,8,9,10,11,12,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,0,29,30,0,32,33,34,35, + 36,37,38,39,40,41,42,43,44,45, + 46,47,48,49,50,51,52,53,54,55, + 28,57,58,59,60,61,0,63,64,65, + 0,0,68,69,70,0,1,2,74,8, + 76,77,78,79,80,81,82,83,84,85, + 86,87,0,1,2,3,4,5,6,7, + 8,9,10,11,12,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 0,29,30,3,32,33,34,35,36,37, + 38,39,40,41,42,43,44,45,46,47, + 48,49,50,51,52,53,54,55,0,57, + 58,59,60,61,6,63,64,65,88,89, + 68,69,70,97,98,0,74,0,76,77, + 78,79,80,81,82,83,84,85,86,87, + 0,1,2,3,4,5,6,7,8,0, + 10,11,12,4,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,0,29, + 30,0,32,33,34,35,36,37,38,39, + 40,41,42,43,44,45,46,47,48,49, + 50,51,52,53,54,55,0,0,58,91, + 92,61,0,1,2,9,0,5,68,69, + 70,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,0,1, + 2,4,31,0,1,2,3,4,5,6, + 7,8,41,0,1,2,60,46,47,48, + 49,50,51,52,53,54,55,99,57,31, + 59,100,61,0,1,2,0,1,2,68, + 69,70,71,72,31,74,75,0,1,2, + 3,4,5,6,7,8,9,10,0,56, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,0,103,104,105,4,31,0, + 1,2,3,4,5,6,7,8,41,0, + 1,2,0,46,47,48,49,50,51,52, + 53,54,55,121,57,122,59,0,61,0, + 0,4,3,0,41,68,69,70,71,72, + 31,74,75,0,1,2,3,4,5,6, + 7,8,9,10,0,28,13,14,15,16, + 17,18,19,20,21,22,23,24,25,0, + 103,104,105,0,31,0,1,2,3,4, + 5,6,7,8,41,56,0,1,2,46, + 47,48,49,50,51,52,53,54,55,0, + 57,28,59,0,61,0,1,2,9,6, + 77,68,69,70,71,72,0,74,75,3, + 90,67,6,0,8,9,96,11,12,13, + 0,56,0,1,2,3,4,5,6,7, + 8,66,26,27,28,0,103,104,105,0, + 1,2,3,4,5,6,7,8,28,14, + 15,16,17,18,19,20,21,22,23,24, + 25,72,56,0,0,1,2,3,62,5, + 0,7,66,67,0,62,41,71,72,73, + 0,46,47,48,49,50,51,52,53,54, + 55,11,12,71,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,66, + 56,6,0,8,9,71,11,12,13,0, + 1,2,3,0,5,0,7,0,9,0, + 0,26,27,28,0,1,2,3,9,5, + 90,7,13,9,0,102,96,13,0,60, + 107,108,109,110,111,112,113,114,115,116, + 117,56,0,1,2,0,4,62,6,0, + 8,66,67,61,9,56,71,72,73,0, + 1,2,0,1,2,62,4,62,6,62, + 8,9,73,88,89,90,91,92,93,94, + 95,96,97,98,99,100,101,102,60,0, + 31,106,107,108,109,110,111,112,113,114, + 115,116,117,118,0,120,121,0,1,2, + 3,4,5,6,7,8,67,10,11,12, + 0,14,15,16,100,18,19,20,21,22, + 23,24,25,26,27,73,29,30,0,32, + 33,34,35,36,37,38,39,40,28,42, + 43,44,45,0,1,2,3,95,5,0, + 7,0,9,118,0,58,13,0,1,2, + 0,64,65,0,1,2,3,0,5,9, + 7,74,0,1,2,3,4,5,6,7, + 8,71,10,11,12,0,14,15,16,4, + 18,19,20,21,22,23,24,25,26,27, + 0,29,30,3,32,33,34,35,36,37, + 38,39,40,62,42,43,44,45,67,56, + 66,64,65,0,1,2,3,4,0,6, + 58,8,0,73,62,3,64,65,0,1, + 2,3,4,5,6,7,8,9,10,11, + 12,102,14,15,16,95,18,19,20,21, + 22,23,24,25,26,27,117,29,30,0, + 32,33,34,35,36,37,38,39,40,56, + 42,43,44,45,0,1,2,0,4,5, + 3,7,0,0,1,2,58,4,60,6, + 0,8,0,1,2,3,0,5,0,7, + 72,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,0, + 29,30,3,32,33,34,35,36,37,38, + 39,40,28,42,43,44,45,0,1,2, + 0,4,56,6,0,8,66,3,0,58, + 62,60,0,9,0,1,2,3,4,5, + 6,7,8,72,10,11,12,0,14,15, + 16,0,18,19,20,21,22,23,24,25, + 26,27,0,29,30,66,32,33,34,35, + 36,37,38,39,40,0,42,43,44,45, + 56,0,1,2,0,4,62,6,56,8, + 62,67,58,9,0,1,2,73,64,65, + 0,1,2,3,4,5,6,7,8,62, + 10,11,12,0,14,15,16,0,18,19, + 20,21,22,23,24,25,26,27,0,29, + 30,3,32,33,34,35,36,37,38,39, + 40,90,42,43,44,45,71,96,0,1, + 2,67,4,5,0,7,0,73,58,46, + 47,5,0,0,64,65,0,1,2,3, + 4,5,6,7,8,9,10,11,12,31, + 14,15,16,66,18,19,20,21,22,23, + 24,25,26,27,0,29,30,3,32,33, + 34,35,36,37,38,39,40,0,42,43, + 44,45,0,1,2,3,4,5,6,7, + 8,0,10,11,12,4,14,15,16,67, + 18,19,20,21,22,23,24,25,26,27, + 0,29,30,3,32,33,34,35,36,37, + 38,39,40,90,42,43,44,45,0,96, + 0,0,1,2,0,4,5,9,7,9, + 58,13,60,9,0,0,1,2,3,4, + 5,6,7,8,118,10,11,12,0,14, + 15,16,31,18,19,20,21,22,23,24, + 25,26,27,0,29,30,3,32,33,34, + 35,36,37,38,39,40,28,42,43,44, + 45,0,0,0,3,67,3,67,5,6, + 56,8,72,58,11,12,0,73,0,0, + 4,3,0,1,2,0,1,2,0,26, + 27,28,7,30,0,1,2,3,4,5, + 6,7,8,9,26,27,0,13,0,1, + 2,17,4,0,1,2,3,0,5,56, + 7,0,28,0,3,62,9,64,65,66, + 67,0,1,2,56,41,5,0,7,31, + 46,47,48,49,50,51,52,53,54,55, + 56,88,89,90,91,92,93,94,0,0, + 97,98,99,100,101,102,29,73,9,106, + 107,108,109,110,111,112,113,114,115,116, + 0,0,0,3,106,5,6,29,8,0, + 73,11,12,11,12,0,1,2,120,4, + 5,95,7,0,1,2,26,27,28,28, + 30,0,1,2,3,4,5,6,7,8, + 9,0,0,0,13,0,1,2,17,4, + 0,72,10,10,31,0,56,0,0,1, + 2,0,62,0,64,65,66,67,11,12, + 9,62,41,31,0,0,67,46,47,48, + 49,50,51,52,53,54,55,56,88,89, + 90,91,92,93,94,0,0,97,98,99, + 100,101,102,61,73,60,106,107,108,109, + 110,111,112,113,114,115,116,0,1,2, + 3,4,5,6,7,8,71,10,11,12, + 67,14,15,16,73,18,19,20,21,22, + 23,24,25,26,27,71,29,30,0,32, + 33,34,35,36,37,38,39,40,10,42, + 43,44,45,67,0,1,2,3,4,5, + 6,7,8,56,10,11,12,0,14,15, + 16,0,18,19,20,21,22,23,24,25, + 26,27,0,29,30,0,32,33,34,35, + 36,37,38,39,40,57,42,43,44,45, + 0,1,2,0,1,2,3,4,5,6, + 7,8,58,10,11,12,0,14,15,16, + 4,18,19,20,21,22,23,24,25,26, + 27,31,29,30,0,32,33,34,35,36, + 37,38,39,40,28,42,43,44,45,0, + 1,2,3,4,5,6,7,8,76,10, + 11,12,28,14,15,16,95,18,19,20, + 21,22,23,24,25,26,27,0,29,30, + 0,32,33,34,35,36,37,38,39,40, + 0,42,43,44,45,0,1,2,3,4, + 5,6,7,8,0,10,11,12,4,14, + 15,16,0,18,19,20,21,22,23,24, + 25,26,27,0,29,30,3,32,33,34, + 35,36,37,38,39,40,56,42,43,44, + 45,0,1,2,0,4,0,0,1,2, + 60,10,5,0,0,14,15,16,17,18, + 19,20,21,22,23,24,25,0,0,0, + 0,0,3,0,28,0,9,9,31,56, + 13,13,41,71,9,0,0,46,47,48, + 49,50,51,52,53,54,55,0,1,2, + 56,28,61,0,1,2,0,4,62,68, + 69,70,6,10,28,62,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,41,60,17,4,73,46, + 47,48,49,50,51,52,53,54,55,0, + 31,64,65,0,61,0,3,0,9,28, + 0,68,69,70,0,1,2,3,4,5, + 6,7,8,9,41,0,57,13,59,0, + 0,17,63,3,0,28,0,91,92,3, + 0,72,28,62,75,31,0,0,1,2, + 3,4,5,6,7,8,9,28,0,0, + 13,3,0,0,17,6,0,0,0,62, + 60,57,73,59,93,94,71,63,31,0, + 0,0,0,58,0,3,103,104,105,75, + 0,1,2,3,4,5,6,7,8,9, + 93,94,0,13,57,0,59,17,3,0, + 63,0,10,67,9,0,0,0,3,72, + 3,31,75,0,1,2,3,4,5,6, + 7,8,9,31,66,0,13,71,71,0, + 17,0,3,0,3,66,66,57,67,59, + 91,92,0,63,31,71,0,0,95,119, + 3,56,72,61,0,75,0,1,2,3, + 4,5,6,7,8,9,0,66,73,13, + 57,119,59,17,0,0,63,0,0,0, + 0,0,28,0,0,72,0,31,75,0, + 1,2,3,4,5,6,7,8,9,66, + 0,0,13,29,0,0,17,0,66,0, + 0,0,66,57,0,59,0,0,119,63, + 31,0,0,0,0,0,0,0,0,0, + 0,75,0,1,2,3,4,5,6,7, + 8,9,17,0,0,13,57,0,59,17, + 0,0,63,0,0,0,0,0,0,0, + 0,0,0,31,75,0,41,0,17,0, + 0,46,47,48,49,50,51,52,53,54, + 55,0,0,0,17,0,0,0,0,57, + 0,59,41,0,0,63,0,46,47,48, + 49,50,51,52,53,54,55,75,41,0, + 17,0,0,46,47,48,49,50,51,52, + 53,54,55,0,0,0,0,0,0,0, + 0,0,0,0,41,0,0,0,0,46, + 47,48,49,50,51,52,53,54,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,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,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; + public final int termCheck(int index) { return termCheck[index]; } + + public interface TermAction { + public final static char termAction[] = {0, + 5149,5130,5112,5112,5112,5112,5112,5112,5112,5140, + 1,1,1,5137,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5149,1, + 1,3285,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1163,1,1685, + 673,1,139,2845,1,1,127,43,1,1, + 1,5191,5156,1304,5330,5480,2132,3135,3730,2196, + 3426,3080,3069,3130,565,3089,3287,3088,8,5143, + 5143,5143,5143,5143,5143,5143,5143,5143,5143,5143, + 5143,5143,5143,5143,5143,5143,5143,5143,5143,5143, + 5143,5143,5143,5143,5143,5143,5149,5143,5143,5149, + 5143,5143,5143,5143,5143,5143,5143,5143,5143,5143, + 5143,5143,5143,5143,5143,5143,5143,5143,5143,5143, + 5143,5143,5143,5143,3615,5143,5143,5143,5143,5143, + 403,5143,5143,5143,2550,2597,5143,5143,5143,5052, + 5143,590,5143,5055,5143,5143,5143,5143,5143,5143, + 5143,5143,5143,5143,5143,5143,5149,5130,5112,5112, + 5112,5112,5112,5112,5112,5134,1,1,1,5137, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,5149,1,1,2701,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,436,1163,1,1685,673,1,143,2845, + 1,1,131,5149,1,1,1,5149,4763,4760, + 5330,5191,2132,3135,3730,2196,3426,3080,3069,3130, + 565,3089,3287,3088,5149,5130,5112,5112,5112,5112, + 5112,5112,5112,5134,1,1,1,5137,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,5149,1,1,41,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 4099,1163,1,1685,673,1,5189,2845,1,1, + 2550,2597,1,1,1,5581,5582,5583,5330,2283, + 2132,3135,3730,2196,3426,3080,3069,3130,565,3089, + 3287,3088,5149,5130,5112,5112,5112,5112,5112,5112, + 5112,5134,1,1,1,5137,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 5149,1,1,5149,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,4196,1163, + 1,1685,673,1,135,2845,1,1,130,5149, + 1,1,1,5149,4763,4760,5330,5191,2132,3135, + 3730,2196,3426,3080,3069,3130,565,3089,3287,3088, + 5149,5130,5112,5112,5112,5112,5112,5112,5112,5134, + 1,1,1,5137,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5149,1, + 1,53,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,4604,1163,1,1685, + 673,1,2579,2845,1,1,2550,2597,1,1, + 1,2405,2377,5149,5330,5149,2132,3135,3730,2196, + 3426,3080,3069,3130,565,3089,3287,3088,5149,5130, + 5112,5112,5112,5112,5112,5112,5112,5134,1,1, + 1,5137,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,33,1,1,5149, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,4766,1163,1,1685,673,1, + 144,2845,1,1,129,137,1,1,1,5149, + 5166,5167,5330,2348,2132,3135,3730,2196,3426,3080, + 3069,3130,565,3089,3287,3088,5149,5130,5112,5112, + 5112,5112,5112,5112,5112,5134,1,1,1,5137, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,437,1,1,5149,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,4769,1163,1,1685,673,1,2626,2845, + 1,1,2550,2597,1,1,1,5149,4941,4938, + 5330,2283,2132,3135,3730,2196,3426,3080,3069,3130, + 565,3089,3287,3088,5149,5130,5112,5112,5112,5112, + 5112,5112,5112,5134,1,1,1,5137,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,451,1,1,5149,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 4772,1163,1,1685,673,1,136,2845,1,1, + 128,138,1,1,1,54,4974,4971,5330,2348, + 2132,3135,3730,2196,3426,3080,3069,3130,565,3089, + 3287,3088,5149,3087,1,1,1,1,1,1, + 1,5159,1,1,1,5158,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 97,1,1,4796,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,121,1163, + 1,1685,673,1,3545,2845,1,1,2550,2597, + 1,1,1,2405,2377,5149,5330,5149,2132,3135, + 3730,2196,3426,3080,3069,3130,565,3089,3287,3088, + 43,4763,4760,2704,728,3792,3865,3597,3887,43, + 776,3843,3821,5191,5418,5416,5425,5411,5424,5420, + 5421,5419,5422,5423,5426,5417,3931,3909,140,5172, + 1053,141,672,723,5174,675,2663,715,5175,5173, + 654,5414,5168,5170,5171,5169,5487,5488,5408,5415, + 5387,5413,5412,5409,5410,5388,5149,5149,1309,3522, + 3039,5545,5149,5166,5167,2648,5149,3234,572,5546, + 5547,5149,5011,5011,233,5007,233,233,233,233, + 5015,1,5149,191,233,1,1,1,1,1, + 1,1,1,1,1,1,1,5149,5149,8417, + 8417,790,5004,346,5102,5098,2711,5191,783,1304, + 3597,5480,1,49,4968,4968,2696,1,1,1, + 1,1,1,1,1,1,1,590,1114,5189, + 1433,2317,1,54,4941,4938,293,5166,5167,1, + 1,1,233,414,4965,5559,5646,5149,5011,5011, + 233,5007,233,233,233,233,5015,1,5149,1856, + 233,1,1,1,1,1,1,1,1,1, + 1,1,1,43,5581,5582,5583,5191,5004,5149, + 5102,5098,3686,5191,783,1304,3597,5480,1,41, + 4995,4995,5149,1,1,1,1,1,1,1, + 1,1,1,4759,1114,5146,1433,394,1,348, + 117,386,3078,5149,1678,1,1,1,233,414, + 3109,5559,5646,5149,5011,5011,233,5007,233,233, + 233,233,5067,1,163,722,233,1,1,1, + 1,1,1,1,1,1,1,1,1,5149, + 5581,5582,5583,45,5004,368,5028,5024,2711,1, + 783,1,3597,1,1,1856,40,5043,5040,1, + 1,1,1,1,1,1,1,1,1,5149, + 1114,4793,1433,5149,1,5149,4974,4971,5157,3259, + 3224,1,1,1,233,413,37,5559,5646,4802, + 3975,1352,4802,5149,4802,4802,3997,4802,4802,4802, + 386,1856,5149,5093,5088,3686,4989,783,5085,3597, + 5082,1132,4802,4802,4802,228,5581,5582,5583,312, + 5093,5088,3686,4989,783,5085,3597,5082,4799,5418, + 5416,5425,5411,5424,5420,5421,5419,5422,5423,5426, + 5417,5156,4802,145,1,5028,5024,3686,4802,783, + 120,3597,4802,4802,455,1845,5414,4802,4802,4802, + 124,5487,5488,5408,5415,5387,5413,5412,5409,5410, + 5388,3003,2978,2072,4802,4802,4802,4802,4802,4802, + 4802,4802,4802,4802,4802,4802,4802,4802,4802,5149, + 5166,5167,4802,4802,4802,4802,4802,4802,4802,4802, + 4802,4802,4802,4802,4802,5149,4802,4802,4805,1814, + 4787,4805,5149,4805,4805,2072,4805,4805,4805,1, + 5028,5024,2711,5149,783,5149,3597,5149,4944,5149, + 5149,4805,4805,4805,1,5028,5024,5058,5159,5061, + 3975,5064,5158,5159,142,2246,3997,5158,5149,3493, + 1772,1730,1688,1646,1604,1562,1520,1478,1436,1394, + 4075,4805,441,1,1,5149,1,4805,4784,512, + 4784,4805,4805,4365,5153,1856,4805,4805,4805,5149, + 5021,5018,1,4992,4992,1846,4989,1887,1304,1888, + 5480,364,4947,4805,4805,4805,4805,4805,4805,4805, + 4805,4805,4805,4805,4805,4805,4805,4805,3252,5149, + 5189,4805,4805,4805,4805,4805,4805,4805,4805,4805, + 4805,4805,4805,4805,5149,4805,4805,5149,1,1, + 1,1,1,1,1,1,873,1,1,1, + 33,1,1,1,2317,1,1,1,1,1, + 1,1,1,1,1,364,1,1,5149,1, + 1,1,1,1,1,1,1,1,722,1, + 1,1,1,1,5028,5024,3686,364,783,145, + 3597,5149,312,5152,294,1,312,5149,5166,5167, + 1,1,1,1,5028,5024,2711,5149,783,364, + 3597,5682,1,4851,4847,2704,4855,3792,3865,3597, + 3887,421,4811,3843,3821,1,4838,4844,4817,387, + 4820,4832,4829,4835,4826,4823,4814,4841,3931,3909, + 242,5172,1053,4950,672,723,5174,675,2663,715, + 5175,5173,654,4303,5168,5170,5171,5169,4254,1856, + 1985,3953,1213,346,43,43,2631,5191,5149,1304, + 1309,5480,1,364,513,4605,43,43,43,4763, + 4760,2704,728,3792,3865,3597,3887,5157,910,3843, + 3821,2246,5418,5416,5425,364,5424,5420,5421,5419, + 5422,5423,5426,5417,3931,3909,4075,5172,1053,5149, + 672,723,5174,675,2663,715,5175,5173,654,1856, + 5168,5170,5171,5169,5149,4763,4760,5149,728,783, + 4076,3597,5149,442,43,43,1309,5191,4090,4986, + 371,4983,1,5028,5024,3686,454,783,5149,3597, + 5156,43,4763,4760,2704,728,3792,3865,3597,3887, + 5157,910,3843,3821,54,5418,5416,5425,5167,5424, + 5420,5421,5419,5422,5423,5426,5417,3931,3909,314, + 5172,1053,2894,672,723,5174,675,2663,715,5175, + 5173,654,5167,5168,5170,5171,5169,98,1,1, + 5149,1,4790,4998,1,4998,1174,2631,5149,1309, + 5658,4090,349,342,147,4763,4760,2704,728,3792, + 3865,3597,3887,5156,910,3843,3821,5149,5418,5416, + 5425,119,5424,5420,5421,5419,5422,5423,5426,5417, + 3931,3909,5149,5172,1053,1266,672,723,5174,675, + 2663,715,5175,5173,654,5149,5168,5170,5171,5169, + 1856,101,43,43,5149,5191,342,5076,1856,5073, + 5587,342,1309,5155,395,5166,5167,342,43,43, + 1,4851,4847,2704,4855,3792,3865,3597,3887,5601, + 4811,3843,3821,337,4838,4844,4817,369,4820,4832, + 4829,4835,4826,4823,4814,4841,3931,3909,5149,5172, + 1053,4304,672,723,5174,675,2663,715,5175,5173, + 654,3975,5168,5170,5171,5169,1893,3997,5149,4763, + 4760,4640,728,4808,5149,3597,5149,5154,1309,5487, + 5488,3234,363,118,43,43,43,4763,4760,2704, + 728,3792,3865,3597,3887,5153,910,3843,3821,993, + 5418,5416,5425,1224,5424,5420,5421,5419,5422,5423, + 5426,5417,3931,3909,5149,5172,1053,4445,672,723, + 5174,675,2663,715,5175,5173,654,5149,5168,5170, + 5171,5169,43,4763,4760,2704,728,3792,3865,3597, + 3887,5149,910,3843,3821,1375,5418,5416,5425,3077, + 5424,5420,5421,5419,5422,5423,5426,5417,3931,3909, + 5149,5172,1053,4613,672,723,5174,675,2663,715, + 5175,5173,654,3975,5168,5170,5171,5169,5149,3997, + 5149,5149,4763,4760,1,728,4808,5159,3597,5157, + 1309,5158,4090,167,106,43,4763,4760,2704,728, + 3792,3865,3597,3887,5152,910,3843,3821,5149,5418, + 5416,5425,2059,5424,5420,5421,5419,5422,5423,5426, + 5417,3931,3909,5149,5172,1053,4136,672,723,5174, + 675,2663,715,5175,5173,654,722,5168,5170,5171, + 5169,5149,5149,1,4201,3579,1124,1011,5615,5609, + 4660,5613,5156,1309,5607,5608,5149,167,81,5149, + 1482,2777,5149,8009,7327,42,4778,4775,5149,5638, + 5639,5618,815,5616,33,386,386,4959,386,386, + 4959,386,4959,4962,5217,5218,359,4959,395,4763, + 4760,386,5191,1,5028,5024,5058,5149,5061,538, + 5064,109,4766,5149,4550,5619,5155,1340,1346,5617, + 5640,5149,5166,5167,3469,386,783,5149,3597,43, + 386,386,386,386,386,386,386,386,386,386, + 4962,5629,5628,5641,5610,5611,5634,5635,5149,1, + 5632,5633,5612,5614,5636,5637,3746,4962,5127,5642, + 5622,5623,5624,5620,5621,5630,5631,5626,5625,5627, + 5149,1,126,1124,656,5615,5609,3685,5613,5149, + 5154,5607,5608,3003,2978,5149,4763,4760,795,728, + 783,5507,3597,5149,5036,5032,5638,5639,5618,722, + 5616,36,387,387,4953,387,387,4953,387,4953, + 4956,5149,1,304,4953,5149,4763,4760,387,5191, + 5149,5156,5121,5452,5189,425,538,125,5149,8009, + 7327,1,5619,292,1340,1346,5617,5640,3003,2978, + 5155,3222,387,2928,5149,5149,4254,387,387,387, + 387,387,387,387,387,387,387,4956,5629,5628, + 5641,5610,5611,5634,5635,5149,423,5632,5633,5612, + 5614,5636,5637,5124,4956,2896,5642,5622,5623,5624, + 5620,5621,5630,5631,5626,5625,5627,43,4763,4760, + 2704,728,3792,3865,3597,3887,2649,910,3843,3821, + 1108,5418,5416,5425,5154,5424,5420,5421,5419,5422, + 5423,5426,5417,3931,3909,5548,5172,1053,304,672, + 723,5174,675,2663,715,5175,5173,654,5452,5168, + 5170,5171,5169,812,43,4763,4760,2704,728,3792, + 3865,3597,3887,1130,910,3843,3821,5149,5418,5416, + 5425,1,5424,5420,5421,5419,5422,5423,5426,5417, + 3931,3909,1,5172,1053,5149,672,723,5174,675, + 2663,715,5175,5173,654,1762,5168,5170,5171,5169, + 51,5049,5049,43,4763,4760,3440,728,3792,3865, + 3597,3887,1309,910,3843,3821,54,5418,5416,5425, + 5166,5424,5420,5421,5419,5422,5423,5426,5417,3931, + 3909,5046,5172,1053,5149,672,723,5174,675,2663, + 715,5175,5173,654,5166,5168,5170,5171,5169,43, + 4763,4760,2704,728,3792,3865,3597,3887,3614,910, + 3843,3821,2587,5418,5416,5425,5509,5424,5420,5421, + 5419,5422,5423,5426,5417,3931,3909,5149,5172,1053, + 322,672,723,5174,675,2663,715,5175,5173,654, + 5149,5168,5170,5171,5169,43,4763,4760,2704,728, + 3792,3865,3597,3887,5149,910,3843,3821,1641,5418, + 5416,5425,445,5424,5420,5421,5419,5422,5423,5426, + 5417,3931,3909,320,5172,1053,5070,672,723,5174, + 675,2663,715,5175,5173,654,1856,5168,5170,5171, + 5169,5149,4763,4760,105,5191,132,41,5001,5001, + 3591,669,5001,5149,5149,5418,5416,5425,5411,5424, + 5420,5421,5419,5422,5423,5426,5417,1,1,5149, + 5149,5149,3496,79,2514,1,5159,197,3248,1856, + 5158,197,5414,3190,525,5149,5149,5487,5488,5408, + 5415,5387,5413,5412,5409,5410,5388,5149,4941,4938, + 2022,5079,5545,246,4931,4927,123,4935,4781,572, + 5546,5547,3545,669,3592,4082,5149,4918,4924,4897, + 4882,4900,4912,4909,4915,4906,4903,4894,4921,1, + 5112,5112,233,5112,233,233,233,233,5115,2460, + 2433,134,233,43,4873,673,8437,5191,525,4867, + 4864,4891,4870,4861,4876,4879,4888,4885,4858,1, + 5109,3953,1213,283,5545,5149,5106,133,169,2514, + 1,572,5546,5547,1,5112,5112,233,5112,233, + 233,233,233,233,850,529,2594,233,1685,5149, + 5149,8437,2845,2847,5149,2514,5149,3522,3039,4661, + 5149,225,2587,4977,5646,5109,446,1,5112,5112, + 233,5112,233,233,233,233,5118,3781,5149,122, + 233,2776,376,1,8437,3545,5149,5149,417,4980, + 3780,2594,169,1685,2460,2433,2109,2845,5109,39, + 505,311,5149,2953,5149,3379,5581,5582,5583,5646, + 1,5112,5112,233,5112,233,233,233,233,5115, + 2460,2433,1,233,2594,1,1685,8437,2631,518, + 2845,503,5121,3310,4944,5149,5149,5149,4074,224, + 2740,5109,5646,1,5112,5112,233,5112,233,233, + 233,233,5115,2928,2159,5149,233,5333,3134,5149, + 8437,5149,4360,5149,4087,1804,4631,2594,4283,1685, + 3522,3039,5149,2845,5109,5332,507,5149,4183,3169, + 4671,1856,225,5124,2,5646,1,5112,5112,233, + 5112,233,233,233,233,233,5149,4634,4947,233, + 2594,3169,1685,8437,1,5149,2845,5149,5149,5149, + 5149,5149,41,5149,5149,225,5149,5109,5646,1, + 5112,5112,233,5112,233,233,233,233,233,1804, + 5149,5149,233,2825,5149,5149,8437,5149,1943,5149, + 5149,5149,932,2594,5149,1685,5149,5149,3169,2845, + 5109,5149,5149,5149,5149,229,5149,5149,5149,5149, + 5149,5646,1,5112,5112,233,5112,233,233,233, + 233,233,5411,5149,5149,233,2594,5149,1685,8437, + 5149,230,2845,5149,5149,5149,5149,5149,5149,5149, + 5149,5149,5149,5109,5646,5149,5414,231,5411,5149, + 5149,5487,5488,5408,5415,5387,5413,5412,5409,5410, + 5388,5149,5149,5149,5411,5149,5149,5149,5149,2594, + 5149,1685,5414,232,5149,2845,5149,5487,5488,5408, + 5415,5387,5413,5412,5409,5410,5388,5646,5414,5149, + 5411,5149,5149,5487,5488,5408,5415,5387,5413,5412, + 5409,5410,5388,5149,5149,5149,5149,5149,5149,5149, + 5149,5149,5149,5149,5414,5149,5149,5149,5149,5487, + 5488,5408,5415,5387,5413,5412,5409,5410,5388 + }; + }; + public final static char termAction[] = TermAction.termAction; + public final int termAction(int index) { return termAction[index]; } + + public interface Asb { + public final static char asb[] = {0, + 650,12,178,6,308,543,543,543,543,1102, + 308,567,567,755,567,484,162,486,179,179, + 179,179,179,179,179,179,179,569,575,580, + 577,584,582,589,587,591,590,592,221,593, + 178,162,42,42,42,42,218,446,14,14, + 564,42,351,118,567,567,14,786,569,118, + 118,109,162,887,41,1017,1104,1039,162,567, + 569,744,744,446,178,179,179,179,179,179, + 179,179,179,179,179,179,179,179,179,179, + 179,179,179,179,178,178,178,178,178,178, + 178,178,178,178,178,178,179,118,118,825, + 825,825,825,434,118,14,14,1100,1028,1039, + 357,1039,365,1039,1,1039,1023,1102,218,351, + 351,14,179,1100,310,497,381,380,274,1046, + 1046,1102,486,351,41,178,216,1016,118,215, + 218,217,215,118,351,577,577,575,575,575, + 582,582,582,582,580,580,587,584,584,590, + 589,591,1116,592,308,308,308,308,218,218, + 825,824,825,564,218,560,389,389,218,369, + 434,368,354,371,548,218,218,218,434,825, + 109,351,608,118,499,501,218,1017,179,42, + 573,74,118,1104,218,218,543,217,1017,178, + 178,178,178,178,308,308,162,928,560,389, + 389,369,355,369,434,369,548,548,218,434, + 218,118,385,373,384,501,434,216,118,573, + 1100,1016,1104,218,216,118,118,118,118,446, + 446,560,559,362,218,389,1116,2,543,436, + 971,1106,389,362,369,369,438,218,548,362, + 360,361,218,696,178,382,382,121,121,218, + 495,1100,617,118,218,573,574,573,178,74, + 272,569,1104,118,118,560,1017,706,371,825, + 543,215,751,1108,212,308,491,69,439,218, + 362,179,218,696,178,178,501,1017,118,499, + 373,696,1081,573,446,179,351,272,216,706, + 706,828,405,216,370,370,212,613,1100,536, + 179,1116,129,438,218,1102,1102,218,879,501, + 216,696,574,118,351,614,362,692,978,263, + 308,2,864,706,706,405,216,370,371,1102, + 1108,212,179,179,218,218,218,879,118,879, + 827,263,692,545,1102,362,824,543,553,553, + 614,371,142,492,218,308,218,218,308,872, + 879,828,706,614,128,613,118,1102,218,405, + 828,405,823,823,930,143,1102,218,446,502, + 872,706,178,934,212,614,218,218,405,42, + 42,930,142,1116,179,1116,614,308,308,308, + 143,308,218,229,614,614,218,371,118,117, + 874,362,118,932,218,614,824,134,308,134, + 1116,143,162,162,160,694,162,614,614,885, + 930,42,874,932,614,534,617,118,212,118, + 160,263,308,118,930,361,553,118,118,1094, + 143,885,143,614,263,178,143,140,932,823, + 371,371,1096,178,141,446,614,118,215,143, + 118,614,143 + }; + }; + public final static char asb[] = Asb.asb; + public final int asb(int index) { return asb[index]; } + + public interface Asr { + public final static byte asr[] = {0, + 4,1,2,60,0,9,71,118,73,13, + 67,121,0,32,64,33,34,65,7,35, + 36,37,38,58,39,40,42,43,44,29, + 26,27,8,6,11,12,5,30,62,45, + 3,48,14,15,61,46,16,68,49,17, + 18,50,51,19,20,52,53,21,22,54, + 69,55,10,70,23,24,47,25,1,2, + 4,41,0,96,90,11,12,91,92,88, + 89,28,93,94,97,98,99,100,101,102, + 117,71,95,66,107,108,109,110,111,112, + 113,114,115,116,118,72,13,121,62,1, + 2,8,6,4,3,56,67,73,9,0, + 76,60,62,71,95,73,56,3,9,67, + 13,66,0,75,103,104,105,31,71,119, + 122,72,74,76,59,57,63,78,80,86, + 84,77,82,83,85,87,60,79,81,13, + 9,48,61,46,68,49,17,50,51,52, + 53,54,69,55,70,41,47,58,64,65, + 10,33,37,35,32,40,15,25,14,21, + 19,20,22,23,18,16,24,42,45,43, + 44,29,39,34,38,26,27,11,12,30, + 36,8,6,3,4,7,5,1,2,0, + 62,71,95,67,118,73,72,121,14,15, + 32,64,16,33,34,18,19,20,65,35, + 21,22,36,37,38,58,39,40,10,23, + 24,25,42,43,44,29,26,27,11,12, + 30,45,9,8,6,4,13,1,2,7, + 3,5,0,48,14,15,46,16,49,17, + 18,50,51,19,20,52,7,53,21,22, + 54,55,23,41,24,47,25,1,2,9, + 56,8,6,5,4,73,13,3,0,64, + 65,3,10,33,37,35,32,40,15,25, + 14,21,19,20,22,23,18,16,24,42, + 45,43,44,29,39,34,38,5,7,4, + 26,27,8,6,11,12,30,36,1,2, + 118,9,0,4,71,28,60,9,0,66, + 67,72,9,0,31,1,2,4,9,71, + 60,0,8,6,4,5,7,1,2,3, + 56,62,66,67,9,73,95,0,75,57, + 7,103,104,105,59,9,3,8,6,5, + 71,72,13,74,48,14,15,61,46,16, + 68,49,17,18,50,51,19,20,52,53, + 21,22,54,69,55,10,70,23,41,24, + 47,25,4,1,2,31,0,41,1,2, + 4,103,104,105,0,9,73,14,15,32, + 16,33,34,18,19,20,35,21,22,36, + 37,38,58,39,40,10,23,24,25,42, + 43,44,29,3,26,27,8,6,11,12, + 30,4,45,5,7,1,2,65,64,0, + 9,60,67,0,7,5,3,56,6,8, + 95,48,14,15,46,16,68,49,17,18, + 50,51,19,20,52,53,21,22,54,69, + 55,10,70,23,41,24,47,25,1,2, + 4,73,9,61,0,71,9,56,3,66, + 67,13,28,0,60,66,0,1,2,9, + 72,0,62,66,67,1,2,0,58,46, + 7,47,5,1,2,4,76,60,120,106, + 26,27,56,3,96,90,6,91,92,11, + 12,89,88,28,93,94,97,98,8,99, + 100,101,62,95,73,121,66,107,108,109, + 110,111,112,113,114,115,116,71,118,72, + 102,117,67,13,9,0,48,14,15,61, + 46,16,68,49,17,18,50,51,19,20, + 52,53,21,22,54,69,55,10,70,23, + 41,24,47,25,1,2,4,95,0,14, + 15,32,64,16,33,34,18,19,20,65, + 7,35,21,22,36,37,38,58,39,40, + 10,23,24,25,42,43,44,1,2,3, + 26,27,8,6,11,12,5,30,4,45, + 74,29,0,77,0,46,58,47,9,62, + 95,66,67,73,0,63,48,14,15,61, + 46,16,68,49,75,17,18,50,51,19, + 20,52,57,53,21,22,54,69,55,10, + 70,23,59,41,24,47,25,9,3,8, + 6,72,13,7,4,31,5,1,2,0, + 60,71,76,0,48,14,15,61,46,16, + 68,49,17,18,50,51,19,20,52,53, + 21,22,54,69,55,10,70,23,41,24, + 47,25,1,2,4,65,64,11,12,6, + 91,92,99,8,100,5,30,28,110,111, + 107,108,109,115,114,116,89,88,112,113, + 97,98,93,94,101,102,26,27,90,106, + 3,56,66,67,62,0,60,61,46,16, + 68,49,18,50,51,19,20,52,53,21, + 22,54,69,55,70,23,41,24,47,25, + 15,14,48,9,3,8,6,13,59,63, + 75,17,31,7,1,2,5,4,10,57, + 0,46,47,76,3,60,71,13,58,9, + 62,95,67,73,66,0,64,65,26,27, + 8,11,12,5,30,36,3,4,7,42, + 45,43,44,29,39,34,38,15,25,14, + 21,19,20,22,23,18,16,24,10,33, + 37,35,32,40,56,1,2,6,0,119, + 0,9,72,64,65,58,26,27,8,6, + 11,12,30,36,3,42,45,43,44,29, + 39,34,38,15,25,14,21,19,20,22, + 23,18,16,24,33,37,35,32,40,60, + 7,1,2,5,4,10,0,61,46,16, + 68,49,18,50,51,19,20,52,53,21, + 22,54,69,55,10,70,23,41,24,47, + 25,15,14,48,9,3,8,13,59,57, + 63,75,17,28,4,6,7,1,2,5, + 31,0,10,68,61,69,70,15,25,14, + 21,19,20,22,23,18,16,24,76,60, + 71,95,118,72,121,120,96,106,90,26, + 27,11,12,91,92,88,89,28,62,93, + 94,97,98,99,100,101,102,117,66,107, + 108,109,110,111,112,113,114,115,116,67, + 48,46,49,17,50,51,52,53,54,55, + 41,47,13,9,73,3,56,7,5,6, + 8,1,2,4,0,13,9,7,5,3, + 1,2,6,8,4,71,0 + }; + }; + public final static byte asr[] = Asr.asr; + public final int asr(int index) { return asr[index]; } + + public interface Nasb { + public final static char nasb[] = {0, + 188,12,29,12,12,12,12,12,12,186, + 12,12,12,217,12,40,133,76,29,29, + 228,29,29,29,29,29,29,12,12,12, + 12,12,12,12,12,12,12,12,29,12, + 29,133,204,204,204,204,76,130,145,145, + 59,5,102,154,12,12,145,219,12,154, + 154,120,1,29,87,67,12,12,133,12, + 12,18,18,130,171,29,29,29,29,29, + 29,29,29,29,29,29,29,29,29,29, + 29,29,29,29,29,29,29,29,29,29, + 29,29,29,29,29,171,29,154,154,12, + 12,12,12,62,154,27,27,185,249,250, + 12,250,114,250,15,250,243,10,76,102, + 102,27,29,185,97,119,13,13,12,12, + 12,10,76,102,204,111,213,49,154,212, + 232,76,212,154,102,12,12,12,12,12, + 12,12,12,12,12,12,12,12,12,12, + 12,12,12,12,12,12,12,12,116,11, + 12,12,12,37,76,145,145,145,116,145, + 174,145,12,12,145,174,76,11,12,12, + 35,102,12,154,161,145,76,67,29,204, + 145,44,154,12,11,76,12,108,67,29, + 171,171,171,171,12,12,27,12,166,252, + 252,145,145,124,66,124,145,233,11,66, + 116,154,12,138,12,149,65,116,154,95, + 37,49,12,232,116,154,154,154,154,130, + 130,145,166,74,76,197,12,81,12,12, + 91,259,252,74,124,124,126,116,233,74, + 12,12,116,145,29,12,12,13,13,76, + 137,185,149,154,116,145,106,12,171,37, + 109,12,12,154,154,166,67,145,12,12, + 12,186,145,179,140,12,12,186,57,174, + 74,29,233,166,29,29,145,67,154,161, + 207,145,12,95,130,29,102,109,213,221, + 145,235,145,174,145,79,209,197,185,12, + 29,12,83,53,174,186,186,11,145,149, + 213,166,106,154,102,197,74,12,235,260, + 12,233,91,235,221,149,213,79,226,191, + 140,209,29,29,11,174,174,89,154,145, + 145,179,12,12,186,74,12,12,177,177, + 197,226,24,12,174,12,11,11,12,145, + 89,235,145,197,47,12,154,186,174,149, + 235,145,12,12,145,156,191,11,130,152, + 166,221,111,29,140,197,174,81,149,204, + 204,93,168,12,29,12,197,12,12,12, + 169,12,233,195,197,197,233,104,154,154, + 145,74,154,145,81,197,12,85,12,12, + 12,169,199,199,147,12,199,197,197,12, + 145,204,89,69,197,12,204,154,140,154, + 203,145,12,154,93,74,177,154,154,145, + 169,12,169,197,140,171,169,85,69,12, + 104,104,138,29,12,240,197,154,212,169, + 154,197,169 + }; + }; + public final static char nasb[] = Nasb.nasb; + public final int nasb(int index) { return nasb[index]; } + + public interface Nasr { + public final static char nasr[] = {0, + 3,13,7,10,149,147,119,146,145,5, + 2,0,71,0,5,1,0,5,2,10, + 7,136,0,4,64,0,43,4,5,7, + 10,2,13,0,94,93,5,55,0,2, + 7,3,0,4,172,0,178,0,65,135, + 134,0,5,99,162,0,184,0,4,186, + 0,48,65,0,48,2,65,0,13,2, + 10,7,5,64,0,2,44,0,155,0, + 103,0,182,0,111,0,170,0,123,0, + 152,0,157,0,140,0,13,2,10,7, + 5,75,0,59,0,138,0,2,112,0, + 4,32,0,5,44,2,3,0,31,93, + 94,4,0,108,0,5,99,183,0,4, + 96,0,4,43,39,0,31,94,93,63, + 48,7,10,2,4,0,39,176,23,4, + 0,43,4,31,0,4,47,39,174,0, + 23,4,5,89,0,60,0,64,47,76, + 4,39,0,2,61,0,107,0,2,63, + 48,7,10,4,89,5,0,4,169,0, + 166,5,165,0,4,39,38,0,4,43, + 102,0,175,4,43,0,94,93,48,63, + 55,5,7,10,2,0,4,43,167,0, + 113,4,47,72,0,156,0,5,7,10, + 13,3,1,0,4,47,72,83,0,4, + 173,0,2,5,119,115,116,117,13,86, + 0,4,47,72,99,45,5,0,38,48, + 7,10,2,4,154,0 + }; + }; + public final static char nasr[] = Nasr.nasr; + public final int nasr(int index) { return nasr[index]; } + + public interface TerminalIndex { + public final static char terminalIndex[] = {0, + 115,116,3,33,15,12,81,11,1,102, + 13,14,121,50,54,62,68,70,76,77, + 88,89,104,107,109,9,10,21,114,16, + 95,57,63,69,86,90,92,96,99,101, + 106,111,112,113,123,56,108,49,66,72, + 75,78,85,91,100,2,79,97,105,4, + 55,22,48,60,80,35,46,65,93,103, + 32,120,119,122,67,98,110,51,52,58, + 59,61,71,73,74,87,94,19,20,8, + 17,18,23,24,34,6,25,26,27,28, + 29,30,82,83,84,7,36,37,38,39, + 40,41,42,43,44,45,31,118,53,5, + 124,64,117 + }; + }; + public final static char terminalIndex[] = TerminalIndex.terminalIndex; + public final int terminalIndex(int index) { return terminalIndex[index]; } + + public interface NonterminalIndex { + public final static char nonterminalIndex[] = {0, + 131,136,138,0,0,137,235,135,0,229, + 134,0,145,133,0,0,144,150,0,0, + 151,160,181,161,162,163,164,165,166,167, + 127,153,168,169,170,0,143,129,132,171, + 0,140,154,139,179,0,0,0,0,0, + 0,0,0,147,157,0,204,0,174,188, + 0,201,205,128,0,0,0,0,0,0, + 206,0,0,177,126,173,0,0,0,0, + 0,0,130,0,0,187,0,0,202,212, + 159,208,209,210,0,0,0,0,220,148, + 207,176,197,0,0,211,0,0,0,240, + 241,149,180,0,190,191,192,193,194,196, + 199,0,0,214,217,219,0,221,0,238, + 0,239,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,223,224, + 226,228,0,232,233,234,236,237,125,0, + 152,155,0,175,0,178,0,200,213,218, + 222,225,227,0,230,231,242,243,0,0, + 0,0,0,0 + }; + }; + public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; + public final int nonterminalIndex(int index) { return nonterminalIndex[index]; } + + public interface ScopePrefix { + public final static char scopePrefix[] = { + 161,582,601,533,549,560,571,366,271,285, + 307,313,42,296,386,424,169,590,476,20, + 51,71,80,85,90,127,141,197,302,319, + 330,341,277,291,504,27,376,341,609,27, + 219,250,1,14,61,76,106,151,232,324, + 337,346,355,359,442,469,498,525,529,619, + 623,627,97,7,97,151,404,420,433,453, + 517,433,540,556,567,578,209,487,56,56, + 158,224,227,245,266,227,227,56,363,448, + 466,473,158,56,640,110,238,408,460,116, + 116,238,56,238,395,179,104,446,631,638, + 631,638,65,414,134,134,104,104,255 + }; + }; + public final static char scopePrefix[] = ScopePrefix.scopePrefix; + public final int scopePrefix(int index) { return scopePrefix[index]; } + + public interface ScopeSuffix { + public final static char scopeSuffix[] = { + 18,5,5,5,5,5,5,373,132,95, + 132,132,48,282,392,430,175,67,482,25, + 25,25,59,59,95,132,132,202,132,132, + 335,335,282,101,509,38,381,596,614,32, + 213,213,5,18,5,59,95,132,236,328, + 328,328,95,95,132,248,5,5,5,5, + 5,248,236,11,101,155,373,373,373,457, + 509,437,544,544,544,544,213,491,59,59, + 5,5,230,248,5,269,269,353,95,451, + 5,248,5,502,5,113,350,411,463,119, + 123,241,521,512,398,182,95,95,633,633, + 635,635,67,416,136,146,204,189,257 + }; + }; + public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; + public final int scopeSuffix(int index) { return scopeSuffix[index]; } + + public interface ScopeLhs { + public final static char scopeLhs[] = { + 45,17,17,17,17,17,17,79,85,46, + 69,117,66,52,79,78,45,17,19,3, + 6,9,162,162,128,115,115,45,70,117, + 116,118,53,46,136,131,79,17,17,131, + 95,56,133,82,165,162,128,125,58,116, + 116,118,177,50,59,140,18,17,17,17, + 17,17,12,111,128,125,79,78,78,36, + 136,78,17,17,17,17,95,19,166,162, + 178,93,101,71,57,154,74,118,80,77, + 141,140,170,136,16,128,118,102,21,126, + 126,55,136,136,79,45,128,73,134,44, + 134,44,165,102,115,115,45,45,56 + }; + }; + public final static char scopeLhs[] = ScopeLhs.scopeLhs; + public final int scopeLhs(int index) { return scopeLhs[index]; } + + public interface ScopeLa { + public final static byte scopeLa[] = { + 119,73,73,73,73,73,73,73,72,13, + 72,72,62,1,73,122,60,3,73,62, + 62,62,1,1,13,72,72,60,72,72, + 1,1,1,1,4,62,13,1,1,62, + 73,73,73,119,73,1,13,72,1,1, + 1,1,13,13,72,118,73,73,73,73, + 73,118,1,73,1,67,73,73,73,71, + 4,73,62,62,62,62,73,3,1,1, + 73,73,3,118,73,1,1,1,13,71, + 73,118,73,5,73,1,31,66,73,1, + 1,6,1,31,77,76,13,13,4,4, + 4,4,3,1,9,60,1,1,3 + }; + }; + public final static byte scopeLa[] = ScopeLa.scopeLa; + public final int scopeLa(int index) { return scopeLa[index]; } + + public interface ScopeStateSet { + public final static char scopeStateSet[] = { + 94,245,245,245,245,245,245,105,85,94, + 82,151,82,97,105,105,94,245,245,178, + 220,221,53,53,78,151,151,94,82,151, + 151,151,97,94,134,46,105,245,245,46, + 143,62,24,105,28,53,78,308,62,151, + 151,151,20,97,31,59,245,245,245,245, + 245,245,240,6,78,308,105,105,105,277, + 134,105,245,245,245,245,143,245,28,53, + 22,143,145,139,62,56,67,151,105,105, + 50,59,137,134,245,78,151,1,246,151, + 151,118,134,134,105,94,78,11,115,155, + 115,155,28,1,151,151,94,94,62 + }; + }; + public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; + public final int scopeStateSet(int index) { return scopeStateSet[index]; } + + public interface ScopeRhs { + public final static char scopeRhs[] = {0, + 311,3,58,0,127,0,310,3,119,0, + 127,174,0,127,182,76,0,216,0,252, + 127,28,125,0,22,0,291,127,28,31, + 0,22,55,0,35,133,0,22,55,0, + 0,291,127,28,31,195,0,22,130,0, + 252,127,28,130,0,184,128,0,143,0, + 219,3,289,0,289,0,3,0,127,0, + 252,127,28,133,0,184,128,222,0,184, + 128,41,222,0,184,128,307,41,0,131, + 188,167,128,0,129,0,188,167,128,0, + 135,129,0,170,0,304,127,170,0,127, + 170,0,222,129,0,167,242,0,138,0, + 0,0,136,0,0,0,281,127,9,249, + 0,128,0,249,0,1,0,0,128,0, + 281,127,60,249,0,4,0,0,128,0, + 303,127,60,0,46,128,0,155,3,0, + 127,279,278,127,76,277,170,0,278,127, + 76,277,170,0,215,0,216,0,277,170, + 0,98,0,0,215,0,216,0,203,98, + 0,0,215,0,216,0,278,127,277,170, + 0,215,0,203,0,0,215,0,227,127, + 3,0,127,0,0,0,0,0,227,127, + 3,216,0,224,3,0,212,127,0,208, + 0,188,167,171,0,135,0,167,128,0, + 12,0,0,0,214,56,0,126,0,227, + 127,3,180,0,180,0,3,0,0,127, + 0,0,0,0,0,197,3,0,201,0, + 237,127,60,29,17,0,184,128,57,59, + 0,197,129,0,131,184,128,275,59,0, + 184,128,275,59,0,184,128,66,124,57, + 0,237,127,60,57,0,237,127,60,226, + 57,0,273,127,60,124,68,0,273,127, + 60,68,0,184,128,68,0,136,0,188, + 184,128,242,0,138,0,184,128,242,0, + 188,167,128,10,0,167,128,10,0,95, + 138,0,148,0,266,127,146,0,266,127, + 170,0,162,86,0,296,161,298,299,3, + 83,0,127,173,0,298,299,3,83,0, + 129,0,127,173,0,162,3,77,199,82, + 0,127,129,0,199,82,0,110,3,132, + 127,129,0,225,3,77,0,197,166,0, + 35,171,0,166,0,177,35,171,0,225, + 3,87,0,199,154,225,3,85,0,64, + 173,0,225,3,85,0,127,173,64,173, + 0,297,127,60,0,162,0,214,79,0, + 32,0,162,117,158,0,32,171,0,177, + 3,0,127,151,0,219,3,0,214,56, + 263,0,162,56,0,177,3,293,65,128, + 0,127,0,0,0,0,293,65,128,0, + 3,147,127,0,0,0,0,177,3,36, + 0,149,0,126,31,167,128,0,33,149, + 0,95,138,33,149,0,223,184,128,0, + 148,33,149,0,177,3,40,0,162,3, + 40,0,162,3,62,177,28,32,0,177, + 28,32,0,22,3,132,127,0,162,3, + 62,177,28,35,0,177,28,35,0,162, + 3,62,177,28,37,0,177,28,37,0, + 162,3,62,177,28,33,0,177,28,33, + 0,219,3,126,188,167,128,10,0,126, + 188,167,128,10,0,138,3,0,127,0, + 219,3,125,171,167,128,10,0,171,167, + 128,10,0,136,3,0,127,0,219,3, + 136,0,219,3,140,0,162,56,140,0, + 258,0,33,0,33,141,0,165,0,162, + 3,0 + }; + }; + public final static char scopeRhs[] = ScopeRhs.scopeRhs; + public final int scopeRhs(int index) { return scopeRhs[index]; } + + public interface ScopeState { + public final static char scopeState[] = {0, + 3409,4360,4074,3379,0,1650,1897,1178,1768,0, + 3439,3378,3314,3254,3194,3134,3069,2895,2833,2740, + 0,770,0,2104,1930,1218,0,3310,3190,0, + 3439,3378,2739,2706,3314,3254,3194,3134,2132,3069, + 2895,2833,4096,3632,0,4583,4254,4539,0,3309, + 2140,0,812,2649,0,579,4528,0,2931,1795, + 0,4423,579,4172,3568,4528,3341,4063,4501,4283, + 2786,3579,3686,3028,2711,2636,0,4522,4397,4389, + 0,4522,4397,4389,3706,4303,4249,3652,4195,4141, + 4082,3598,0,4522,4397,4389,3706,4303,4249,3652, + 4195,4141,4082,3598,3439,3378,3314,3254,3194,3134, + 3069,2895,2833,0,1375,790,0,2786,4423,4651, + 4172,3568,3070,3028,3599,4611,3261,2846,716,862, + 4358,4306,0,795,656,0,1213,0,2157,1010, + 584,557,3568,716,3341,2711,2636,2631,2760,0, + 4322,534,2541,0,4268,4160,3725,3671,3465,3218, + 3162,3095,4599,4595,4578,4570,4450,3062,2921,4377, + 2888,2826,2820,2588,1938,1006,0,4268,3677,4160, + 3609,3368,3725,3671,3465,2583,918,3218,3162,3095, + 3503,4599,3374,3294,4595,3248,3234,3109,2579,2240, + 4578,3227,4570,3320,4450,3062,2921,2233,4377,1220, + 2888,783,2826,2820,4322,2588,2541,1938,1006,728, + 3341,4063,4501,4283,2786,4423,3579,2146,579,1119, + 4172,638,3568,3686,3028,2711,4528,2636,623,932, + 2059,993,795,656,2663,4041,4019,2246,2283,590, + 2317,2405,2377,2348,2597,2550,2514,2487,2460,2433, + 3545,3522,3039,3003,2978,3997,3975,3953,3931,3909, + 3887,3865,3843,3821,3792,1053,1943,2196,2159,2109, + 2072,2022,1224,1174,1985,1132,873,1893,1856,818, + 739,684,1814,1772,1730,1688,1646,1604,1562,1520, + 1478,1436,1394,534,1352,1309,1077,1011,951,1266, + 0 + }; + }; + public final static char scopeState[] = ScopeState.scopeState; + public final int scopeState(int index) { return scopeState[index]; } + + public interface InSymb { + public final static char inSymb[] = {0, + 0,292,127,265,40,32,35,37,33,10, + 136,125,133,7,130,4,3,128,36,30, + 5,12,11,6,8,27,26,140,145,148, + 147,150,149,152,151,156,153,157,58,158, + 67,3,28,28,28,28,128,3,28,28, + 166,127,56,3,64,65,28,7,125,177, + 162,166,127,64,65,167,165,125,3,124, + 126,106,120,3,56,90,96,12,11,92, + 91,6,94,93,62,28,88,89,8,98, + 97,100,99,101,116,115,114,113,112,111, + 110,109,108,107,66,117,102,177,162,177, + 177,177,177,167,219,127,127,127,267,268, + 249,269,242,270,68,271,272,10,128,56, + 56,127,154,127,56,3,217,216,136,126, + 125,10,128,56,293,3,188,4,177,31, + 5,128,31,219,162,147,147,145,145,145, + 149,149,149,149,148,148,151,150,150,153, + 152,156,162,157,62,62,62,62,188,171, + 252,255,252,212,128,6,9,60,167,230, + 128,126,125,124,60,128,128,184,167,252, + 212,214,158,224,127,3,128,167,198,3, + 294,166,155,258,188,128,125,184,167,71, + 3,3,3,3,126,125,67,167,127,127, + 127,126,125,127,184,127,60,127,184,167, + 31,227,228,146,229,127,167,31,177,127, + 127,4,223,5,31,162,162,162,162,3, + 3,6,183,281,128,168,222,57,31,195, + 59,170,282,281,127,127,71,188,127,273, + 124,274,188,154,66,224,197,186,180,171, + 3,127,67,227,188,154,260,263,56,178, + 4,124,126,219,219,127,167,60,226,28, + 31,275,277,127,3,180,306,222,41,128, + 273,66,67,127,66,66,3,167,197,127, + 212,154,126,127,3,56,162,4,188,127, + 60,62,28,128,76,127,212,304,127,125, + 71,284,197,67,128,41,307,184,220,127, + 188,127,260,219,214,131,237,17,31,170, + 63,57,59,236,127,127,184,127,278,71, + 67,212,71,66,184,128,128,127,227,220, + 29,127,3,124,57,237,291,31,10,61, + 131,278,60,288,128,289,184,184,58,154, + 127,127,60,266,197,276,29,66,128,67, + 62,28,230,230,279,127,67,184,3,3, + 127,127,3,66,67,154,128,184,127,66, + 66,127,297,81,79,1,162,87,85,83, + 82,77,84,86,80,78,57,76,219,311, + 220,237,155,60,184,226,291,280,119,9, + 214,71,3,3,3,199,3,124,162,124, + 182,67,127,127,226,62,3,225,166,225, + 299,146,77,225,127,303,61,95,310,166, + 154,197,154,298,127,3,154,280,67,230, + 154,154,127,66,199,161,266,162,66,122, + 296,154,154 + }; + }; + public final static char inSymb[] = InSymb.inSymb; + public final int inSymb(int index) { return inSymb[index]; } + + public interface Name { + public final static String name[] = { + "", + "EOC", + "[", + "(", + "{", + ".", + ".*", + "->", + "->*", + "++", + "--", + "&", + "*", + "+", + "-", + "~", + "!", + "/", + "%", + ">>", + "<<", + "<", + ">", + "<=", + ">=", + "==", + "!=", + "^", + "|", + "&&", + "||", + "?", + ":", + "::", + "...", + "=", + "*=", + "/=", + "%=", + "+=", + "-=", + ">>=", + "<<=", + "&=", + "^=", + "|=", + ",", + "$empty", + "asm", + "auto", + "bool", + "break", + "case", + "catch", + "char", + "class", + "const", + "const_cast", + "continue", + "default", + "delete", + "do", + "double", + "dynamic_cast", + "else", + "enum", + "explicit", + "export", + "extern", + "false", + "float", + "for", + "friend", + "goto", + "if", + "inline", + "int", + "long", + "mutable", + "namespace", + "new", + "operator", + "private", + "protected", + "public", + "register", + "reinterpret_cast", + "return", + "short", + "signed", + "sizeof", + "static", + "static_cast", + "struct", + "switch", + "template", + "this", + "throw", + "try", + "true", + "typedef", + "typeid", + "typename", + "union", + "unsigned", + "using", + "virtual", + "void", + "volatile", + "wchar_t", + "while", + "integer", + "floating", + "charconst", + "stringlit", + "identifier", + "Completion", + "Invalid", + "RightBracket", + "RightParen", + "RightBrace", + "SemiColon", + "ERROR_TOKEN", + "0", + "EOF_TOKEN", + "expression_parser_start", + "]", + ")", + "}", + ";", + "declaration", + "identifier_token", + "expression", + "id_expression", + "qualified_or_unqualified_name", + "unqualified_id_name", + "identifier_name", + "operator_function_id_name", + "template_id_name", + "nested_name_specifier", + "class_or_namespace_name", + "nested_name_specifier_with_tem" + + "plate", + "class_or_namespace_name_with_t" + + "emplate", + "class_name", + "postfix_expression", + "simple_type_specifier", + "pseudo_destructor_name", + "type_id", + "type_name", + "destructor_type_name", + "unary_expression", + "cast_expression", + "new_type_id", + "expression_list", + "type_specifier_seq", + "new_declarator", + "new_pointer_operators", + "ptr_operator", + "new_array_expressions", + "constant_expression", + "pm_expression", + "multiplicative_expression", + "additive_expression", + "shift_expression", + "relational_expression", + "equality_expression", + "and_expression", + "exclusive_or_expression", + "inclusive_or_expression", + "logical_and_expression", + "logical_or_expression", + "assignment_expression", + "expression_list_actual", + "statement", + "compound_statement", + "statement_seq", + "condition", + "declarator", + "for_init_statement", + "function_definition", + "declaration_seq", + "declaration_specifiers", + "simple_declaration_specifiers", + "class_declaration_specifiers", + "elaborated_declaration_specifi" + + "ers", + "enum_declaration_specifiers", + "type_name_declaration_specifie" + + "rs", + "no_type_declaration_specifier", + "cv_qualifier", + "no_type_declaration_specifiers", + "class_specifier", + "elaborated_type_specifier", + "enum_specifier", + "type_name_specifier", + "class_keyword", + "enumerator_list", + "enumerator_definition", + "namespace_name", + "init_declarator_list", + "init_declarator_complete", + "initializer", + "direct_declarator", + "ptr_operator_seq", + "function_declarator", + "basic_direct_declarator", + "array_direct_declarator", + "array_modifier", + "abstract_declarator", + "direct_abstract_declarator", + "basic_direct_abstract_declarat" + + "or", + "array_direct_abstract_declarat" + + "or", + "parameter_declaration_list", + "parameter_declaration", + "parameter_init_declarator", + "parameter_initializer", + "function_body", + "handler_seq", + "initializer_clause", + "initializer_list", + "class_head", + "access_specifier_keyword", + "member_declaration", + "member_declarator_list", + "member_declaration_list", + "member_declarator", + "constant_initializer", + "bit_field_declarator", + "base_specifier_list", + "base_specifier", + "conversion_function_id", + "conversion_type_id", + "conversion_declarator", + "mem_initializer_list", + "mem_initializer", + "mem_initializer_name", + "operator_id_name", + "overloadable_operator", + "template_parameter_list", + "template_parameter", + "template_argument_list", + "template_argument", + "handler", + "exception_declaration", + "type_id_list" + }; + }; + public final static String name[] = Name.name; + public final String name(int index) { return name[index]; } + + public final static int + ERROR_SYMBOL = 74, + SCOPE_UBOUND = 118, + SCOPE_SIZE = 119, + MAX_NAME_LENGTH = 37; + + public final int getErrorSymbol() { return ERROR_SYMBOL; } + public final int getScopeUbound() { return SCOPE_UBOUND; } + public final int getScopeSize() { return SCOPE_SIZE; } + public final int getMaxNameLength() { return MAX_NAME_LENGTH; } + + public final static int + NUM_STATES = 523, + NT_OFFSET = 123, + LA_STATE_OFFSET = 5682, + MAX_LA = 2147483647, + NUM_RULES = 533, + NUM_NONTERMINALS = 194, + NUM_SYMBOLS = 317, + SEGMENT_SIZE = 8192, + START_STATE = 3129, + IDENTIFIER_SYMBOL = 0, + EOFT_SYMBOL = 121, + EOLT_SYMBOL = 121, + ACCEPT_ACTION = 4759, + ERROR_ACTION = 5149; + + public final static boolean BACKTRACK = true; + + public final int getNumStates() { return NUM_STATES; } + public final int getNtOffset() { return NT_OFFSET; } + public final int getLaStateOffset() { return LA_STATE_OFFSET; } + public final int getMaxLa() { return MAX_LA; } + public final int getNumRules() { return NUM_RULES; } + public final int getNumNonterminals() { return NUM_NONTERMINALS; } + public final int getNumSymbols() { return NUM_SYMBOLS; } + public final int getSegmentSize() { return SEGMENT_SIZE; } + public final int getStartState() { return START_STATE; } + public final int getStartSymbol() { return lhs[0]; } + public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; } + public final int getEoftSymbol() { return EOFT_SYMBOL; } + public final int getEoltSymbol() { return EOLT_SYMBOL; } + public final int getAcceptAction() { return ACCEPT_ACTION; } + public final int getErrorAction() { return ERROR_ACTION; } + public final boolean isValidForParser() { return isValidForParser; } + public final boolean getBacktrack() { return BACKTRACK; } + + public final int originalState(int state) { + return -baseCheck[state]; + } + public final int asi(int state) { + return asb[originalState(state)]; + } + public final int nasi(int state) { + return nasb[originalState(state)]; + } + public final int inSymbol(int state) { + return inSymb[originalState(state)]; + } + + public final int ntAction(int state, int sym) { + return baseAction[state + sym]; + } + + public final int tAction(int state, int sym) { + int i = baseAction[state], + k = i + sym; + return termAction[termCheck[k] == sym ? k : i]; + } + public final int lookAhead(int la_state, int sym) { + int k = la_state + sym; + return termAction[termCheck[k] == sym ? k : la_state]; + } +} 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 new file mode 100644 index 00000000000..6432761ae0f --- /dev/null +++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionParsersym.java @@ -0,0 +1,270 @@ +/******************************************************************************* +* Copyright (c) 2006, 2008 IBM Corporation and others. +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl_v10.html +* +* Contributors: +* IBM Corporation - initial API and implementation +*********************************************************************************/ + +// This file was generated by LPG + +package org.eclipse.cdt.internal.core.dom.lrparser.cpp; + +public interface CPPExpressionParsersym { + public final static int + TK_asm = 63, + TK_auto = 48, + TK_bool = 14, + TK_break = 78, + TK_case = 79, + TK_catch = 119, + TK_char = 15, + TK_class = 61, + TK_const = 46, + TK_const_cast = 32, + TK_continue = 80, + TK_default = 81, + TK_delete = 64, + TK_do = 82, + TK_double = 16, + TK_dynamic_cast = 33, + TK_else = 122, + TK_enum = 68, + TK_explicit = 49, + TK_export = 75, + TK_extern = 17, + TK_false = 34, + TK_float = 18, + TK_for = 83, + TK_friend = 50, + TK_goto = 84, + TK_if = 85, + TK_inline = 51, + TK_int = 19, + TK_long = 20, + TK_mutable = 52, + TK_namespace = 57, + TK_new = 65, + TK_operator = 7, + TK_private = 103, + TK_protected = 104, + TK_public = 105, + TK_register = 53, + TK_reinterpret_cast = 35, + TK_return = 86, + TK_short = 21, + TK_signed = 22, + TK_sizeof = 36, + TK_static = 54, + TK_static_cast = 37, + TK_struct = 69, + TK_switch = 87, + TK_template = 31, + TK_this = 38, + TK_throw = 58, + TK_try = 76, + TK_true = 39, + TK_typedef = 55, + TK_typeid = 40, + TK_typename = 10, + TK_union = 70, + TK_unsigned = 23, + TK_using = 59, + TK_virtual = 41, + TK_void = 24, + TK_volatile = 47, + TK_wchar_t = 25, + TK_while = 77, + TK_integer = 42, + TK_floating = 43, + TK_charconst = 44, + TK_stringlit = 29, + TK_identifier = 1, + TK_Completion = 2, + TK_EndOfCompletion = 9, + TK_Invalid = 123, + TK_LeftBracket = 56, + TK_LeftParen = 3, + TK_LeftBrace = 60, + TK_Dot = 120, + TK_DotStar = 96, + TK_Arrow = 106, + TK_ArrowStar = 90, + TK_PlusPlus = 26, + TK_MinusMinus = 27, + TK_And = 8, + TK_Star = 6, + TK_Plus = 11, + TK_Minus = 12, + TK_Tilde = 5, + TK_Bang = 30, + TK_Slash = 91, + TK_Percent = 92, + TK_RightShift = 88, + TK_LeftShift = 89, + TK_LT = 28, + TK_GT = 62, + TK_LE = 93, + TK_GE = 94, + TK_EQ = 97, + TK_NE = 98, + TK_Caret = 99, + TK_Or = 100, + TK_AndAnd = 101, + TK_OrOr = 102, + TK_Question = 117, + TK_Colon = 71, + TK_ColonColon = 4, + TK_DotDotDot = 95, + TK_Assign = 66, + TK_StarAssign = 107, + TK_SlashAssign = 108, + TK_PercentAssign = 109, + TK_PlusAssign = 110, + TK_MinusAssign = 111, + TK_RightShiftAssign = 112, + TK_LeftShiftAssign = 113, + TK_AndAssign = 114, + TK_CaretAssign = 115, + TK_OrAssign = 116, + TK_Comma = 67, + TK_RightBracket = 118, + TK_RightParen = 73, + TK_RightBrace = 72, + TK_SemiColon = 13, + TK_ERROR_TOKEN = 74, + TK_0 = 45, + TK_EOF_TOKEN = 121; + + public final static String orderedTerminalSymbols[] = { + "", + "identifier", + "Completion", + "LeftParen", + "ColonColon", + "Tilde", + "Star", + "operator", + "And", + "EndOfCompletion", + "typename", + "Plus", + "Minus", + "SemiColon", + "bool", + "char", + "double", + "extern", + "float", + "int", + "long", + "short", + "signed", + "unsigned", + "void", + "wchar_t", + "PlusPlus", + "MinusMinus", + "LT", + "stringlit", + "Bang", + "template", + "const_cast", + "dynamic_cast", + "false", + "reinterpret_cast", + "sizeof", + "static_cast", + "this", + "true", + "typeid", + "virtual", + "integer", + "floating", + "charconst", + "0", + "const", + "volatile", + "auto", + "explicit", + "friend", + "inline", + "mutable", + "register", + "static", + "typedef", + "LeftBracket", + "namespace", + "throw", + "using", + "LeftBrace", + "class", + "GT", + "asm", + "delete", + "new", + "Assign", + "Comma", + "enum", + "struct", + "union", + "Colon", + "RightBrace", + "RightParen", + "ERROR_TOKEN", + "export", + "try", + "while", + "break", + "case", + "continue", + "default", + "do", + "for", + "goto", + "if", + "return", + "switch", + "RightShift", + "LeftShift", + "ArrowStar", + "Slash", + "Percent", + "LE", + "GE", + "DotDotDot", + "DotStar", + "EQ", + "NE", + "Caret", + "Or", + "AndAnd", + "OrOr", + "private", + "protected", + "public", + "Arrow", + "StarAssign", + "SlashAssign", + "PercentAssign", + "PlusAssign", + "MinusAssign", + "RightShiftAssign", + "LeftShiftAssign", + "AndAssign", + "CaretAssign", + "OrAssign", + "Question", + "RightBracket", + "catch", + "Dot", + "EOF_TOKEN", + "else", + "Invalid" + }; + + public final static boolean isValidForParser = true; +} diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java deleted file mode 100644 index e2aef41dc51..00000000000 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java +++ /dev/null @@ -1,2270 +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 -*********************************************************************************/ - -// This file was generated by LPG - -package org.eclipse.cdt.internal.core.dom.lrparser.cpp; - -import lpg.lpgjavaruntime.*; - -import java.util.*; - -import org.eclipse.cdt.core.dom.ast.*; -import org.eclipse.cdt.core.dom.ast.cpp.*; -import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPASTNodeFactory; -import org.eclipse.cdt.core.dom.lrparser.action.cpp.CPPBuildASTParserAction; -import org.eclipse.cdt.core.dom.lrparser.IParser; -import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider; - -import org.eclipse.cdt.core.dom.lrparser.action.ITokenMap; -import org.eclipse.cdt.core.dom.lrparser.action.TokenMap; - -public class CPPExpressionStatementParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser -{ - private static ParseTable prs = new CPPExpressionStatementParserprs(); - private BacktrackingParser btParser; - - public BacktrackingParser getParser() { return btParser; } - private void setResult(Object object) { btParser.setSym1(object); } - public Object getRhsSym(int i) { return btParser.getSym(i); } - - public int getRhsTokenIndex(int i) { return btParser.getToken(i); } - public IToken getRhsIToken(int i) { return super.getIToken(getRhsTokenIndex(i)); } - - public int getRhsFirstTokenIndex(int i) { return btParser.getFirstToken(i); } - public IToken getRhsFirstIToken(int i) { return super.getIToken(getRhsFirstTokenIndex(i)); } - - public int getRhsLastTokenIndex(int i) { return btParser.getLastToken(i); } - public IToken getRhsLastIToken(int i) { return super.getIToken(getRhsLastTokenIndex(i)); } - - public int getLeftSpan() { return btParser.getFirstToken(); } - public IToken getLeftIToken() { return super.getIToken(getLeftSpan()); } - - public int getRightSpan() { return btParser.getLastToken(); } - public IToken getRightIToken() { return super.getIToken(getRightSpan()); } - - public int getRhsErrorTokenIndex(int i) - { - int index = btParser.getToken(i); - IToken err = super.getIToken(index); - return (err instanceof ErrorToken ? index : 0); - } - public ErrorToken getRhsErrorIToken(int i) - { - int index = btParser.getToken(i); - IToken err = super.getIToken(index); - return (ErrorToken) (err instanceof ErrorToken ? err : null); - } - - public CPPExpressionStatementParser(LexStream lexStream) - { - super(lexStream); - - try - { - super.remapTerminalSymbols(orderedTerminalSymbols(), CPPExpressionStatementParserprs.EOFT_SYMBOL); - } - catch(NullExportedSymbolsException e) { - } - catch(NullTerminalSymbolsException e) { - } - catch(UnimplementedTerminalsException e) - { - java.util.ArrayList unimplemented_symbols = e.getSymbols(); - System.out.println("The Lexer will not scan the following token(s):"); - for (int i = 0; i < unimplemented_symbols.size(); i++) - { - Integer id = (Integer) unimplemented_symbols.get(i); - System.out.println(" " + CPPExpressionStatementParsersym.orderedTerminalSymbols[id.intValue()]); - } - System.out.println(); - } - catch(UndefinedEofSymbolException e) - { - throw new Error(new UndefinedEofSymbolException - ("The Lexer does not implement the Eof symbol " + - CPPExpressionStatementParsersym.orderedTerminalSymbols[CPPExpressionStatementParserprs.EOFT_SYMBOL])); - } - } - - public String[] orderedTerminalSymbols() { return CPPExpressionStatementParsersym.orderedTerminalSymbols; } - public String getTokenKindName(int kind) { return CPPExpressionStatementParsersym.orderedTerminalSymbols[kind]; } - public int getEOFTokenKind() { return CPPExpressionStatementParserprs.EOFT_SYMBOL; } - public PrsStream getParseStream() { return (PrsStream) this; } - - // - // Report error message for given error_token. - // - public final void reportErrorTokenMessage(int error_token, String msg) - { - int firsttok = super.getFirstErrorToken(error_token), - lasttok = super.getLastErrorToken(error_token); - String location = super.getFileName() + ':' + - (firsttok > lasttok - ? (super.getEndLine(lasttok) + ":" + super.getEndColumn(lasttok)) - : (super.getLine(error_token) + ":" + - super.getColumn(error_token) + ":" + - super.getEndLine(error_token) + ":" + - super.getEndColumn(error_token))) - + ": "; - super.reportError((firsttok > lasttok ? ParseErrorCodes.INSERTION_CODE : ParseErrorCodes.SUBSTITUTION_CODE), location, msg); - } - - public Object parser() - { - return parser(null, 0); - } - - public Object parser(Monitor monitor) - { - return parser(monitor, 0); - } - - public Object parser(int error_repair_count) - { - return parser(null, error_repair_count); - } - - public Object parser(Monitor monitor, int error_repair_count) - { - try - { - btParser = new BacktrackingParser(monitor, (TokenStream) this, prs, (RuleAction) this); - } - catch (NotBacktrackParseTableException e) - { - throw new Error(new NotBacktrackParseTableException - ("Regenerate CPPExpressionStatementParserprs.java with -BACKTRACK option")); - } - catch (BadParseSymFileException e) - { - throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- CPPExpressionStatementParsersym.java")); - } - - try - { - return (Object) btParser.parse(error_repair_count); - } - catch (BadParseException e) - { - reset(e.error_token); // point to error token - DiagnoseParser diagnoseParser = new DiagnoseParser(this, prs); - diagnoseParser.diagnose(e.error_token); - } - - return null; - } - - -private CPPParserAction action; - -// uncomment to use with backtracking parser -public CPPExpressionStatementParser() { // constructor -} - -private void initActions(IASTTranslationUnit tu) { - // binding resolution actions need access to IASTName nodes, temporary - action = new CPPParserAction (); - //action.resolver = new C99TypedefTrackerParserAction (this); - action.builder = new CPPBuildASTParserAction ( CPPASTNodeFactory.DEFAULT_INSTANCE , this, tu); - //action.builder.setTokenMap(CPPParsersym.orderedTerminalSymbols); - - // comment this line to use with backtracking parser - //setParserAction(action); -} - - -public void addToken(IToken token) { - token.setKind(mapKind(token.getKind())); - super.addToken(token); -} - - -public IASTCompletionNode parse(IASTTranslationUnit tu) { - // this has to be done, or... kaboom! - setStreamLength(getSize()); - initActions(tu); - - final int errorRepairCount = -1; // _1 means full error handling - parser(null, errorRepairCount); // do the actual parse - super.resetTokenStream(); // allow tokens to be garbage collected - - // the completion node may be null - IASTCompletionNode compNode = action.builder.getASTCompletionNode(); - - //action = null; // causes getSecondaryParseResult() to fail - - // Comment this line to use with backtracking parser - //parserAction = null; - - return compNode; -} - - -// uncomment this method to use with backtracking parser -public List getRuleTokens() { - return Collections.unmodifiableList(getTokens().subList(getLeftSpan(), getRightSpan() + 1)); -} - -public IASTNode getSecondaryParseResult() { - return action.builder.getSecondaryParseResult(); -} - -public String[] getOrderedTerminalSymbols() { - return CPPExpressionStatementParsersym.orderedTerminalSymbols; -} - -public String getName() { - return "CPPExpressionStatementParser"; //$NON-NLS-1$ -} - - - -private ITokenMap tokenMap = null; - -public void setTokens(List tokens) { - resetTokenStream(); - addToken(new Token(null, 0, 0, 0)); // dummy token - for(IToken token : tokens) { - token.setKind(tokenMap.mapKind(token.getKind())); - addToken(token); - } - addToken(new Token(null, 0, 0, CPPExpressionStatementParsersym.TK_EOF_TOKEN)); -} - -public CPPExpressionStatementParser(String[] mapFrom) { // constructor - tokenMap = new TokenMap(CPPExpressionStatementParsersym.orderedTerminalSymbols, mapFrom); -} - - - - public void ruleAction(int ruleNumber) - { - switch (ruleNumber) - { - - // - // Rule 1: ::= $Empty - // - case 1: { action.builder. - openASTScope(); break; - } - - // - // Rule 2: ::= $Empty - // - case 2: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 11: translation_unit ::= external_declaration_list - // - case 11: { action.builder. - consumeTranslationUnit(); break; - } - - // - // Rule 12: translation_unit ::= $Empty - // - case 12: { action.builder. - consumeTranslationUnit(); break; - } - - // - // Rule 16: external_declaration ::= ERROR_TOKEN - // - case 16: { action.builder. - consumeDeclarationProblem(); break; - } - - // - // Rule 19: literal ::= integer - // - case 19: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 20: literal ::= 0 - // - case 20: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_integer_constant); break; - } - - // - // Rule 21: literal ::= floating - // - case 21: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_float_constant); break; - } - - // - // Rule 22: literal ::= charconst - // - case 22: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_char_constant); break; - } - - // - // Rule 23: literal ::= stringlit - // - case 23: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_string_literal); break; - } - - // - // Rule 24: literal ::= true - // - case 24: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_true); break; - } - - // - // Rule 25: literal ::= false - // - case 25: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_false); break; - } - - // - // Rule 26: literal ::= this - // - case 26: { action.builder. - consumeExpressionLiteral(ICPPASTLiteralExpression.lk_this); break; - } - - // - // Rule 28: primary_expression ::= ( expression ) - // - case 28: { action.builder. - consumeExpressionBracketed(); break; - } - - // - // Rule 30: id_expression ::= qualified_or_unqualified_name - // - case 30: { action.builder. - consumeExpressionName(); break; - } - - // - // Rule 37: unqualified_id_name ::= ~ identifier_token - // - case 37: { action.builder. - consumeDestructorName(); break; - } - - // - // Rule 38: unqualified_id_name ::= ~ template_id_name - // - case 38: { action.builder. - consumeDestructorNameTemplateId(); break; - } - - // - // Rule 39: identifier_name ::= identifier_token - // - case 39: { action.builder. - consumeIdentifierName(); break; - } - - // - // Rule 40: template_opt ::= template - // - case 40: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 41: template_opt ::= $Empty - // - case 41: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 42: dcolon_opt ::= :: - // - case 42: { action.builder. - consumeToken(); break; - } - - // - // Rule 43: dcolon_opt ::= $Empty - // - case 43: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 44: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name - // - case 44: { action.builder. - consumeQualifiedId(true); break; - } - - // - // Rule 45: qualified_id_name ::= :: identifier_name - // - case 45: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 46: qualified_id_name ::= :: operator_function_id_name - // - case 46: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 47: qualified_id_name ::= :: template_id_name - // - case 47: { action.builder. - consumeGlobalQualifiedId(); break; - } - - // - // Rule 48: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template - // - case 48: { action.builder. - consumeNestedNameSpecifier(true); break; - } - - // - // Rule 49: nested_name_specifier ::= class_or_namespace_name :: - // - case 49: { action.builder. - consumeNestedNameSpecifier(false); break; - } - - // - // 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_with_template ::= class_or_namespace_name_with_template :: - // - case 51: { action.builder. - consumeNestedNameSpecifier(false); break; - } - - // - // Rule 52: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name - // - case 52: { action.builder. - consumeNameWithTemplateKeyword(); break; - } - - // - // Rule 54: nested_name_specifier_opt ::= $Empty - // - case 54: { action.builder. - consumeNestedNameSpecifierEmpty(); break; - } - - // - // Rule 57: postfix_expression ::= postfix_expression [ expression ] - // - case 57: { action.builder. - consumeExpressionArraySubscript(); break; - } - - // - // Rule 58: postfix_expression ::= postfix_expression ( expression_list_opt ) - // - case 58: { action.builder. - consumeExpressionFunctionCall(); break; - } - - // - // Rule 59: postfix_expression ::= simple_type_specifier ( expression_list_opt ) - // - case 59: { action.builder. - consumeExpressionSimpleTypeConstructor(); break; - } - - // - // 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. - consumeExpressionFieldReference(false, false); break; - } - - // - // Rule 63: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name - // - case 63: { action.builder. - consumeExpressionFieldReference(true, false); break; - } - - // - // Rule 64: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name - // - case 64: { action.builder. - consumeExpressionFieldReference(false, true); break; - } - - // - // Rule 65: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name - // - case 65: { action.builder. - consumeExpressionFieldReference(true, true); break; - } - - // - // Rule 66: postfix_expression ::= postfix_expression . pseudo_destructor_name - // - case 66: { action.builder. - consumeExpressionFieldReference(false, false); break; - } - - // - // Rule 67: postfix_expression ::= postfix_expression -> pseudo_destructor_name - // - case 67: { action.builder. - consumeExpressionFieldReference(true, false); break; - } - - // - // Rule 68: postfix_expression ::= postfix_expression ++ - // - case 68: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break; - } - - // - // Rule 69: postfix_expression ::= postfix_expression -- - // - case 69: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break; - } - - // - // Rule 70: postfix_expression ::= dynamic_cast < type_id > ( expression ) - // - case 70: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break; - } - - // - // Rule 71: postfix_expression ::= static_cast < type_id > ( expression ) - // - case 71: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break; - } - - // - // Rule 72: postfix_expression ::= reinterpret_cast < type_id > ( expression ) - // - case 72: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break; - } - - // - // Rule 73: postfix_expression ::= const_cast < type_id > ( expression ) - // - case 73: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break; - } - - // - // Rule 74: postfix_expression ::= typeid ( expression ) - // - case 74: { action.builder. - consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break; - } - - // - // Rule 75: postfix_expression ::= typeid ( type_id ) - // - case 75: { action.builder. - consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break; - } - - // - // 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(false); break; - } - - // - // Rule 79: destructor_type_name ::= ~ identifier_token - // - case 79: { action.builder. - consumeDestructorName(); break; - } - - // - // Rule 80: destructor_type_name ::= ~ template_id_name - // - case 80: { action.builder. - consumeDestructorNameTemplateId(); break; - } - - // - // Rule 84: unary_expression ::= ++ cast_expression - // - case 84: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break; - } - - // - // Rule 85: unary_expression ::= -- cast_expression - // - case 85: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break; - } - - // - // Rule 86: unary_expression ::= & cast_expression - // - case 86: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break; - } - - // - // Rule 87: unary_expression ::= * cast_expression - // - case 87: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break; - } - - // - // Rule 88: unary_expression ::= + cast_expression - // - case 88: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break; - } - - // - // Rule 89: unary_expression ::= - cast_expression - // - case 89: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break; - } - - // - // Rule 90: unary_expression ::= ~ cast_expression - // - case 90: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break; - } - - // - // Rule 91: unary_expression ::= ! cast_expression - // - case 91: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break; - } - - // - // Rule 92: unary_expression ::= sizeof unary_expression - // - case 92: { action.builder. - consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break; - } - - // - // Rule 93: unary_expression ::= sizeof ( type_id ) - // - case 93: { action.builder. - consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break; - } - - // - // Rule 94: new_expression ::= dcolon_opt new new_placement_opt new_type_id new_array_expressions_opt new_initializer_opt - // - case 94: { action.builder. - consumeExpressionNew(true); break; - } - - // - // Rule 95: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) new_array_expressions_opt new_initializer_opt - // - case 95: { action.builder. - consumeExpressionNew(false); break; - } - - // - // Rule 97: new_placement_opt ::= $Empty - // - case 97: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 98: new_type_id ::= type_specifier_seq - // - case 98: { action.builder. - consumeTypeId(false); break; - } - - // - // Rule 99: new_type_id ::= type_specifier_seq new_declarator - // - case 99: { action.builder. - consumeTypeId(true); break; - } - - // - // Rule 100: new_declarator ::= new_pointer_operators - // - case 100: { action.builder. - consumeNewDeclarator(); break; - } - - // - // Rule 109: new_initializer_opt ::= $Empty - // - case 109: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 110: delete_expression ::= dcolon_opt delete cast_expression - // - case 110: { action.builder. - consumeExpressionDelete(false); break; - } - - // - // Rule 111: delete_expression ::= dcolon_opt delete [ ] cast_expression - // - case 111: { action.builder. - consumeExpressionDelete(true); break; - } - - // - // Rule 113: cast_expression ::= ( type_id ) cast_expression - // - case 113: { action.builder. - consumeExpressionCast(ICPPASTCastExpression.op_cast); break; - } - - // - // Rule 115: pm_expression ::= pm_expression .* cast_expression - // - case 115: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break; - } - - // - // Rule 116: pm_expression ::= pm_expression ->* cast_expression - // - case 116: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break; - } - - // - // Rule 118: multiplicative_expression ::= multiplicative_expression * pm_expression - // - case 118: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break; - } - - // - // Rule 119: multiplicative_expression ::= multiplicative_expression / pm_expression - // - case 119: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break; - } - - // - // Rule 120: multiplicative_expression ::= multiplicative_expression % pm_expression - // - case 120: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break; - } - - // - // Rule 122: additive_expression ::= additive_expression + multiplicative_expression - // - case 122: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break; - } - - // - // Rule 123: additive_expression ::= additive_expression - multiplicative_expression - // - case 123: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break; - } - - // - // Rule 125: shift_expression ::= shift_expression << additive_expression - // - case 125: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break; - } - - // - // Rule 126: shift_expression ::= shift_expression >> additive_expression - // - case 126: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break; - } - - // - // Rule 128: relational_expression ::= relational_expression < shift_expression - // - case 128: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break; - } - - // - // Rule 129: relational_expression ::= relational_expression > shift_expression - // - case 129: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break; - } - - // - // Rule 130: relational_expression ::= relational_expression <= shift_expression - // - case 130: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break; - } - - // - // Rule 131: relational_expression ::= relational_expression >= shift_expression - // - case 131: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break; - } - - // - // Rule 133: equality_expression ::= equality_expression == relational_expression - // - case 133: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break; - } - - // - // Rule 134: equality_expression ::= equality_expression != relational_expression - // - case 134: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break; - } - - // - // Rule 136: and_expression ::= and_expression & equality_expression - // - case 136: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break; - } - - // - // Rule 138: exclusive_or_expression ::= exclusive_or_expression ^ and_expression - // - case 138: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break; - } - - // - // Rule 140: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression - // - case 140: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break; - } - - // - // Rule 142: logical_and_expression ::= logical_and_expression && inclusive_or_expression - // - case 142: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break; - } - - // - // Rule 144: logical_or_expression ::= logical_or_expression || logical_and_expression - // - case 144: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break; - } - - // - // Rule 146: conditional_expression ::= logical_or_expression ? expression : assignment_expression - // - case 146: { action.builder. - consumeExpressionConditional(); break; - } - - // - // Rule 147: throw_expression ::= throw - // - case 147: { action.builder. - consumeExpressionThrow(false); break; - } - - // - // Rule 148: throw_expression ::= throw assignment_expression - // - case 148: { action.builder. - consumeExpressionThrow(true); break; - } - - // - // Rule 151: assignment_expression ::= logical_or_expression = assignment_expression - // - case 151: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break; - } - - // - // Rule 152: assignment_expression ::= logical_or_expression *= assignment_expression - // - case 152: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break; - } - - // - // Rule 153: assignment_expression ::= logical_or_expression /= assignment_expression - // - case 153: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break; - } - - // - // Rule 154: assignment_expression ::= logical_or_expression %= assignment_expression - // - case 154: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break; - } - - // - // Rule 155: assignment_expression ::= logical_or_expression += assignment_expression - // - case 155: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break; - } - - // - // Rule 156: assignment_expression ::= logical_or_expression -= assignment_expression - // - case 156: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break; - } - - // - // Rule 157: assignment_expression ::= logical_or_expression >>= assignment_expression - // - case 157: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break; - } - - // - // Rule 158: assignment_expression ::= logical_or_expression <<= assignment_expression - // - case 158: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break; - } - - // - // Rule 159: assignment_expression ::= logical_or_expression &= assignment_expression - // - case 159: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break; - } - - // - // Rule 160: assignment_expression ::= logical_or_expression ^= assignment_expression - // - case 160: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break; - } - - // - // Rule 161: assignment_expression ::= logical_or_expression |= assignment_expression - // - case 161: { action.builder. - consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break; - } - - // - // Rule 163: expression_list ::= expression_list_actual - // - case 163: { action.builder. - consumeExpressionList(); break; - } - - // - // Rule 167: expression_list_opt ::= $Empty - // - case 167: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 169: expression_opt ::= $Empty - // - case 169: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 172: constant_expression_opt ::= $Empty - // - case 172: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 181: statement ::= ERROR_TOKEN - // - case 181: { action.builder. - consumeStatementProblem(); break; - } - - // - // Rule 182: labeled_statement ::= identifier : statement - // - case 182: { action.builder. - consumeStatementLabeled(); break; - } - - // - // Rule 183: labeled_statement ::= case constant_expression : - // - case 183: { action.builder. - consumeStatementCase(); break; - } - - // - // Rule 184: labeled_statement ::= default : - // - case 184: { action.builder. - consumeStatementDefault(); break; - } - - // - // Rule 185: expression_statement ::= expression ; - // - case 185: { action.builder. - consumeStatementExpression(); break; - } - - // - // Rule 186: expression_statement ::= ; - // - case 186: { action.builder. - consumeStatementNull(); break; - } - - // - // Rule 187: compound_statement ::= { statement_seq } - // - case 187: { action.builder. - consumeStatementCompoundStatement(true); break; - } - - // - // Rule 188: compound_statement ::= { } - // - case 188: { action.builder. - consumeStatementCompoundStatement(false); break; - } - - // - // Rule 191: selection_statement ::= if ( condition ) statement - // - case 191: { action.builder. - consumeStatementIf(false); break; - } - - // - // Rule 192: selection_statement ::= if ( condition ) statement else statement - // - case 192: { action.builder. - consumeStatementIf(true); break; - } - - // - // Rule 193: selection_statement ::= switch ( condition ) statement - // - case 193: { action.builder. - consumeStatementSwitch(); break; - } - - // - // Rule 195: condition ::= type_specifier_seq declarator = assignment_expression - // - case 195: { action.builder. - consumeConditionDeclaration(); break; - } - - // - // Rule 197: condition_opt ::= $Empty - // - case 197: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 198: iteration_statement ::= while ( condition ) statement - // - case 198: { action.builder. - consumeStatementWhileLoop(); break; - } - - // - // Rule 199: iteration_statement ::= do statement while ( expression ) ; - // - case 199: { action.builder. - consumeStatementDoLoop(); break; - } - - // - // Rule 200: iteration_statement ::= for ( for_init_statement condition_opt ; expression_opt ) statement - // - case 200: { action.builder. - consumeStatementForLoop(); break; - } - - // - // Rule 202: for_init_statement ::= simple_declaration_with_declspec - // - case 202: { action.builder. - consumeStatementDeclaration(); break; - } - - // - // Rule 203: jump_statement ::= break ; - // - case 203: { action.builder. - consumeStatementBreak(); break; - } - - // - // Rule 204: jump_statement ::= continue ; - // - case 204: { action.builder. - consumeStatementContinue(); break; - } - - // - // Rule 205: jump_statement ::= return expression ; - // - case 205: { action.builder. - consumeStatementReturn(true); break; - } - - // - // Rule 206: jump_statement ::= return ; - // - case 206: { action.builder. - consumeStatementReturn(false); break; - } - - // - // Rule 207: jump_statement ::= goto identifier_token ; - // - case 207: { action.builder. - consumeStatementGoto(); break; - } - - // - // Rule 208: declaration_statement ::= block_declaration - // - case 208: { action.builder. - consumeStatementDeclarationWithDisambiguation(); break; - } - - // - // Rule 209: declaration_statement ::= function_definition - // - case 209: { action.builder. - consumeStatementDeclaration(); break; - } - - // - // 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. - consumeDeclarationSpecifiersSimple(); break; - } - - // - // 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 ::= type_name_declaration_specifiers - // - case 232: { action.builder. - consumeDeclarationSpecifiersTypeName(); break; - } - - // - // Rule 233: declaration_specifiers_opt ::= $Empty - // - case 233: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 238: no_type_declaration_specifier ::= friend - // - case 238: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 239: no_type_declaration_specifier ::= typedef - // - case 239: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // 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 ::= extern - // - case 262: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 263: storage_class_specifier ::= mutable - // - case 263: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 264: function_specifier ::= inline - // - case 264: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 265: function_specifier ::= virtual - // - case 265: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 266: function_specifier ::= explicit - // - case 266: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 267: simple_type_specifier ::= char - // - case 267: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 268: simple_type_specifier ::= wchar_t - // - case 268: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 269: simple_type_specifier ::= bool - // - case 269: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 270: simple_type_specifier ::= short - // - case 270: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 271: simple_type_specifier ::= int - // - case 271: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 272: simple_type_specifier ::= long - // - case 272: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 273: simple_type_specifier ::= signed - // - case 273: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 274: simple_type_specifier ::= unsigned - // - case 274: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 275: simple_type_specifier ::= float - // - case 275: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 276: simple_type_specifier ::= double - // - case 276: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 277: simple_type_specifier ::= void - // - case 277: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 280: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name - // - case 280: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 281: type_name_specifier ::= dcolon_opt nested_name_specifier template 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 - // - 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: enum_specifier ::= enum { enumerator_list_opt } - // - case 288: { action.builder. - consumeTypeSpecifierEnumeration(false); break; - } - - // - // Rule 289: enum_specifier ::= enum identifier_token { enumerator_list_opt } - // - case 289: { action.builder. - consumeTypeSpecifierEnumeration(true); break; - } - - // - // Rule 294: enumerator_definition ::= identifier_token - // - case 294: { action.builder. - consumeEnumerator(false); break; - } - - // - // Rule 295: enumerator_definition ::= identifier_token = constant_expression - // - case 295: { action.builder. - consumeEnumerator(true); break; - } - - // - // Rule 299: named_namespace_definition ::= namespace namespace_name { declaration_seq_opt } - // - case 299: { action.builder. - consumeNamespaceDefinition(true); break; - } - - // - // Rule 300: unnamed_namespace_definition ::= namespace { declaration_seq_opt } - // - case 300: { action.builder. - consumeNamespaceDefinition(false); break; - } - - // - // Rule 301: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ; - // - case 301: { action.builder. - consumeNamespaceAliasDefinition(); break; - } - - // - // Rule 302: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ; - // - case 302: { action.builder. - consumeUsingDeclaration(); break; - } - - // - // Rule 303: typename_opt ::= typename - // - case 303: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 304: typename_opt ::= $Empty - // - case 304: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 305: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ; - // - case 305: { action.builder. - consumeUsingDirective(); break; - } - - // - // Rule 306: asm_definition ::= asm ( stringlit ) ; - // - case 306: { action.builder. - consumeDeclarationASM(); break; - } - - // - // Rule 307: linkage_specification ::= extern stringlit { declaration_seq_opt } - // - case 307: { action.builder. - consumeLinkageSpecification(); break; - } - - // - // Rule 308: linkage_specification ::= extern stringlit declaration - // - case 308: { action.builder. - consumeLinkageSpecification(); break; - } - - // - // Rule 313: init_declarator_complete ::= init_declarator - // - case 313: { action.builder. - consumeInitDeclaratorComplete(); break; - } - - // - // Rule 315: init_declarator ::= declarator initializer - // - case 315: { action.builder. - consumeDeclaratorWithInitializer(true); break; - } - - // - // 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 323: basic_direct_declarator ::= declarator_id_name - // - case 323: { action.builder. - consumeDirectDeclaratorIdentifier(); break; - } - - // - // Rule 324: basic_direct_declarator ::= ( declarator ) - // - case 324: { action.builder. - consumeDirectDeclaratorBracketed(); break; - } - - // - // Rule 325: function_direct_declarator ::= basic_direct_declarator ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt - // - case 325: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(true); break; - } - - // - // 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. - consumeDirectDeclaratorArrayModifier(true); break; - } - - // - // Rule 329: array_modifier ::= [ ] - // - case 329: { action.builder. - consumeDirectDeclaratorArrayModifier(false); break; - } - - // - // Rule 330: ptr_operator ::= * cv_qualifier_seq_opt - // - case 330: { action.builder. - consumePointer(); break; - } - - // - // Rule 331: ptr_operator ::= & - // - case 331: { action.builder. - consumeReferenceOperator(); break; - } - - // - // Rule 332: ptr_operator ::= dcolon_opt nested_name_specifier * cv_qualifier_seq_opt - // - case 332: { action.builder. - consumePointerToMember(); break; - } - - // - // Rule 338: cv_qualifier ::= const - // - case 338: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 339: cv_qualifier ::= volatile - // - case 339: { action.builder. - consumeDeclSpecToken(); break; - } - - // - // Rule 341: declarator_id_name ::= nested_name_specifier template_opt unqualified_id_name - // - case 341: { action.builder. - consumeQualifiedId(true); break; - } - - // - // Rule 342: type_id ::= type_specifier_seq - // - case 342: { action.builder. - consumeTypeId(false); break; - } - - // - // Rule 343: type_id ::= type_specifier_seq abstract_declarator - // - case 343: { action.builder. - consumeTypeId(true); break; - } - - // - // Rule 346: abstract_declarator ::= ptr_operator_seq - // - case 346: { action.builder. - consumeDeclaratorWithPointer(false); break; - } - - // - // Rule 347: abstract_declarator ::= ptr_operator_seq direct_abstract_declarator - // - case 347: { action.builder. - consumeDeclaratorWithPointer(true); break; - } - - // - // Rule 351: basic_direct_abstract_declarator ::= ( abstract_declarator ) - // - case 351: { action.builder. - consumeDirectDeclaratorBracketed(); break; - } - - // - // Rule 352: basic_direct_abstract_declarator ::= ( ) - // - case 352: { action.builder. - consumeAbstractDeclaratorEmpty(); break; - } - - // - // Rule 353: array_direct_abstract_declarator ::= array_modifier - // - case 353: { action.builder. - consumeDirectDeclaratorArrayDeclarator(false); break; - } - - // - // 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. - consumeDirectDeclaratorFunctionDeclarator(true); break; - } - - // - // Rule 357: function_direct_abstract_declarator ::= ( parameter_declaration_clause ) cv_qualifier_seq_opt exception_specification_opt - // - case 357: { action.builder. - consumeDirectDeclaratorFunctionDeclarator(false); break; - } - - // - // 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 366: abstract_declarator_opt ::= $Empty - // - case 366: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 367: parameter_declaration ::= declaration_specifiers parameter_init_declarator - // - case 367: { action.builder. - consumeParameterDeclaration(); break; - } - - // - // Rule 368: parameter_declaration ::= declaration_specifiers - // - case 368: { action.builder. - consumeParameterDeclarationWithoutDeclarator(); break; - } - - // - // 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 373: parameter_init_declarator ::= = parameter_initializer - // - case 373: { action.builder. - consumeDeclaratorWithInitializer(false); break; - } - - // - // Rule 374: parameter_initializer ::= assignment_expression - // - case 374: { action.builder. - consumeInitializer(); break; - } - - // - // Rule 375: function_definition ::= declaration_specifiers_opt function_declarator ctor_initializer_list_opt function_body - // - case 375: { action.builder. - consumeFunctionDefinition(false); break; - } - - // - // Rule 376: function_definition ::= declaration_specifiers_opt function_declarator try ctor_initializer_list_opt function_body handler_seq - // - case 376: { action.builder. - consumeFunctionDefinition(true); break; - } - - // - // Rule 379: initializer ::= ( expression_list ) - // - case 379: { action.builder. - consumeInitializerConstructor(); break; - } - - // - // Rule 380: initializer_clause ::= assignment_expression - // - case 380: { action.builder. - consumeInitializer(); break; - } - - // - // Rule 381: initializer_clause ::= { initializer_list , } - // - case 381: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 382: initializer_clause ::= { initializer_list } - // - case 382: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 383: initializer_clause ::= { } - // - case 383: { action.builder. - consumeInitializerList(); break; - } - - // - // Rule 388: class_specifier ::= class_head { member_declaration_list_opt } - // - case 388: { action.builder. - consumeClassSpecifier(); break; - } - - // - // Rule 389: class_specifier ::= class_head EOC member_declaration_list_opt } - // - case 389: { action.builder. - consumeClassSpecifier(); break; - } - - // - // 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(true); break; - } - - // - // Rule 393: class_head ::= class_keyword nested_name_specifier template_id_name base_clause_opt - // - case 393: { action.builder. - consumeClassHead(true); break; - } - - // - // Rule 395: identifier_name_opt ::= $Empty - // - case 395: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 399: visibility_label ::= access_specifier_keyword : - // - case 399: { action.builder. - consumeVisibilityLabel(); break; - } - - // - // Rule 400: member_declaration ::= declaration_specifiers_opt member_declarator_list ; - // - case 400: { action.builder. - consumeDeclarationSimple(true); break; - } - - // - // Rule 401: member_declaration ::= declaration_specifiers_opt ; - // - case 401: { action.builder. - consumeDeclarationSimple(false); break; - } - - // - // Rule 404: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ; - // - case 404: { action.builder. - consumeMemberDeclarationQualifiedId(); break; - } - - // - // Rule 410: member_declaration ::= ERROR_TOKEN - // - case 410: { action.builder. - consumeDeclarationProblem(); break; - } - - // - // Rule 418: member_declarator ::= declarator constant_initializer - // - case 418: { action.builder. - consumeMemberDeclaratorWithInitializer(); break; - } - - // - // Rule 419: member_declarator ::= bit_field_declarator : constant_expression - // - case 419: { action.builder. - consumeBitField(true); break; - } - - // - // Rule 420: member_declarator ::= : constant_expression - // - case 420: { action.builder. - consumeBitField(false); break; - } - - // - // Rule 421: bit_field_declarator ::= identifier_name - // - case 421: { action.builder. - consumeDirectDeclaratorIdentifier(); break; - } - - // - // Rule 422: constant_initializer ::= = constant_expression - // - case 422: { action.builder. - consumeInitializer(); break; - } - - // - // Rule 428: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name - // - case 428: { action.builder. - consumeBaseSpecifier(false, false); break; - } - - // - // 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, false); break; - } - - // - // 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 436: access_specifier_keyword_opt ::= $Empty - // - case 436: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 438: conversion_function_id_name ::= conversion_function_id < template_argument_list_opt > - // - case 438: { action.builder. - consumeTemplateId(); break; - } - - // - // Rule 439: conversion_function_id ::= operator conversion_type_id - // - case 439: { action.builder. - consumeConversionName(); break; - } - - // - // Rule 440: conversion_type_id ::= type_specifier_seq conversion_declarator - // - case 440: { action.builder. - consumeTypeId(true); break; - } - - // - // Rule 441: conversion_type_id ::= type_specifier_seq - // - case 441: { action.builder. - consumeTypeId(false); break; - } - - // - // Rule 442: conversion_declarator ::= ptr_operator_seq - // - case 442: { action.builder. - consumeDeclaratorWithPointer(false); break; - } - - // - // Rule 448: mem_initializer ::= mem_initializer_name ( expression_list_opt ) - // - case 448: { action.builder. - consumeConstructorChainInitializer(); break; - } - - // - // Rule 449: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name - // - case 449: { action.builder. - consumeQualifiedId(false); break; - } - - // - // Rule 452: operator_function_id_name ::= operator_id_name < template_argument_list_opt > - // - case 452: { action.builder. - consumeTemplateId(); break; - } - - // - // Rule 453: operator_id_name ::= operator overloadable_operator - // - case 453: { action.builder. - consumeOperatorName(); break; - } - - // - // Rule 496: template_declaration ::= export_opt template < template_parameter_list > declaration - // - case 496: { action.builder. - consumeTemplateDeclaration(); break; - } - - // - // Rule 497: export_opt ::= export - // - case 497: { action.builder. - consumePlaceHolder(); break; - } - - // - // Rule 498: export_opt ::= $Empty - // - case 498: { action.builder. - consumeEmpty(); break; - } - - // - // Rule 502: template_parameter ::= parameter_declaration - // - case 502: { action.builder. - consumeTemplateParamterDeclaration(); break; - } - - // - // 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 ::= typename identifier_name_opt = type_id - // - case 506: { action.builder. - consumeSimpleTypeTemplateParameter(true); break; - } - - // - // Rule 507: type_parameter ::= template < template_parameter_list > class identifier_name_opt - // - case 507: { action.builder. - consumeTemplatedTypeTemplateParameter(false); break; - } - - // - // Rule 508: type_parameter ::= template < template_parameter_list > class identifier_name_opt = id_expression - // - case 508: { action.builder. - consumeTemplatedTypeTemplateParameter(true); break; - } - - // - // Rule 509: template_id_name ::= identifier_name < template_argument_list_opt > - // - case 509: { action.builder. - consumeTemplateId(); break; - } - - // - // Rule 517: explicit_instantiation ::= template declaration - // - case 517: { action.builder. - consumeTemplateExplicitInstantiation(); break; - } - - // - // Rule 518: explicit_specialization ::= template < > declaration - // - case 518: { action.builder. - consumeTemplateExplicitSpecialization(); break; - } - - // - // Rule 519: try_block ::= try compound_statement handler_seq - // - case 519: { action.builder. - consumeStatementTryBlock(); break; - } - - // - // Rule 522: handler ::= catch ( exception_declaration ) compound_statement - // - case 522: { action.builder. - consumeStatementCatchHandler(false); break; - } - - // - // Rule 523: handler ::= catch ( ... ) compound_statement - // - case 523: { action.builder. - consumeStatementCatchHandler(true); break; - } - - // - // 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(false); break; - } - - // - // Rule 534: expression_parser_start ::= ERROR_TOKEN - // - case 534: { action.builder. - consumeExpressionProblem(); break; - } - - - default: - break; - } - return; - } -} - diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java deleted file mode 100644 index 274492b3c29..00000000000 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java +++ /dev/null @@ -1,2571 +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 -*********************************************************************************/ - -// This file was generated by LPG - -package org.eclipse.cdt.internal.core.dom.lrparser.cpp; - -public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.ParseTable, CPPExpressionStatementParsersym { - - public interface IsKeyword { - public final static byte isKeyword[] = {0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0 - }; - }; - public final static byte isKeyword[] = IsKeyword.isKeyword; - public final boolean isKeyword(int index) { return isKeyword[index] != 0; } - - public interface BaseCheck { - public final static short baseCheck[] = {0, - 0,0,1,1,1,1,1,1,1,1, - 1,0,1,2,1,1,1,1,1,1, - 1,1,1,1,1,1,1,3,1,1, - 1,1,1,1,1,1,2,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,3,2,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,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, - 5,4,3,1,3,1,1,5,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,2,2,7,1,0,1,3, - 1,1,2,4,2,4,7,9,5,1, - 3,1,0,1,1,1,2,4,4,1, - 2,5,5,3,3,1,4,3,1,0, - 1,3,2,1,-64,0,0,0,-3,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-138,0,0, - 0,0,0,0,0,-455,0,0,0,0, - 0,0,-126,0,0,0,0,0,-67,-372, - 0,0,0,0,-139,0,0,0,0,0, - -94,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-417,0,0,0,0,0,0, - 0,0,0,-148,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-341,0, - 0,0,-2,0,0,0,0,0,0,0, - 0,0,0,0,-5,0,-73,0,0,0, - 0,0,0,0,0,0,0,0,0,-129, - 0,0,-6,-405,0,-7,0,0,0,0, - 0,0,0,0,-117,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-8,-203,0,0,0, - 0,0,-50,-9,0,0,0,0,-17,0, - 0,0,-214,0,0,0,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,0,0,0,0,0,0,0,0,0, - -10,0,0,0,0,0,-143,0,0,0, - 0,0,0,-152,0,0,0,0,-54,-12, - -149,0,0,0,0,-74,0,0,0,-13, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-356,0,-14,-59,0,0,-133,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -321,0,0,0,0,0,-52,-115,0,0, - 0,0,-186,0,-249,0,0,0,0,-16, - -131,0,0,-229,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -11,0,0,0,0,0,0,0,-360,0, - 0,0,0,-29,0,0,-51,0,0,0, - 0,0,-521,0,0,0,-30,0,0,0, - 0,0,0,0,0,0,0,0,-31,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,0,0,0,0,0,0,0,-181,0, - 0,0,0,-151,0,0,0,-32,0,0, - 0,0,0,0,0,0,-19,0,0,0, - -290,-511,0,0,0,0,0,0,0,0, - 0,0,0,0,0,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,-21,0,0,0,-34,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,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,-325,0, - 0,0,0,0,-270,0,0,0,0,-363, - 0,0,0,-355,-55,0,0,0,0,0, - -132,0,-287,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-459,0,0,0,0,0,-241, - 0,0,0,0,-327,0,0,0,-470,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,-276,0,0,0, - 0,-35,-58,-66,0,0,0,0,-390,0, - -180,0,0,0,-328,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,0,0,0,0,0, - 0,0,-380,0,0,0,-436,0,0,0, - 0,0,0,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,-38,-188,0,0,0,0,-40, - 0,0,0,-39,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-41,0,0,0,0,0,0,0, - -56,0,0,0,0,0,-57,-60,0,0, - 0,0,-42,0,0,0,-145,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-254,0,0,0,0, - 0,0,0,0,-156,0,0,0,0,-68, - -69,0,0,0,-96,0,0,0,-204,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-71,0,0,0, - 0,0,-72,-273,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,0, - 0,0,0,0,0,0,0,-111,-112,0, - 0,0,0,0,-113,-114,0,0,-98,0, - 0,0,-303,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-210,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-122,-140,-141,0,0, - -99,0,0,0,-339,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-221,0,0,0,0,0,0, - 0,-142,-314,0,0,0,0,0,-157,-375, - 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,0,0,0,0,0, - 0,0,0,-158,0,0,0,0,0,0, - -159,-160,0,0,-101,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-309,0,0, - 0,0,0,0,0,-161,-320,0,0,0, - 0,0,-510,-162,0,0,-102,0,0,0, - -340,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-330, - 0,0,0,0,0,0,0,-163,-358,0, - 0,0,0,0,-164,-165,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,0,0,0,0,0,0,0,0,-166, - -359,0,0,0,0,0,-167,-168,0,0, - -104,0,0,0,0,0,0,0,0,0, - 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,-170,-444,-171, - 0,0,-105,0,0,0,-172,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-252,0,0,0,0, - 0,0,0,-173,-397,0,0,0,0,0, - -174,-175,0,0,-106,0,0,0,-176,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,0,-178,-179,0,0,0, - 0,-237,0,0,0,0,-136,0,0,0, - -282,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-182,-183,0, - 0,0,0,-222,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, - -413,0,0,0,0,0,-268,-184,-48,0, - 0,0,-367,-516,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-185,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-323,0,0,0,-324,0,0,0,-195, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-196,0,0,0, - 0,0,-338,0,0,0,-201,0,0,0, - 0,0,0,0,0,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,0,0,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,-202,0,0,0,0, - 0,0,0,-350,-485,0,0,0,0,-385, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-460,0,0,0,0,0,0,0, - -299,0,0,0,0,0,-379,0,0,0, - -205,-61,0,0,0,0,0,-291,-216,-386, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -219,0,0,0,0,0,-447,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-227, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-191,0,0,0,0,-62,-228, - -220,0,0,0,-368,-230,-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,0,0,0,0, - 0,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,-245,0,0,0, - 0,0,0,0,-247,-255,0,-93,0,0, - 0,-269,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 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,-403,0,0,0,0,0,-91,0,0, - 0,-271,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -369,0,0,0,0,-92,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-272,0, - 0,0,0,-84,0,0,0,-283,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-284,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,-398,0,0,0,-86,0,0, - 0,-288,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -416,0,0,0,-87,0,0,0,-289,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-300,0,0, - 0,-53,0,0,0,-147,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,-304,0,0,-305,0,0,-243, - 0,0,0,-387,0,0,0,-311,-124,0, - 0,0,-109,0,-374,0,0,-89,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-110,0,-312,0,0,0, - 0,-137,0,-240,0,0,-246,0,0,0, - 0,0,0,0,0,0,0,-236,-189,-279, - -281,0,0,-238,0,0,0,0,0,0, - 0,-313,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,-116,0,0,0,0,-190,0,0,0, - 0,-49,0,-318,-18,0,-513,0,0,-277, - 0,-293,0,0,0,0,-438,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-248,-150,0,0,0,-514, - -477,-192,0,0,0,0,-464,0,0,-242, - 0,0,-319,0,0,0,0,0,0,0, - -63,0,0,0,0,0,0,0,0,0, - 0,-155,0,0,0,-335,-432,-75,0,0, - 0,0,0,0,0,0,-394,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,-121,0,0,0, - -130,0,0,0,0,-354,-144,0,0,0, - 0,0,0,-428,0,-206,-215,0,0,0, - 0,0,0,0,0,-370,-207,-373,0,0, - 0,0,0,0,0,0,0,0,-278,-231, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-244,0,0,-395,0,0, - 0,0,0,0,0,0,0,0,-153,0, - 0,0,0,-194,-435,-445,-197,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -396,-193,0,0,0,0,0,0,-399,0, - 0,-336,0,0,0,0,0,-400,-251,0, - 0,0,0,-406,0,0,0,0,0,0, - 0,0,0,-408,0,-411,0,0,0,0, - -401,0,0,0,0,0,0,0,0,0, - -258,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,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,-418,0,-316,0, - 0,0,0,0,0,0,0,0,0,-81, - 0,0,0,-265,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-198,0,0,0,-120,0,0,-453, - -332,0,-425,0,0,0,0,-295,-208,0, - -426,0,0,0,0,0,0,-446,-448,-420, - 0,0,0,0,0,-322,0,0,0,0, - 0,0,0,0,0,-259,0,0,0,-250, - 0,0,0,-260,0,0,0,0,0,0, - 0,0,0,0,-261,0,0,-213,0,-1, - -450,0,0,0,-474,-451,0,0,0,0, - 0,0,0,-452,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-498,0, - 0,0,-346,0,0,0,0,0,0,-454, - -469,-296,0,0,0,0,0,-306,-362,0, - 0,0,0,0,0,0,0,0,0,0, - -382,0,0,0,-503,0,-234,-471,0,0, - 0,0,0,-472,0,-473,0,0,0,0, - 0,0,0,0,0,0,0,0,-357,0, - 0,0,0,0,-478,-482,0,-217,0,0, - 0,-488,0,0,-256,0,0,0,-235,0, - 0,0,0,0,0,0,0,0,-257,0, - 0,0,-239,0,-505,0,0,-307,0,-264, - 0,-253,0,0,0,-495,0,0,0,0, - 0,0,0,0,0,0,0,0,-504,0, - -512,-517,0,0,0,-43,0,-456,0,0, - 0,0,0,0,-280,0,0,0,0,0, - 0,0,-449,0,0,0,0,0,0,-365, - -429,0,0,0,-509,0,0,0,0,0, - -200,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-515,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-286,0, - 0,0,0,0,0,0,0,0,-409,0, - 0,0,0,0,-285,0,0,0,-522,-475, - 0,0,0,0,-440,0,0,0,-331,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-402,0,0,-493, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-457,0,0,0, - 0,0,0,0,0,0,0,0,0,-525, - -70,0,0,0,0,-298,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-388,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,-310,0,-315,-329,0,0,0, - 0,0,0,-297,0,0,0,0,0,0, - -334,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,-83,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-333,0, - 0,0,-366,0,0,0,0,0,0,-383, - 0,0,0,0,0,0,0,0,0,0, - -146,-343,-345,0,0,0,0,-15,-342,-302, - 0,0,0,0,0,0,-467,0,0,-410, - 0,0,0,0,-347,-44,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-381,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-377,0,0,-361,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-389,0,0,0,0,-391,-430,0,0, - 0,0,0,0,0,-419,-317,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -461,0,0,0,0,0,-434,0,0,0, - 0,0,0,0,0,0,0,-308,0,0, - 0,0,0,-462,0,-407,0,0,0,0, - -458,0,0,-468,0,0,0,0,0,0, - 0,-392,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,0,0,0,0,-412, - -415,-424,0,0,0,0,0,-465,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,0,0,-490,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,-28,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, - 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,-78,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,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,-211,0,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,-476,-107,-223,-427,0,0, - 0,0,-344,-123,-518,-463,0,-489,0,0, - -466,0,0,-492,0,0,-404,0,-483,-45, - -480,-481,0,0,0,0,0,0,0,-487, - 0,0,0,0,0,0,0,0,-506,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-262,0,0,0, - 0,-371,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-496,0, - -421,0,0,0,0,0,0,0,0,0, - 0,0,-349,0,0,0,0,0,0,0, - 0,0,0,-500,0,0,0,0,0,0, - 0,0,0,0,0,-376,-46,0,-519,0, - 0,-263,0,0,0,0,0,0,0,0, - 0,0,-501,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-524,0,0, - 0,0,0,0,0,0,0,0,0,-414, - 0,-494,0,0,-422,0,-502,0,0,0, - 0,0,0,0,0,0,0,0,-439,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-520,-437,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-423,-224,0,-119,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -523,0,-128,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,-135,0, - -479,0,0,0,0,-499,0,0,0,0, - 0,0,0,0,0,0,0,-187,0,0, - 0,0,0,0,0,0,0,0,0,-232, - 0,0,0,0,0,0,0,-233,0,0, - -326,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-364,0,0,0,0, - 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,-225,0,0,0,0, - -199,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,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-491,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-275,0,0,0,0,0,-274,0, - 0,0,0,0,0,0,0,0,0,-378, - 0,0,0,0,0,0,0,0,0,0, - -337,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -209,0,0,0,0,0,0,0,-218,0, - 0,0,0,-441,0,0,0,0,0,0, - 0,0,0,-433,0,-267,0,0,0,-292, - 0,0,0,0,-47,-212,0,0,0,0, - 0,-294,0,-226,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-442,0,0,-443,0,0,0,0,0, - -484,0,0,0,0,0,0,0,0,0, - 0,-351,0,0,0,0,0,0,0,0, - -301,-431,0,0,0,0,0,0,0,0, - 0,-508,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,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; - public final int baseCheck(int index) { return baseCheck[index]; } - public final static short rhs[] = baseCheck; - public final int rhs(int index) { return rhs[index]; }; - - public interface BaseAction { - public final static char baseAction[] = { - 169,4,48,75,75,31,31,64,64,38, - 38,190,190,191,191,192,192,1,1,15, - 15,15,15,15,15,15,15,16,16,16, - 14,11,11,8,8,8,8,8,8,2, - 65,65,5,5,12,12,12,12,44,44, - 134,134,135,61,61,42,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17, - 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,22,22,22,24,24,24, - 24,25,25,25,26,26,26,27,27,27, - 27,27,28,28,28,29,29,30,30,33, - 33,34,34,35,35,36,36,41,41,40, - 40,40,40,40,40,40,40,40,40,40, - 40,40,39,32,142,142,96,96,173,173, - 91,193,193,76,76,76,76,76,76,76, - 76,76,77,77,77,73,73,59,59,174, - 174,78,78,78,102,102,175,175,79,79, - 79,176,176,80,80,80,80,80,81,81, - 83,83,83,83,83,83,83,49,49,49, - 49,49,113,113,114,114,50,177,23,23, - 23,23,23,47,47,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,100,118, - 118,118,118,118,118,116,116,116,117,117, - 151,151,150,150,120,120,103,68,68,69, - 70,52,46,152,152,53,51,85,85,153, - 153,143,143,121,122,122,74,74,154,154, - 62,62,62,57,57,56,63,63,71,71, - 55,55,55,89,89,98,97,97,60,60, - 58,58,54,54,43,101,101,101,92,92, - 92,93,93,94,94,94,95,95,104,104, - 104,106,106,105,105,194,194,90,90,179, - 179,179,179,179,124,45,45,156,178,178, - 125,125,125,125,180,180,37,37,115,115, - 126,126,126,126,107,107,119,119,119,127, - 128,128,128,128,128,128,128,128,128,128, - 128,159,159,158,158,181,181,160,160,160, - 160,161,182,109,108,108,183,183,162,162, - 162,162,99,99,99,184,184,9,9,10, - 185,185,186,163,155,155,164,164,165,166, - 166,6,6,7,167,167,167,167,167,167, - 167,167,167,167,167,167,167,167,167,167, - 167,167,167,167,167,167,167,167,167,167, - 167,167,167,167,167,167,167,167,167,167, - 167,167,167,167,167,167,66,72,72,168, - 168,130,130,131,131,131,131,131,131,3, - 132,132,129,129,110,110,110,84,67,82, - 157,157,111,111,187,187,187,133,133,123, - 123,188,188,169,169,881,39,1552,1518,1130, - 2827,34,870,31,35,815,30,32,1517,29, - 27,56,924,112,82,83,114,937,1162,998, - 949,1058,1050,1248,1212,1304,600,4101,1298,1314, - 1333,149,278,2145,2017,164,150,533,3063,947, - 2033,39,800,36,2787,1091,34,870,340,35, - 815,2359,39,800,36,237,1007,34,870,31, - 35,815,30,32,790,29,27,56,924,112, - 82,83,114,937,1334,998,949,1058,1050,1248, - 1777,240,235,236,2051,39,800,36,4600,354, - 34,870,44,35,815,279,318,2704,323,2051, - 39,800,36,772,624,34,870,2245,35,815, - 247,250,253,256,2589,824,355,1210,39,800, - 36,1516,2889,34,870,31,35,815,63,32, - 248,39,284,29,1813,4451,117,655,2834,3067, - 2817,4084,4331,4455,4323,1492,39,800,36,2542, - 1007,34,870,31,35,815,1889,32,790,29, - 27,56,924,112,82,83,114,937,344,998, - 949,1058,1050,1248,1212,1304,293,1370,1298,1314, - 1333,149,4378,57,381,514,150,685,2761,2005, - 39,1348,47,1806,3496,46,870,3262,188,515, - 1492,39,800,36,2542,1007,34,870,31,35, - 815,1889,32,790,29,27,56,924,112,82, - 83,114,937,344,998,949,1058,1050,1248,1212, - 1304,469,334,1298,1314,1333,149,248,39,284, - 514,150,4571,2761,600,1427,2191,38,353,1084, - 205,2123,315,67,515,510,1742,39,800,36, - 557,2889,34,870,31,35,815,62,32,347, - 585,558,350,1816,1888,645,2100,1938,3096,1492, - 39,800,36,2542,1007,34,870,31,35,815, - 1889,32,790,29,27,56,924,112,82,83, - 114,937,344,998,949,1058,1050,1248,1212,1304, - 510,233,1298,1314,1333,149,3228,940,979,514, - 150,4307,2761,1472,495,2573,39,282,4378,1967, - 733,1084,1938,515,1760,39,800,36,2542,1007, - 34,870,31,35,815,1889,32,790,29,27, - 56,924,112,82,83,114,937,344,998,949, - 1058,1050,1248,1212,1304,99,989,1298,1314,1333, - 149,160,1637,989,514,150,1939,2761,334,600, - 39,1391,387,1221,1998,48,2159,57,515,510, - 3504,740,66,2115,39,800,36,1242,4579,34, - 870,31,35,815,30,32,457,508,2096,502, - 435,1938,1558,39,800,36,428,1007,34,870, - 31,35,815,30,32,790,29,27,56,924, - 112,82,83,114,937,427,998,949,1058,1050, - 1248,1212,1304,453,511,1298,1314,1333,149,600, - 39,2240,380,150,1354,39,800,36,2477,4579, - 34,870,31,35,815,65,32,1136,39,1391, - 387,2057,1631,39,800,36,383,1007,34,870, - 31,35,815,30,32,790,29,27,56,924, - 112,82,83,114,937,1721,998,949,1058,1050, - 1248,1212,1304,440,55,1298,1314,1333,149,1390, - 2572,579,380,150,2359,39,800,36,67,1007, - 34,870,31,35,815,30,32,790,29,27, - 56,924,112,82,83,91,381,384,1935,39, - 800,36,326,1007,34,870,31,35,815,30, - 32,790,29,27,56,924,112,82,83,114, - 937,2305,998,949,1058,1050,1248,1212,1304,600, - 2438,1298,1314,1333,149,994,39,296,164,150, - 2051,39,800,36,2479,2153,34,870,341,35, - 815,1084,3159,1935,39,800,36,385,1007,34, - 870,31,35,815,30,32,790,29,27,56, - 924,112,82,83,114,937,494,998,949,1058, - 1050,1248,1212,1304,600,3226,1298,1314,1333,149, - 600,39,287,374,150,1935,39,800,36,2679, - 1007,34,870,31,35,815,30,32,790,29, - 27,56,924,112,82,83,114,937,1610,998, - 949,1058,1050,1248,1212,1304,456,1610,1298,1314, - 1333,149,596,57,1012,374,150,819,2588,326, - 655,600,39,2191,2220,1935,39,800,36,291, - 1007,34,870,31,35,815,30,32,790,29, - 27,56,924,112,82,83,114,937,866,998, - 949,1058,1050,1248,1212,1304,3633,373,1298,1314, - 1333,149,389,2305,444,374,150,1872,39,800, - 36,388,1007,34,870,31,35,815,30,32, - 790,29,27,56,924,112,82,83,114,937, - 521,998,949,1058,1050,1248,1212,1304,62,372, - 1298,1314,1333,149,766,57,418,380,150,2860, - 1694,39,800,36,912,1007,34,870,31,35, - 815,30,32,790,29,27,56,924,112,82, - 83,114,937,1234,998,949,1058,1050,1248,1212, - 1304,1017,357,1298,1314,1333,149,1160,821,370, - 148,150,529,1935,39,800,36,1084,1007,34, - 870,31,35,815,30,32,790,29,27,56, - 924,112,82,83,114,937,2639,998,949,1058, - 1050,1248,1212,1304,3591,1084,1298,1314,1333,149, - 512,909,378,165,150,1935,39,800,36,1084, - 1007,34,870,31,35,815,30,32,790,29, - 27,56,924,112,82,83,114,937,4097,998, - 949,1058,1050,1248,1212,1304,444,1177,1298,1314, - 1333,149,4042,1296,2248,161,150,1935,39,800, - 36,3228,1007,34,870,31,35,815,30,32, - 790,29,27,56,924,112,82,83,114,937, - 57,998,949,1058,1050,1248,1212,1304,997,1184, - 1298,1314,1333,149,328,1239,1319,160,150,1935, - 39,800,36,1246,1007,34,870,31,35,815, - 30,32,790,29,27,56,924,112,82,83, - 114,937,2310,998,949,1058,1050,1248,1212,1304, - 50,2159,1298,1314,1333,149,1321,1164,2131,159, - 150,1935,39,800,36,1084,1007,34,870,31, - 35,815,30,32,790,29,27,56,924,112, - 82,83,114,937,2457,998,949,1058,1050,1248, - 1212,1304,2014,160,1298,1314,1333,149,3163,2511, - 1615,158,150,1935,39,800,36,624,1007,34, - 870,31,35,815,30,32,790,29,27,56, - 924,112,82,83,114,937,1553,998,949,1058, - 1050,1248,1212,1304,2589,76,1298,1314,1333,149, - 103,1725,1900,157,150,1935,39,800,36,624, - 1007,34,870,31,35,815,30,32,790,29, - 27,56,924,112,82,83,114,937,947,998, - 949,1058,1050,1248,1212,1304,2078,1548,1298,1314, - 1333,149,3219,2743,243,156,150,1935,39,800, - 36,1246,1007,34,870,31,35,815,30,32, - 790,29,27,56,924,112,82,83,114,937, - 947,998,949,1058,1050,1248,1212,1304,419,160, - 1298,1314,1333,149,3466,595,771,155,150,1935, - 39,800,36,639,1007,34,870,31,35,815, - 30,32,790,29,27,56,924,112,82,83, - 114,937,1553,998,949,1058,1050,1248,1212,1304, - 1170,160,1298,1314,1333,149,3672,1353,1071,154, - 150,1935,39,800,36,1120,1007,34,870,31, - 35,815,30,32,790,29,27,56,924,112, - 82,83,114,937,521,998,949,1058,1050,1248, - 1212,1304,2622,77,1298,1314,1333,149,2648,2433, - 1487,153,150,1935,39,800,36,1375,1007,34, - 870,31,35,815,30,32,790,29,27,56, - 924,112,82,83,114,937,1985,998,949,1058, - 1050,1248,1212,1304,1379,160,1298,1314,1333,149, - 4161,1748,1219,152,150,1935,39,800,36,1520, - 1007,34,870,31,35,815,30,32,790,29, - 27,56,924,112,82,83,114,937,1659,998, - 949,1058,1050,1248,1212,1304,1788,1963,1298,1314, - 1333,149,2484,39,285,151,150,1826,39,800, - 36,1610,1007,34,870,31,35,815,30,32, - 790,29,27,56,924,112,82,83,114,937, - 520,998,949,1058,1050,1248,1212,1304,1627,1171, - 1298,1314,2151,170,1935,39,800,36,2433,1007, - 34,870,31,35,815,30,32,790,29,27, - 56,924,112,82,83,114,937,3295,998,949, - 1058,1050,1248,1212,1304,288,1179,1298,1314,1333, - 149,326,329,2141,146,150,2538,1913,1489,600, - 39,1391,387,1084,2264,39,800,36,1399,1007, - 34,870,31,35,815,30,32,790,29,27, - 56,924,112,82,83,114,937,1982,998,949, - 1058,1050,1248,1212,1304,402,55,1298,1314,1333, - 149,1390,1610,858,195,150,2359,39,800,36, - 1236,1007,34,870,31,35,815,30,32,790, - 29,27,56,924,112,82,83,114,937,520, - 998,949,1058,1050,1248,1212,1304,1741,104,1298, - 1314,2151,170,2359,39,800,36,1544,1007,34, - 870,31,35,815,30,32,790,29,27,56, - 924,112,82,83,114,937,289,998,949,1058, - 1050,1248,1212,1304,356,1643,1298,1314,2151,170, - 1354,39,800,36,529,4579,34,870,31,35, - 815,64,32,2359,39,800,36,295,1007,34, - 870,31,35,815,30,32,790,29,27,56, - 924,112,82,83,114,937,1984,998,949,1058, - 1050,1248,1212,1304,1533,326,1298,1314,2151,170, - 2359,39,800,36,1943,1007,34,870,31,35, - 815,30,32,790,29,27,56,924,112,82, - 83,114,937,2330,998,949,1058,1050,1248,1212, - 1304,2292,400,1298,1314,2151,170,2051,39,800, - 36,1298,2153,34,870,2372,35,815,1445,1505, - 2359,39,800,36,420,1007,34,870,31,35, - 815,30,32,790,29,27,56,924,112,82, - 83,114,937,4020,998,949,1058,1050,1248,1212, - 1304,1088,4099,1298,1314,2151,170,2405,39,800, - 36,419,1007,34,870,31,35,815,30,32, - 790,29,27,56,924,112,82,83,114,937, - 1997,998,949,1058,1050,1248,1212,1304,325,327, - 1298,1314,2151,170,600,39,3239,3197,529,2153, - 2160,2150,39,1391,387,1130,238,2359,39,800, - 36,422,1007,34,870,31,35,815,30,32, - 790,29,27,56,924,112,82,83,114,937, - 28,998,949,1058,1050,1248,1212,1304,278,94, - 1298,1812,108,404,2359,39,800,36,3206,1007, - 34,870,31,35,815,30,32,790,29,27, - 56,924,112,82,83,114,937,1549,998,949, - 1058,1050,1248,1212,1304,1711,1608,1804,2359,39, - 800,36,2102,1007,34,870,31,35,815,30, - 32,790,29,27,56,924,112,82,83,114, - 937,2316,998,949,1058,1050,1248,1212,1770,2359, - 39,800,36,78,1007,34,870,31,35,815, - 30,32,790,29,27,56,924,112,82,83, - 114,937,1130,998,949,1058,1050,1728,2359,39, - 800,36,2086,1007,34,870,31,35,815,30, - 32,790,29,27,56,924,112,82,83,114, - 937,1610,998,949,1058,1762,2359,39,800,36, - 302,1007,34,870,31,35,815,30,32,790, - 29,27,56,924,112,82,83,114,937,1823, - 998,949,1058,1768,2359,39,800,36,2109,1007, - 34,870,31,35,815,30,32,790,29,27, - 56,924,112,82,83,114,937,2129,998,949, - 1644,2359,39,800,36,300,1007,34,870,31, - 35,815,30,32,790,29,27,56,924,112, - 82,83,114,937,1610,998,949,1678,2359,39, - 800,36,2196,1007,34,870,31,35,815,30, - 32,790,29,27,56,924,112,82,83,114, - 937,1130,998,949,1685,2359,39,800,36,2277, - 1007,34,870,31,35,815,30,32,790,29, - 27,56,924,112,82,83,114,937,2400,998, - 949,1686,2451,39,1391,387,57,2821,299,226, - 1078,2359,39,800,36,242,1007,34,870,31, - 35,815,30,32,790,29,27,56,924,112, - 82,83,114,937,2175,998,1720,2230,2837,278, - 600,39,2191,281,600,39,1391,387,1843,2028, - 39,1990,2894,2153,2922,994,2921,296,2359,39, - 800,36,237,1007,34,870,31,35,815,30, - 32,790,29,27,56,924,112,82,83,114, - 937,431,998,1727,75,2153,55,2326,240,235, - 236,1390,1016,2234,2002,2438,2847,1310,39,800, - 36,4612,279,34,870,340,35,815,2008,57, - 1816,2002,2438,4390,2008,3096,74,247,250,253, - 256,2589,2436,352,2313,39,800,36,1516,1007, - 34,870,31,35,815,30,32,790,29,27, - 56,924,92,82,83,4600,3067,2817,4084,4331, - 4455,4323,2153,321,2158,323,2742,57,2588,316, - 1011,4398,2037,353,2460,57,1078,2330,353,535, - 2008,2519,1326,39,800,36,3071,1130,34,870, - 340,35,815,59,345,585,558,350,344,345, - 585,558,350,2836,166,1092,2153,162,2492,2542, - 2330,2478,57,352,2239,535,2648,1610,2761,1637, - 2484,39,282,2608,290,306,390,424,2637,2152, - 4600,1684,391,424,4252,4359,523,93,321,2158, - 323,290,2153,162,316,1011,2550,2626,2037,186, - 3303,2542,1078,353,1861,2457,3389,1463,39,800, - 36,4652,4378,34,870,340,35,815,2692,522, - 344,1982,2457,58,345,585,558,350,528,2418, - 166,307,426,2836,201,3375,367,2800,393,424, - 2761,688,39,1391,387,361,2496,2480,39,1391, - 387,531,353,2753,177,4600,2153,2153,535,3172, - 2307,2315,333,321,2158,323,1086,1140,2598,316, - 1011,2542,4378,345,585,558,350,234,55,2008, - 1707,614,343,1390,55,2027,162,351,96,1390, - 2637,1502,186,3303,2772,2153,4173,237,1889,209, - 220,580,3321,208,217,218,219,221,3321,776, - 39,1391,387,175,864,57,1,57,2654,1078, - 535,2634,333,249,235,236,3359,174,309,313, - 189,173,176,177,178,179,180,3410,202,234, - 3044,2611,1280,39,1391,387,55,3788,162,1690, - 2511,1390,1985,1544,186,3303,717,361,2566,2153, - 3027,209,220,580,2634,208,217,218,219,221, - 2241,2875,2307,2315,2624,175,2644,330,336,55, - 187,2169,39,394,1390,3724,53,392,424,174, - 3446,2153,190,173,176,177,178,179,180,2359, - 39,800,36,1852,1007,34,870,31,35,815, - 30,32,790,29,27,56,924,112,82,83, - 114,937,73,1559,2359,39,800,36,2896,1007, - 34,870,31,35,815,30,32,790,29,27, - 56,924,112,82,83,114,937,2708,1594,1191, - 39,2809,36,4652,4378,34,870,340,35,815, - 2359,39,800,36,1707,1007,34,870,31,35, - 815,30,32,790,29,27,56,924,112,82, - 83,114,1601,688,39,1391,387,1206,3073,3310, - 265,1140,2538,2653,535,2542,4378,4600,1722,57, - 244,2685,2542,2735,333,321,2158,323,2651,2652, - 160,316,1011,234,2637,4269,2157,39,1391,387, - 55,2637,162,1124,3044,1390,2153,53,186,3303, - 2141,39,2191,281,2153,209,220,580,4173,208, - 217,218,219,221,1170,2153,333,237,57,175, - 1417,2721,1796,55,1078,353,2725,72,1390,535, - 53,335,336,174,2750,71,3225,173,176,177, - 178,179,180,245,235,236,70,919,234,1620, - 3569,361,162,776,39,1391,387,162,362,539, - 2754,1867,2153,186,3303,2875,2307,2315,2153,1092, - 209,220,580,2542,208,217,218,219,221,415, - 2826,248,39,450,175,441,3726,57,2755,535, - 55,2710,2637,3511,89,1390,2707,53,174,61, - 2104,182,173,176,177,178,179,180,234,2157, - 39,1391,387,382,2147,1571,2726,162,600,39, - 1391,387,2026,186,3303,600,2574,2191,80,1811, - 209,220,580,2859,208,217,218,219,221,2141, - 39,2191,2577,57,175,529,55,2651,2153,535, - 57,1390,68,53,3718,55,2756,4378,174,361, - 52,193,173,176,177,178,179,180,234,2761, - 2584,2789,1614,3677,2307,2315,57,162,2478,60, - 535,5153,1078,186,3303,600,39,2191,286,643, - 209,220,580,1130,208,217,218,219,221,344, - 2292,424,39,450,175,617,3726,3600,162,535, - 162,600,39,1391,387,2625,206,4102,174,2761, - 5153,3282,173,176,177,178,179,180,234,5153, - 2593,185,1621,39,800,36,4612,162,34,870, - 340,35,815,186,3303,443,2944,2954,278,57, - 209,220,580,4401,208,217,218,219,221,600, - 39,1391,387,5153,175,600,39,2191,283,705, - 57,5153,5153,535,535,600,39,296,174,2153, - 4600,198,173,176,177,178,179,180,321,2158, - 323,100,234,344,316,1011,430,2169,39,394, - 2704,162,162,353,535,5153,524,186,3303,194, - 324,280,5153,4502,209,220,580,1130,208,217, - 218,219,221,344,345,585,558,350,175,5153, - 793,57,162,525,535,535,57,5153,95,194, - 2932,108,174,4502,5153,192,173,176,177,178, - 179,180,5153,234,344,204,2157,39,1391,387, - 57,5153,162,162,1078,447,2944,2954,186,3303, - 2239,5153,3817,5153,2761,209,220,580,3734,208, - 217,218,219,221,57,2736,1263,57,3599,175, - 1101,3179,162,55,600,39,2191,2776,1390,1385, - 53,57,196,174,3081,4416,200,173,176,177, - 178,179,180,2359,39,800,36,3369,1007,34, - 870,31,35,815,30,32,790,29,27,56, - 924,112,82,83,114,1602,2359,39,800,36, - 5153,1007,34,870,31,35,815,30,32,790, - 29,27,56,924,112,82,83,114,1636,984, - 39,800,36,2153,4378,34,870,340,35,815, - 1483,39,2809,36,4652,4119,34,870,340,35, - 815,1303,57,57,5153,2542,3653,4540,1983,2534, - 1923,5153,2542,2542,107,4378,5153,600,39,296, - 600,39,1391,387,344,57,57,4600,5153,1263, - 2542,344,234,5153,334,321,2158,323,4600,5153, - 5153,317,1011,2330,733,5153,321,2158,323,344, - 353,857,316,1011,211,220,580,429,210,217, - 218,219,221,2655,1124,3600,57,2542,5153,2761, - 1219,347,585,558,350,212,214,216,297,298, - 1468,2429,2157,39,1391,387,234,2153,600,39, - 1391,387,222,213,215,5153,2153,1678,39,800, - 36,4652,377,34,870,340,35,815,211,220, - 580,2153,210,217,218,219,221,2688,3780,55, - 4110,2542,4196,2401,1390,449,53,2717,1707,212, - 214,216,297,298,2637,2429,2157,39,1391,387, - 234,1130,448,3610,1130,4600,222,213,215,102, - 416,2826,57,321,2158,323,1931,2354,5153,316, - 1011,4250,211,220,580,527,210,217,218,219, - 221,3389,3128,55,5153,453,4196,2484,1390,203, - 53,5153,305,212,214,216,297,298,3044,2429, - 57,57,57,439,4594,3707,4584,3678,2153,375, - 222,213,215,2359,1427,800,1433,5153,1007,34, - 870,31,35,815,30,32,790,29,27,56, - 924,112,82,83,90,332,336,2153,5153,379, - 4196,2747,2359,39,800,36,5153,1007,34,870, - 31,35,815,30,32,790,29,27,56,924, - 112,82,83,89,2359,39,800,36,3195,1007, - 34,870,31,35,815,30,32,790,29,27, - 56,924,112,82,83,88,2359,39,800,36, - 5153,1007,34,870,31,35,815,30,32,790, - 29,27,56,924,112,82,83,87,2359,39, - 800,36,5153,1007,34,870,31,35,815,30, - 32,790,29,27,56,924,112,82,83,86, - 2359,39,800,36,5153,1007,34,870,31,35, - 815,30,32,790,29,27,56,924,112,82, - 83,85,2359,39,800,36,5153,1007,34,870, - 31,35,815,30,32,790,29,27,56,924, - 112,82,83,84,2217,39,800,36,5153,1007, - 34,870,31,35,815,30,32,790,29,27, - 56,924,112,82,83,110,2359,39,800,36, - 5153,1007,34,870,31,35,815,30,32,790, - 29,27,56,924,112,82,83,116,2359,39, - 800,36,5153,1007,34,870,31,35,815,30, - 32,790,29,27,56,924,112,82,83,115, - 2359,39,800,36,5153,1007,34,870,31,35, - 815,30,32,790,29,27,56,924,112,82, - 83,113,2359,39,800,36,5153,1007,34,870, - 31,35,815,30,32,790,29,27,56,924, - 112,82,83,111,1604,39,800,36,4652,5153, - 34,870,340,35,815,57,57,57,57,535, - 1078,1078,1769,2731,2826,2702,57,2542,2706,1078, - 2105,57,2542,5153,2153,952,5153,2330,344,57, - 57,1130,1130,1898,2542,5153,234,162,162,162, - 1130,344,4600,5153,194,1811,2971,162,4502,1130, - 321,2158,323,344,168,3255,316,1011,211,220, - 580,4257,210,217,218,219,221,2037,614,207, - 205,1078,2579,2761,237,5153,2542,5153,301,212, - 214,216,297,298,1469,2429,377,4085,5153,2153, - 5153,2493,39,1391,387,234,518,213,215,166, - 252,235,236,1060,39,800,36,4094,4378,34, - 870,340,35,815,2153,309,313,211,220,580, - 3315,210,217,218,219,221,2612,57,55,1130, - 2542,2542,2037,1390,5153,53,1078,4199,212,214, - 216,297,298,2153,2429,2707,5153,3027,5153,234, - 344,4600,3385,5153,5153,517,213,215,334,321, - 2158,323,5153,3178,166,319,1011,227,1130,5153, - 2761,211,220,580,2740,210,217,218,219,221, - 2764,1475,57,4078,2542,1008,4064,2673,4321,2542, - 5153,3342,212,214,216,297,298,5153,2429,2630, - 39,1391,387,234,5153,4213,199,5153,2637,223, - 213,215,5153,2153,1678,39,800,36,4652,5153, - 34,870,340,35,815,211,220,580,3258,210, - 217,218,219,221,2807,57,55,68,2542,1078, - 5153,1390,4378,53,4238,5153,212,214,216,297, - 298,2153,2429,2508,39,1391,387,234,2821,5153, - 3607,2842,4600,308,213,215,243,162,5153,5153, - 321,2158,323,5153,3106,502,316,1011,5153,211, - 220,580,3440,210,217,218,219,221,614,68, - 278,57,333,5153,4378,535,2169,39,394,5153, - 212,214,216,297,298,5153,2429,5153,600,39, - 1391,387,5153,237,344,500,501,496,213,215, - 952,237,5153,162,2542,4596,863,5153,1028,5153, - 194,1707,2542,4596,4502,310,313,5153,5153,241, - 235,236,5153,234,333,55,1707,255,235,236, - 1390,234,2246,279,1060,39,800,36,5153,4378, - 34,870,340,35,815,1937,405,4529,248,251, - 254,257,2589,1937,405,4529,57,5153,717,1516, - 1078,600,39,1391,387,2868,406,407,408,297, - 298,3044,2429,4159,406,407,408,297,298,5153, - 2429,5153,4600,3281,5153,5153,3044,5153,162,334, - 321,2158,323,5153,5153,3114,317,1011,55,2322, - 5153,5153,5153,1390,5153,2750,5153,2322,3656,336, - 5153,5153,1678,39,800,36,4652,5153,34,870, - 340,35,815,3742,336,237,5153,409,411,5153, - 5153,5153,5153,1104,5153,409,411,2542,4596,1538, - 39,800,36,3029,5153,34,870,340,35,815, - 1008,258,235,236,2542,5153,234,5153,1198,4523, - 4600,2037,5153,5153,5153,1078,1207,4523,321,2158, - 323,5153,5153,2637,316,1011,5153,401,1937,405, - 4529,600,39,1391,387,5153,3279,4600,5153,600, - 39,1391,387,166,2667,318,2704,323,2542,406, - 407,408,297,298,1707,2429,600,39,1391,387, - 600,39,1391,387,5153,57,57,2637,55,2542, - 2542,5153,68,1390,57,865,55,4378,1078,5153, - 5153,1390,2322,579,5153,5153,5153,5153,344,344, - 502,5153,57,55,5153,57,2542,55,1390,2542, - 1628,57,1390,5153,1670,2542,162,3573,2761,2761, - 409,412,68,3125,3044,344,5153,4378,344,1476, - 2939,57,2037,5153,344,1078,1078,333,5153,5153, - 499,501,57,5153,502,2761,1078,5153,2761,5153, - 5153,5153,5153,3496,2761,5153,506,5153,5153,504, - 5153,4086,336,162,166,532,5153,5153,5153,5153, - 1525,3569,5153,5153,162,5153,5153,333,2929,5153, - 5153,4283,5153,5153,499,501,5153,5153,5153,5153, - 5153,5153,5153,5153,5153,5153,5153,5153,5153,5153, - 5153,5153,5153,5153,5153,5153,5153,5153,5153,5153, - 5153,4424,5153,5153,5153,5153,5153,5153,5153,5153, - 5153,5153,3171,5153,5153,5153,5153,5153,3701,5153, - 0,43,5171,0,43,5170,0,723,33,0, - 437,927,0,451,1213,0,42,5171,0,42, - 5170,0,2488,132,0,1,441,0,455,871, - 0,454,1131,0,723,45,0,2546,97,0, - 723,386,0,39,37,0,36,38,0,43, - 784,0,1,911,0,1,5430,0,1,5429, - 0,1,5428,0,1,5427,0,1,5426,0, - 1,5425,0,1,5424,0,1,5423,0,1, - 5422,0,1,5421,0,1,5420,0,43,1, - 5171,0,43,1,5170,0,729,1,0,5392, - 246,0,5391,246,0,5492,246,0,5491,246, - 0,5419,246,0,5418,246,0,5417,246,0, - 5416,246,0,5415,246,0,5414,246,0,5413, - 246,0,5412,246,0,5430,246,0,5429,246, - 0,5428,246,0,5427,246,0,5426,246,0, - 5425,246,0,5424,246,0,5423,246,0,5422, - 246,0,5421,246,0,5420,246,0,43,246, - 5171,0,43,246,5170,0,5195,246,0,54, - 5171,0,54,5170,0,5159,1,0,5158,1, - 0,242,2702,0,387,36,0,36,387,0, - 386,33,0,33,386,0,49,5193,0,49, - 41,0,5171,54,0,5170,54,0,2488,134, - 0,2488,133,0,30,516,0,5484,442,0, - 1305,442,0,5195,1,0,43,1,0,53, - 41,0,1,98,0,41,53,0,498,2382, - 0,5195,233,1,0,43,233,1,0,233, - 414,0,41,5171,0,41,5170,0,1,5171, - 2,0,1,5170,2,0,41,5171,2,0, - 41,5170,2,0,5171,40,0,5170,40,0, - 5193,51,0,51,41,0,5163,403,0,5162, - 403,0,1,3687,0,1,784,0,1,3598, - 0,233,413,0,3497,320,0,5484,101,0, - 1305,101,0,39,79,0,1,5484,0,1, - 1305,0,43,1,5171,2,0,43,1,5170, - 2,0,43,5171,2,0,43,5170,2,0, - 283,4137,0,498,4142,0,233,1,0,233, - 225,0,233,224,0,1,2961,0,1,3407, - 0,5161,1,0,233,1,3089,0,5163,233, - 0,5162,233,0,3204,233,0,8,10,0, - 191,3379,0 - }; - }; - public final static char baseAction[] = BaseAction.baseAction; - public final int baseAction(int index) { return baseAction[index]; } - public final static char lhs[] = baseAction; - public final int lhs(int index) { return lhs[index]; }; - - public interface TermCheck { - 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,0,29, - 30,3,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,0,57,58,59, - 60,0,62,63,64,65,0,0,68,69, - 70,4,72,6,74,8,76,77,78,79, - 80,81,82,83,84,85,86,87,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,29,30,0, - 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,28,57,58,59,60,0, - 62,63,64,65,88,89,68,69,70,0, - 72,100,74,4,76,77,78,79,80,81, - 82,83,84,85,86,87,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,0,29,30,3,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,55,0,57,58,59,60,0,62,63, - 64,65,0,6,68,69,70,0,1,2, - 74,4,76,77,78,79,80,81,82,83, - 84,85,86,87,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,0,29,30,0,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 46,47,48,49,50,51,52,53,54,55, - 28,57,58,59,60,0,62,63,64,65, - 88,89,68,69,70,103,104,105,74,0, - 76,77,78,79,80,81,82,83,84,85, - 86,87,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 0,29,30,58,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,55,28,57, - 58,59,60,0,62,63,64,65,0,0, - 68,69,70,0,1,2,74,4,76,77, - 78,79,80,81,82,83,84,85,86,87, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,0,29, - 30,0,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,28,57,58,59, - 60,0,62,63,64,65,88,89,68,69, - 70,0,11,12,74,4,76,77,78,79, - 80,81,82,83,84,85,86,87,0,1, - 2,3,4,5,6,7,8,9,10,11, - 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,29,30,0, - 32,33,34,35,36,37,38,39,40,41, - 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,28,57,58,59,60,0, - 62,63,64,65,0,0,68,69,70,0, - 1,2,74,8,76,77,78,79,80,81, - 82,83,84,85,86,87,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,0,29,30,0,32,33, - 34,35,36,37,38,39,40,41,42,43, - 44,45,46,47,48,49,50,51,52,53, - 54,55,28,57,58,59,60,0,62,63, - 64,65,88,89,68,69,70,0,1,2, - 74,0,76,77,78,79,80,81,82,83, - 84,85,86,87,0,1,2,3,4,5, - 6,7,8,9,10,11,12,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,0,29,30,0,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45, - 46,47,48,49,50,51,52,53,54,55, - 28,57,58,59,60,0,62,63,64,65, - 0,0,68,69,70,0,1,2,74,0, - 76,77,78,79,80,81,82,83,84,85, - 86,87,0,1,2,3,4,5,6,7, - 8,9,10,11,12,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 0,29,30,0,32,33,34,35,36,37, - 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,55,28,57, - 58,59,60,0,62,63,64,65,88,89, - 68,69,70,0,99,0,74,4,76,77, - 78,79,80,81,82,83,84,85,86,87, - 0,1,2,3,4,5,6,7,8,66, - 10,11,12,122,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,0,29, - 30,0,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,28,0,58,0, - 1,2,62,4,0,6,0,8,68,69, - 70,0,1,2,3,4,5,6,7,8, - 9,10,97,98,13,14,15,16,17,18, - 19,20,21,22,23,24,25,31,0,1, - 2,0,31,0,1,2,3,4,5,6, - 7,8,41,0,1,2,0,46,47,48, - 49,50,51,52,53,54,55,0,57,31, - 59,0,101,62,3,0,0,10,3,68, - 69,70,71,72,9,74,75,0,1,2, - 3,4,5,6,7,8,9,10,31,56, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,60,103,104,105,61,31,0, - 1,2,3,4,5,6,7,8,41,62, - 0,56,56,46,47,48,49,50,51,52, - 53,54,55,0,57,0,59,0,73,62, - 0,0,9,3,0,68,69,70,71,72, - 9,74,75,0,1,2,3,4,5,6, - 7,8,9,10,29,28,13,14,15,16, - 17,18,19,20,21,22,23,24,25,0, - 103,104,105,0,31,0,1,2,9,0, - 1,2,13,4,41,6,56,8,9,46, - 47,48,49,50,51,52,53,54,55,0, - 57,0,59,0,73,62,3,97,98,0, - 0,68,69,70,71,72,0,74,75,3, - 11,12,6,0,8,9,95,11,12,13, - 0,1,2,3,4,5,6,7,8,64, - 65,118,26,27,28,0,103,104,105,0, - 1,2,73,4,5,56,7,56,0,14, - 15,16,17,18,19,20,21,22,23,24, - 25,61,56,0,95,0,66,61,0,4, - 31,0,66,67,61,0,41,71,72,73, - 5,46,47,48,49,50,51,52,53,54, - 55,71,0,28,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,0,3,61, - 67,6,0,8,9,3,11,12,13,0, - 1,2,3,4,5,6,7,8,0,101, - 0,26,27,28,0,0,1,2,3,9, - 5,90,7,0,9,102,3,96,76,0, - 107,108,109,110,111,112,113,114,115,116, - 117,56,0,0,1,2,61,4,5,0, - 7,66,67,11,12,56,71,72,73,0, - 1,2,3,4,0,6,67,8,0,61, - 60,56,8,88,89,90,91,92,93,94, - 95,96,97,98,99,100,101,102,73,102, - 67,106,107,108,109,110,111,112,113,114, - 115,116,117,118,117,120,0,1,2,3, - 4,5,6,7,8,56,10,11,12,0, - 14,15,16,4,18,19,20,21,22,23, - 24,25,26,27,0,29,30,3,32,33, - 34,35,36,37,38,39,40,28,42,43, - 44,45,0,1,2,3,4,5,6,7, - 8,0,1,2,58,4,0,6,100,8, - 64,65,0,1,2,3,0,5,0,7, - 74,0,1,2,3,4,5,6,7,8, - 56,10,11,12,0,14,15,16,4,18, - 19,20,21,22,23,24,25,26,27,0, - 29,30,3,32,33,34,35,36,37,38, - 39,40,0,42,43,44,45,0,1,2, - 3,9,5,0,7,13,9,0,0,58, - 13,4,61,71,66,64,65,0,1,2, - 3,4,5,6,7,8,9,10,11,12, - 0,14,15,16,31,18,19,20,21,22, - 23,24,25,26,27,99,29,30,41,32, - 33,34,35,36,37,38,39,40,66,42, - 43,44,45,0,1,2,3,0,5,0, - 7,4,9,0,0,58,13,60,9,0, - 0,1,2,3,10,5,0,7,9,72, - 0,1,2,3,4,5,6,7,8,9, - 10,11,12,95,14,15,16,77,18,19, - 20,21,22,23,24,25,26,27,0,29, - 30,3,32,33,34,35,36,37,38,39, - 40,57,42,43,44,45,56,0,1,2, - 3,72,5,0,7,66,3,61,58,0, - 60,72,9,0,1,2,3,4,5,6, - 7,8,72,10,11,12,0,14,15,16, - 0,18,19,20,21,22,23,24,25,26, - 27,0,29,30,0,32,33,34,35,36, - 37,38,39,40,121,42,43,44,45,56, - 0,0,1,2,61,4,5,0,7,66, - 61,58,46,47,0,66,73,64,65,0, - 1,2,3,4,5,6,7,8,0,10, - 11,12,31,14,15,16,66,18,19,20, - 21,22,23,24,25,26,27,0,29,30, - 3,32,33,34,35,36,37,38,39,40, - 60,42,43,44,45,0,1,2,0,4, - 0,6,0,8,90,0,95,58,71,4, - 96,9,0,64,65,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,31,29,30,41,32,33,34, - 35,36,37,38,39,40,0,42,43,44, - 45,0,1,2,3,4,5,6,7,8, - 0,10,11,12,72,14,15,16,0,18, - 19,20,21,22,23,24,25,26,27,0, - 29,30,60,32,33,34,35,36,37,38, - 39,40,0,42,43,44,45,29,103,104, - 105,9,0,1,2,13,4,61,6,58, - 8,60,66,0,0,1,2,3,4,5, - 6,7,8,118,10,11,12,0,14,15, - 16,4,18,19,20,21,22,23,24,25, - 26,27,0,29,30,3,32,33,34,35, - 36,37,38,39,40,28,42,43,44,45, - 0,0,0,0,0,3,0,5,6,90, - 8,0,58,11,12,96,0,0,0,3, - 3,0,1,2,0,1,2,0,26,27, - 28,7,30,0,1,2,3,4,5,6, - 7,8,9,26,27,0,13,0,1,2, - 17,4,0,1,2,3,0,5,56,7, - 56,28,61,61,61,9,64,65,66,67, - 0,1,2,56,41,5,0,7,31,46, - 47,48,49,50,51,52,53,54,55,56, - 88,89,90,91,92,93,94,0,71,97, - 98,99,100,101,102,0,73,62,106,107, - 108,109,110,111,112,113,114,115,116,0, - 0,0,3,106,5,6,0,8,0,73, - 11,12,56,28,0,1,2,120,4,5, - 0,7,0,1,2,26,27,28,0,30, - 0,1,2,3,4,5,6,7,8,9, - 0,1,2,13,0,1,2,17,4,0, - 1,2,0,31,5,56,0,1,2,0, - 61,9,3,64,65,66,67,90,0,1, - 2,41,71,96,0,67,46,47,48,49, - 50,51,52,53,54,55,56,88,89,90, - 91,92,93,94,66,0,97,98,99,100, - 101,102,28,73,60,106,107,108,109,110, - 111,112,113,114,115,116,0,1,2,3, - 4,5,6,7,8,73,10,11,12,0, - 14,15,16,4,18,19,20,21,22,23, - 24,25,26,27,0,29,30,0,32,33, - 34,35,36,37,38,39,40,10,42,43, - 44,45,67,0,1,2,3,4,5,6, - 7,8,56,10,11,12,0,14,15,16, - 0,18,19,20,21,22,23,24,25,26, - 27,0,29,30,3,32,33,34,35,36, - 37,38,39,40,0,42,43,44,45,0, - 1,2,0,1,2,3,4,5,6,7, - 8,58,10,11,12,0,14,15,16,0, - 18,19,20,21,22,23,24,25,26,27, - 31,29,30,67,32,33,34,35,36,37, - 38,39,40,0,42,43,44,45,0,1, - 2,3,4,5,6,7,8,0,10,11, - 12,0,14,15,16,71,18,19,20,21, - 22,23,24,25,26,27,61,29,30,60, - 32,33,34,35,36,37,38,39,40,0, - 42,43,44,45,0,1,2,3,4,5, - 6,7,8,60,10,11,12,0,14,15, - 16,0,18,19,20,21,22,23,24,25, - 26,27,0,29,30,0,32,33,34,35, - 36,37,38,39,40,28,42,43,44,45, - 0,1,2,0,4,56,0,1,2,0, - 10,5,3,28,14,15,16,17,18,19, - 20,21,22,23,24,25,0,0,0,0, - 1,2,6,0,1,2,9,31,71,0, - 13,41,0,1,2,0,46,47,48,49, - 50,51,52,53,54,55,0,0,1,2, - 0,4,62,0,31,0,6,10,68,69, - 70,14,15,16,17,18,19,20,21,22, - 23,24,25,0,1,2,3,4,5,6, - 7,8,9,64,65,67,13,0,41,0, - 17,119,3,46,47,48,49,50,51,52, - 53,54,55,0,31,0,71,91,92,62, - 0,0,0,1,2,68,69,70,0,1, - 2,3,4,5,6,7,8,9,0,0, - 57,13,59,28,6,17,63,0,28,28, - 3,91,92,31,0,72,28,0,75,31, - 0,0,1,2,3,4,5,6,7,8, - 9,0,0,0,13,0,3,0,17,0, - 1,2,61,0,9,57,0,59,0,1, - 2,63,31,0,0,9,3,0,0,28, - 0,0,0,75,0,1,2,3,4,5, - 6,7,8,9,93,94,0,13,57,31, - 59,17,0,66,63,28,10,67,0,91, - 92,9,61,72,0,31,75,0,1,2, - 3,4,5,6,7,8,9,31,73,66, - 13,0,66,0,17,0,0,0,61,73, - 9,57,9,59,93,94,13,63,31,67, - 0,71,71,3,0,0,72,3,62,75, - 0,1,2,3,4,5,6,7,8,9, - 93,94,0,13,57,73,59,17,0,0, - 63,67,3,0,0,0,3,3,3,72, - 0,31,75,0,1,2,3,4,5,6, - 7,8,9,66,73,0,13,71,0,0, - 17,0,0,0,0,0,0,57,0,59, - 0,0,67,63,31,0,0,119,0,0, - 95,0,0,0,29,75,0,1,2,3, - 4,5,6,7,8,9,17,0,0,13, - 57,0,59,17,0,0,63,67,0,0, - 0,0,0,0,0,0,0,31,75,0, - 41,0,17,0,0,46,47,48,49,50, - 51,52,53,54,55,67,0,0,17,0, - 0,119,0,57,0,59,41,0,0,63, - 0,46,47,48,49,50,51,52,53,54, - 55,75,41,0,17,0,0,46,47,48, - 49,50,51,52,53,54,55,0,0,0, - 0,0,0,0,0,0,0,0,41,0, - 0,0,0,46,47,48,49,50,51,52, - 53,54,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,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,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; - public final int termCheck(int index) { return termCheck[index]; } - - public interface TermAction { - public final static char termAction[] = {0, - 5153,5134,5116,5116,5116,5116,5116,5116,5116,5144, - 1,1,1,5141,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5153,1, - 1,3286,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1164,1,1560, - 674,141,1,2848,1,1,127,43,1,1, - 1,5195,5160,1305,5334,5484,2133,3170,3731,2197, - 3427,3088,3070,3144,566,3136,3288,3131,8,5147, - 5147,5147,5147,5147,5147,5147,5147,5147,5147,5147, - 5147,5147,5147,5147,5147,5147,5147,5147,5147,5147, - 5147,5147,5147,5147,5147,5147,5153,5147,5147,5153, - 5147,5147,5147,5147,5147,5147,5147,5147,5147,5147, - 5147,5147,5147,5147,5147,5147,5147,5147,5147,5147, - 5147,5147,5147,5147,3616,5147,5147,5147,5147,5153, - 5147,5147,5147,5147,2551,2598,5147,5147,5147,43, - 5147,2318,5147,5195,5147,5147,5147,5147,5147,5147, - 5147,5147,5147,5147,5147,5147,5153,5134,5116,5116, - 5116,5116,5116,5116,5116,5138,1,1,1,5141, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5153,1,1,2702,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,436,1164,1,1560,674,5153,1,2848, - 1,1,131,3260,1,1,1,5153,4764,4761, - 5334,5195,2133,3170,3731,2197,3427,3088,3070,3144, - 566,3136,3288,3131,5153,5134,5116,5116,5116,5116, - 5116,5116,5116,5138,1,1,1,5141,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,5153,1,1,5153,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 4100,1164,1,1560,674,530,1,2848,1,1, - 2551,2598,1,1,1,5585,5586,5587,5334,5153, - 2133,3170,3731,2197,3427,3088,3070,3144,566,3136, - 3288,3131,5153,5134,5116,5116,5116,5116,5116,5116, - 5116,5138,1,1,1,5141,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 5153,1,1,2956,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,4197,1164, - 1,1560,674,5153,1,2848,1,1,130,5153, - 1,1,1,5153,4764,4761,5334,5195,2133,3170, - 3731,2197,3427,3088,3070,3144,566,3136,3288,3131, - 5153,5134,5116,5116,5116,5116,5116,5116,5116,5138, - 1,1,1,5141,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5153,1, - 1,5153,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,4605,1164,1,1560, - 674,124,1,2848,1,1,2551,2598,1,1, - 1,5153,3004,2979,5334,791,2133,3170,3731,2197, - 3427,3088,3070,3144,566,3136,3288,3131,5153,5134, - 5116,5116,5116,5116,5116,5116,5116,5138,1,1, - 1,5141,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,33,1,1,5153, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,4767,1164,1,1560,674,5153, - 1,2848,1,1,129,137,1,1,1,5153, - 5170,5171,5334,2349,2133,3170,3731,2197,3427,3088, - 3070,3144,566,3136,3288,3131,5153,5134,5116,5116, - 5116,5116,5116,5116,5116,5138,1,1,1,5141, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,437,1,1,5153,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,4770,1164,1,1560,674,5153,1,2848, - 1,1,2551,2598,1,1,1,5153,4942,4939, - 5334,5153,2133,3170,3731,2197,3427,3088,3070,3144, - 566,3136,3288,3131,5153,5134,5116,5116,5116,5116, - 5116,5116,5116,5138,1,1,1,5141,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,451,1,1,5153,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 4773,1164,1,1560,674,139,1,2848,1,1, - 128,5153,1,1,1,54,4975,4972,5334,5153, - 2133,3170,3731,2197,3427,3088,3070,3144,566,3136, - 3288,3131,5153,3089,1,1,1,1,1,1, - 1,5163,1,1,1,5162,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 45,1,1,163,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,4794,1164, - 1,1560,674,5153,1,2848,1,1,2551,2598, - 1,1,1,1,591,135,5334,387,2133,3170, - 3731,2197,3427,3088,3070,3144,566,3136,3288,3131, - 43,4764,4761,2705,729,3793,3866,3598,3888,1353, - 777,3844,3822,4760,5422,5420,5429,5415,5428,5424, - 5425,5423,5426,5427,5430,5421,3932,3910,386,5176, - 1054,143,676,771,5178,716,2664,724,5179,5177, - 673,5418,5172,5174,5175,5173,5491,5492,5412,5419, - 5391,5417,5416,5413,5414,5392,4800,5153,1310,441, - 1,1,5549,1,5153,4785,41,4785,573,5550, - 5551,5153,5015,5015,233,5011,233,233,233,233, - 5019,1,2406,2378,233,1,1,1,1,1, - 1,1,1,1,1,1,1,5193,5153,8258, - 8258,5153,5008,346,5106,5102,2712,5195,784,1305, - 3598,5484,1,5153,5170,5171,5153,1,1,1, - 1,1,1,1,1,1,1,1,1115,5193, - 1434,97,2284,1,4797,1,455,5125,2632,1, - 1,1,233,414,4945,5563,5650,5153,5015,5015, - 233,5011,233,233,233,233,5019,1,2938,1857, - 233,1,1,1,1,1,1,1,1,1, - 1,1,1,3494,5585,5586,5587,1819,5008,5153, - 5106,5102,3687,5195,784,1305,3598,5484,1,5128, - 136,1857,4788,1,1,1,1,1,1,1, - 1,1,1,5153,1115,5153,1434,5153,4948,1, - 348,1,5157,3079,5153,1,1,1,233,414, - 364,5563,5650,5153,5015,5015,233,5011,233,233, - 233,233,5071,1,3747,723,233,1,1,1, - 1,1,1,1,1,1,1,1,1,5153, - 5585,5586,5587,5153,5008,5153,5170,5171,5163,1, - 4996,4996,5162,4993,1,1305,1857,5484,364,1, - 1,1,1,1,1,1,1,1,1,454, - 1115,349,1434,242,364,1,4951,2406,2378,126, - 30,1,1,1,233,413,37,5563,5650,4803, - 3004,2979,4803,5153,4803,4803,364,4803,4803,4803, - 5153,5097,5092,3687,4993,784,5089,3598,5086,3954, - 1214,5156,4803,4803,4803,228,5585,5586,5587,5153, - 4764,4761,364,729,4809,4791,3598,1857,144,5422, - 5420,5429,5415,5428,5424,5425,5423,5426,5427,5430, - 5421,4984,4803,145,364,394,4984,4803,5153,386, - 994,117,4803,4803,1838,5153,5418,4803,4803,4803, - 3235,5491,5492,5412,5419,5391,5417,5416,5413,5414, - 5392,2073,1,723,4803,4803,4803,4803,4803,4803, - 4803,4803,4803,4803,4803,4803,4803,4803,4803,54, - 4942,4939,4803,4803,4803,4803,4803,4803,4803,4803, - 4803,4803,4803,4803,4803,5153,4803,145,4806,1846, - 1815,4806,1,4806,4806,4606,4806,4806,4806,368, - 5032,5028,2712,1,784,1,3598,1,5153,2284, - 5153,4806,4806,4806,5153,1,5032,5028,2712,2649, - 784,3976,3598,314,4945,2247,2895,3998,3615,5153, - 1773,1731,1689,1647,1605,1563,1521,1479,1437,1395, - 4076,4806,125,5153,4764,4761,4806,729,784,5153, - 3598,4806,4806,3004,2979,1857,4806,4806,4806,346, - 43,43,2632,5195,138,1305,1133,5484,142,1847, - 2697,1857,2349,4806,4806,4806,4806,4806,4806,4806, - 4806,4806,4806,4806,4806,4806,4806,4806,4948,2247, - 1267,4806,4806,4806,4806,4806,4806,4806,4806,4806, - 4806,4806,4806,4806,4076,4806,5153,1,1,1, - 1,1,1,1,1,1857,1,1,1,54, - 1,1,1,5171,1,1,1,1,1,1, - 1,1,1,1,320,1,1,5074,1,1, - 1,1,1,1,1,1,1,5171,1,1, - 1,1,312,5097,5092,3687,4993,784,5089,3598, - 5086,442,43,43,1,5195,5153,4990,2318,4987, - 1,1,1,5032,5028,3687,140,784,512,3598, - 5687,1,4852,4848,2705,4856,3793,3866,3598,3888, - 1857,4812,3844,3822,5153,4839,4845,4818,1376,4821, - 4833,4830,4836,4827,4824,4815,4842,3932,3910,5153, - 5176,1054,4077,676,771,5178,716,2664,724,5179, - 5177,673,5153,5172,5174,5175,5173,1,5032,5028, - 5062,5163,5065,53,5068,5162,5163,43,359,1310, - 5162,5195,513,2073,874,43,43,43,4764,4761, - 2705,729,3793,3866,3598,3888,5161,911,3844,3822, - 5153,5422,5420,5429,2580,5428,5424,5425,5423,5426, - 5427,5430,5421,3932,3910,591,5176,1054,1679,676, - 771,5178,716,2664,724,5179,5177,673,3580,5172, - 5174,5175,5173,1,5032,5028,3687,5153,784,5153, - 3598,1483,312,191,304,1310,312,4091,5161,5153, - 1,5032,5028,2712,5456,784,5153,3598,5161,5160, - 43,4764,4761,2705,729,3793,3866,3598,3888,5161, - 911,3844,3822,5511,5422,5420,5429,3266,5428,5424, - 5425,5423,5426,5427,5430,5421,3932,3910,5153,5176, - 1054,4305,676,771,5178,716,2664,724,5179,5177, - 673,1805,5172,5174,5175,5173,1857,1,5032,5028, - 3687,5160,784,1,3598,1012,2632,5662,1310,5153, - 4091,5160,342,147,4764,4761,2705,729,3793,3866, - 3598,3888,5160,911,3844,3822,337,5422,5420,5429, - 363,5428,5424,5425,5423,5426,5427,5430,5421,3932, - 3910,1,5176,1054,120,676,771,5178,716,2664, - 724,5179,5177,673,5150,5172,5174,5175,5173,1857, - 5153,5153,4764,4761,342,729,4809,5153,3598,342, - 4304,1310,5491,5492,5153,4255,342,43,43,1, - 4852,4848,2705,4856,3793,3866,3598,3888,5153,4812, - 3844,3822,2060,4839,4845,4818,3078,4821,4833,4830, - 4836,4827,4824,4815,4842,3932,3910,5153,5176,1054, - 4446,676,771,5178,716,2664,724,5179,5177,673, - 3253,5172,5174,5175,5173,98,1,1,5153,1, - 1,5002,1,5002,3976,43,5513,1310,1894,5195, - 3998,5131,5153,43,43,43,4764,4761,2705,729, - 3793,3866,3598,3888,5157,911,3844,3822,723,5422, - 5420,5429,5153,5428,5424,5425,5423,5426,5427,5430, - 5421,3932,3910,2662,5176,1054,851,676,771,5178, - 716,2664,724,5179,5177,673,5153,5172,5174,5175, - 5173,43,4764,4761,2705,729,3793,3866,3598,3888, - 5153,911,3844,3822,5160,5422,5420,5429,5153,5428, - 5424,5425,5423,5426,5427,5430,5421,3932,3910,119, - 5176,1054,3592,676,771,5178,716,2664,724,5179, - 5177,673,403,5172,5174,5175,5173,3686,5585,5586, - 5587,5056,101,43,43,5059,5195,3232,5080,1310, - 5077,4091,4255,5153,43,4764,4761,2705,729,3793, - 3866,3598,3888,5156,911,3844,3822,54,5422,5420, - 5429,5170,5428,5424,5425,5423,5426,5427,5430,5421, - 3932,3910,5153,5176,1054,4614,676,771,5178,716, - 2664,724,5179,5177,673,5170,5172,5174,5175,5173, - 5153,5153,1,5153,106,1125,5153,5619,5613,3976, - 5617,5153,1310,5611,5612,3998,5153,81,5153,4137, - 2778,293,5170,5171,42,4779,4776,425,5642,5643, - 5622,816,5620,33,386,386,4960,386,386,4960, - 386,4960,4963,5221,5222,5153,4960,395,4764,4761, - 386,5195,1,5032,5028,5062,1,5065,789,5068, - 4661,4767,5591,5623,5605,167,1341,1347,5644,5621, - 5153,5170,5171,3470,386,784,322,3598,43,386, - 386,386,386,386,386,386,386,386,386,4963, - 5633,5632,5645,5614,5615,5638,5639,118,2650,5636, - 5637,5616,5618,5640,5641,5153,4963,4366,5646,5626, - 5627,5628,5624,5625,5634,5635,5630,5629,5631,5153, - 5153,5153,1125,657,5619,5613,5153,5617,294,167, - 5611,5612,1857,2627,5153,4764,4761,796,729,784, - 5153,3598,49,4969,4969,5642,5643,5622,292,5620, - 36,387,387,4954,387,387,4954,387,4954,4957, - 40,5047,5044,4954,5153,4764,4761,387,5195,5153, - 5170,5171,5153,4966,3235,789,5153,4975,4972,5153, - 5623,5159,4202,1341,1347,5644,5621,3976,395,5170, - 5171,387,5552,3998,79,1986,387,387,387,387, - 387,387,387,387,387,387,4957,5633,5632,5645, - 5614,5615,5638,5639,1109,371,5636,5637,5616,5618, - 5640,5641,5083,4957,2897,5646,5626,5627,5628,5624, - 5625,5634,5635,5630,5629,5631,43,4764,4761,2705, - 729,3793,3866,3598,3888,5158,911,3844,3822,5153, - 5422,5420,5429,1651,5428,5424,5425,5423,5426,5427, - 5430,5421,3932,3910,5153,5176,1054,304,676,771, - 5178,716,2664,724,5179,5177,673,5456,5172,5174, - 5175,5173,1175,43,4764,4761,2705,729,3793,3866, - 3598,3888,1357,911,3844,3822,369,5422,5420,5429, - 5153,5428,5424,5425,5423,5426,5427,5430,5421,3932, - 3910,109,5176,1054,4551,676,771,5178,716,2664, - 724,5179,5177,673,445,5172,5174,5175,5173,41, - 4999,4999,43,4764,4761,3441,729,3793,3866,3598, - 3888,1310,911,3844,3822,5153,5422,5420,5429,5153, - 5428,5424,5425,5423,5426,5427,5430,5421,3932,3910, - 3110,5176,1054,1225,676,771,5178,716,2664,724, - 5179,5177,673,1,5172,5174,5175,5173,43,4764, - 4761,2705,729,3793,3866,3598,3888,5153,911,3844, - 3822,5153,5422,5420,5429,3191,5428,5424,5425,5423, - 5426,5427,5430,5421,3932,3910,4083,5176,1054,674, - 676,771,5178,716,2664,724,5179,5177,673,105, - 5172,5174,5175,5173,43,4764,4761,2705,729,3793, - 3866,3598,3888,3781,911,3844,3822,33,5422,5420, - 5429,5153,5428,5424,5425,5423,5426,5427,5430,5421, - 3932,3910,5153,5176,1054,5153,676,771,5178,716, - 2664,724,5179,5177,673,723,5172,5174,5175,5173, - 5153,4764,4761,5153,5195,2023,41,5005,5005,5153, - 670,5005,3497,3593,5422,5420,5429,5415,5428,5424, - 5425,5423,5426,5427,5430,5421,121,1,417,5153, - 4942,4939,3546,5153,5025,5022,5163,3249,421,5153, - 5162,5418,5153,7635,7117,5153,5491,5492,5412,5419, - 5391,5417,5416,5413,5414,5392,5153,246,4932,4928, - 123,4936,5549,5153,5193,5153,3546,670,573,5550, - 5551,4919,4925,4898,4883,4901,4913,4910,4916,4907, - 4904,4895,4922,1,5116,5116,233,5116,233,233, - 233,233,5119,3954,1214,2160,233,5153,4874,283, - 8463,3198,5110,4868,4865,4892,4871,4862,4877,4880, - 4889,4886,4859,5153,5113,5153,2110,3523,3040,5549, - 2,132,5153,5040,5036,573,5550,5551,1,5116, - 5116,233,5116,233,233,233,233,233,122,5153, - 2595,233,1560,3782,3546,8463,2848,5153,41,2515, - 2878,3523,3040,5193,5153,225,2627,423,5650,5113, - 39,1,5116,5116,233,5116,233,233,233,233, - 5122,134,5153,5153,233,1,4662,5153,8463,5153, - 7635,7117,4782,446,5159,2595,5153,1560,51,5053, - 5053,2848,5113,5153,5153,5159,2777,133,5153,2515, - 5153,5153,505,5650,1,5116,5116,233,5116,233, - 233,233,233,5119,2461,2434,1,233,2595,5050, - 1560,8463,1,813,2848,2515,5125,3090,376,3523, - 3040,526,4978,224,503,5113,5650,1,5116,5116, - 233,5116,233,233,233,233,5119,2938,5158,3311, - 233,1,4641,1,8463,1,5153,311,4981,5158, - 169,2595,197,1560,2461,2434,197,2848,5113,4632, - 5153,5337,3135,3380,5153,5153,225,4075,5128,5650, - 1,5116,5116,233,5116,233,233,233,233,233, - 2461,2434,519,233,2595,526,1560,8463,5153,5153, - 2848,4635,2741,5153,5153,5153,4361,4088,4672,225, - 5153,5113,5650,1,5116,5116,233,5116,233,233, - 233,233,233,4284,169,1,233,5336,5153,5153, - 8463,5153,5153,5153,5153,5153,5153,2595,507,1560, - 5153,5153,3090,2848,5113,5153,5153,3198,5153,229, - 4184,5153,5153,5153,2846,5650,1,5116,5116,233, - 5116,233,233,233,233,233,5415,5153,5153,233, - 2595,5153,1560,8463,5153,230,2848,1944,5153,5153, - 5153,5153,5153,5153,5153,5153,5153,5113,5650,5153, - 5418,231,5415,5153,5153,5491,5492,5412,5419,5391, - 5417,5416,5413,5414,5392,933,5153,5153,5415,5153, - 5153,3198,5153,2595,5153,1560,5418,232,5153,2848, - 5153,5491,5492,5412,5419,5391,5417,5416,5413,5414, - 5392,5650,5418,5153,5415,5153,5153,5491,5492,5412, - 5419,5391,5417,5416,5413,5414,5392,5153,5153,5153, - 5153,5153,5153,5153,5153,5153,5153,5153,5418,5153, - 5153,5153,5153,5491,5492,5412,5419,5391,5417,5416, - 5413,5414,5392 - }; - }; - public final static char termAction[] = TermAction.termAction; - public final int termAction(int index) { return termAction[index]; } - - public interface Asb { - public final static char asb[] = {0, - 648,6,612,178,8,926,542,542,542,542, - 71,926,566,566,753,566,483,162,485,179, - 179,179,179,179,179,179,179,179,568,574, - 579,576,583,581,588,586,590,589,591,221, - 592,178,162,43,43,43,43,218,445,15, - 15,563,43,350,118,566,566,15,784,568, - 118,118,109,162,885,42,1015,73,1037,162, - 566,568,742,742,445,178,179,179,179,179, - 179,179,179,179,179,179,179,179,179,179, - 179,179,179,179,179,178,178,178,178,178, - 178,178,178,178,178,178,178,179,118,118, - 1101,1101,1101,1101,433,118,15,15,267,1026, - 1037,356,1037,364,1037,1,1037,1021,71,218, - 350,350,15,179,267,309,492,380,379,273, - 1043,1043,71,485,350,42,178,216,1014,118, - 215,218,217,215,118,350,576,576,574,574, - 574,581,581,581,581,579,579,586,583,583, - 589,588,590,1113,591,926,926,926,926,218, - 218,1101,1063,1100,1101,563,218,559,388,388, - 218,368,433,367,353,370,544,218,218,218, - 433,1101,109,350,606,118,494,496,218,1015, - 179,43,572,75,118,73,218,218,542,217, - 1015,178,178,178,178,178,926,926,162,271, - 559,388,388,368,354,368,433,368,544,544, - 218,433,218,118,384,372,383,496,433,216, - 118,572,267,1014,73,218,216,118,118,118, - 118,445,445,559,558,361,218,388,1113,2, - 542,435,969,1103,388,361,368,368,437,218, - 544,361,359,360,218,694,178,381,381,121, - 121,218,490,267,615,118,218,572,573,572, - 178,75,974,568,73,118,118,559,1015,704, - 370,1101,542,215,749,1105,212,926,531,70, - 438,218,361,179,218,694,178,178,496,1015, - 118,494,372,694,284,572,445,179,350,974, - 216,704,704,826,404,216,369,369,212,611, - 267,535,179,1113,129,437,218,71,71,218, - 877,496,216,694,573,118,350,612,361,690, - 976,262,926,2,862,704,704,404,216,369, - 370,71,1105,212,179,179,218,218,218,877, - 118,877,825,262,690,549,71,361,1100,542, - 552,552,612,370,142,532,218,926,218,218, - 926,870,877,826,704,612,128,611,118,71, - 218,404,826,404,1099,1099,928,143,71,218, - 445,497,870,704,178,932,212,612,218,218, - 404,43,43,928,142,1113,179,1113,612,926, - 926,926,143,926,218,228,612,612,218,370, - 118,117,872,361,118,930,218,612,1100,134, - 926,134,1113,143,162,162,160,692,162,612, - 612,823,928,43,872,930,612,529,615,118, - 212,118,160,262,926,118,928,360,552,118, - 118,297,143,823,143,612,262,178,143,140, - 930,1099,370,370,918,178,141,445,612,118, - 215,143,118,612,143 - }; - }; - public final static char asb[] = Asb.asb; - public final int asb(int index) { return asb[index]; } - - public interface Asr { - public final static byte asr[] = {0, - 4,1,2,60,0,122,0,9,71,118, - 73,13,66,0,32,64,33,34,65,7, - 35,36,37,38,58,39,40,42,43,44, - 29,26,27,8,6,11,12,5,30,61, - 45,3,48,14,15,62,46,16,68,49, - 17,18,50,51,19,20,52,53,21,22, - 54,69,55,10,70,23,24,47,25,41, - 1,2,4,0,96,90,11,12,91,92, - 88,89,28,93,94,97,98,99,100,101, - 102,117,71,95,67,107,108,109,110,111, - 112,113,114,115,116,118,72,13,61,1, - 2,8,6,4,3,56,66,73,9,0, - 76,60,61,71,95,73,56,3,9,66, - 13,67,0,75,103,104,105,31,71,119, - 121,72,74,76,59,57,63,78,80,86, - 84,77,82,83,85,87,60,79,81,13, - 9,48,62,46,68,49,17,50,51,52, - 53,54,69,55,70,41,47,58,64,65, - 10,33,37,35,32,40,15,25,14,21, - 19,20,22,23,18,16,24,42,45,43, - 44,29,39,34,38,26,27,11,12,30, - 36,8,6,3,4,7,5,1,2,0, - 61,71,95,66,118,73,72,14,15,32, - 64,16,33,34,18,19,20,65,35,21, - 22,36,37,38,58,39,40,10,23,24, - 25,42,43,44,29,26,27,11,12,30, - 45,9,13,7,5,3,1,2,8,4, - 6,0,14,15,16,18,19,20,21,22, - 23,24,25,48,46,49,17,50,51,52, - 53,54,55,41,47,13,9,73,7,1, - 2,56,3,8,6,5,4,0,64,65, - 3,10,33,37,35,32,40,15,25,14, - 21,19,20,22,23,18,16,24,42,45, - 43,44,29,39,34,38,5,7,4,26, - 27,8,6,11,12,30,36,1,2,118, - 9,0,4,71,28,60,9,0,67,66, - 72,9,0,31,1,2,4,9,71,60, - 0,8,6,4,5,7,1,2,3,56, - 61,67,66,9,73,95,0,75,57,7, - 103,104,105,59,9,3,8,6,5,71, - 72,13,74,48,14,15,62,46,16,68, - 49,17,18,50,51,19,20,52,53,21, - 22,54,69,55,10,70,23,41,24,47, - 25,4,1,2,31,0,41,1,2,4, - 103,104,105,0,9,73,14,15,32,16, - 33,34,18,19,20,35,21,22,36,37, - 38,58,39,40,10,23,24,25,42,43, - 44,29,3,26,27,8,6,11,12,30, - 4,45,5,7,1,2,65,64,0,7, - 5,3,56,6,8,95,48,14,15,46, - 16,68,49,17,18,50,51,19,20,52, - 53,21,22,54,69,55,10,70,23,41, - 24,47,25,1,2,4,73,9,62,0, - 9,60,66,0,71,9,56,3,67,66, - 13,28,0,1,2,9,72,0,60,67, - 0,61,67,66,1,2,0,58,46,7, - 47,5,1,2,4,76,60,120,106,26, - 27,56,3,96,90,6,91,92,11,12, - 89,88,28,93,94,97,98,8,99,100, - 101,61,95,73,67,107,108,109,110,111, - 112,113,114,115,116,71,118,72,102,117, - 66,13,9,0,48,14,15,62,46,16, - 68,49,17,18,50,51,19,20,52,53, - 21,22,54,69,55,10,70,23,41,24, - 47,25,1,2,4,95,0,14,15,32, - 64,16,33,34,18,19,20,65,7,35, - 21,22,36,37,38,58,39,40,10,23, - 24,25,42,43,44,1,2,3,26,27, - 8,6,11,12,5,30,4,45,74,29, - 0,77,0,46,58,47,9,61,95,67, - 66,73,0,63,48,14,15,62,46,16, - 68,49,75,17,18,50,51,19,20,52, - 57,53,21,22,54,69,55,10,70,23, - 59,41,24,47,25,9,3,8,6,72, - 13,7,4,31,5,1,2,0,60,71, - 76,0,48,14,15,62,46,16,68,49, - 17,18,50,51,19,20,52,53,21,22, - 54,69,55,10,70,23,41,24,47,25, - 1,2,4,65,64,11,12,6,91,92, - 99,8,100,5,30,28,61,110,111,107, - 108,109,115,114,116,89,88,112,113,97, - 98,93,94,101,102,26,27,66,90,106, - 3,56,67,0,60,62,46,16,68,49, - 18,50,51,19,20,52,53,21,22,54, - 69,55,70,23,41,24,47,25,15,14, - 48,9,3,8,6,13,59,63,75,17, - 31,7,1,2,5,4,10,57,0,46, - 47,76,3,60,71,13,58,9,61,95, - 67,66,73,0,64,65,26,27,11,12, - 30,36,42,45,43,44,29,39,34,38, - 15,25,14,21,19,20,22,23,18,16, - 24,10,33,37,35,32,40,8,6,4, - 56,7,5,1,2,3,0,119,0,9, - 72,64,65,58,26,27,8,6,11,12, - 30,36,3,42,45,43,44,29,39,34, - 38,15,25,14,21,19,20,22,23,18, - 16,24,33,37,35,32,40,60,7,1, - 2,4,10,5,0,62,46,16,68,49, - 18,50,51,19,20,52,53,21,22,54, - 69,55,10,70,23,41,24,47,25,15, - 14,48,9,3,8,13,59,57,63,75, - 17,28,4,6,7,1,2,5,31,0, - 10,68,62,69,70,15,25,14,21,19, - 20,22,23,18,16,24,76,60,71,95, - 118,72,7,53,54,55,41,47,1,2, - 52,51,50,17,49,5,4,46,48,9, - 73,13,56,3,120,96,106,90,26,27, - 8,6,11,12,91,92,88,89,28,93, - 94,97,98,99,100,101,102,117,107,108, - 109,110,111,112,113,114,115,116,67,66, - 61,0,13,9,7,5,3,1,2,6, - 8,4,71,0 - }; - }; - public final static byte asr[] = Asr.asr; - public final int asr(int index) { return asr[index]; } - - public interface Nasb { - public final static char nasb[] = {0, - 188,12,198,31,12,12,12,12,12,12, - 186,12,12,12,218,12,42,133,76,31, - 31,229,31,31,31,31,31,31,12,12, - 12,12,12,12,12,12,12,12,12,31, - 12,31,133,205,205,205,205,76,130,145, - 145,59,5,102,154,12,12,145,220,12, - 154,154,120,1,31,87,67,12,12,133, - 12,12,20,20,130,171,31,31,31,31, - 31,31,31,31,31,31,31,31,31,31, - 31,31,31,31,31,31,31,31,31,31, - 31,31,31,31,31,31,171,31,154,154, - 12,12,12,12,62,154,29,29,185,250, - 251,12,251,114,251,15,251,244,10,76, - 102,102,29,31,185,97,119,13,13,12, - 12,12,10,76,102,205,111,214,49,154, - 213,233,76,213,154,102,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,116, - 11,12,12,12,12,39,76,145,145,145, - 116,145,174,145,12,12,145,174,76,11, - 12,12,37,102,12,154,161,145,76,67, - 31,205,145,46,154,12,11,76,12,108, - 67,31,171,171,171,171,12,12,29,12, - 166,253,253,145,145,124,66,124,145,234, - 11,66,116,154,12,138,12,149,65,116, - 154,95,39,49,12,233,116,154,154,154, - 154,130,130,145,166,74,76,198,12,81, - 12,12,91,260,253,74,124,124,126,116, - 234,74,12,12,116,145,31,12,12,13, - 13,76,137,185,149,154,116,145,106,12, - 171,39,109,12,12,154,154,166,67,145, - 12,12,12,186,145,179,140,12,12,186, - 57,174,74,31,234,166,31,31,145,67, - 154,161,208,145,12,95,130,31,102,109, - 214,222,145,236,145,174,145,79,210,198, - 185,12,31,12,83,53,174,186,186,11, - 145,149,214,166,106,154,102,198,74,12, - 236,261,12,234,91,236,222,149,214,79, - 227,192,140,210,31,31,11,174,174,89, - 154,145,145,179,12,12,186,74,12,12, - 177,177,198,227,26,12,174,12,11,11, - 12,145,89,236,145,198,18,12,154,186, - 174,149,236,145,12,12,145,156,192,11, - 130,152,166,222,111,31,140,198,174,81, - 149,205,205,93,168,12,31,12,198,12, - 12,12,169,12,234,196,198,198,234,104, - 154,154,145,74,154,145,81,198,12,85, - 12,12,12,169,200,200,147,12,200,198, - 198,12,145,205,89,69,198,12,205,154, - 140,154,204,145,12,154,93,74,177,154, - 154,145,169,12,169,198,140,171,169,85, - 69,12,104,104,138,31,12,241,198,154, - 213,169,154,198,169 - }; - }; - public final static char nasb[] = Nasb.nasb; - public final int nasb(int index) { return nasb[index]; } - - public interface Nasr { - public final static char nasr[] = {0, - 3,13,7,10,149,147,119,146,145,5, - 2,0,71,0,5,1,0,178,0,5, - 2,10,7,136,0,4,64,0,43,4, - 5,7,10,2,13,0,94,93,5,55, - 0,2,7,3,0,4,172,0,65,135, - 134,0,5,99,162,0,184,0,4,186, - 0,48,65,0,48,2,65,0,13,2, - 10,7,5,64,0,2,44,0,155,0, - 103,0,182,0,111,0,170,0,123,0, - 152,0,157,0,140,0,13,2,10,7, - 5,75,0,59,0,138,0,2,112,0, - 4,32,0,5,44,2,3,0,31,93, - 94,4,0,108,0,5,99,183,0,4, - 96,0,4,43,39,0,31,94,93,63, - 48,7,10,2,4,0,39,176,23,4, - 0,43,4,31,0,4,47,39,174,0, - 23,4,5,89,0,60,0,64,47,76, - 4,39,0,2,61,0,107,0,2,63, - 48,7,10,4,89,5,0,4,39,169, - 0,166,5,165,0,4,39,38,0,4, - 43,102,0,175,4,43,0,94,93,48, - 63,55,5,7,10,2,0,4,43,167, - 0,113,4,47,72,0,156,0,5,7, - 10,13,3,1,0,4,47,72,83,0, - 4,173,0,2,5,119,115,116,117,13, - 86,0,4,47,72,99,45,5,0,38, - 48,7,10,2,4,154,0 - }; - }; - public final static char nasr[] = Nasr.nasr; - public final int nasr(int index) { return nasr[index]; } - - public interface TerminalIndex { - public final static char terminalIndex[] = {0, - 115,116,3,33,15,12,81,11,1,102, - 13,14,121,50,54,62,68,70,76,77, - 88,89,104,107,109,9,10,21,114,16, - 95,57,63,69,86,90,92,96,99,101, - 106,111,112,113,123,56,108,49,66,72, - 75,78,85,91,100,2,79,97,105,4, - 22,55,48,60,80,46,35,65,93,103, - 32,120,119,122,67,98,110,51,52,58, - 59,61,71,73,74,87,94,19,20,8, - 17,18,23,24,34,6,25,26,27,28, - 29,30,82,83,84,7,36,37,38,39, - 40,41,42,43,44,45,31,118,53,5, - 64,124,117 - }; - }; - public final static char terminalIndex[] = TerminalIndex.terminalIndex; - public final int terminalIndex(int index) { return terminalIndex[index]; } - - public interface NonterminalIndex { - public final static char nonterminalIndex[] = {0, - 131,136,138,0,0,137,235,135,0,229, - 134,0,145,133,0,0,144,150,0,0, - 151,160,181,161,162,163,164,165,166,167, - 127,153,168,169,170,0,143,129,132,171, - 0,140,154,139,179,0,0,0,0,0, - 0,0,0,147,157,0,204,0,174,188, - 0,201,205,128,0,0,0,0,0,0, - 206,0,0,177,126,173,0,0,0,0, - 0,0,130,0,0,187,0,0,202,212, - 159,208,209,210,0,0,0,0,220,148, - 207,176,197,0,0,211,0,0,0,240, - 241,149,180,0,190,191,192,193,194,196, - 199,0,0,214,217,219,0,221,0,238, - 0,239,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,223,224, - 226,228,0,232,233,234,236,237,125,0, - 152,155,0,175,0,178,0,200,213,218, - 222,225,227,0,230,231,242,243,0,0, - 0,0,0,0 - }; - }; - public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex; - public final int nonterminalIndex(int index) { return nonterminalIndex[index]; } - - public interface ScopePrefix { - public final static char scopePrefix[] = { - 161,582,601,533,549,560,571,366,271,285, - 307,313,42,296,386,424,169,590,476,20, - 51,71,80,85,90,127,141,197,302,319, - 330,341,277,291,504,27,376,341,609,27, - 219,250,1,14,61,76,106,151,232,324, - 337,346,355,359,442,469,498,525,529,619, - 623,627,97,7,97,151,404,420,433,453, - 517,433,540,556,567,578,209,487,56,56, - 158,224,227,245,266,227,227,56,363,448, - 466,473,158,56,640,110,238,408,460,116, - 116,238,56,238,395,179,104,446,631,638, - 631,638,65,414,134,134,104,104,255 - }; - }; - public final static char scopePrefix[] = ScopePrefix.scopePrefix; - public final int scopePrefix(int index) { return scopePrefix[index]; } - - public interface ScopeSuffix { - public final static char scopeSuffix[] = { - 18,5,5,5,5,5,5,373,132,95, - 132,132,48,282,392,430,175,67,482,25, - 25,25,59,59,95,132,132,202,132,132, - 335,335,282,101,509,38,381,596,614,32, - 213,213,5,18,5,59,95,132,236,328, - 328,328,95,95,132,248,5,5,5,5, - 5,248,236,11,101,155,373,373,373,457, - 509,437,544,544,544,544,213,491,59,59, - 5,5,230,248,5,269,269,353,95,451, - 5,248,5,502,5,113,350,411,463,119, - 123,241,521,512,398,182,95,95,633,633, - 635,635,67,416,136,146,204,189,257 - }; - }; - public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix; - public final int scopeSuffix(int index) { return scopeSuffix[index]; } - - public interface ScopeLhs { - public final static char scopeLhs[] = { - 45,17,17,17,17,17,17,79,85,46, - 69,117,66,52,79,78,45,17,19,3, - 6,9,162,162,128,115,115,45,70,117, - 116,118,53,46,136,131,79,17,17,131, - 95,56,133,82,165,162,128,125,58,116, - 116,118,177,50,59,140,18,17,17,17, - 17,17,12,111,128,125,79,78,78,36, - 136,78,17,17,17,17,95,19,166,162, - 178,93,101,71,57,154,74,118,80,77, - 141,140,170,136,16,128,118,102,21,126, - 126,55,136,136,79,45,128,73,134,44, - 134,44,165,102,115,115,45,45,56 - }; - }; - public final static char scopeLhs[] = ScopeLhs.scopeLhs; - public final int scopeLhs(int index) { return scopeLhs[index]; } - - public interface ScopeLa { - public final static byte scopeLa[] = { - 119,73,73,73,73,73,73,73,72,13, - 72,72,61,1,73,121,60,3,73,61, - 61,61,1,1,13,72,72,60,72,72, - 1,1,1,1,4,61,13,1,1,61, - 73,73,73,119,73,1,13,72,1,1, - 1,1,13,13,72,118,73,73,73,73, - 73,118,1,73,1,66,73,73,73,71, - 4,73,61,61,61,61,73,3,1,1, - 73,73,3,118,73,1,1,1,13,71, - 73,118,73,5,73,1,31,67,73,1, - 1,6,1,31,77,76,13,13,4,4, - 4,4,3,1,9,60,1,1,3 - }; - }; - public final static byte scopeLa[] = ScopeLa.scopeLa; - public final int scopeLa(int index) { return scopeLa[index]; } - - public interface ScopeStateSet { - public final static char scopeStateSet[] = { - 94,245,245,245,245,245,245,105,85,94, - 82,151,82,97,105,105,94,245,245,178, - 220,221,53,53,78,151,151,94,82,151, - 151,151,97,94,134,46,105,245,245,46, - 143,62,24,105,28,53,78,308,62,151, - 151,151,20,97,31,59,245,245,245,245, - 245,245,240,6,78,308,105,105,105,277, - 134,105,245,245,245,245,143,245,28,53, - 22,143,145,139,62,56,67,151,105,105, - 50,59,137,134,245,78,151,1,246,151, - 151,118,134,134,105,94,78,11,115,155, - 115,155,28,1,151,151,94,94,62 - }; - }; - public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet; - public final int scopeStateSet(int index) { return scopeStateSet[index]; } - - public interface ScopeRhs { - public final static char scopeRhs[] = {0, - 311,3,58,0,127,0,310,3,119,0, - 127,174,0,127,182,76,0,216,0,252, - 127,28,125,0,22,0,291,127,28,31, - 0,22,55,0,35,133,0,22,55,0, - 0,291,127,28,31,195,0,22,130,0, - 252,127,28,130,0,184,128,0,143,0, - 219,3,289,0,289,0,3,0,127,0, - 252,127,28,133,0,184,128,222,0,184, - 128,41,222,0,184,128,307,41,0,131, - 188,167,128,0,129,0,188,167,128,0, - 135,129,0,170,0,304,127,170,0,127, - 170,0,222,129,0,167,242,0,138,0, - 0,0,136,0,0,0,281,127,9,249, - 0,128,0,249,0,1,0,0,128,0, - 281,127,60,249,0,4,0,0,128,0, - 303,127,60,0,46,128,0,155,3,0, - 127,279,278,127,76,277,170,0,278,127, - 76,277,170,0,215,0,216,0,277,170, - 0,98,0,0,215,0,216,0,203,98, - 0,0,215,0,216,0,278,127,277,170, - 0,215,0,203,0,0,215,0,227,127, - 3,0,127,0,0,0,0,0,227,127, - 3,216,0,224,3,0,212,127,0,208, - 0,188,167,171,0,135,0,167,128,0, - 12,0,0,0,214,56,0,126,0,227, - 127,3,180,0,180,0,3,0,0,127, - 0,0,0,0,0,197,3,0,201,0, - 237,127,60,29,17,0,184,128,57,59, - 0,197,129,0,131,184,128,275,59,0, - 184,128,275,59,0,184,128,67,124,57, - 0,237,127,60,57,0,237,127,60,226, - 57,0,273,127,60,124,68,0,273,127, - 60,68,0,184,128,68,0,136,0,188, - 184,128,242,0,138,0,184,128,242,0, - 188,167,128,10,0,167,128,10,0,95, - 138,0,148,0,266,127,146,0,266,127, - 170,0,162,86,0,296,161,298,299,3, - 83,0,127,173,0,298,299,3,83,0, - 129,0,127,173,0,162,3,77,199,82, - 0,127,129,0,199,82,0,110,3,132, - 127,129,0,225,3,77,0,197,166,0, - 35,171,0,166,0,177,35,171,0,225, - 3,87,0,199,154,225,3,85,0,64, - 173,0,225,3,85,0,127,173,64,173, - 0,297,127,60,0,162,0,214,79,0, - 32,0,162,117,158,0,32,171,0,177, - 3,0,127,151,0,219,3,0,214,56, - 263,0,162,56,0,177,3,293,65,128, - 0,127,0,0,0,0,293,65,128,0, - 3,147,127,0,0,0,0,177,3,36, - 0,149,0,126,31,167,128,0,33,149, - 0,95,138,33,149,0,223,184,128,0, - 148,33,149,0,177,3,40,0,162,3, - 40,0,162,3,61,177,28,32,0,177, - 28,32,0,22,3,132,127,0,162,3, - 61,177,28,35,0,177,28,35,0,162, - 3,61,177,28,37,0,177,28,37,0, - 162,3,61,177,28,33,0,177,28,33, - 0,219,3,126,188,167,128,10,0,126, - 188,167,128,10,0,138,3,0,127,0, - 219,3,125,171,167,128,10,0,171,167, - 128,10,0,136,3,0,127,0,219,3, - 136,0,219,3,140,0,162,56,140,0, - 258,0,33,0,33,141,0,165,0,162, - 3,0 - }; - }; - public final static char scopeRhs[] = ScopeRhs.scopeRhs; - public final int scopeRhs(int index) { return scopeRhs[index]; } - - public interface ScopeState { - public final static char scopeState[] = {0, - 3410,4361,4075,3380,0,1643,1898,1179,1769,0, - 3440,3379,3315,3255,3195,3135,3070,2896,2834,2741, - 0,614,0,2105,1931,1219,0,3311,3191,0, - 3440,3379,2740,2707,3315,3255,3195,3135,2133,3070, - 2896,2834,4097,3633,0,4584,4255,4540,0,3310, - 2141,0,813,2650,0,580,4529,0,2932,1796, - 0,4424,580,4173,3569,4529,3342,4064,4502,4284, - 2787,3580,3687,3029,2712,2637,0,4523,4398,4390, - 0,4523,4398,4390,3707,4304,4250,3653,4196,4142, - 4083,3599,0,4523,4398,4390,3707,4304,4250,3653, - 4196,4142,4083,3599,3440,3379,3315,3255,3195,3135, - 3070,2896,2834,0,1376,791,0,2787,4424,4652, - 4173,3569,3071,3029,3600,4612,3262,2847,717,863, - 4359,4307,0,796,657,0,1214,0,2158,1011, - 585,558,3569,717,3342,2712,2637,2632,2761,0, - 4323,535,2542,0,4269,4161,3726,3672,3466,3219, - 3163,3096,4600,4596,4579,4571,4451,3063,2922,4378, - 2889,2827,2821,2589,1939,1007,0,4269,3678,4161, - 3610,3369,3726,3672,3466,2584,919,3219,3163,3096, - 3504,4600,3375,3295,4596,3249,3235,3110,2580,2241, - 4579,3228,4571,3321,4451,3063,2922,2234,4378,1221, - 2889,784,2827,2821,4323,2589,2542,1939,1007,729, - 3342,4064,4502,4284,2787,4424,3580,2147,580,1120, - 4173,639,3569,3687,3029,2712,4529,2637,624,933, - 2060,994,796,657,2664,4042,4020,2247,2284,591, - 2318,2406,2378,2349,2598,2551,2515,2488,2461,2434, - 3546,3523,3040,3004,2979,3998,3976,3954,3932,3910, - 3888,3866,3844,3822,3793,1054,1944,2197,2160,2110, - 2073,2023,1225,1175,1986,1133,874,1894,1857,819, - 740,685,1815,1773,1731,1689,1647,1605,1563,1521, - 1479,1437,1395,535,1353,1310,1078,1012,952,1267, - 0 - }; - }; - public final static char scopeState[] = ScopeState.scopeState; - public final int scopeState(int index) { return scopeState[index]; } - - public interface InSymb { - public final static char inSymb[] = {0, - 0,292,162,127,265,40,32,35,37,33, - 10,136,125,133,7,130,4,3,128,36, - 30,5,12,11,6,8,27,26,140,145, - 148,147,150,149,152,151,156,153,157,58, - 158,66,3,28,28,28,28,128,3,28, - 28,166,127,56,3,64,65,28,7,125, - 177,162,166,127,64,65,167,165,125,3, - 124,126,106,120,3,56,90,96,12,11, - 92,91,6,94,93,61,28,88,89,8, - 98,97,100,99,101,116,115,114,113,112, - 111,110,109,108,107,67,117,102,177,162, - 177,177,177,177,167,219,127,127,127,267, - 268,249,269,242,270,68,271,272,10,128, - 56,56,127,154,127,56,3,217,216,136, - 126,125,10,128,56,293,3,188,4,177, - 31,5,128,31,219,162,147,147,145,145, - 145,149,149,149,149,148,148,151,150,150, - 153,152,156,162,157,61,61,61,61,188, - 171,252,134,255,252,212,128,6,9,60, - 167,230,128,126,125,124,60,128,128,184, - 167,252,212,214,158,224,127,3,128,167, - 198,3,294,166,155,258,188,128,125,184, - 167,71,3,3,3,3,126,125,66,167, - 127,127,127,126,125,127,184,127,60,127, - 184,167,31,227,228,146,229,127,167,31, - 177,127,127,4,223,5,31,162,162,162, - 162,3,3,6,183,281,128,168,222,57, - 31,195,59,170,282,281,127,127,71,188, - 127,273,124,274,188,154,67,224,197,186, - 180,171,3,127,66,227,188,154,260,263, - 56,178,4,124,126,219,219,127,167,60, - 226,28,31,275,277,127,3,180,306,222, - 41,128,273,67,66,127,67,67,3,167, - 197,127,212,154,126,127,3,56,162,4, - 188,127,60,61,28,128,76,127,212,304, - 127,125,71,284,197,66,128,41,307,184, - 220,127,188,127,260,219,214,131,237,17, - 31,170,63,57,59,236,127,127,184,127, - 278,71,66,212,71,67,184,128,128,127, - 227,220,29,127,3,124,57,237,291,31, - 10,62,131,278,60,288,128,289,184,184, - 58,154,127,127,60,266,197,276,29,67, - 128,66,61,28,230,230,279,127,66,184, - 3,3,127,127,3,67,66,154,128,184, - 127,67,67,127,297,81,79,1,162,87, - 85,83,82,77,84,86,80,78,57,76, - 219,311,220,237,155,60,184,226,291,280, - 119,9,214,71,3,3,3,199,3,124, - 162,124,182,66,127,127,226,61,3,225, - 166,225,299,146,77,225,127,303,62,95, - 310,166,154,197,154,298,127,3,154,280, - 66,230,154,154,127,67,199,161,266,162, - 67,121,296,154,154 - }; - }; - public final static char inSymb[] = InSymb.inSymb; - public final int inSymb(int index) { return inSymb[index]; } - - public interface Name { - public final static String name[] = { - "", - "EOC", - "[", - "(", - "{", - ".", - ".*", - "->", - "->*", - "++", - "--", - "&", - "*", - "+", - "-", - "~", - "!", - "/", - "%", - ">>", - "<<", - "<", - ">", - "<=", - ">=", - "==", - "!=", - "^", - "|", - "&&", - "||", - "?", - ":", - "::", - "...", - "=", - "*=", - "/=", - "%=", - "+=", - "-=", - ">>=", - "<<=", - "&=", - "^=", - "|=", - ",", - "$empty", - "asm", - "auto", - "bool", - "break", - "case", - "catch", - "char", - "class", - "const", - "const_cast", - "continue", - "default", - "delete", - "do", - "double", - "dynamic_cast", - "else", - "enum", - "explicit", - "export", - "extern", - "false", - "float", - "for", - "friend", - "goto", - "if", - "inline", - "int", - "long", - "mutable", - "namespace", - "new", - "operator", - "private", - "protected", - "public", - "register", - "reinterpret_cast", - "return", - "short", - "signed", - "sizeof", - "static", - "static_cast", - "struct", - "switch", - "template", - "this", - "throw", - "try", - "true", - "typedef", - "typeid", - "typename", - "union", - "unsigned", - "using", - "virtual", - "void", - "volatile", - "wchar_t", - "while", - "integer", - "floating", - "charconst", - "stringlit", - "identifier", - "Completion", - "Invalid", - "RightBracket", - "RightParen", - "RightBrace", - "SemiColon", - "ERROR_TOKEN", - "0", - "EOF_TOKEN", - "expression_parser_start", - "]", - ")", - "}", - ";", - "declaration", - "identifier_token", - "expression", - "id_expression", - "qualified_or_unqualified_name", - "unqualified_id_name", - "identifier_name", - "operator_function_id_name", - "template_id_name", - "nested_name_specifier", - "class_or_namespace_name", - "nested_name_specifier_with_tem" + - "plate", - "class_or_namespace_name_with_t" + - "emplate", - "class_name", - "postfix_expression", - "simple_type_specifier", - "pseudo_destructor_name", - "type_id", - "type_name", - "destructor_type_name", - "unary_expression", - "cast_expression", - "new_type_id", - "expression_list", - "type_specifier_seq", - "new_declarator", - "new_pointer_operators", - "ptr_operator", - "new_array_expressions", - "constant_expression", - "pm_expression", - "multiplicative_expression", - "additive_expression", - "shift_expression", - "relational_expression", - "equality_expression", - "and_expression", - "exclusive_or_expression", - "inclusive_or_expression", - "logical_and_expression", - "logical_or_expression", - "assignment_expression", - "expression_list_actual", - "statement", - "compound_statement", - "statement_seq", - "condition", - "declarator", - "for_init_statement", - "function_definition", - "declaration_seq", - "declaration_specifiers", - "simple_declaration_specifiers", - "class_declaration_specifiers", - "elaborated_declaration_specifi" + - "ers", - "enum_declaration_specifiers", - "type_name_declaration_specifie" + - "rs", - "no_type_declaration_specifier", - "cv_qualifier", - "no_type_declaration_specifiers", - "class_specifier", - "elaborated_type_specifier", - "enum_specifier", - "type_name_specifier", - "class_keyword", - "enumerator_list", - "enumerator_definition", - "namespace_name", - "init_declarator_list", - "init_declarator_complete", - "initializer", - "direct_declarator", - "ptr_operator_seq", - "function_declarator", - "basic_direct_declarator", - "array_direct_declarator", - "array_modifier", - "abstract_declarator", - "direct_abstract_declarator", - "basic_direct_abstract_declarat" + - "or", - "array_direct_abstract_declarat" + - "or", - "parameter_declaration_list", - "parameter_declaration", - "parameter_init_declarator", - "parameter_initializer", - "function_body", - "handler_seq", - "initializer_clause", - "initializer_list", - "class_head", - "access_specifier_keyword", - "member_declaration", - "member_declarator_list", - "member_declaration_list", - "member_declarator", - "constant_initializer", - "bit_field_declarator", - "base_specifier_list", - "base_specifier", - "conversion_function_id", - "conversion_type_id", - "conversion_declarator", - "mem_initializer_list", - "mem_initializer", - "mem_initializer_name", - "operator_id_name", - "overloadable_operator", - "template_parameter_list", - "template_parameter", - "template_argument_list", - "template_argument", - "handler", - "exception_declaration", - "type_id_list" - }; - }; - public final static String name[] = Name.name; - public final String name(int index) { return name[index]; } - - public final static int - ERROR_SYMBOL = 74, - SCOPE_UBOUND = 118, - SCOPE_SIZE = 119, - MAX_NAME_LENGTH = 37; - - public final int getErrorSymbol() { return ERROR_SYMBOL; } - public final int getScopeUbound() { return SCOPE_UBOUND; } - public final int getScopeSize() { return SCOPE_SIZE; } - public final int getMaxNameLength() { return MAX_NAME_LENGTH; } - - public final static int - NUM_STATES = 525, - NT_OFFSET = 123, - LA_STATE_OFFSET = 5687, - MAX_LA = 2147483647, - NUM_RULES = 534, - NUM_NONTERMINALS = 194, - NUM_SYMBOLS = 317, - SEGMENT_SIZE = 8192, - START_STATE = 3130, - IDENTIFIER_SYMBOL = 0, - EOFT_SYMBOL = 122, - EOLT_SYMBOL = 122, - ACCEPT_ACTION = 4760, - ERROR_ACTION = 5153; - - public final static boolean BACKTRACK = true; - - public final int getNumStates() { return NUM_STATES; } - public final int getNtOffset() { return NT_OFFSET; } - public final int getLaStateOffset() { return LA_STATE_OFFSET; } - public final int getMaxLa() { return MAX_LA; } - public final int getNumRules() { return NUM_RULES; } - public final int getNumNonterminals() { return NUM_NONTERMINALS; } - public final int getNumSymbols() { return NUM_SYMBOLS; } - public final int getSegmentSize() { return SEGMENT_SIZE; } - public final int getStartState() { return START_STATE; } - public final int getStartSymbol() { return lhs[0]; } - public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; } - public final int getEoftSymbol() { return EOFT_SYMBOL; } - public final int getEoltSymbol() { return EOLT_SYMBOL; } - public final int getAcceptAction() { return ACCEPT_ACTION; } - public final int getErrorAction() { return ERROR_ACTION; } - public final boolean isValidForParser() { return isValidForParser; } - public final boolean getBacktrack() { return BACKTRACK; } - - public final int originalState(int state) { - return -baseCheck[state]; - } - public final int asi(int state) { - return asb[originalState(state)]; - } - public final int nasi(int state) { - return nasb[originalState(state)]; - } - public final int inSymbol(int state) { - return inSymb[originalState(state)]; - } - - public final int ntAction(int state, int sym) { - return baseAction[state + sym]; - } - - public final int tAction(int state, int sym) { - int i = baseAction[state], - k = i + sym; - return termAction[termCheck[k] == sym ? k : i]; - } - public final int lookAhead(int la_state, int sym) { - int k = la_state + sym; - return termAction[termCheck[k] == sym ? k : la_state]; - } -} diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParsersym.java deleted file mode 100644 index 966b0274cc4..00000000000 --- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParsersym.java +++ /dev/null @@ -1,270 +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 -*********************************************************************************/ - -// This file was generated by LPG - -package org.eclipse.cdt.internal.core.dom.lrparser.cpp; - -public interface CPPExpressionStatementParsersym { - public final static int - TK_asm = 63, - TK_auto = 48, - TK_bool = 14, - TK_break = 78, - TK_case = 79, - TK_catch = 119, - TK_char = 15, - TK_class = 62, - TK_const = 46, - TK_const_cast = 32, - TK_continue = 80, - TK_default = 81, - TK_delete = 64, - TK_do = 82, - TK_double = 16, - TK_dynamic_cast = 33, - TK_else = 121, - TK_enum = 68, - TK_explicit = 49, - TK_export = 75, - TK_extern = 17, - TK_false = 34, - TK_float = 18, - TK_for = 83, - TK_friend = 50, - TK_goto = 84, - TK_if = 85, - TK_inline = 51, - TK_int = 19, - TK_long = 20, - TK_mutable = 52, - TK_namespace = 57, - TK_new = 65, - TK_operator = 7, - TK_private = 103, - TK_protected = 104, - TK_public = 105, - TK_register = 53, - TK_reinterpret_cast = 35, - TK_return = 86, - TK_short = 21, - TK_signed = 22, - TK_sizeof = 36, - TK_static = 54, - TK_static_cast = 37, - TK_struct = 69, - TK_switch = 87, - TK_template = 31, - TK_this = 38, - TK_throw = 58, - TK_try = 76, - TK_true = 39, - TK_typedef = 55, - TK_typeid = 40, - TK_typename = 10, - TK_union = 70, - TK_unsigned = 23, - TK_using = 59, - TK_virtual = 41, - TK_void = 24, - TK_volatile = 47, - TK_wchar_t = 25, - TK_while = 77, - TK_integer = 42, - TK_floating = 43, - TK_charconst = 44, - TK_stringlit = 29, - TK_identifier = 1, - TK_Completion = 2, - TK_EndOfCompletion = 9, - TK_Invalid = 123, - TK_LeftBracket = 56, - TK_LeftParen = 3, - TK_LeftBrace = 60, - TK_Dot = 120, - TK_DotStar = 96, - TK_Arrow = 106, - TK_ArrowStar = 90, - TK_PlusPlus = 26, - TK_MinusMinus = 27, - TK_And = 8, - TK_Star = 6, - TK_Plus = 11, - TK_Minus = 12, - TK_Tilde = 5, - TK_Bang = 30, - TK_Slash = 91, - TK_Percent = 92, - TK_RightShift = 88, - TK_LeftShift = 89, - TK_LT = 28, - TK_GT = 61, - TK_LE = 93, - TK_GE = 94, - TK_EQ = 97, - TK_NE = 98, - TK_Caret = 99, - TK_Or = 100, - TK_AndAnd = 101, - TK_OrOr = 102, - TK_Question = 117, - TK_Colon = 71, - TK_ColonColon = 4, - TK_DotDotDot = 95, - TK_Assign = 67, - TK_StarAssign = 107, - TK_SlashAssign = 108, - TK_PercentAssign = 109, - TK_PlusAssign = 110, - TK_MinusAssign = 111, - TK_RightShiftAssign = 112, - TK_LeftShiftAssign = 113, - TK_AndAssign = 114, - TK_CaretAssign = 115, - TK_OrAssign = 116, - TK_Comma = 66, - TK_RightBracket = 118, - TK_RightParen = 73, - TK_RightBrace = 72, - TK_SemiColon = 13, - TK_ERROR_TOKEN = 74, - TK_0 = 45, - TK_EOF_TOKEN = 122; - - public final static String orderedTerminalSymbols[] = { - "", - "identifier", - "Completion", - "LeftParen", - "ColonColon", - "Tilde", - "Star", - "operator", - "And", - "EndOfCompletion", - "typename", - "Plus", - "Minus", - "SemiColon", - "bool", - "char", - "double", - "extern", - "float", - "int", - "long", - "short", - "signed", - "unsigned", - "void", - "wchar_t", - "PlusPlus", - "MinusMinus", - "LT", - "stringlit", - "Bang", - "template", - "const_cast", - "dynamic_cast", - "false", - "reinterpret_cast", - "sizeof", - "static_cast", - "this", - "true", - "typeid", - "virtual", - "integer", - "floating", - "charconst", - "0", - "const", - "volatile", - "auto", - "explicit", - "friend", - "inline", - "mutable", - "register", - "static", - "typedef", - "LeftBracket", - "namespace", - "throw", - "using", - "LeftBrace", - "GT", - "class", - "asm", - "delete", - "new", - "Comma", - "Assign", - "enum", - "struct", - "union", - "Colon", - "RightBrace", - "RightParen", - "ERROR_TOKEN", - "export", - "try", - "while", - "break", - "case", - "continue", - "default", - "do", - "for", - "goto", - "if", - "return", - "switch", - "RightShift", - "LeftShift", - "ArrowStar", - "Slash", - "Percent", - "LE", - "GE", - "DotDotDot", - "DotStar", - "EQ", - "NE", - "Caret", - "Or", - "AndAnd", - "OrOr", - "private", - "protected", - "public", - "Arrow", - "StarAssign", - "SlashAssign", - "PercentAssign", - "PlusAssign", - "MinusAssign", - "RightShiftAssign", - "LeftShiftAssign", - "AndAssign", - "CaretAssign", - "OrAssign", - "Question", - "RightBracket", - "catch", - "Dot", - "else", - "EOF_TOKEN", - "Invalid" - }; - - public final static boolean isValidForParser = true; -} 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 241579c82f9..e8dc72f8eca 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 @@ -2191,65 +2191,72 @@ public CPPNoCastExpressionParser(String[] mapFrom) { // constructor } // - // Rule 516: explicit_instantiation ::= template declaration + // Rule 514: template_argument ::= type_id // - case 516: { action.builder. + case 514: { action.builder. + consumeTemplateArgumentTypeId(); break; + } + + // + // Rule 515: explicit_instantiation ::= template declaration + // + case 515: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 517: explicit_specialization ::= template < > declaration + // Rule 516: explicit_specialization ::= template < > declaration // - case 517: { action.builder. + case 516: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 518: try_block ::= try compound_statement handler_seq + // Rule 517: try_block ::= try compound_statement handler_seq // - case 518: { action.builder. + case 517: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 521: handler ::= catch ( exception_declaration ) compound_statement + // Rule 520: handler ::= catch ( exception_declaration ) compound_statement // - case 521: { action.builder. + case 520: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 522: handler ::= catch ( ... ) compound_statement + // Rule 521: handler ::= catch ( ... ) compound_statement // - case 522: { action.builder. + case 521: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 523: exception_declaration ::= type_specifier_seq declarator + // Rule 522: exception_declaration ::= type_specifier_seq declarator // - case 523: { action.builder. + case 522: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 523: exception_declaration ::= type_specifier_seq abstract_declarator // - case 524: { action.builder. + case 523: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq + // Rule 524: exception_declaration ::= type_specifier_seq // - case 525: { action.builder. + case 524: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 533: no_cast_start ::= ERROR_TOKEN + // Rule 532: no_cast_start ::= ERROR_TOKEN // - case 533: { 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/CPPNoCastExpressionParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java index f1379524aa5..d871bdab7a9 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 @@ -88,418 +88,418 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 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,1,2,4,4,1,2, - 5,5,3,3,1,4,3,1,0,1, - 3,1,1,-108,0,0,0,-53,0,0, + 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,-53,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,-2,0,-4,0,0,0, - 0,-124,0,0,0,-5,0,-63,-369,0, - 0,0,0,-167,0,0,0,0,0,-90, + 0,0,0,0,0,-166,0,0,0,0, + 0,0,0,-2,0,-4,0,0,0,0, + -124,0,0,0,-5,0,-63,-368,0,0, + 0,0,-167,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,0,0,0,0, - 0,0,-135,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-338,0,0, - 0,-54,0,0,0,0,0,0,0,0, - 0,0,0,-6,0,-69,0,0,0,0, - 0,0,0,0,0,0,0,0,-127,0, - 0,-183,-7,0,0,0,0,0,0,0, - 0,0,0,-115,0,0,0,0,0,0, + 0,-135,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-337,0,0,0, + -54,0,0,0,0,0,0,0,0,0, + 0,0,-6,0,-69,0,0,0,0,0, + 0,0,0,0,0,0,0,-127,0,0, + -182,-7,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,-8,0,-212,0,0,0, - -10,0,-9,0,0,0,0,0,-16,0, - 0,0,0,-113,0,0,-387,0,-116,0, + 0,0,0,-8,0,-211,0,0,0,-10, + 0,-9,0,0,0,0,0,-16,0,0, + 0,0,-113,0,0,-386,0,-116,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-414, - 0,0,0,0,0,-171,0,0,0,0, - 0,0,0,-139,0,0,0,0,-11,-136, - -12,0,0,0,-70,0,0,0,0,0, - 0,0,0,0,0,0,0,-58,0,0, - 0,0,0,-13,-62,0,-15,-131,0,0, + 0,0,0,0,0,0,0,0,-413,0, + 0,0,0,0,-171,0,0,0,0,0, + 0,0,-139,0,0,0,0,-11,-136,-12, + 0,0,0,-70,0,0,0,0,0,0, + 0,0,0,0,0,0,-58,0,0,0, + 0,0,-13,-62,0,-15,-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,-377, + 0,0,0,0,-117,-28,0,0,0,0, + 0,-51,-252,0,0,0,0,-29,0,0, + 0,-225,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -378,0,0,0,0,-117,-28,0,0,0, - 0,0,-51,-253,0,0,0,0,-29,0, - 0,0,-226,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-30,0,-269,0,0,0,0,0, + 0,0,0,-321,0,0,-60,-356,0,0, + 0,-129,0,0,-49,0,0,0,0,0, + -517,0,0,0,-31,0,0,0,0,0, + 0,0,0,0,0,0,0,-32,0,0, + -482,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-30,0,-270,0,0,0,0, - 0,0,0,0,-322,0,0,-60,-357,0, - 0,0,-129,0,0,-49,0,0,0,0, - 0,-518,0,0,0,-31,0,0,0,0, - 0,0,0,0,0,0,0,0,-32,0, - 0,-483,0,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,-138,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-18,0,0,0, + -507,0,0,0,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,-138,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-18,0,0, - 0,-508,0,0,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,0,-20,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-345,0,0,0,0,0,0,0, - 0,0,0,-20,0,0,0,0,0,0, + 0,0,0,0,0,0,-3,0,0,0, + -241,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-294, + 0,0,0,0,0,0,0,-33,0,-456, + 0,0,0,-266,0,0,0,0,-362,0, + 0,0,-317,-34,0,0,0,0,0,-105, + 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,-3,0,0, - 0,-242,0,0,0,0,0,0,0,0, + 0,0,0,0,-35,0,0,0,0,0, + 0,0,0,0,-163,0,0,0,0,0, + 0,0,0,-328,0,0,0,-106,0,0, 0,0,0,0,0,0,0,0,0,0, - -295,0,0,0,0,0,0,0,-33,0, - -457,0,0,0,-267,0,0,0,0,-363, - 0,0,0,-318,-34,0,0,0,0,0, - -105,0,-292,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,0,0,0,0,-163,0,0,0,0, - 0,0,0,0,-329,0,0,0,-106,0, + 0,0,0,0,0,0,-242,0,0,0, + 0,0,-114,0,0,-36,0,0,0,0, + 0,0,-329,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,-243,0,0, - 0,0,0,-114,0,0,-36,0,0,0, - 0,0,0,-330,0,0,0,-137,0,0, 0,0,0,0,0,0,0,0,0,0, + -376,0,0,0,-432,0,0,0,-37,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-38,0,0, + 0,0,0,0,0,-40,0,0,0,0, + 0,-237,0,0,0,0,0,-39,0,0, + 0,-264,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-377,0,0,0,-433,0,0,0,-37, + -55,0,0,0,0,0,0,0,-56,0, + -50,0,0,0,0,0,0,0,0,0, + -41,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,-38,0, - 0,0,0,0,0,0,-40,0,0,0, - 0,0,-238,0,0,0,0,0,-39,0, - 0,0,-265,0,0,0,0,0,0,0, + 0,0,0,-351,0,0,0,0,0,0, + 0,-59,0,-286,0,0,0,-287,0,0, + 0,0,-92,0,0,0,-466,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-55,0,0,0,0,0,0,0,-56, - 0,-50,0,0,0,0,0,0,0,0, - 0,-41,0,0,0,-130,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,-59,0,-287,0,0,0,-288,0, - 0,0,0,-92,0,0,0,-467,0,0, + 0,0,0,0,0,-298,0,0,0,0, + 0,-371,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,-64,0,0, + 0,0,0,0,0,-65,0,-202,0,0, + 0,0,-451,0,0,0,-94,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,-372,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,-64,0, - 0,0,0,0,0,0,-65,0,-203,0, - 0,0,0,-452,0,0,0,-94,0,0, + 0,0,0,0,0,0,0,0,0,-57, + 0,0,0,0,0,-67,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,-68,0,0,0,0,0,0,0,-109, + 0,-347,0,0,0,0,0,-110,0,0, + -96,0,0,0,-142,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -57,0,0,0,0,0,-67,0,0,-95, 0,0,0,0,0,0,0,0,0,0, + 0,-111,0,-310,0,0,0,0,0,-112, + 0,0,-97,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, - -109,0,-348,0,0,0,0,0,-110,0, - 0,-96,0,0,0,-142,0,0,0,0, + 0,0,0,0,0,-120,0,0,0,0, + 0,0,0,-144,0,-145,0,0,0,0, + 0,-146,0,0,-98,0,0,0,-132,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,-147,0,-184,0,0, + 0,0,-455,0,0,0,-99,0,0,0, + -143,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-218, + 0,0,0,0,0,0,0,-148,0,-316, + 0,0,0,0,0,-149,0,0,-100,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-111,0,-311,0,0,0,0,0, - -112,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,-120,0,0,0, - 0,0,0,0,-144,0,-145,0,0,0, - 0,0,-146,0,0,-98,0,0,0,-132, + 0,-150,0,0,0,0,0,0,0,-151, + 0,-354,0,0,0,0,0,-152,0,0, + -101,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-210,0, - 0,0,0,0,0,0,-147,0,-185,0, - 0,0,0,-456,0,0,0,-99,0,0, - 0,-143,0,0,0,0,0,0,0,0, + 0,0,0,-153,0,0,0,0,0,0, + 0,-154,0,-185,0,0,0,0,-155,-156, + 0,0,-102,0,0,0,-295,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -219,0,0,0,0,0,0,0,-148,0, - -317,0,0,0,0,0,-149,0,0,-100, + 0,0,0,0,0,-157,0,0,0,0, + 0,0,0,-158,0,-159,0,0,0,-233, + 0,0,0,0,-164,0,0,0,-262,0, 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,-161,0,0,0,0, + 0,-210,0,0,0,-506,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-150,0,0,0,0,0,0,0, - -151,0,-355,0,0,0,0,0,-152,0, - 0,-101,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-153,0,0,0,0,0, - 0,0,-154,0,-186,0,0,0,0,-155, - -156,0,0,-102,0,0,0,-296,0,0, + 0,0,0,0,-162,0,0,0,-409,0, + -168,0,0,-177,0,0,0,-47,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,-157,0,0,0, - 0,0,0,0,-158,0,-159,0,0,0, - -234,0,0,0,0,-164,0,0,0,-263, + 0,0,0,0,-169,0,0,0,0,0, + 0,0,-170,0,0,0,0,0,-212,0, + 0,0,0,-320,0,0,0,-173,0,0, 0,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,-161,0,0,0, - 0,0,-211,0,0,0,-507,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-174,0,-175,0,0,0, + -324,0,0,0,-176,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-162,0,0,0,-410, - 0,-168,0,0,-177,0,0,0,-47,0, - 0,0,-513,0,0,0,0,0,0,0, + 0,0,0,-179,0,0,0,0,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,-169,0,0,0,0, - 0,0,0,-170,0,0,0,0,0,-213, - 0,0,0,0,-321,0,0,0,-173,0, + -349,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, + 0,-181,0,-191,0,0,0,-381,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-174,0,-175,0,0, - 0,-325,0,0,0,-176,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-179,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-141,0, + -326,0,0,0,0,0,0,0,-192,0, + -197,0,0,0,-375,0,0,0,-198,-204, + 0,0,0,0,0,-203,-207,-382,0,0, 0,0,0,0,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,-180,0,0,0,0,0, - 0,0,-181,0,-182,0,0,0,-382,0, + -213,0,0,0,0,0,0,0,0,0, + -223,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,-224,0,0, + 0,0,0,0,0,-226,0,-244,0,0, + 0,-187,0,0,0,-248,-250,-265,-205,0, + 0,0,0,-325,-104,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-327,0,0,0,0,0,0,0,-192, - 0,-193,0,0,0,-376,0,0,0,-198, - -199,0,0,0,0,0,-204,-205,-383,0, + 0,0,0,0,0,0,0,-267,0,0, + 0,0,0,0,0,0,0,-268,0,-214, + 0,-91,0,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,-89,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,-214,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,-224,0, - 0,0,0,0,0,0,-225,0,-227,0, - 0,0,-188,0,0,0,-245,-249,-251,-206, - 0,0,0,0,-326,-104,0,0,0,0, + 0,0,0,0,0,-86,0,0,0,-279, 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,0,-268,0, - -215,0,-91,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-346,0, + 0,0,0,0,-87,0,0,0,-359,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-241,0,0,0,0, - 0,0,0,0,0,-89,0,0,0,0, + 0,0,0,0,0,0,0,-272,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,-280,0,0,0,0, + -80,0,0,0,-284,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, - -269,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-347, - 0,0,0,0,0,-87,0,0,0,-360, + 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,-273,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,-280,0,0,0, - 0,-80,0,0,0,-281,0,0,0,0, + -278,0,0,0,-82,0,0,0,-288,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,-364,0,0, + 0,-83,0,0,0,-289,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-292,0,0,0,-52,0, + 0,0,-134,0,0,0,0,-84,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-279,0,0,0,-82,0,0,0,-285, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-365,0, - 0,0,-83,0,0,0,-289,0,0,0, + -186,0,0,0,0,0,-239,0,0,0, + -383,0,0,0,-355,-122,0,0,0,0, + 0,-397,0,0,-85,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-290,0,0,0,-52, - 0,0,0,-134,0,0,0,0,-84,0, 0,0,0,0,0,0,0,0,0,0, + -399,-412,0,-305,0,0,0,0,0,-238, + 0,0,-293,-249,0,0,0,0,0,0, + 0,0,0,0,-232,-481,-275,-245,0,0, + 0,0,-307,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,-187,0,0,0,0,0,-240,0,0, - 0,-384,0,0,0,-356,-122,0,0,0, - 0,0,-398,0,0,-85,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-431,0,0,0,0,0,-227, + -128,0,0,0,0,-247,-308,0,-297,0, + 0,0,0,-234,0,0,0,0,0,-273, + -208,0,0,0,0,0,0,0,0,-331, + -183,0,0,0,0,-274,-309,0,0,-400, + -401,0,0,0,0,0,-251,-236,0,-393, + 0,-43,0,0,0,0,0,0,-215,0, + -314,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-283,-473,-315,0,0, + 0,0,0,-390,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-400,-413,0,-306,0,0,0,0,0, - -239,0,0,-293,-250,0,0,0,0,0, - 0,0,0,0,0,-233,-482,-276,-246,0, - 0,0,0,-294,0,0,0,0,0,0, - 0,-19,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-48,0,0,0, + 0,-336,0,0,0,0,-246,0,0,0, + 0,0,0,-140,0,0,0,0,0,0, + -424,0,0,-434,0,-445,0,0,0,0, + 0,0,-509,0,0,0,0,0,0,0, + 0,0,0,0,-165,-471,-348,0,0,0, 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,-416,0,0,-254,0, + 0,-510,-441,0,0,0,0,0,0,0, + -350,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-195,0,0, + 0,0,-366,0,0,0,0,-369,-453,-440, + 0,0,-253,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,-322,0, + 0,-405,0,0,0,0,0,-493,0,0, + 0,0,0,0,0,-75,0,0,0,-392, + 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,0,-395,0,-312,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,-432,0,0,0,0,0, - -228,-128,0,0,0,0,-248,-308,0,-298, - 0,0,0,0,-235,0,0,0,0,0, - -274,-209,0,0,0,0,0,0,0,0, - -332,-184,0,0,0,0,-275,-309,0,0, - -401,-402,0,0,0,0,0,-252,-237,0, - -394,0,-43,0,0,0,0,0,0,-216, - 0,-310,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-284,-474,-315,0, - 0,0,0,0,-391,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-172, + 0,0,0,-370,0,0,-449,-333,-396,-402, + 0,0,0,0,-319,-188,-255,-119,0,0, + 0,0,0,0,-404,-365,0,0,0,0, + 0,-189,0,0,0,0,0,0,0,0, + -407,0,0,-418,0,0,-45,0,-256,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-48,0,0, - 0,0,-316,0,0,0,0,-247,0,0, - 0,0,0,0,-140,0,0,0,0,0, - 0,-425,0,0,-435,0,-446,0,0,0, - 0,0,0,-510,0,0,0,0,0,0, - 0,0,0,0,0,-165,-472,-337,0,0, + 0,-357,0,-107,0,0,0,0,0,0, + -414,-470,-190,0,0,0,0,0,0,0, + -118,0,0,0,0,0,0,0,0,0, + 0,-193,0,0,0,0,0,0,-243,-121, + 0,-421,0,0,0,0,0,-422,-394,0, + 0,0,0,0,-442,-374,0,0,0,0, + 0,0,0,0,0,0,0,-378,0,0, + 0,-499,0,0,0,0,-277,0,0,-201, + 0,-216,-444,0,0,0,0,0,0,0, 0,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,-417,0,0,-255, - 0,0,-511,-442,0,0,0,0,0,0, - 0,-349,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-196,0, - 0,0,0,-351,0,0,0,0,-367,-454, - -441,0,0,-254,0,0,0,0,0,0, - 0,-370,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-323, - 0,0,-406,0,0,0,0,0,-494,0, - 0,0,0,0,0,0,-75,0,0,0, - -392,0,0,0,0,0,0,0,0,0, + -446,-123,0,0,0,-257,0,0,0,0, + 0,-14,0,0,0,0,0,0,0,-447, + 0,0,0,0,0,0,0,0,-230,-17, + 0,-501,0,0,0,0,-1,-261,0,0, + 0,-300,0,-448,0,0,-302,0,0,0, + 0,0,0,0,0,0,-194,0,0,0, + 0,0,0,-318,0,0,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,-76,0,0,0,0,0,0,0,0, + 0,-505,-303,0,-465,0,0,0,0,0, + 0,-436,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-231,-228,0,-467,0, + 0,0,0,0,0,0,0,0,-454,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-393,0,-313,0,0,0, - 0,0,0,0,0,0,0,-77,0,0, + 0,0,0,0,0,-511,0,0,0,0, + 0,0,0,0,0,0,-332,-342,0,0, + 0,0,0,0,0,-468,0,0,0,0, + 0,0,0,0,-469,-518,-235,-260,0,0, + 0,0,0,0,0,0,0,-282,0,0, + -125,0,-474,0,0,-464,0,-476,0,0, + 0,0,0,0,0,0,0,0,0,-276, + 0,0,0,0,0,0,0,-478,0,0, + 0,0,0,-484,0,0,0,0,0,-406, + 0,0,0,0,0,0,-491,0,0,0, + 0,-521,-500,0,0,0,0,-477,0,-508, + 0,0,0,0,0,0,0,0,-42,-46, + -483,-200,0,0,0,0,0,-353,0,0, + 0,-513,0,-358,0,0,0,0,0,0, + 0,0,0,-387,0,0,0,0,0,0, + 0,0,0,0,0,-290,0,0,0,0, + 0,0,0,0,0,0,0,-306,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-78,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -172,0,0,0,-371,0,0,-450,-334,-396, - -397,0,0,0,0,-320,-189,-256,-119,0, - 0,0,0,0,0,-403,-366,0,0,0, - 0,0,-190,0,0,0,0,0,0,0, - 0,-405,0,0,-419,0,0,-45,0,-257, + 0,0,0,0,0,0,0,-79,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-358,0,-107,0,0,0,0,0, - 0,-408,-471,-191,0,0,0,0,0,0, - 0,-118,0,0,0,0,0,0,0,0, - 0,0,-194,0,0,0,0,0,0,-244, - -121,0,-415,0,0,0,0,0,-422,-395, - 0,0,0,0,0,-423,-375,0,0,0, - 0,0,0,0,0,0,0,0,-379,0, - 0,0,-500,0,0,0,0,-278,0,0, - -202,0,-217,-443,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-445,-123,0,0,0,-258,0,0,0, - 0,0,-14,0,0,0,0,0,0,0, - -447,0,0,0,0,0,0,0,0,-231, - -17,0,-502,0,0,0,0,-1,-262,0, - 0,0,-301,0,-448,0,0,-303,0,0, - 0,0,0,0,0,0,0,-195,0,0, - 0,0,0,0,-319,0,0,0,0,0, - 0,0,-449,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-506,-304,0,-451,0,0,0,0, - 0,0,-437,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-232,-229,0,-466, - 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,-512,0,0,0, - 0,0,0,0,0,0,0,-333,-343,0, - 0,0,0,0,0,0,-468,0,0,0, - 0,0,0,0,0,-469,-519,-236,-261,0, - 0,0,0,0,0,0,0,0,-283,0, - 0,-125,0,-470,0,0,-465,0,-477,0, - 0,0,0,0,0,0,0,0,0,0, - -277,0,0,0,0,0,0,0,-475,0, - 0,0,0,0,-479,0,0,0,0,0, - -407,0,0,0,0,0,0,-485,0,0, - 0,0,-522,-492,0,0,0,0,-478,0, - -501,0,0,0,0,0,0,0,0,-42, - -46,-484,-201,0,0,0,0,0,-354,0, - 0,0,-509,0,-359,0,0,0,0,0, - 0,0,0,0,-388,0,0,0,0,0, - 0,0,0,0,0,0,-291,-514,0,0, - 0,0,0,0,0,0,0,0,-307,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,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,-79,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-335,0,0,0,0,0,0,0,0, - 0,0,-380,0,0,0,0,-416,0,0, - 0,0,0,0,-207,0,0,0,-300,-312, - -331,-339,0,0,0,0,0,-336,-426,0, - 0,0,0,0,-282,0,0,0,-66,0, - 0,0,0,-461,0,-458,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-503,0,0,0,0,0,0, - 0,0,0,0,0,-374,0,0,0,0, - 0,-459,0,0,0,0,0,0,0,0, - 0,0,0,0,-385,0,0,0,0,-72, - 0,0,-516,0,0,0,0,0,0,-314, + -334,0,0,0,0,0,0,0,0,0, + 0,-379,0,0,0,0,-415,0,0,0, + 0,0,0,-206,0,0,0,-299,-311,-330, + -338,0,0,0,0,0,-335,-425,0,0, + 0,0,0,-281,0,0,0,-66,0,0, + 0,0,-460,0,-457,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-462,0,0,0,0,0,-431, - 0,0,-521,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-386,0, - 0,0,0,-487,-489,0,0,0,0,0, - 0,0,0,0,-340,0,0,0,0,-453, + 0,0,-502,0,0,0,0,0,0,0, + 0,0,0,0,-373,0,0,0,0,0, + -458,0,0,0,0,0,0,0,0,0, + 0,0,0,-384,0,0,0,0,-72,0, + 0,-515,0,0,0,0,0,0,-313,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-495,0,0,0,0,0, + 0,0,-461,0,0,0,0,0,-430,0, + 0,-520,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-385,0,0, + 0,0,-486,-488,0,0,0,0,0,0, + 0,0,0,-339,0,0,0,0,-452,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-427,0,0,0,-342,0,0,0, - 0,0,0,0,0,-21,0,0,0,0, + 0,0,0,-494,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-344,0,0, - 0,0,0,0,-22,0,0,0,0,0, + 0,-426,0,0,0,-341,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,-23,0,0,0, + 0,0,0,0,0,0,-343,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,0,0,0,-24,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, - -25,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,-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,-26,0,0,0,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,-27,0,0,0,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,-61,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, - -74,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,-200,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-504,0,0,0,0,0, - 0,0,0,0,0,-493,-404,0,0,0, - 0,0,-361,-341,-515,-103,0,0,0,0, - -302,0,0,0,-71,-399,0,0,0,0, - -305,0,-418,0,0,0,0,-389,0,0, - -259,0,0,0,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,-503,0,0,0,0,0,0, + 0,0,0,0,-492,-403,0,0,0,0, + 0,-360,-340,-514,-103,0,0,0,0,-301, + 0,0,0,-71,-398,0,0,0,0,-304, + 0,-417,0,0,0,0,-388,0,0,-258, 0,0,0,0,0,0,0,0,0,0, - 0,-497,0,0,0,0,0,0,0,0, - 0,0,-368,-390,0,0,0,0,0,0, - 0,0,0,0,-362,0,0,-409,0,0, 0,0,0,0,0,0,0,0,0,0, - -496,0,0,-346,0,0,0,0,0,0, + -496,0,0,0,0,0,0,0,0,0, + 0,-367,-389,0,0,0,0,0,0,0, + 0,0,0,-361,0,0,-408,0,0,0, + 0,0,0,0,0,0,0,0,0,-495, + 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,-373,0,0,-412, - 0,-421,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-328,0,-424,0, - -460,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-498,0,0,-197,0,0, + 0,0,0,0,0,-372,0,0,-411,0, + -420,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-327,0,-423,0,-459, 0,0,0,0,0,0,0,0,0,0, - -411,-463,-260,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-436, - 0,0,0,0,0,0,0,0,-480,0, - 0,0,0,0,-434,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-517,0, - 0,0,0,0,-420,-491,0,0,0,0, + 0,0,0,-497,0,0,-196,0,0,0, + 0,0,0,0,0,0,0,0,0,-410, + -462,-259,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-435,0, + 0,0,0,0,0,0,0,-479,0,0, + 0,0,0,-433,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-516,0,0, + 0,0,0,-419,-490,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-126,0,0,0,0,0,0, + 0,0,-126,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-464,0,0,0,0,0,0, - 0,0,-520,0,0,0,0,0,0,0, - 0,-218,0,0,0,-264,0,0,0,0, - 0,0,0,0,0,-499,0,0,0,0, + 0,0,-463,0,0,0,0,0,0,0, + 0,-519,0,0,0,0,0,0,0,0, + -217,0,0,0,-263,0,0,0,0,0, + 0,0,0,0,-498,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-229, 0,0,0,0,0,0,0,0,0,0, - -230,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-220,0,-221,0,0,0,0,-381, + 0,-219,0,-220,0,0,0,0,-380,0, + 0,0,0,0,0,0,0,0,0,-221, 0,0,0,0,0,0,0,0,0,0, - -222,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,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,0,0,0, - -297,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-488,0,0,0,0,0, - 0,0,0,0,0,-271,0,0,0,0, - 0,0,0,0,0,0,-490,0,0,0, - 0,0,0,0,0,-272,0,0,0,0, - 0,-429,0,0,0,0,-353,0,0,0, + 0,0,0,-487,0,0,0,0,0,0, + 0,0,0,0,-270,0,0,0,0,0, + 0,0,0,0,0,-489,0,0,0,0, + 0,0,0,0,-271,0,0,0,0,0, + -428,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,0,0, - 0,0,0,0,0,-438,0,0,0,0, - 0,0,0,-473,0,0,-476,0,-133,-439, - 0,0,0,0,0,0,-440,-364,0,-430, + 0,0,0,0,-437,0,0,0,0,0, + 0,0,-472,0,0,-475,0,-133,-438,0, + 0,0,0,0,0,-439,-363,0,-429,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,-480,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-486,0,0,0,0,0,-223,0,0, - 0,0,-286,0,0,0,0,-505,-324,-428, + -485,0,0,0,0,0,-222,0,0,0, + 0,-285,0,0,0,0,-504,-323,-427,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -516,7 +516,7 @@ public class CPPNoCastExpressionParserprs 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; @@ -577,475 +577,474 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 167,167,167,167,167,167,167,167,167,167, 167,167,167,167,167,66,72,72,168,168, 130,130,131,131,131,131,131,131,3,132, - 132,129,129,110,110,110,84,67,82,157, - 157,111,111,187,187,187,133,133,123,123, - 188,188,169,169,881,39,1974,1966,1084,3061, - 34,817,31,35,814,30,32,1932,29,27, - 56,857,112,82,83,113,869,1736,936,904, - 1109,949,1156,1125,1270,29,1217,824,1289,1297, - 148,277,2114,2142,163,149,117,3278,947,1927, - 39,791,36,2785,1446,34,817,339,35,814, - 2360,39,791,36,236,1008,34,817,31,35, - 814,30,32,789,29,27,56,857,112,82, - 83,113,869,494,936,904,1109,949,1156,1847, - 239,234,235,2037,39,791,36,4471,353,34, - 817,44,35,814,278,317,2779,322,2037,39, - 791,36,1684,623,34,817,2509,35,814,246, - 249,252,255,2587,293,354,1210,39,791,36, - 1627,2825,34,817,31,35,814,63,32,248, - 39,283,1473,381,2919,493,567,2732,3142,3079, - 3161,3223,3412,4324,1493,39,791,36,2540,1008, - 34,817,31,35,814,2095,32,789,29,27, - 56,857,112,82,83,113,869,343,936,904, - 1109,949,1156,1125,1270,469,1217,1544,1289,1297, - 148,160,2732,557,513,149,1939,333,3125,2123, - 39,1383,47,3620,979,46,817,238,514,1493, - 39,791,36,2540,1008,34,817,31,35,814, - 2095,32,789,29,27,56,857,112,82,83, - 113,869,343,936,904,1109,949,1156,1125,1270, - 1236,1217,333,1289,1297,148,248,39,283,513, - 149,4362,989,3125,600,1517,2182,38,352,205, - 1541,645,67,514,509,1743,39,791,36,1935, - 2825,34,817,31,35,814,62,32,2101,346, - 584,557,349,2045,733,865,2103,821,1493,39, - 791,36,2540,1008,34,817,31,35,814,2095, - 32,789,29,27,56,857,112,82,83,113, - 869,343,936,904,1109,949,1156,1125,1270,509, - 1217,2355,1289,1297,148,2240,68,1999,513,149, - 356,2732,3125,940,2484,39,281,856,2105,1242, - 528,2103,514,1761,39,791,36,2540,1008,34, - 817,31,35,814,2095,32,789,29,27,56, - 857,112,82,83,113,869,343,936,904,1109, - 949,1156,1125,1270,502,1217,854,1289,1297,148, - 376,332,989,513,149,600,2427,3125,1684,600, - 39,1467,386,1084,48,2158,32,514,509,4091, - 684,66,2029,39,791,36,2052,3615,34,817, - 31,35,814,30,32,672,507,2151,314,2059, - 2103,28,1559,39,791,36,427,1008,34,817, - 31,35,814,30,32,789,29,27,56,857, - 112,82,83,113,869,452,936,904,1109,949, - 1156,1125,1270,510,1217,4569,1289,1297,148,600, - 39,2227,379,149,1354,39,791,36,456,3615, - 34,817,31,35,814,65,32,374,1136,39, - 1467,386,1632,39,791,36,382,1008,34,817, - 31,35,814,30,32,789,29,27,56,857, - 112,82,83,113,869,290,936,904,1109,949, - 1156,1125,1270,2306,1217,55,1289,1297,148,439, - 1459,578,379,149,2360,39,791,36,1595,1008, - 34,817,31,35,814,30,32,789,29,27, - 56,857,112,82,83,91,380,383,1936,39, - 791,36,1953,1008,34,817,31,35,814,30, - 32,789,29,27,56,857,112,82,83,113, - 869,2171,936,904,1109,949,1156,1125,1270,67, - 1217,2355,1289,1297,148,994,39,295,163,149, - 2037,39,791,36,233,596,34,817,340,35, - 814,1684,3785,1936,39,791,36,384,1008,34, - 817,31,35,814,30,32,789,29,27,56, - 857,112,82,83,113,869,866,936,904,1109, - 949,1156,1125,1270,75,1217,68,1289,1297,148, - 4279,2732,325,373,149,1936,39,791,36,1684, - 1008,34,817,31,35,814,30,32,789,29, - 27,56,857,112,82,83,113,869,851,936, - 904,1109,949,1156,1125,1270,443,1217,68,1289, - 1297,148,74,2732,1684,373,149,62,2708,2777, - 567,332,2490,434,1936,39,791,36,1684,1008, - 34,817,31,35,814,30,32,789,29,27, - 56,857,112,82,83,113,869,59,936,904, - 1109,949,1156,1125,1270,717,1217,372,1289,1297, - 148,93,2306,1385,373,149,1873,39,791,36, - 145,1008,34,817,31,35,814,30,32,789, - 29,27,56,857,112,82,83,113,869,1015, - 936,904,1109,949,1156,1125,1270,1234,1217,371, - 1289,1297,148,600,39,286,379,149,2586,1695, - 39,791,36,1370,1008,34,817,31,35,814, - 30,32,789,29,27,56,857,112,82,83, - 113,869,1160,936,904,1109,949,1156,1125,1270, - 1162,1217,32,1289,1297,148,739,100,369,147, - 149,401,1936,39,791,36,1084,1008,34,817, - 31,35,814,30,32,789,29,27,56,857, - 112,82,83,113,869,2487,936,904,1109,949, - 1156,1125,1270,909,1217,1814,1289,1297,148,2259, - 2732,377,164,149,1936,39,791,36,2625,1008, - 34,817,31,35,814,30,32,789,29,27, - 56,857,112,82,83,113,869,2741,936,904, - 1109,949,1156,1125,1270,443,1217,68,1289,1297, - 148,455,2732,1925,160,149,1936,39,791,36, - 1385,1008,34,817,31,35,814,30,32,789, - 29,27,56,857,112,82,83,113,869,512, - 936,904,1109,949,1156,1125,1270,1058,1217,1620, - 1289,1297,148,1208,600,3419,159,149,1936,39, - 791,36,332,1008,34,817,31,35,814,30, - 32,789,29,27,56,857,112,82,83,113, - 869,76,936,904,1109,949,1156,1125,1270,520, - 1217,32,1289,1297,148,818,3592,1177,158,149, - 1936,39,791,36,102,1008,34,817,31,35, - 814,30,32,789,29,27,56,857,112,82, - 83,113,869,1296,936,904,1109,949,1156,1125, - 1270,1184,1217,68,1289,1297,148,417,2732,1264, - 157,149,1936,39,791,36,1684,1008,34,817, - 31,35,814,30,32,789,29,27,56,857, - 112,82,83,113,869,1595,936,904,1109,949, - 1156,1125,1270,1319,1217,160,1289,1297,148,58, - 3379,1339,156,149,1936,39,791,36,332,1008, - 34,817,31,35,814,30,32,789,29,27, - 56,857,112,82,83,113,869,1321,936,904, - 1109,949,1156,1125,1270,2512,1217,2590,1289,1297, - 148,99,4420,2079,155,149,1936,39,791,36, - 1084,1008,34,817,31,35,814,30,32,789, - 29,27,56,857,112,82,83,113,869,2146, - 936,904,1109,949,1156,1125,1270,2080,1217,32, - 1289,1297,148,2701,600,3445,154,149,1936,39, - 791,36,1084,1008,34,817,31,35,814,30, - 32,789,29,27,56,857,112,82,83,113, - 869,2311,936,904,1109,949,1156,1125,1270,2401, - 1217,1645,1289,1297,148,4043,3489,243,153,149, - 1936,39,791,36,623,1008,34,817,31,35, - 814,30,32,789,29,27,56,857,112,82, - 83,113,869,419,936,904,1109,949,1156,1125, - 1270,595,1217,160,1289,1297,148,57,3695,771, - 152,149,1936,39,791,36,623,1008,34,817, - 31,35,814,30,32,789,29,27,56,857, - 112,82,83,113,869,1170,936,904,1109,949, - 1156,1125,1270,1353,1217,32,1289,1297,148,3338, - 997,2573,151,149,1936,39,791,36,1553,1008, - 34,817,31,35,814,30,32,789,29,27, - 56,857,112,82,83,113,869,2649,936,904, - 1109,949,1156,1125,1270,1164,1217,772,1289,1297, - 148,2457,39,284,150,149,1827,39,791,36, - 1914,1008,34,817,31,35,814,30,32,789, - 29,27,56,857,112,82,83,113,869,912, - 936,904,1109,949,1156,1125,1270,1623,1217,326, - 1289,2192,169,1936,39,791,36,2716,1008,34, - 817,31,35,814,30,32,789,29,27,56, - 857,112,82,83,113,869,3431,936,904,1109, - 949,1156,1125,1270,388,1217,1219,1289,1297,148, - 238,328,1237,145,149,600,39,2182,2219,600, - 39,1467,386,2265,39,791,36,1980,1008,34, - 817,31,35,814,30,32,789,29,27,56, - 857,112,82,83,113,869,2132,936,904,1109, - 949,1156,1125,1270,2015,1217,55,1289,1297,148, - 1084,1459,734,194,149,2360,39,791,36,1334, - 1008,34,817,31,35,814,30,32,789,29, - 27,56,857,112,82,83,113,869,520,936, - 904,1109,949,1156,1125,1270,1521,1217,1587,1289, - 2192,169,2360,39,791,36,1627,1008,34,817, - 31,35,814,30,32,789,29,27,56,857, - 112,82,83,113,869,1340,936,904,1109,949, - 1156,1125,1270,355,1217,327,1289,2192,169,1354, - 39,791,36,528,3615,34,817,31,35,814, - 64,32,2360,39,791,36,294,1008,34,817, - 31,35,814,30,32,789,29,27,56,857, - 112,82,83,113,869,1073,936,904,1109,949, - 1156,1125,1270,1660,1217,1478,1289,2192,169,2360, - 39,791,36,2380,1008,34,817,31,35,814, - 30,32,789,29,27,56,857,112,82,83, - 113,869,2259,936,904,1109,949,1156,1125,1270, - 1143,1217,1246,1289,2192,169,2037,39,791,36, - 1758,1741,34,817,2622,35,814,1684,1742,2360, - 39,791,36,419,1008,34,817,31,35,814, - 30,32,789,29,27,56,857,112,82,83, - 113,869,1723,936,904,1109,949,1156,1125,1270, - 96,1217,1013,1289,2192,169,2406,39,791,36, - 418,1008,34,817,31,35,814,30,32,789, - 29,27,56,857,112,82,83,113,869,1821, - 936,904,1109,949,1156,1125,1270,1855,1217,414, - 1289,2192,169,600,39,3337,3250,1882,1890,1778, - 600,39,1467,386,77,1084,2360,39,791,36, - 421,1008,34,817,31,35,814,30,32,789, - 29,27,56,857,112,82,83,113,869,2126, - 936,904,1109,949,1156,1125,1270,55,1217,1949, - 1926,1684,52,2360,39,791,36,3414,1008,34, - 817,31,35,814,30,32,789,29,27,56, - 857,112,82,83,113,869,1684,936,904,1109, - 949,1156,1125,1270,350,1879,2360,39,791,36, - 103,1008,34,817,31,35,814,30,32,789, - 29,27,56,857,112,82,83,113,869,3409, - 936,904,1109,949,1156,1125,1845,2360,39,791, - 36,1967,1008,34,817,31,35,814,30,32, - 789,29,27,56,857,112,82,83,113,869, - 1616,936,904,1109,949,1810,2360,39,791,36, - 1084,1008,34,817,31,35,814,30,32,789, - 29,27,56,857,112,82,83,113,869,1914, - 936,904,1109,1811,2360,39,791,36,399,1008, - 34,817,31,35,814,30,32,789,29,27, - 56,857,112,82,83,113,869,2041,936,904, - 1109,1837,2360,39,791,36,1991,1008,34,817, - 31,35,814,30,32,789,29,27,56,857, - 112,82,83,113,869,104,936,904,1727,2360, - 39,791,36,387,1008,34,817,31,35,814, - 30,32,789,29,27,56,857,112,82,83, - 113,869,1914,936,904,1753,2360,39,791,36, - 2102,1008,34,817,31,35,814,30,32,789, - 29,27,56,857,112,82,83,113,869,2632, - 936,904,1761,2360,39,791,36,2122,1008,34, - 817,31,35,814,30,32,789,29,27,56, - 857,112,82,83,113,869,2003,936,904,1769, - 2452,39,1467,386,32,2702,287,403,1078,2360, - 39,791,36,241,1008,34,817,31,35,814, - 30,32,789,29,27,56,857,112,82,83, - 113,869,32,936,1795,2157,4391,277,600,39, - 2182,280,600,39,1467,386,160,2004,39,2140, - 3134,3749,3093,2478,39,393,2360,39,791,36, - 236,1008,34,817,31,35,814,30,32,789, - 29,27,56,857,112,82,83,113,869,430, - 936,1803,2632,2632,55,947,239,234,235,1459, - 2233,2457,39,281,2164,1310,39,791,36,1427, - 278,34,817,339,35,814,1752,238,1708,600, - 2517,2182,80,3285,2278,246,249,252,255,2587, - 301,225,2314,39,791,36,1627,1008,34,817, - 31,35,814,30,32,789,29,27,56,857, - 92,82,83,4471,3142,3079,3161,3223,3412,4324, - 638,320,1818,322,3077,32,3635,315,1101,1078, - 3169,2000,688,39,1467,386,352,1684,1300,2654, - 1326,39,791,36,3069,1752,34,817,339,35, - 814,1752,2154,39,1467,386,3724,344,584,557, - 349,947,600,39,1467,386,2634,1752,2327,55, - 3517,2355,2163,351,1459,2150,2832,1721,1092,1280, - 2427,160,2540,32,389,423,4103,2540,4471,277, - 1140,3259,2391,4238,2540,2732,320,1818,322,55, - 324,2635,315,1101,1459,2229,343,1901,2671,2246, - 528,352,534,2635,3378,1464,39,791,36,1553, - 2732,34,817,339,35,814,1120,3125,329,335, - 376,4306,344,584,557,349,187,1551,1540,161, - 425,2281,1078,2423,366,332,185,2837,1754,39, - 2182,2536,2237,390,423,776,39,1467,386,392, - 423,2813,177,4471,78,2632,534,2632,360,165, - 332,320,1818,322,2355,391,423,315,1101,717, - 360,200,3263,2238,2239,233,1016,32,2293,770, - 2760,534,55,161,2707,2238,2239,1459,1669,289, - 185,2837,32,305,4174,184,2540,208,219,579, - 343,207,216,217,218,220,2722,160,161,351, - 1684,174,4270,2355,1,343,193,4219,534,2482, - 2436,4485,2089,522,1214,173,308,312,188,172, - 175,176,177,178,179,94,3125,233,108,600, - 39,1467,386,73,2437,161,1559,352,2623,1964, - 2632,2434,185,2837,1754,39,2182,280,3163,208, - 219,579,2492,207,216,217,218,220,344,584, - 557,349,521,174,4507,201,55,2281,186,3754, - 1953,1459,2631,600,39,1467,386,173,203,2434, - 189,172,175,176,177,178,179,2360,39,791, - 36,2461,1008,34,817,31,35,814,30,32, - 789,29,27,56,857,112,82,83,113,869, - 429,1635,2360,39,791,36,2894,1008,34,817, - 31,35,814,30,32,789,29,27,56,857, - 112,82,83,113,869,2568,1637,1191,39,2902, - 36,1553,2732,34,817,339,35,814,2360,39, - 791,36,519,1008,34,817,31,35,814,30, - 32,789,29,27,56,857,112,82,83,113, - 1643,2481,39,1467,386,994,3025,295,265,1140, - 2642,2547,534,2540,2732,4471,1914,32,1684,2801, - 519,2646,332,320,1818,322,2711,1914,1398,315, - 1101,233,2635,1167,39,1467,386,3123,55,161, - 2490,1375,2569,1459,1711,1008,185,2837,32,2540, - 1684,72,2540,208,219,579,4174,207,216,217, - 218,220,4238,1901,332,2567,1897,174,2635,1166, - 55,343,2599,353,1611,1459,53,534,2715,236, - 288,173,1206,71,3439,172,175,176,177,178, - 179,299,3125,32,1851,243,233,2749,3592,360, - 2463,2827,1593,2717,161,248,234,235,2708,2612, - 1914,185,2837,2707,2238,2239,2686,1008,208,219, - 579,2540,207,216,217,218,220,414,2924,248, - 39,449,174,441,4077,501,352,534,1280,2427, - 2635,32,236,32,2653,1082,173,2748,2370,181, - 172,175,176,177,178,179,233,344,584,557, - 349,236,2654,2843,161,2240,342,1684,244,234, - 235,185,2837,1984,298,499,500,2540,208,219, - 579,2701,207,216,217,218,220,251,234,235, - 32,32,174,529,2721,1078,343,534,1418,2000, - 70,95,1078,1684,108,2723,173,501,1684,192, - 172,175,176,177,178,179,233,863,688,39, - 1467,386,161,236,161,1807,39,1467,386,161, - 918,185,2837,2751,50,2158,3628,532,208,219, - 579,61,207,216,217,218,220,498,500,254, - 234,235,174,617,1684,55,2755,534,289,3259, - 1459,53,55,600,39,295,173,1459,53,3518, - 172,175,176,177,178,179,233,1840,952,1303, - 2714,2737,2540,4366,161,3070,919,60,3076,2436, - 2632,185,2837,442,3086,3102,334,335,208,219, - 579,233,207,216,217,218,220,1371,39,791, - 36,1427,174,34,817,339,35,814,1684,776, - 39,1467,386,1313,404,4496,173,2756,202,197, - 172,175,176,177,178,179,89,705,32,32, - 452,534,3198,4101,405,406,407,296,297,32, - 2351,323,2869,2960,2705,4471,55,2632,438,2632, - 233,1459,53,320,1818,322,3417,565,161,315, - 1101,600,39,2182,285,185,2837,2269,352,2707, - 2146,523,208,219,579,2727,207,216,217,218, - 220,600,39,1467,386,304,174,206,2142,344, - 584,557,349,793,2757,408,410,534,524,2632, - 173,2762,236,191,172,175,176,177,178,179, - 32,32,2632,32,534,2540,233,2540,428,1807, - 39,1467,386,2779,161,1684,1860,4516,257,234, - 235,185,2837,343,343,1684,343,204,208,219, - 579,161,207,216,217,218,220,32,1688,1179, - 300,4217,174,5194,3125,3125,55,3125,107,32, - 5194,1459,53,3622,1131,1601,173,2306,4158,199, - 172,175,176,177,178,179,2360,39,791,36, - 2582,1008,34,817,31,35,814,30,32,789, - 29,27,56,857,112,82,83,113,1677,2360, - 39,791,36,5194,1008,34,817,31,35,814, - 30,32,789,29,27,56,857,112,82,83, - 113,1719,984,39,791,36,5194,2732,34,817, - 339,35,814,1484,39,2902,36,1553,1684,34, - 817,339,35,814,5194,600,39,1467,386,2111, - 2027,32,2535,2540,1043,4155,2540,5194,32,424, - 39,449,4578,5194,4077,600,39,2182,282,32, - 4471,2835,2635,534,1914,233,1684,333,320,1818, - 322,4471,55,5194,316,1101,5194,1459,578,320, - 1818,322,343,352,2632,315,1101,210,219,579, - 161,209,216,217,218,220,2656,1375,918,447, - 2540,5194,2565,3125,346,584,557,349,211,213, - 215,296,297,1228,2351,1807,39,1467,386,233, - 32,5194,4085,2632,1078,221,212,214,306,361, - 1919,39,791,36,1553,526,34,817,339,35, - 814,210,219,579,1684,209,216,217,218,220, - 2689,161,55,2632,2540,4197,3087,1459,53,1692, - 5194,226,211,213,215,296,297,5194,2351,1807, - 39,1467,386,233,1684,1684,2963,378,4471,221, - 212,214,5194,415,2924,32,320,1818,322,3676, - 2671,198,315,1101,1078,210,219,579,5194,209, - 216,217,218,220,3378,1988,55,3193,3253,4197, - 3170,1459,53,446,3086,3102,211,213,215,296, - 297,161,2351,600,39,1467,386,32,205,3469, - 3451,3177,5194,221,212,214,2360,1517,791,1543, - 5194,1008,34,817,31,35,814,30,32,789, - 29,27,56,857,112,82,83,90,32,5194, - 448,5194,1262,4197,3644,2360,39,791,36,381, - 1008,34,817,31,35,814,30,32,789,29, - 27,56,857,112,82,83,89,2360,39,791, - 36,5194,1008,34,817,31,35,814,30,32, - 789,29,27,56,857,112,82,83,88,2360, - 39,791,36,5194,1008,34,817,31,35,814, - 30,32,789,29,27,56,857,112,82,83, - 87,2360,39,791,36,5194,1008,34,817,31, - 35,814,30,32,789,29,27,56,857,112, - 82,83,86,2360,39,791,36,5194,1008,34, - 817,31,35,814,30,32,789,29,27,56, - 857,112,82,83,85,2360,39,791,36,5194, - 1008,34,817,31,35,814,30,32,789,29, - 27,56,857,112,82,83,84,2218,39,791, - 36,5194,1008,34,817,31,35,814,30,32, - 789,29,27,56,857,112,82,83,110,2360, - 39,791,36,5194,1008,34,817,31,35,814, - 30,32,789,29,27,56,857,112,82,83, - 115,2360,39,791,36,5194,1008,34,817,31, - 35,814,30,32,789,29,27,56,857,112, - 82,83,114,2360,39,791,36,5194,1008,34, - 817,31,35,814,30,32,789,29,27,56, - 857,112,82,83,111,1678,39,791,36,1553, - 5194,34,817,339,35,814,1684,1807,39,1467, - 386,5194,5194,32,2732,2712,32,737,2540,1078, - 1078,600,39,2182,2858,1540,2478,39,393,1078, - 5194,2000,5194,2646,39,1467,386,233,32,3313, - 5194,1540,1930,4471,55,1078,161,161,5194,1459, - 53,320,1818,322,167,1887,165,315,1101,210, - 219,579,1684,209,216,217,218,220,3803,770, - 55,5194,165,2580,2549,1459,53,2540,4251,5194, - 211,213,215,296,297,1092,2351,5194,32,2540, - 5194,3259,4580,5194,3323,2844,233,517,212,214, - 5194,2478,39,393,1060,39,791,36,2635,2732, - 34,817,339,35,814,5194,308,312,210,219, - 579,1566,209,216,217,218,220,2613,331,335, - 32,2540,32,3176,3730,5194,4556,3268,3703,211, - 213,215,296,297,5194,2351,5194,2000,3163,32, - 233,32,4471,2931,5194,2647,516,212,214,333, - 320,1818,322,5194,5194,1684,318,1101,600,39, - 1467,386,210,219,579,360,209,216,217,218, - 220,2765,32,1540,5194,2540,952,1078,4353,3505, - 2238,2239,5194,211,213,215,296,297,2893,2351, - 2650,39,1467,386,233,277,5194,3259,3493,32, - 222,212,214,2969,165,1919,39,791,36,1553, - 5194,34,817,339,35,814,210,219,579,1684, - 209,216,217,218,220,2808,32,55,5194,2540, - 4065,5194,1459,53,4083,335,5194,211,213,215, - 296,297,5194,2351,2509,39,1467,386,233,2702, - 5194,4344,3733,4471,307,212,214,242,279,5194, - 5194,320,1818,322,600,39,295,315,1101,3314, - 210,219,579,1684,209,216,217,218,220,770, - 5194,277,600,39,1467,386,600,39,1467,386, - 5194,211,213,215,296,297,2674,2351,5194,5194, - 3367,5194,5194,5194,236,5194,3463,5194,495,212, - 214,1028,5194,5194,5194,2540,4366,5194,5194,55, - 5194,5194,5194,55,1459,864,309,312,1459,2625, - 240,234,235,32,233,32,5194,1078,5194,1078, - 1060,39,791,36,278,2732,34,817,339,35, - 814,32,5194,5194,5194,1078,1313,404,4496,247, - 250,253,256,2587,161,5194,161,3482,5194,5194, - 1627,5194,2890,5194,3078,5194,5194,405,406,407, - 296,297,161,2351,5194,5194,5194,5194,4471,5194, - 3110,600,39,1467,386,333,320,1818,322,5194, - 5194,5194,316,1101,5194,1919,39,791,36,1553, - 2269,34,817,339,35,814,1605,39,791,36, - 3027,5194,34,817,339,35,814,2709,55,5194, - 5194,534,5194,1459,2731,5194,1104,5194,408,410, - 2540,4366,2627,5194,5194,5194,2540,1708,5194,5194, - 343,5194,3285,4471,400,5194,5194,5194,161,233, - 5194,320,1818,322,4471,343,193,315,1101,2399, - 4516,4485,317,2779,322,527,2668,5194,5194,3471, - 2540,1313,404,4496,32,5194,3125,32,534,1088, - 32,534,5194,2540,2540,5194,530,32,2000,2635, - 2000,2540,405,406,407,296,297,343,2351,5194, - 343,5194,343,343,5194,161,5194,32,161,5194, - 343,2540,5194,193,5194,5194,193,5194,4485,195, - 5194,4485,2496,1469,3125,2269,2540,5194,32,5194, - 343,3125,1078,32,505,5194,1721,1078,32,1540, - 1540,503,1078,1078,1078,343,5194,5194,3259,5194, - 3259,3125,5194,408,411,5194,501,5194,5194,161, - 3620,531,5194,5194,161,5194,4376,3227,5194,161, - 165,165,2245,5194,5194,5194,3755,4299,5194,4076, - 5194,5194,5194,5194,5194,4108,335,4221,335,5194, - 5194,5194,3664,5194,5194,5194,498,500,5194,426, - 5194,5194,5194,5194,5194,5194,5194,5194,5194,5194, - 5194,5194,5194,5194,5194,5194,5194,5194,5194,5194, - 3682,5194,5194,5194,5194,5194,5194,5194,5194,5194, - 5194,5194,5194,5194,3340,3495,3646,5194,5194,5194, - 5194,5194,5194,5194,5194,5194,5194,5194,5194,5194, - 3201,5194,5194,5194,5194,5194,5194,5194,5194,5194, - 5194,5194,5194,5194,5194,5194,5194,5194,5194,5194, - 5194,5194,5194,5194,5194,5194,5194,5194,5194,5194, - 5194,5194,5194,5194,5194,5194,5194,5194,5194,5194, - 5194,5194,5194,5194,5194,5194,5194,5194,5194,5194, - 5194,5194,5194,5194,5194,5194,5194,5194,5194,4235, - 5194,0,43,5212,0,43,5211,0,926,33, - 0,436,1342,0,450,1511,0,42,5212,0, - 42,5211,0,2486,131,0,1,440,0,454, - 923,0,453,1356,0,926,45,0,2544,97, - 0,926,385,0,39,37,0,36,38,0, - 43,784,0,1,721,0,1,5470,0,1, - 5469,0,1,5468,0,1,5467,0,1,5466, - 0,1,5465,0,1,5464,0,1,5463,0, - 1,5462,0,1,5461,0,1,5460,0,43, - 1,5212,0,43,1,5211,0,729,1,0, - 5432,245,0,5431,245,0,5532,245,0,5531, - 245,0,5459,245,0,5458,245,0,5457,245, - 0,5456,245,0,5455,245,0,5454,245,0, - 5453,245,0,5452,245,0,5470,245,0,5469, - 245,0,5468,245,0,5467,245,0,5466,245, - 0,5465,245,0,5464,245,0,5463,245,0, - 5462,245,0,5461,245,0,5460,245,0,43, - 245,5212,0,43,245,5211,0,5236,245,0, - 54,5212,0,54,5211,0,49,5234,0,49, - 41,0,5212,54,0,5211,54,0,2486,133, - 0,2486,132,0,5200,1,0,5199,1,0, - 241,2808,0,386,36,0,36,386,0,385, - 33,0,33,385,0,30,515,0,5524,441, - 0,1679,441,0,1,98,0,41,53,0, - 5236,1,0,43,1,0,53,41,0,497, - 2279,0,5236,232,1,0,43,232,1,0, - 232,413,0,41,5212,0,41,5211,0,5234, - 51,0,51,41,0,5212,40,0,5211,40, - 0,1,5212,2,0,1,5211,2,0,41, - 5212,2,0,41,5211,2,0,5204,402,0, - 5203,402,0,1,3710,0,1,784,0,1, - 3233,0,232,412,0,5524,101,0,1679,101, - 0,39,79,0,3621,319,0,1,5524,0, - 1,1679,0,43,1,5212,2,0,43,1, - 5211,2,0,43,5212,2,0,43,5211,2, - 0,282,4111,0,497,4143,0,232,1,0, - 232,224,0,232,223,0,1,2593,0,1, - 4096,0,5202,1,0,232,1,3222,0,5204, - 232,0,5203,232,0,3396,232,0,8,10, - 0,190,3397,0 + 132,129,129,110,110,84,67,82,157,157, + 111,111,187,187,187,133,133,123,123,188, + 188,169,169,881,39,1973,1965,1356,3060,34, + 816,31,35,813,30,32,1931,29,27,56, + 856,112,82,83,113,868,1929,935,903,1108, + 948,1155,1124,1269,963,1216,1115,1288,1296,148, + 277,1754,2139,163,149,29,3277,296,2034,39, + 790,36,2784,1090,34,816,339,35,813,2360, + 39,790,36,236,1007,34,816,31,35,813, + 30,32,788,29,27,56,856,112,82,83, + 113,868,494,935,903,1108,948,1155,1846,239, + 234,235,2052,39,790,36,4470,353,34,816, + 44,35,813,278,317,2761,322,2052,39,790, + 36,2162,622,34,816,2508,35,813,246,249, + 252,255,2586,117,354,1681,39,790,36,1626, + 2824,34,816,31,35,813,63,32,248,39, + 283,1614,293,2918,493,566,2731,3141,3078,3160, + 3222,3411,4323,1493,39,790,36,2539,1007,34, + 816,31,35,813,30,32,788,29,27,56, + 856,112,82,83,113,868,343,935,903,1108, + 948,1155,1124,1269,381,1216,1544,1288,1296,148, + 890,2731,469,513,149,1938,333,3124,2006,39, + 1382,47,3619,979,46,816,1694,514,1493,39, + 790,36,2539,1007,34,816,31,35,813,30, + 32,788,29,27,56,856,112,82,83,113, + 868,343,935,903,1108,948,1155,1124,1269,1789, + 1216,333,1288,1296,148,248,39,283,513,149, + 4361,988,3124,600,1516,2157,38,352,205,994, + 557,67,514,509,1743,39,790,36,1934,2824, + 34,816,31,35,813,62,32,2101,346,583, + 556,349,2044,645,821,2094,733,1493,39,790, + 36,2539,1007,34,816,31,35,813,30,32, + 788,29,27,56,856,112,82,83,113,868, + 343,935,903,1108,948,1155,1124,1269,509,1216, + 2437,1288,1296,148,2239,68,1999,513,149,356, + 2731,3124,1353,2311,39,281,855,2102,1091,527, + 2094,514,1761,39,790,36,2539,1007,34,816, + 31,35,813,30,32,788,29,27,56,856, + 112,82,83,113,868,343,935,903,1108,948, + 1155,1124,1269,1251,1216,1993,1288,1296,148,376, + 332,988,513,149,600,2350,3124,2162,600,39, + 1466,386,1356,48,2150,57,514,509,4090,683, + 66,2116,39,790,36,849,3614,34,816,31, + 35,813,30,32,671,507,2149,314,2457,2094, + 28,1559,39,790,36,427,1007,34,816,31, + 35,813,30,32,788,29,27,56,856,112, + 82,83,113,868,452,935,903,1108,948,1155, + 1124,1269,510,1216,4568,1288,1296,148,600,39, + 2218,379,149,1605,39,790,36,456,3614,34, + 816,31,35,813,65,32,374,1478,39,1466, + 386,1632,39,790,36,382,1007,34,816,31, + 35,813,30,32,788,29,27,56,856,112, + 82,83,113,868,290,935,903,1108,948,1155, + 1124,1269,2455,1216,55,1288,1296,148,439,1458, + 577,379,149,2360,39,790,36,1594,1007,34, + 816,31,35,813,30,32,788,29,27,56, + 856,112,82,83,91,380,383,1936,39,790, + 36,1953,1007,34,816,31,35,813,30,32, + 788,29,27,56,856,112,82,83,113,868, + 2345,935,903,1108,948,1155,1124,1269,67,1216, + 2437,1288,1296,148,1280,39,295,163,149,2052, + 39,790,36,233,596,34,816,340,35,813, + 2162,3784,1936,39,790,36,384,1007,34,816, + 31,35,813,30,32,788,29,27,56,856, + 112,82,83,113,868,415,935,903,1108,948, + 1155,1124,1269,75,1216,68,1288,1296,148,4278, + 2731,325,373,149,1936,39,790,36,2162,1007, + 34,816,31,35,813,30,32,788,29,27, + 56,856,112,82,83,113,868,850,935,903, + 1108,948,1155,1124,1269,443,1216,68,1288,1296, + 148,74,2731,2162,373,149,912,2653,2776,566, + 332,2435,434,1936,39,790,36,2162,1007,34, + 816,31,35,813,30,32,788,29,27,56, + 856,112,82,83,113,868,59,935,903,1108, + 948,1155,1124,1269,716,1216,372,1288,1296,148, + 93,2455,1384,373,149,1873,39,790,36,63, + 1007,34,816,31,35,813,30,32,788,29, + 27,56,856,112,82,83,113,868,239,935, + 903,1108,948,1155,1124,1269,1234,1216,371,1288, + 1296,148,600,39,286,379,149,2585,1695,39, + 790,36,151,1007,34,816,31,35,813,30, + 32,788,29,27,56,856,112,82,83,113, + 868,1245,935,903,1108,948,1155,1124,1269,1927, + 1216,57,1288,1296,148,738,100,369,147,149, + 401,1936,39,790,36,1356,1007,34,816,31, + 35,813,30,32,788,29,27,56,856,112, + 82,83,113,868,2461,935,903,1108,948,1155, + 1124,1269,1134,1216,1924,1288,1296,148,2110,2731, + 377,164,149,1936,39,790,36,2595,1007,34, + 816,31,35,813,30,32,788,29,27,56, + 856,112,82,83,113,868,2740,935,903,1108, + 948,1155,1124,1269,443,1216,68,1288,1296,148, + 455,2731,1679,160,149,1936,39,790,36,1384, + 1007,34,816,31,35,813,30,32,788,29, + 27,56,856,112,82,83,113,868,978,935, + 903,1108,948,1155,1124,1269,1191,1216,1807,1288, + 1296,148,1207,600,3418,159,149,1936,39,790, + 36,332,1007,34,816,31,35,813,30,32, + 788,29,27,56,856,112,82,83,113,868, + 76,935,903,1108,948,1155,1124,1269,519,1216, + 57,1288,1296,148,817,3591,1177,158,149,1936, + 39,790,36,102,1007,34,816,31,35,813, + 30,32,788,29,27,56,856,112,82,83, + 113,868,1296,935,903,1108,948,1155,1124,1269, + 1184,1216,68,1288,1296,148,417,2731,1314,157, + 149,1936,39,790,36,2162,1007,34,816,31, + 35,813,30,32,788,29,27,56,856,112, + 82,83,113,868,1594,935,903,1108,948,1155, + 1124,1269,1316,1216,890,1288,1296,148,58,3378, + 1318,156,149,1936,39,790,36,332,1007,34, + 816,31,35,813,30,32,788,29,27,56, + 856,112,82,83,113,868,937,935,903,1108, + 948,1155,1124,1269,2481,1216,2517,1288,1296,148, + 99,4419,1241,155,149,1936,39,790,36,1356, + 1007,34,816,31,35,813,30,32,788,29, + 27,56,856,112,82,83,113,868,2146,935, + 903,1108,948,1155,1124,1269,1726,1216,57,1288, + 1296,148,2700,600,3438,154,149,1936,39,790, + 36,1356,1007,34,816,31,35,813,30,32, + 788,29,27,56,856,112,82,83,113,868, + 1070,935,903,1108,948,1155,1124,1269,2079,1216, + 1054,1288,1296,148,4042,3488,243,153,149,1936, + 39,790,36,622,1007,34,816,31,35,813, + 30,32,788,29,27,56,856,112,82,83, + 113,868,419,935,903,1108,948,1155,1124,1269, + 595,1216,890,1288,1296,148,57,3694,771,152, + 149,1936,39,790,36,622,1007,34,816,31, + 35,813,30,32,788,29,27,56,856,112, + 82,83,113,868,1812,935,903,1108,948,1155, + 1124,1269,1923,1216,57,1288,1296,148,3337,767, + 2552,151,149,1936,39,790,36,1746,1007,34, + 816,31,35,813,30,32,788,29,27,56, + 856,112,82,83,113,868,2578,935,903,1108, + 948,1155,1124,1269,909,1216,772,1288,1296,148, + 1370,39,284,150,149,1827,39,790,36,1160, + 1007,34,816,31,35,813,30,32,788,29, + 27,56,856,112,82,83,113,868,1335,935, + 903,1108,948,1155,1124,1269,1556,1216,326,1288, + 2181,169,1936,39,790,36,2607,1007,34,816, + 31,35,813,30,32,788,29,27,56,856, + 112,82,83,113,868,3430,935,903,1108,948, + 1155,1124,1269,388,1216,591,1288,1296,148,1694, + 328,1608,145,149,600,39,2157,2191,600,39, + 1466,386,2265,39,790,36,1979,1007,34,816, + 31,35,813,30,32,788,29,27,56,856, + 112,82,83,113,868,2132,935,903,1108,948, + 1155,1124,1269,2015,1216,55,1288,1296,148,1356, + 1458,733,194,149,2360,39,790,36,1660,1007, + 34,816,31,35,813,30,32,788,29,27, + 56,856,112,82,83,113,868,519,935,903, + 1108,948,1155,1124,1269,1901,1216,1964,1288,2181, + 169,2360,39,790,36,2161,1007,34,816,31, + 35,813,30,32,788,29,27,56,856,112, + 82,83,113,868,1680,935,903,1108,948,1155, + 1124,1269,355,1216,327,1288,2181,169,1605,39, + 790,36,527,3614,34,816,31,35,813,64, + 32,2360,39,790,36,294,1007,34,816,31, + 35,813,30,32,788,29,27,56,856,112, + 82,83,113,868,1360,935,903,1108,948,1155, + 1124,1269,1708,1216,1088,1288,2181,169,2360,39, + 790,36,2379,1007,34,816,31,35,813,30, + 32,788,29,27,56,856,112,82,83,113, + 868,2110,935,903,1108,948,1155,1124,1269,1339, + 1216,472,1288,2181,169,2052,39,790,36,1820, + 1549,34,816,2621,35,813,2162,1886,2360,39, + 790,36,419,1007,34,816,31,35,813,30, + 32,788,29,27,56,856,112,82,83,113, + 868,1470,935,903,1108,948,1155,1124,1269,96, + 1216,2246,1288,2181,169,2406,39,790,36,418, + 1007,34,816,31,35,813,30,32,788,29, + 27,56,856,112,82,83,113,868,2293,935, + 903,1108,948,1155,1124,1269,1164,1216,1982,1288, + 2181,169,600,39,3336,3249,1723,2087,2306,600, + 39,1466,386,77,1356,2360,39,790,36,421, + 1007,34,816,31,35,813,30,32,788,29, + 27,56,856,112,82,83,113,868,2102,935, + 903,1108,948,1155,1124,1269,55,1216,648,1925, + 2162,52,2360,39,790,36,3395,1007,34,816, + 31,35,813,30,32,788,29,27,56,856, + 112,82,83,113,868,2162,935,903,1108,948, + 1155,1124,1269,350,1878,2360,39,790,36,103, + 1007,34,816,31,35,813,30,32,788,29, + 27,56,856,112,82,83,113,868,3408,935, + 903,1108,948,1155,1124,1844,2360,39,790,36, + 1475,1007,34,816,31,35,813,30,32,788, + 29,27,56,856,112,82,83,113,868,1991, + 935,903,1108,948,1809,2360,39,790,36,1356, + 1007,34,816,31,35,813,30,32,788,29, + 27,56,856,112,82,83,113,868,1160,935, + 903,1108,1810,2360,39,790,36,399,1007,34, + 816,31,35,813,30,32,788,29,27,56, + 856,112,82,83,113,868,2103,935,903,1108, + 1836,2360,39,790,36,2150,1007,34,816,31, + 35,813,30,32,788,29,27,56,856,112, + 82,83,113,868,104,935,903,1726,2360,39, + 790,36,387,1007,34,816,31,35,813,30, + 32,788,29,27,56,856,112,82,83,113, + 868,1160,935,903,1752,2360,39,790,36,2114, + 1007,34,816,31,35,813,30,32,788,29, + 27,56,856,112,82,83,113,868,1320,935, + 903,1760,2360,39,790,36,2172,1007,34,816, + 31,35,813,30,32,788,29,27,56,856, + 112,82,83,113,868,2042,935,903,1768,2452, + 39,1466,386,57,2701,287,403,1077,2360,39, + 790,36,241,1007,34,816,31,35,813,30, + 32,788,29,27,56,856,112,82,83,113, + 868,57,935,1794,2156,4390,277,600,39,2157, + 280,600,39,1466,386,890,2029,39,2104,3133, + 3748,3092,2158,39,393,2360,39,790,36,236, + 1007,34,816,31,35,813,30,32,788,29, + 27,56,856,112,82,83,113,868,430,935, + 1802,1320,1320,55,296,239,234,235,1458,2232, + 1370,39,281,2423,1136,39,790,36,1426,278, + 34,816,339,35,813,2156,1694,1817,600,2489, + 2157,80,3284,2355,246,249,252,255,2586,301, + 225,2314,39,790,36,1626,1007,34,816,31, + 35,813,30,32,788,29,27,56,856,92, + 82,83,4470,3141,3078,3160,3222,3411,4323,637, + 320,1817,322,3076,57,3634,315,1100,1077,3162, + 1998,688,39,1466,386,352,2162,2447,2633,1310, + 39,790,36,3068,2156,34,816,339,35,813, + 2156,943,39,1466,386,3723,344,583,556,349, + 296,600,39,1466,386,2535,2156,2480,55,3516, + 2437,2080,351,1458,2141,2831,1720,1481,1017,2350, + 890,2539,57,389,423,4102,2539,4470,277,1373, + 3258,2479,4237,2539,2731,320,1817,322,55,324, + 2634,315,1100,1458,2226,343,2388,1678,2419,527, + 352,533,2634,3377,1210,39,790,36,1552,2731, + 34,816,339,35,813,1119,3124,329,335,376, + 4305,344,583,556,349,187,1550,2038,161,425, + 2280,1077,2488,366,332,185,2836,1147,39,2157, + 2516,2228,390,423,776,39,1466,386,392,423, + 2778,177,4470,78,1320,533,1320,360,165,332, + 320,1817,322,2437,391,423,315,1100,716,360, + 200,3262,2236,2237,233,2676,57,1431,769,2759, + 533,55,161,2706,2236,2237,1458,1668,289,185, + 2836,57,305,4173,184,2539,208,219,578,343, + 207,216,217,218,220,2721,890,161,351,2162, + 174,4269,2437,1,343,193,4218,533,2481,2426, + 4484,2525,521,1213,173,308,312,188,172,175, + 176,177,178,179,94,3124,233,108,600,39, + 1466,386,73,1890,161,1558,352,2622,2574,1320, + 2511,185,2836,1147,39,2157,280,3131,208,219, + 578,2581,207,216,217,218,220,344,583,556, + 349,520,174,4506,201,55,2280,186,3753,1953, + 1458,2630,600,39,1466,386,173,203,2511,189, + 172,175,176,177,178,179,2360,39,790,36, + 2655,1007,34,816,31,35,813,30,32,788, + 29,27,56,856,112,82,83,113,868,429, + 1634,2360,39,790,36,2893,1007,34,816,31, + 35,813,30,32,788,29,27,56,856,112, + 82,83,113,868,1472,1636,1193,39,2857,36, + 1552,2731,34,816,339,35,813,2360,39,790, + 36,518,1007,34,816,31,35,813,30,32, + 788,29,27,56,856,112,82,83,113,1642, + 2494,39,1466,386,1280,2980,295,265,1373,2484, + 2617,533,2539,2731,4470,1160,57,2162,2806,518, + 2645,332,320,1817,322,2601,1160,1397,315,1100, + 233,2634,1014,39,1466,386,3122,55,161,2435, + 1374,2629,1458,1710,2143,185,2836,57,2539,2162, + 72,2539,208,219,578,4173,207,216,217,218, + 220,4237,2388,332,2650,1896,174,2634,1165,55, + 343,2641,353,1506,1458,53,533,2714,236,288, + 173,1206,71,3413,172,175,176,177,178,179, + 299,3124,57,1850,243,233,2748,3591,360,2124, + 2832,1592,2656,161,248,234,235,2653,2686,1160, + 185,2836,2706,2236,2237,2657,2143,208,219,578, + 2539,207,216,217,218,220,414,2901,248,39, + 449,174,441,4076,501,352,533,1017,2350,2634, + 57,236,57,2658,1081,173,2747,2369,181,172, + 175,176,177,178,179,233,344,583,556,349, + 236,2634,2848,161,2239,342,2162,244,234,235, + 185,2836,1984,298,499,500,2539,208,219,578, + 2651,207,216,217,218,220,251,234,235,57, + 57,174,529,2720,1077,343,533,1418,1998,70, + 95,1077,2162,108,2713,173,501,2162,192,172, + 175,176,177,178,179,233,862,688,39,1466, + 386,161,236,161,1166,39,1466,386,161,917, + 185,2836,2727,50,2150,3627,531,208,219,578, + 61,207,216,217,218,220,498,500,254,234, + 235,174,617,2162,55,2197,533,289,3258,1458, + 53,55,600,39,295,173,1458,53,3492,172, + 175,176,177,178,179,233,1949,952,1302,2756, + 2736,2539,4365,161,3024,918,60,3075,2426,1320, + 185,2836,442,3070,3085,334,335,208,219,578, + 233,207,216,217,218,220,1484,39,790,36, + 1426,174,34,816,339,35,813,2162,776,39, + 1466,386,1312,404,4495,173,89,202,197,172, + 175,176,177,178,179,2687,705,57,57,452, + 533,3197,4100,405,406,407,296,297,57,2278, + 323,2874,2959,1094,4470,55,1320,438,1320,233, + 1458,53,320,1817,322,3416,564,161,315,1100, + 600,39,2157,285,185,2836,2238,352,2715,2145, + 522,208,219,578,1303,207,216,217,218,220, + 600,39,1466,386,304,174,206,2760,344,583, + 556,349,793,2719,408,410,533,523,1320,173, + 2731,236,191,172,175,176,177,178,179,57, + 57,1320,57,533,2539,233,2539,428,1166,39, + 1466,386,964,161,2162,1859,4515,257,234,235, + 185,2836,343,343,2162,343,204,208,219,578, + 161,207,216,217,218,220,57,5190,1178,300, + 4216,174,5190,3124,3124,55,3124,107,57,5190, + 1458,53,3621,1130,1600,173,2305,4157,199,172, + 175,176,177,178,179,2360,39,790,36,2581, + 1007,34,816,31,35,813,30,32,788,29, + 27,56,856,112,82,83,113,1676,2360,39, + 790,36,5190,1007,34,816,31,35,813,30, + 32,788,29,27,56,856,112,82,83,113, + 1718,984,39,790,36,5190,2731,34,816,339, + 35,813,1235,39,2857,36,1552,2162,34,816, + 339,35,813,5190,600,39,1466,386,2027,2434, + 57,2540,2539,1042,4154,2539,5190,57,424,39, + 449,4577,5190,4076,600,39,2157,282,57,4470, + 2834,2634,533,1160,233,2162,333,320,1817,322, + 4470,55,5190,316,1100,5190,1458,577,320,1817, + 322,343,352,1320,315,1100,210,219,578,161, + 209,216,217,218,220,2661,1374,917,447,2539, + 5190,1684,3124,346,583,556,349,211,213,215, + 296,297,1227,2278,1166,39,1466,386,233,57, + 5190,4084,1320,1077,221,212,214,306,361,1623, + 39,790,36,1552,525,34,816,339,35,813, + 210,219,578,2162,209,216,217,218,220,2694, + 161,55,1320,2539,4196,3086,1458,53,1691,5190, + 226,211,213,215,296,297,5190,2278,1166,39, + 1466,386,233,2162,2162,2962,378,4470,221,212, + 214,5190,415,2901,57,320,1817,322,3675,1678, + 198,315,1100,1077,210,219,578,5190,209,216, + 217,218,220,3377,2638,55,3192,3252,4196,3169, + 1458,53,446,3070,3085,211,213,215,296,297, + 161,2278,600,39,1466,386,57,205,3468,3450, + 3176,5190,221,212,214,2360,1516,790,1542,5190, + 1007,34,816,31,35,813,30,32,788,29, + 27,56,856,112,82,83,90,57,5190,448, + 5190,1261,4196,3643,2360,39,790,36,381,1007, + 34,816,31,35,813,30,32,788,29,27, + 56,856,112,82,83,89,2360,39,790,36, + 5190,1007,34,816,31,35,813,30,32,788, + 29,27,56,856,112,82,83,88,2360,39, + 790,36,5190,1007,34,816,31,35,813,30, + 32,788,29,27,56,856,112,82,83,87, + 2360,39,790,36,5190,1007,34,816,31,35, + 813,30,32,788,29,27,56,856,112,82, + 83,86,2360,39,790,36,5190,1007,34,816, + 31,35,813,30,32,788,29,27,56,856, + 112,82,83,85,2360,39,790,36,5190,1007, + 34,816,31,35,813,30,32,788,29,27, + 56,856,112,82,83,84,2218,39,790,36, + 5190,1007,34,816,31,35,813,30,32,788, + 29,27,56,856,112,82,83,110,2360,39, + 790,36,5190,1007,34,816,31,35,813,30, + 32,788,29,27,56,856,112,82,83,115, + 2360,39,790,36,5190,1007,34,816,31,35, + 813,30,32,788,29,27,56,856,112,82, + 83,114,2360,39,790,36,5190,1007,34,816, + 31,35,813,30,32,788,29,27,56,856, + 112,82,83,111,1464,39,790,36,1552,5190, + 34,816,339,35,813,2162,1166,39,1466,386, + 5190,5190,57,2737,2682,57,736,2539,1077,1077, + 600,39,2157,2812,2038,2158,39,393,1077,5190, + 1998,5190,2458,39,1466,386,233,57,3312,5190, + 2038,1929,4470,55,1077,161,161,5190,1458,53, + 320,1817,322,167,1886,165,315,1100,210,219, + 578,2162,209,216,217,218,220,3802,769,55, + 5190,165,2585,2576,1458,53,2539,4250,5190,211, + 213,215,296,297,1481,2278,5190,57,2539,5190, + 3258,4579,5190,3322,2843,233,516,212,214,5190, + 2158,39,393,1060,39,790,36,2634,2731,34, + 816,339,35,813,5190,308,312,210,219,578, + 1565,209,216,217,218,220,2618,331,335,57, + 2539,57,3168,3729,5190,4555,3267,3702,211,213, + 215,296,297,5190,2278,5190,1998,3131,57,233, + 57,4470,2930,5190,2646,515,212,214,333,320, + 1817,322,5190,5190,2162,318,1100,600,39,1466, + 386,210,219,578,360,209,216,217,218,220, + 2770,57,2038,5190,2539,951,1077,4352,3504,2236, + 2237,5190,211,213,215,296,297,2892,2278,2463, + 39,1466,386,233,277,5190,3258,3470,57,222, + 212,214,2968,165,1623,39,790,36,1552,5190, + 34,816,339,35,813,210,219,578,2162,209, + 216,217,218,220,2813,57,55,5190,2539,4064, + 5190,1458,53,4082,335,5190,211,213,215,296, + 297,5190,2278,2514,39,1466,386,233,2701,5190, + 4343,3732,4470,307,212,214,242,279,5190,5190, + 320,1817,322,600,39,295,315,1100,3313,210, + 219,578,2162,209,216,217,218,220,769,5190, + 277,600,39,1466,386,600,39,1466,386,5190, + 211,213,215,296,297,2570,2278,5190,5190,3366, + 5190,5190,5190,236,5190,3462,5190,495,212,214, + 1028,5190,5190,5190,2539,4365,5190,5190,55,5190, + 5190,5190,55,1458,863,309,312,1458,2624,240, + 234,235,57,233,57,5190,1077,5190,1077,1060, + 39,790,36,278,2731,34,816,339,35,813, + 57,5190,5190,5190,1077,1312,404,4495,247,250, + 253,256,2586,161,5190,161,3481,5190,5190,1626, + 5190,2889,5190,3077,5190,5190,405,406,407,296, + 297,161,2278,5190,5190,5190,5190,4470,5190,3109, + 600,39,1466,386,333,320,1817,322,5190,5190, + 5190,316,1100,5190,1623,39,790,36,1552,2238, + 34,816,339,35,813,1325,39,790,36,3026, + 5190,34,816,339,35,813,1988,55,5190,5190, + 533,5190,1458,2730,5190,1104,5190,408,410,2539, + 4365,2483,5190,5190,5190,2539,1817,5190,5190,343, + 5190,3284,4470,400,5190,5190,5190,161,233,5190, + 320,1817,322,4470,343,193,315,1100,2398,4515, + 4484,317,2761,322,526,2673,5190,5190,3463,2539, + 1312,404,4495,57,5190,3124,57,533,1521,57, + 533,5190,2539,2539,5190,529,57,1998,2634,1998, + 2539,405,406,407,296,297,343,2278,5190,343, + 5190,343,343,5190,161,5190,57,161,5190,343, + 2539,5190,193,5190,5190,193,5190,4484,195,5190, + 4484,2278,1468,3124,2238,2539,5190,57,5190,343, + 3124,1077,57,505,5190,1720,1077,57,2038,2038, + 503,1077,1077,1077,343,5190,5190,3258,5190,3258, + 3124,5190,408,411,5190,501,5190,5190,161,3619, + 530,5190,5190,161,5190,4375,3226,5190,161,165, + 165,2244,5190,5190,5190,3754,4298,5190,4075,5190, + 5190,5190,5190,5190,4107,335,4220,335,5190,5190, + 5190,3663,5190,5190,5190,498,500,5190,426,5190, + 5190,5190,5190,5190,5190,5190,5190,5190,5190,5190, + 5190,5190,5190,5190,5190,5190,5190,5190,5190,3681, + 5190,5190,5190,5190,5190,5190,5190,5190,5190,5190, + 5190,5190,5190,3315,3494,3645,5190,5190,5190,5190, + 5190,5190,5190,5190,5190,5190,5190,5190,5190,3200, + 5190,5190,5190,5190,5190,5190,5190,5190,5190,5190, + 5190,5190,5190,5190,5190,5190,5190,5190,5190,5190, + 5190,5190,5190,5190,5190,5190,5190,5190,5190,5190, + 5190,5190,5190,5190,5190,5190,5190,5190,5190,5190, + 5190,5190,5190,5190,5190,5190,5190,5190,5190,5190, + 5190,5190,5190,5190,5190,5190,5190,5190,4234,5190, + 0,43,5208,0,43,5207,0,925,33,0, + 436,1341,0,450,1510,0,42,5208,0,42, + 5207,0,2485,131,0,1,440,0,454,922, + 0,453,1355,0,925,45,0,2543,97,0, + 925,385,0,39,37,0,36,38,0,43, + 783,0,1,720,0,1,5466,0,1,5465, + 0,1,5464,0,1,5463,0,1,5462,0, + 1,5461,0,1,5460,0,1,5459,0,1, + 5458,0,1,5457,0,1,5456,0,43,1, + 5208,0,43,1,5207,0,728,1,0,5428, + 245,0,5427,245,0,5528,245,0,5527,245, + 0,5455,245,0,5454,245,0,5453,245,0, + 5452,245,0,5451,245,0,5450,245,0,5449, + 245,0,5448,245,0,5466,245,0,5465,245, + 0,5464,245,0,5463,245,0,5462,245,0, + 5461,245,0,5460,245,0,5459,245,0,5458, + 245,0,5457,245,0,5456,245,0,43,245, + 5208,0,43,245,5207,0,5232,245,0,54, + 5208,0,54,5207,0,49,5230,0,49,41, + 0,5208,54,0,5207,54,0,2485,133,0, + 2485,132,0,5196,1,0,5195,1,0,241, + 2807,0,386,36,0,36,386,0,385,33, + 0,33,385,0,5520,441,0,1678,441,0, + 1,98,0,41,53,0,5232,1,0,43, + 1,0,53,41,0,497,2268,0,5232,232, + 1,0,43,232,1,0,232,413,0,41, + 5208,0,41,5207,0,5230,51,0,51,41, + 0,5208,40,0,5207,40,0,1,5208,2, + 0,1,5207,2,0,41,5208,2,0,41, + 5207,2,0,5200,402,0,5199,402,0,1, + 3709,0,1,783,0,1,3232,0,232,412, + 0,5520,101,0,1678,101,0,39,79,0, + 3620,319,0,1,5520,0,1,1678,0,43, + 1,5208,2,0,43,1,5207,2,0,43, + 5208,2,0,43,5207,2,0,282,4110,0, + 497,4142,0,232,1,0,232,224,0,232, + 223,0,1,2592,0,1,4095,0,5198,1, + 0,232,1,3203,0,5200,232,0,5199,232, + 0,3386,232,0,8,10,0,190,3396,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1058,37 +1057,37 @@ 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,0,29, - 30,0,32,33,34,35,36,37,38,39, + 30,3,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, 50,51,52,53,54,55,0,57,58,59, - 60,0,62,63,64,65,0,0,68,69, + 60,61,0,63,64,65,0,0,68,69, 70,4,72,6,74,8,76,77,78,79, 80,81,82,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,29,30,3, + 22,23,24,25,26,27,0,29,30,0, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,0,57,58,59,60,121, - 62,63,64,65,88,89,68,69,70,0, - 72,100,74,4,76,77,78,79,80,81, + 52,53,54,55,28,57,58,59,60,61, + 0,63,64,65,88,89,68,69,70,9, + 72,99,74,13,76,77,78,79,80,81, 82,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,0,29,30,3,32,33, 34,35,36,37,38,39,40,41,42,43, 44,45,46,47,48,49,50,51,52,53, - 54,55,0,57,58,59,60,0,62,63, - 64,65,0,99,68,69,70,0,1,2, + 54,55,0,57,58,59,60,61,0,63, + 64,65,0,0,68,69,70,0,1,2, 74,4,76,77,78,79,80,81,82,83, 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,0,29,30,58,32,33,34,35, + 26,27,0,29,30,0,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 28,57,58,59,60,0,62,63,64,65, - 88,89,68,69,70,103,104,105,74,0, + 28,57,58,59,60,61,31,63,64,65, + 88,89,68,69,70,103,104,105,74,101, 76,77,78,79,80,81,82,83,84,85, 86,87,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, @@ -1096,7 +1095,7 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,29,30,0,32,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, 48,49,50,51,52,53,54,55,28,57, - 58,59,60,0,62,63,64,65,0,6, + 58,59,60,61,0,63,64,65,0,0, 68,69,70,0,1,2,74,4,76,77, 78,79,80,81,82,83,84,85,86,87, 0,1,2,3,4,5,6,7,8,9, @@ -1105,16 +1104,16 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 30,0,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, 50,51,52,53,54,55,28,57,58,59, - 60,0,62,63,64,65,88,89,68,69, - 70,0,11,12,74,4,76,77,78,79, + 60,61,31,63,64,65,88,89,68,69, + 70,97,98,0,74,0,76,77,78,79, 80,81,82,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,0,29,30,0, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,28,57,58,59,60,0, - 62,63,64,65,0,0,68,69,70,0, + 52,53,54,55,28,57,58,59,60,61, + 0,63,64,65,0,0,68,69,70,0, 1,2,74,8,76,77,78,79,80,81, 82,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, @@ -1122,166 +1121,166 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 24,25,26,27,0,29,30,0,32,33, 34,35,36,37,38,39,40,41,42,43, 44,45,46,47,48,49,50,51,52,53, - 54,55,28,57,58,59,60,0,62,63, + 54,55,28,57,58,59,60,61,31,63, 64,65,88,89,68,69,70,0,1,2, - 74,0,76,77,78,79,80,81,82,83, + 74,101,76,77,78,79,80,81,82,83, 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,0,29,30,0,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 28,57,58,59,60,0,62,63,64,65, + 28,57,58,59,60,61,0,63,64,65, 0,0,68,69,70,0,1,2,74,8, 76,77,78,79,80,81,82,83,84,85, 86,87,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, - 0,29,30,0,32,33,34,35,36,37, + 0,29,30,3,32,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,55,28,57, - 58,59,60,0,62,63,64,65,88,89, - 68,69,70,10,0,0,74,3,76,77, + 48,49,50,51,52,53,54,55,0,57, + 58,59,60,61,6,63,64,65,88,89, + 68,69,70,97,98,0,74,0,76,77, 78,79,80,81,82,83,84,85,86,87, - 0,1,2,3,4,5,6,7,8,66, - 10,11,12,0,14,15,16,17,18,19, + 0,1,2,3,4,5,6,7,8,0, + 10,11,12,4,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,0,29, 30,0,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,28,0,58,0, - 1,2,62,4,0,6,0,8,68,69, + 50,51,52,53,54,55,0,0,58,91, + 92,61,0,1,2,9,0,5,68,69, 70,0,1,2,3,4,5,6,7,8, - 9,10,97,98,13,14,15,16,17,18, - 19,20,21,22,23,24,25,31,0,1, - 2,0,31,0,1,2,3,4,5,6, - 7,8,41,0,1,2,0,46,47,48, - 49,50,51,52,53,54,55,0,57,31, - 59,100,0,62,0,0,0,10,3,68, - 69,70,71,72,9,74,75,0,1,2, - 3,4,5,6,7,8,9,10,31,56, + 9,10,0,0,13,14,15,16,17,18, + 19,20,21,22,23,24,25,0,0,1, + 2,4,31,0,1,2,3,4,5,6, + 7,8,41,0,1,2,60,46,47,48, + 49,50,51,52,53,54,55,99,57,31, + 59,100,61,0,1,2,0,1,2,68, + 69,70,71,72,31,74,75,0,1,2, + 3,4,5,6,7,8,9,10,0,56, 13,14,15,16,17,18,19,20,21,22, - 23,24,25,60,103,104,105,0,31,0, - 1,2,3,4,5,6,7,8,41,62, - 0,56,0,46,47,48,49,50,51,52, - 53,54,55,0,57,28,59,0,73,62, - 3,0,9,97,98,68,69,70,71,72, - 9,74,75,0,1,2,3,4,5,6, - 7,8,9,10,102,101,13,14,15,16, - 17,18,19,20,21,22,23,24,25,117, - 103,104,105,61,31,0,1,2,66,0, - 1,2,0,4,41,6,4,8,9,46, + 23,24,25,0,103,104,105,4,31,0, + 1,2,3,4,5,6,7,8,41,0, + 1,2,0,46,47,48,49,50,51,52, + 53,54,55,121,57,122,59,0,61,0, + 0,4,3,0,41,68,69,70,71,72, + 31,74,75,0,1,2,3,4,5,6, + 7,8,9,10,0,28,13,14,15,16, + 17,18,19,20,21,22,23,24,25,0, + 103,104,105,0,31,0,1,2,3,4, + 5,6,7,8,41,56,0,1,2,46, 47,48,49,50,51,52,53,54,55,0, - 57,0,59,0,73,62,0,1,2,0, - 28,68,69,70,71,72,0,74,75,3, - 11,12,6,0,8,9,95,11,12,13, - 0,1,2,3,4,5,6,7,8,64, - 65,118,26,27,28,0,103,104,105,0, - 1,2,73,4,5,56,7,56,0,14, + 57,28,59,0,61,0,1,2,9,6, + 77,68,69,70,71,72,0,74,75,3, + 90,67,6,0,8,9,96,11,12,13, + 0,56,0,1,2,3,4,5,6,7, + 8,66,26,27,28,0,103,104,105,0, + 1,2,3,4,5,6,7,8,28,14, 15,16,17,18,19,20,21,22,23,24, - 25,0,56,0,95,0,0,61,3,3, - 31,0,66,67,61,0,41,71,72,73, + 25,72,56,0,0,1,2,3,62,5, + 0,7,66,67,0,62,41,71,72,73, 0,46,47,48,49,50,51,52,53,54, - 55,71,99,0,88,89,90,91,92,93, + 55,11,12,71,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,0, - 67,6,67,8,9,60,11,12,13,0, - 1,2,3,4,5,6,7,8,0,101, - 0,26,27,28,61,0,1,2,3,9, - 5,90,7,0,9,102,3,96,0,0, + 114,115,116,117,118,0,120,121,3,66, + 56,6,0,8,9,71,11,12,13,0, + 1,2,3,0,5,0,7,0,9,0, + 0,26,27,28,0,1,2,3,9,5, + 90,7,13,9,0,102,96,13,0,60, 107,108,109,110,111,112,113,114,115,116, - 117,56,0,0,1,2,61,4,5,60, - 7,66,67,11,12,56,71,72,73,0, - 0,1,2,3,0,5,67,7,9,61, - 60,56,13,88,89,90,91,92,93,94, - 95,96,97,98,99,100,101,102,73,61, - 61,106,107,108,109,110,111,112,113,114, + 117,56,0,1,2,0,4,62,6,0, + 8,66,67,61,9,56,71,72,73,0, + 1,2,0,1,2,62,4,62,6,62, + 8,9,73,88,89,90,91,92,93,94, + 95,96,97,98,99,100,101,102,60,0, + 31,106,107,108,109,110,111,112,113,114, 115,116,117,118,0,120,121,0,1,2, - 3,4,5,6,7,8,56,10,11,12, - 0,14,15,16,4,18,19,20,21,22, - 23,24,25,26,27,0,29,30,3,32, + 3,4,5,6,7,8,67,10,11,12, + 0,14,15,16,100,18,19,20,21,22, + 23,24,25,26,27,73,29,30,0,32, 33,34,35,36,37,38,39,40,28,42, - 43,44,45,0,1,2,3,4,5,6, - 7,8,0,1,2,58,4,0,6,0, - 8,64,65,0,1,2,3,0,5,0, + 43,44,45,0,1,2,3,95,5,0, + 7,0,9,118,0,58,13,0,1,2, + 0,64,65,0,1,2,3,0,5,9, 7,74,0,1,2,3,4,5,6,7, - 8,56,10,11,12,0,14,15,16,4, + 8,71,10,11,12,0,14,15,16,4, 18,19,20,21,22,23,24,25,26,27, 0,29,30,3,32,33,34,35,36,37, - 38,39,40,28,42,43,44,45,61,0, - 0,1,2,0,1,2,3,4,9,6, - 58,8,0,61,71,3,64,65,0,1, + 38,39,40,62,42,43,44,45,67,56, + 66,64,65,0,1,2,3,4,0,6, + 58,8,4,73,62,0,64,65,0,1, 2,3,4,5,6,7,8,9,10,11, - 12,31,14,15,16,0,18,19,20,21, - 22,23,24,25,26,27,0,29,30,3, + 12,102,14,15,16,95,18,19,20,21, + 22,23,24,25,26,27,117,29,30,0, 32,33,34,35,36,37,38,39,40,56, - 42,43,44,45,0,1,2,3,56,5, - 0,7,73,9,4,0,58,13,60,0, - 1,2,0,4,9,6,0,8,13,3, + 42,43,44,45,0,1,2,0,4,5, + 3,7,0,0,1,2,58,4,60,6, + 0,8,0,1,2,3,71,5,0,7, 72,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,0, - 29,30,0,32,33,34,35,36,37,38, - 39,40,0,42,43,44,45,0,1,2, - 3,66,5,0,7,41,9,0,0,58, - 13,60,9,71,0,1,2,3,4,5, + 29,30,3,32,33,34,35,36,37,38, + 39,40,28,42,43,44,45,0,0,0, + 0,1,2,0,4,5,9,7,10,58, + 13,60,9,0,0,1,2,3,4,5, 6,7,8,72,10,11,12,0,14,15, - 16,4,18,19,20,21,22,23,24,25, - 26,27,0,29,30,66,32,33,34,35, - 36,37,38,39,40,0,42,43,44,45, - 0,0,0,1,2,4,4,5,41,7, - 28,0,58,0,1,2,73,0,64,65, - 0,1,2,3,4,5,6,7,8,0, + 16,31,18,19,20,21,22,23,24,25, + 26,27,0,29,30,0,32,33,34,35, + 36,37,38,39,40,57,42,43,44,45, + 0,62,0,1,2,0,4,5,3,7, + 67,58,58,0,1,2,73,4,64,65, + 0,1,2,3,4,5,6,7,8,62, 10,11,12,31,14,15,16,0,18,19, - 20,21,22,23,24,25,26,27,31,29, - 30,56,32,33,34,35,36,37,38,39, - 40,61,42,43,44,45,0,1,2,122, - 103,104,105,0,1,2,0,4,58,6, - 0,8,71,3,64,65,0,1,2,3, + 20,21,22,23,24,25,26,27,0,29, + 30,3,32,33,34,35,36,37,38,39, + 40,56,42,43,44,45,0,1,2,0, + 4,0,6,60,8,90,0,95,58,0, + 4,96,11,12,64,65,0,1,2,3, 4,5,6,7,8,9,10,11,12,0, - 14,15,16,66,18,19,20,21,22,23, - 24,25,26,27,0,29,30,3,32,33, + 14,15,16,4,18,19,20,21,22,23, + 24,25,26,27,66,29,30,41,32,33, 34,35,36,37,38,39,40,28,42,43, 44,45,0,1,2,3,4,5,6,7, - 8,0,10,11,12,4,14,15,16,0, + 8,62,10,11,12,0,14,15,16,0, 18,19,20,21,22,23,24,25,26,27, 0,29,30,3,32,33,34,35,36,37, - 38,39,40,0,42,43,44,45,0,1, - 2,3,9,5,0,7,0,1,2,3, - 58,5,60,7,10,0,1,2,3,4, + 38,39,40,28,42,43,44,45,29,103, + 104,105,0,0,1,2,0,4,0,6, + 58,8,60,11,12,0,1,2,3,4, 5,6,7,8,118,10,11,12,0,14, 15,16,0,18,19,20,21,22,23,24, - 25,26,27,0,29,30,0,32,33,34, + 25,26,27,0,29,30,3,32,33,34, 35,36,37,38,39,40,28,42,43,44, - 45,57,0,0,95,72,3,0,5,6, - 0,8,29,58,11,12,9,31,0,0, - 0,3,0,0,1,2,4,4,56,26, - 27,28,0,30,0,1,2,3,4,5, + 45,0,56,0,56,4,3,0,5,6, + 0,8,0,58,11,12,9,0,0,9, + 13,3,10,13,0,0,1,2,56,26, + 27,28,7,30,0,1,2,3,4,5, 6,7,8,9,26,27,0,13,0,1, - 2,17,4,5,31,7,0,1,2,56, - 0,5,28,7,61,46,47,64,65,66, - 67,0,0,66,56,41,66,6,0,72, + 2,17,4,0,1,2,3,0,5,56, + 7,0,28,46,47,62,9,64,65,66, + 67,0,1,2,56,41,5,67,7,31, 46,47,48,49,50,51,52,53,54,55, 56,88,89,90,91,92,93,94,0,0, - 97,98,99,100,101,102,28,73,0,106, + 97,98,99,100,101,102,0,73,9,106, 107,108,109,110,111,112,113,114,115,116, - 0,0,76,3,106,5,6,67,8,0, - 0,11,12,0,1,2,28,4,120,61, - 0,0,0,1,2,0,26,27,28,7, + 0,0,0,3,106,5,6,66,8,0, + 73,11,12,0,5,0,1,2,120,4, + 5,95,7,0,1,2,26,27,28,28, 30,0,1,2,3,4,5,6,7,8, - 9,0,91,92,13,0,1,2,17,28, - 5,93,94,0,1,2,56,56,5,71, - 0,61,0,0,64,65,66,67,90,90, - 0,9,41,60,96,96,31,46,47,48, + 9,28,0,0,13,0,1,2,17,0, + 5,72,10,67,31,0,56,0,1,2, + 0,0,62,3,64,65,66,67,90,67, + 9,0,41,31,96,4,31,46,47,48, 49,50,51,52,53,54,55,56,88,89, - 90,91,92,93,94,0,71,97,98,99, - 100,101,102,62,73,95,106,107,108,109, + 90,91,92,93,94,0,0,97,98,99, + 100,101,102,61,73,56,106,107,108,109, 110,111,112,113,114,115,116,0,1,2, - 3,4,5,6,7,8,56,10,11,12, - 67,14,15,16,72,18,19,20,21,22, + 3,4,5,6,7,8,71,10,11,12, + 0,14,15,16,73,18,19,20,21,22, 23,24,25,26,27,0,29,30,3,32, - 33,34,35,36,37,38,39,40,0,42, - 43,44,45,5,0,1,2,3,4,5, + 33,34,35,36,37,38,39,40,62,42, + 43,44,45,67,0,1,2,3,4,5, 6,7,8,56,10,11,12,0,14,15, 16,0,18,19,20,21,22,23,24,25, 26,27,0,29,30,3,32,33,34,35, @@ -1289,72 +1288,72 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,1,2,0,1,2,3,4,5,6, 7,8,58,10,11,12,0,14,15,16, 0,18,19,20,21,22,23,24,25,26, - 27,31,29,30,67,32,33,34,35,36, + 27,31,29,30,0,32,33,34,35,36, 37,38,39,40,0,42,43,44,45,0, 1,2,3,4,5,6,7,8,0,10, - 11,12,0,14,15,16,71,18,19,20, - 21,22,23,24,25,26,27,61,29,30, - 0,32,33,34,35,36,37,38,39,40, - 0,42,43,44,45,0,1,2,3,4, - 5,6,7,8,60,10,11,12,28,14, + 11,12,95,14,15,16,71,18,19,20, + 21,22,23,24,25,26,27,0,29,30, + 3,32,33,34,35,36,37,38,39,40, + 56,42,43,44,45,0,1,2,3,4, + 5,6,7,8,60,10,11,12,0,14, 15,16,0,18,19,20,21,22,23,24, 25,26,27,0,29,30,0,32,33,34, 35,36,37,38,39,40,0,42,43,44, - 45,0,1,2,0,4,0,1,2,0, + 45,0,1,2,0,4,0,0,1,2, 0,10,0,1,2,14,15,16,17,18, - 19,20,21,22,23,24,25,0,1,2, - 0,1,2,0,1,2,0,31,66,29, - 90,0,41,31,3,0,96,46,47,48, - 49,50,51,52,53,54,55,71,0,1, - 2,0,4,62,31,0,0,6,10,68, - 69,70,14,15,16,17,18,19,20,21, - 22,23,24,25,0,1,2,3,4,5, - 6,7,8,9,64,65,0,13,0,41, - 0,17,119,67,46,47,48,49,50,51, - 52,53,54,55,0,31,0,0,0,3, - 62,3,0,9,28,9,68,69,70,0, + 19,20,21,22,23,24,25,0,0,0, + 0,3,0,0,28,67,6,0,66,0, + 3,9,41,0,1,2,60,46,47,48, + 49,50,51,52,53,54,55,28,62,76, + 0,28,61,0,1,2,0,4,62,68, + 69,70,6,10,0,71,66,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,41,73,17,64,65,46, + 47,48,49,50,51,52,53,54,55,0, + 31,91,92,0,61,0,3,0,9,28, + 0,68,69,70,0,1,2,3,4,5, + 6,7,8,9,0,71,57,13,59,0, + 0,17,63,3,0,28,0,91,92,29, + 0,72,28,62,75,31,0,0,1,2, + 3,4,5,6,7,8,9,28,0,119, + 13,3,0,0,17,60,3,0,0,62, + 0,57,73,59,93,94,9,63,31,0, + 0,0,3,3,0,0,0,0,9,75, + 0,1,2,3,4,5,6,7,8,9, + 93,94,0,13,57,0,59,17,3,0, + 63,0,10,67,9,0,0,0,0,72, + 9,31,75,0,1,2,3,4,5,6, + 7,8,9,31,67,56,13,67,29,72, + 17,62,0,119,0,3,67,57,0,59, + 66,66,73,63,31,119,0,71,71,3, + 0,56,72,61,0,75,0,1,2,3, + 4,5,6,7,8,9,0,0,73,13, + 57,66,59,17,73,0,63,71,3,0, + 0,0,3,0,0,72,0,31,75,0, 1,2,3,4,5,6,7,8,9,0, - 95,57,13,59,0,6,17,63,0,0, - 28,3,91,92,0,0,72,28,60,75, - 31,0,0,1,2,3,4,5,6,7, - 8,9,56,29,0,13,0,61,0,17, - 66,0,66,61,67,9,57,73,59,73, - 9,0,63,31,13,0,1,2,0,0, - 1,2,0,0,75,0,1,2,3,4, - 5,6,7,8,9,93,94,0,13,57, - 0,59,17,0,0,63,28,10,67,9, - 91,92,9,13,72,0,31,75,0,1, - 2,3,4,5,6,7,8,9,31,73, - 0,13,61,3,0,17,0,66,0,61, - 0,0,57,0,59,0,0,9,63,31, - 9,13,0,71,71,3,0,72,0,62, - 75,0,1,2,3,4,5,6,7,8, - 9,93,94,119,13,57,73,59,17,0, - 0,63,67,3,0,0,0,3,3,3, - 72,0,31,75,0,1,2,3,4,5, - 6,7,8,9,61,71,66,13,0,66, - 0,17,66,77,73,0,0,0,57,0, - 59,0,0,67,63,31,0,0,0,0, - 0,0,0,0,0,0,75,0,1,2, - 3,4,5,6,7,8,9,17,0,28, - 13,57,0,59,17,0,0,63,67,0, - 0,0,0,0,119,0,0,0,31,75, - 0,41,0,17,0,67,46,47,48,49, - 50,51,52,53,54,55,0,0,0,17, - 0,0,0,0,57,0,59,41,0,0, - 63,0,46,47,48,49,50,51,52,53, - 54,55,75,41,0,17,0,0,46,47, - 48,49,50,51,52,53,54,55,0,0, - 0,0,0,0,0,0,0,0,0,41, - 0,0,0,0,46,47,48,49,50,51, - 52,53,54,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,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,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,13,0,66,0,17,0,0,0, + 0,0,0,57,0,59,66,0,0,63, + 31,0,0,0,0,0,0,0,0,0, + 0,75,0,1,2,3,4,5,6,7, + 8,9,17,0,0,13,57,0,59,17, + 0,0,63,0,0,0,0,0,0,0, + 0,0,0,31,75,0,41,0,17,0, + 0,46,47,48,49,50,51,52,53,54, + 55,0,0,0,17,0,0,0,0,57, + 0,59,41,0,0,63,0,46,47,48, + 49,50,51,52,53,54,55,75,41,0, + 17,0,0,46,47,48,49,50,51,52, + 53,54,55,0,0,0,0,0,0,0, + 0,0,0,0,41,0,0,0,0,46, + 47,48,49,50,51,52,53,54,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,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,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; @@ -1362,299 +1361,299 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 5194,5175,5157,5157,5157,5157,5157,5157,5157,5185, - 1,1,1,5182,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5194,1, - 1,1,1,1,1,1,1,1,1,1, + 5190,5171,5153,5153,5153,5153,5153,5153,5153,5181, + 1,1,1,5178,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5190,1, + 1,3479,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5194,1684,1,1433, - 2742,140,1,2942,1,1,126,43,1,1, - 1,5236,5201,1679,5374,5524,1111,3316,3350,2196, - 2930,3204,3068,3293,1474,3265,3770,3241,8,5188, - 5188,5188,5188,5188,5188,5188,5188,5188,5188,5188, - 5188,5188,5188,5188,5188,5188,5188,5188,5188,5188, - 5188,5188,5188,5188,5188,5188,5194,5188,5188,3480, - 5188,5188,5188,5188,5188,5188,5188,5188,5188,5188, - 5188,5188,5188,5188,5188,5188,5188,5188,5188,5188, - 5188,5188,5188,5188,138,5188,5188,5188,5188,4801, - 5188,5188,5188,5188,2549,2596,5188,5188,5188,43, - 5188,2316,5188,5236,5188,5188,5188,5188,5188,5188, - 5188,5188,5188,5188,5188,5188,5194,5175,5157,5157, - 5157,5157,5157,5157,5157,5179,1,1,1,5182, + 1,1,1,1,1,1,1,1683,1,1432, + 2741,1,138,2928,1,1,126,43,1,1, + 1,5232,5197,1678,5370,5520,1110,3292,3349,2195, + 2929,3175,3067,3264,1473,3240,3769,3221,8,5184, + 5184,5184,5184,5184,5184,5184,5184,5184,5184,5184, + 5184,5184,5184,5184,5184,5184,5184,5184,5184,5184, + 5184,5184,5184,5184,5184,5184,5190,5184,5184,5190, + 5184,5184,5184,5184,5184,5184,5184,5184,5184,5184, + 5184,5184,5184,5184,5184,5184,5184,5184,5184,5184, + 5184,5184,5184,5184,2752,5184,5184,5184,5184,5184, + 402,5184,5184,5184,2548,2595,5184,5184,5184,5093, + 5184,589,5184,5096,5184,5184,5184,5184,5184,5184, + 5184,5184,5184,5184,5184,5184,5190,5171,5153,5153, + 5153,5153,5153,5153,5153,5175,1,1,1,5178, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5194,1,1,2808,1,1, + 1,1,1,1,5190,1,1,2807,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,435,1684,1,1433,2742,529,1,2942, - 1,1,130,590,1,1,1,5194,4805,4802, - 5374,5236,1111,3316,3350,2196,2930,3204,3068,3293, - 1474,3265,3770,3241,5194,5175,5157,5157,5157,5157, - 5157,5157,5157,5179,1,1,1,5182,1,1, + 1,1,435,1683,1,1432,2741,1,142,2928, + 1,1,130,5190,1,1,1,5190,4804,4801, + 5370,5232,1110,3292,3349,2195,2929,3175,3067,3264, + 1473,3240,3769,3221,5190,5171,5153,5153,5153,5153, + 5153,5153,5153,5175,1,1,1,5178,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5194,1,1,3132,1,1,1,1, + 1,1,5190,1,1,41,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 2753,1684,1,1433,2742,5194,1,2942,1,1, - 2549,2596,1,1,1,5625,5626,5627,5374,5194, - 1111,3316,3350,2196,2930,3204,3068,3293,1474,3265, - 3770,3241,5194,5175,5157,5157,5157,5157,5157,5157, - 5157,5179,1,1,1,5182,1,1,1,1, + 2871,1683,1,1432,2741,1,5230,2928,1,1, + 2548,2595,1,1,1,5621,5622,5623,5370,2282, + 1110,3292,3349,2195,2929,3175,3067,3264,1473,3240, + 3769,3221,5190,5171,5153,5153,5153,5153,5153,5153, + 5153,5175,1,1,1,5178,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5194,1,1,5194,1,1,1,1,1,1, + 5190,1,1,5190,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,2872,1684, - 1,1433,2742,5194,1,2942,1,1,129,3399, - 1,1,1,5194,4805,4802,5374,5236,1111,3316, - 3350,2196,2930,3204,3068,3293,1474,3265,3770,3241, - 5194,5175,5157,5157,5157,5157,5157,5157,5157,5179, - 1,1,1,5182,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5194,1, - 1,5194,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,3107,1683, + 1,1432,2741,1,134,2928,1,1,129,5190, + 1,1,1,5190,4804,4801,5370,5232,1110,3292, + 3349,2195,2929,3175,3067,3264,1473,3240,3769,3221, + 5190,5171,5153,5153,5153,5153,5153,5153,5153,5175, + 1,1,1,5178,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5190,1, + 1,53,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,3108,1684,1,1433, - 2742,123,1,2942,1,1,2549,2596,1,1, - 1,5194,3002,2977,5374,790,1111,3316,3350,2196, - 2930,3204,3068,3293,1474,3265,3770,3241,5194,5175, - 5157,5157,5157,5157,5157,5157,5157,5179,1,1, - 1,5182,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5194,1,1,5194, + 1,1,1,1,1,1,3480,1683,1,1432, + 2741,1,2577,2928,1,1,2548,2595,1,1, + 1,2403,2375,5190,5370,5190,1110,3292,3349,2195, + 2929,3175,3067,3264,1473,3240,3769,3221,5190,5171, + 5153,5153,5153,5153,5153,5153,5153,5175,1,1, + 1,5178,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,33,1,1,5190, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,3481,1684,1,1433,2742,5194, - 1,2942,1,1,128,136,1,1,1,5194, - 5211,5212,5374,2347,1111,3316,3350,2196,2930,3204, - 3068,3293,1474,3265,3770,3241,5194,5175,5157,5157, - 5157,5157,5157,5157,5157,5179,1,1,1,5182, + 1,1,1,1,4807,1683,1,1432,2741,1, + 143,2928,1,1,128,136,1,1,1,5190, + 5207,5208,5370,2346,1110,3292,3349,2195,2929,3175, + 3067,3264,1473,3240,3769,3221,5190,5171,5153,5153, + 5153,5153,5153,5153,5153,5175,1,1,1,5178, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,33,1,1,5194,1,1, + 1,1,1,1,436,1,1,5190,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,4808,1684,1,1433,2742,5194,1,2942, - 1,1,2549,2596,1,1,1,5194,4983,4980, - 5374,5194,1111,3316,3350,2196,2930,3204,3068,3293, - 1474,3265,3770,3241,5194,5175,5157,5157,5157,5157, - 5157,5157,5157,5179,1,1,1,5182,1,1, + 1,1,4810,1683,1,1432,2741,1,2737,2928, + 1,1,2548,2595,1,1,1,5190,4982,4979, + 5370,2282,1110,3292,3349,2195,2929,3175,3067,3264, + 1473,3240,3769,3221,5190,5171,5153,5153,5153,5153, + 5153,5153,5153,5175,1,1,1,5178,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,436,1,1,5194,1,1,1,1, + 1,1,450,1,1,5190,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 4811,1684,1,1433,2742,5194,1,2942,1,1, - 127,137,1,1,1,54,4995,4992,5374,2347, - 1111,3316,3350,2196,2930,3204,3068,3293,1474,3265, - 3770,3241,5194,3222,1,1,1,1,1,1, - 1,5204,1,1,1,5203,1,1,1,1, + 4813,1683,1,1432,2741,1,135,2928,1,1, + 127,137,1,1,1,54,4994,4991,5370,2346, + 1110,3292,3349,2195,2929,3175,3067,3264,1473,3240, + 3769,3221,5190,3203,1,1,1,1,1,1, + 1,5200,1,1,1,5199,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 450,1,1,162,1,1,1,1,1,1, + 97,1,1,4837,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,4814,1684, - 1,1433,2742,303,1,2942,1,1,2549,2596, - 1,1,1,5496,97,134,5374,4838,1111,3316, - 3350,2196,2930,3204,3068,3293,1474,3265,3770,3241, - 43,4805,4802,3251,729,3816,3889,3233,3911,1352, - 776,3867,3845,5194,5462,5460,5469,5455,5468,5464, - 5465,5463,5466,5467,5470,5461,3955,3933,45,5217, - 1054,141,654,723,5219,673,2662,715,5220,5218, - 576,5458,5213,5215,5216,5214,5531,5532,5452,5459, - 5431,5457,5456,5453,5454,5432,4835,5194,1309,440, - 1,1,5589,1,5194,4826,41,4826,572,5590, - 5591,5194,5056,5056,232,5052,232,232,232,232, - 5060,1,2404,2376,232,1,1,1,1,1, - 1,1,1,1,1,1,1,5234,5194,8519, - 8519,5194,5049,345,5147,5143,2710,5236,784,1679, - 3233,5524,1,5194,5211,5212,135,1,1,1, - 1,1,1,1,1,1,1,1,1115,5234, - 906,2316,144,1,142,1,5194,5166,2856,1, - 1,1,232,413,5004,5603,5690,5194,5056,5056, - 232,5052,232,232,232,232,5060,1,3071,1856, + 1,1,1,1,1,1,1,1,120,1683, + 1,1432,2741,1,3568,2928,1,1,2548,2595, + 1,1,1,2403,2375,5190,5370,5190,1110,3292, + 3349,2195,2929,3175,3067,3264,1473,3240,3769,3221, + 43,4804,4801,3250,728,3815,3888,3232,3910,43, + 775,3866,3844,5232,5458,5456,5465,5451,5464,5460, + 5461,5459,5462,5463,5466,5457,3954,3932,139,5213, + 1053,140,653,722,5215,672,2661,714,5216,5214, + 575,5454,5209,5211,5212,5210,5527,5528,5448,5455, + 5427,5453,5452,5449,5450,5428,5190,5190,1308,3545, + 3037,5585,5190,5207,5208,1804,5190,2648,571,5586, + 5587,5190,5052,5052,232,5048,232,232,232,232, + 5056,1,5190,190,232,1,1,1,1,1, + 1,1,1,1,1,1,1,5190,5190,8322, + 8322,789,5045,345,5143,5139,2709,5232,783,1678, + 3232,5520,1,49,4988,4988,2571,1,1,1, + 1,1,1,1,1,1,1,589,1114,5230, + 905,2315,1,54,4982,4979,292,5207,5208,1, + 1,1,232,413,4985,5599,5686,5190,5052,5052, + 232,5048,232,232,232,232,5056,1,5190,1855, 232,1,1,1,1,1,1,1,1,1, - 1,1,1,3529,5625,5626,5627,385,5049,5194, - 5147,5143,3710,5236,784,1679,3233,5524,1,5169, - 5194,1856,30,1,1,1,1,1,1,1, - 1,1,1,5194,1115,4841,906,1,5007,1, - 3483,1,5198,2404,2376,1,1,1,232,413, - 363,5603,5690,5194,5056,5056,232,5052,232,232, - 232,232,5112,1,2246,2283,232,1,1,1, - 1,1,1,1,1,1,1,1,1,4086, - 5625,5626,5627,5025,5049,5194,5211,5212,5025,1, - 5043,5043,393,5040,1,1679,385,5524,363,1, - 1,1,1,1,1,1,1,1,1,454, - 1115,453,906,139,363,1,54,4983,4980,125, - 926,1,1,1,232,412,37,5603,5690,4844, - 3002,2977,4844,5194,4844,4844,363,4844,4844,4844, - 5194,5138,5133,3710,5040,784,5130,3233,5127,3977, - 815,5197,4844,4844,4844,227,5625,5626,5627,5194, - 4805,4802,363,729,4850,4829,3233,4832,143,5462, - 5460,5469,5455,5468,5464,5465,5463,5466,5467,5470, - 5461,5194,4844,144,363,313,241,4844,2695,5010, - 994,116,4844,4844,1989,5194,5458,4844,4844,4844, - 5194,5531,5532,5452,5459,5431,5457,5456,5453,5454, - 5432,2072,590,5194,4844,4844,4844,4844,4844,4844, - 4844,4844,4844,4844,4844,4844,4844,4844,4844,292, - 5211,5212,4844,4844,4844,4844,4844,4844,4844,4844, - 4844,4844,4844,4844,4844,5194,4844,4844,4847,5194, - 1814,4847,1266,4847,4847,3398,4847,4847,4847,367, - 5085,5081,2710,1,784,1,3233,1,5194,2283, - 5194,4847,4847,4847,2016,1,5085,5081,2710,1805, - 784,3999,3233,5194,5004,2246,4413,4021,5194,5194, - 1772,1730,1688,1646,1604,1562,1520,1478,1436,1394, - 4086,4847,124,5194,4805,4802,4847,729,784,3765, - 3233,4847,4847,3002,2977,1856,4847,4847,4847,402, - 1,5085,5081,2710,5194,784,1133,3233,5097,2018, - 2572,1856,5100,4847,4847,4847,4847,4847,4847,4847, - 4847,4847,4847,4847,4847,4847,4847,4847,5007,2026, - 5702,4847,4847,4847,4847,4847,4847,4847,4847,4847, - 4847,4847,4847,4847,5194,4847,4847,5194,1,1, - 1,1,1,1,1,1,1856,1,1,1, - 54,1,1,1,5212,1,1,1,1,1, - 1,1,1,1,1,347,1,1,3203,1, - 1,1,1,1,1,1,1,1,5212,1, - 1,1,1,311,5138,5133,3710,5040,784,5130, - 3233,5127,441,43,43,1,5236,5194,5031,5194, - 5028,1,1,1,5085,5081,3710,5194,784,5194, - 3233,5727,1,4893,4889,3251,4897,3816,3889,3233, - 3911,1856,4853,3867,3845,54,4880,4886,4859,5211, - 4862,4874,4871,4877,4868,4865,4856,4883,3955,3933, - 5194,5217,1054,4415,654,723,5219,673,2662,715, - 5220,5218,576,5211,5213,5215,5216,5214,5631,1, - 49,4989,4989,345,43,43,2856,5236,166,1679, - 1309,5524,319,512,2072,5124,43,43,43,4805, - 4802,3251,729,3816,3889,3233,3911,5202,721,3867, - 3845,4986,5462,5460,5469,5194,5468,5464,5465,5463, - 5466,5467,5470,5461,3955,3933,5194,5217,1054,4431, - 654,723,5219,673,2662,715,5220,5218,576,1856, - 5213,5215,5216,5214,1,5085,5081,5103,1856,5106, - 1,5109,166,5204,386,5194,1309,5203,4252,98, - 1,1,5194,1,5204,5034,5194,5034,5203,4618, - 5201,43,4805,4802,3251,729,3816,3889,3233,3911, - 5202,721,3867,3845,43,5462,5460,5469,5236,5468, - 5464,5465,5463,5466,5467,5470,5461,3955,3933,511, - 5217,1054,5194,654,723,5219,673,2662,715,5220, - 5218,576,5194,5213,5215,5216,5214,1,5085,5081, - 3710,3603,784,5194,3233,1763,311,190,5194,1309, - 311,4252,5200,1893,146,4805,4802,3251,729,3816, - 3889,3233,3911,5201,721,3867,3845,43,5462,5460, - 5469,5236,5468,5464,5465,5463,5466,5467,5470,5461, - 3955,3933,5194,5217,1054,873,654,723,5219,673, - 2662,715,5220,5218,576,348,5213,5215,5216,5214, - 5194,5194,5194,4805,4802,3160,729,4850,1124,3233, - 926,424,1309,40,5078,5075,5199,53,43,43, - 1,4893,4889,3251,4897,3816,3889,3233,3911,5194, - 4853,3867,3845,2059,4880,4886,4859,362,4862,4874, - 4871,4877,4868,4865,4856,4883,3955,3933,2578,5217, - 1054,1856,654,723,5219,673,2662,715,5220,5218, - 576,5645,5213,5215,5216,5214,5194,4995,4992,5191, - 5625,5626,5627,101,43,43,5194,5236,1309,5118, - 5194,5115,2648,4111,43,43,43,4805,4802,3251, - 729,3816,3889,3233,3911,5198,721,3867,3845,1, - 5462,5460,5469,3619,5468,5464,5465,5463,5466,5467, - 5470,5461,3955,3933,5194,5217,1054,4253,654,723, - 5219,673,2662,715,5220,5218,576,926,5213,5215, - 5216,5214,43,4805,4802,3251,729,3816,3889,3233, - 3911,5194,721,3867,3845,1389,5462,5460,5469,358, - 5468,5464,5465,5463,5466,5467,5470,5461,3955,3933, - 109,5217,1054,4629,654,723,5219,673,2662,715, - 5220,5218,576,5194,5213,5215,5216,5214,1,5085, - 5081,3710,5202,784,303,3233,1,5085,5081,5103, - 1309,5106,4252,5109,5496,43,4805,4802,3251,729, - 3816,3889,3233,3911,5197,721,3867,3845,5194,5462, - 5460,5469,106,5468,5464,5465,5463,5466,5467,5470, - 5461,3955,3933,5194,5217,1054,5194,654,723,5219, - 673,2662,715,5220,5218,576,2738,5213,5215,5216, - 5214,2751,5194,1,5551,5201,642,5194,5659,5653, - 291,5657,4144,1309,5651,5652,5202,2762,81,336, - 5194,4095,5194,394,4805,4802,2132,5236,4623,5682, - 5683,5662,5194,5660,33,385,385,5019,385,385, - 5019,385,5019,5022,5262,5263,1,5019,5194,4805, - 4802,385,729,784,43,3233,5194,5211,5212,538, - 293,784,4808,3233,5663,5531,5532,1332,1340,5684, - 5661,120,5194,1012,3700,385,915,3569,131,5201, + 1,1,1,43,5621,5622,5623,5232,5045,5190, + 5143,5139,3709,5232,783,1678,3232,5520,1,41, + 5042,5042,5190,1,1,1,1,1,1,1, + 1,1,1,4800,1114,5187,905,393,1,347, + 116,385,3202,5190,1762,1,1,1,232,413, + 2933,5599,5686,5190,5052,5052,232,5048,232,232, + 232,232,5108,1,162,925,232,1,1,1, + 1,1,1,1,1,1,1,1,1,5190, + 5621,5622,5623,45,5045,367,5081,5077,2709,1, + 783,1,3232,1,1,1855,40,5074,5071,1, + 1,1,1,1,1,1,1,1,1,5190, + 1114,4834,905,5190,1,5190,4994,4991,5198,3398, + 3457,1,1,1,232,412,37,5599,5686,4843, + 3998,1351,4843,5190,4843,4843,4020,4843,4843,4843, + 385,1855,5190,5134,5129,3709,5036,783,5126,3232, + 5123,1132,4843,4843,4843,227,5621,5622,5623,311, + 5134,5129,3709,5036,783,5126,3232,5123,4840,5458, + 5456,5465,5451,5464,5460,5461,5459,5462,5463,5466, + 5457,5197,4843,144,1,5081,5077,3709,4843,783, + 119,3232,4843,4843,454,1988,5454,4843,4843,4843, + 123,5527,5528,5448,5455,5427,5453,5452,5449,5450, + 5428,3001,2976,2071,4843,4843,4843,4843,4843,4843, + 4843,4843,4843,4843,4843,4843,4843,4843,4843,5190, + 5207,5208,4843,4843,4843,4843,4843,4843,4843,4843, + 4843,4843,4843,4843,4843,5190,4843,4843,4846,1813, + 4828,4846,5190,4846,4846,2071,4846,4846,4846,1, + 5081,5077,2709,5190,783,5190,3232,5190,5003,5190, + 5190,4846,4846,4846,1,5081,5077,5099,5200,5102, + 3998,5105,5199,5200,141,2245,4020,5199,5190,3528, + 1771,1729,1687,1645,1603,1561,1519,1477,1435,1393, + 4085,4846,440,1,1,5190,1,4846,4825,511, + 4825,4846,4846,4170,5194,1855,4846,4846,4846,5190, + 5062,5059,1,5039,5039,2015,5036,2017,1678,2025, + 5520,363,5006,4846,4846,4846,4846,4846,4846,4846, + 4846,4846,4846,4846,4846,4846,4846,4846,3397,5190, + 5230,4846,4846,4846,4846,4846,4846,4846,4846,4846, + 4846,4846,4846,4846,5190,4846,4846,5190,1,1, + 1,1,1,1,1,1,872,1,1,1, + 33,1,1,1,2315,1,1,1,1,1, + 1,1,1,1,1,363,1,1,5190,1, + 1,1,1,1,1,1,1,1,925,1, + 1,1,1,1,5081,5077,3709,363,783,144, + 3232,5190,311,5193,293,1,311,5190,5207,5208, + 1,1,1,1,5081,5077,2709,5190,783,363, + 3232,5722,1,4892,4888,3250,4896,3815,3888,3232, + 3910,420,4852,3866,3844,1,4879,4885,4858,386, + 4861,4873,4870,4876,4867,4864,4855,4882,3954,3932, + 1,5213,1053,3482,653,722,5215,672,2661,714, + 5216,5214,575,4304,5209,5211,5212,5210,3104,1855, + 1984,3976,814,345,43,43,2855,5232,5190,1678, + 1308,5520,3159,363,512,5190,43,43,43,4804, + 4801,3250,728,3815,3888,3232,3910,5198,720,3866, + 3844,2245,5458,5456,5465,363,5464,5460,5461,5459, + 5462,5463,5466,5457,3954,3932,4085,5213,1053,5190, + 653,722,5215,672,2661,714,5216,5214,575,1855, + 5209,5211,5212,5210,5190,4804,4801,241,728,783, + 5009,3232,5190,441,43,43,1308,5232,4251,5027, + 5190,5024,1,5081,5077,3709,1892,783,5190,3232, + 5197,43,4804,4801,3250,728,3815,3888,3232,3910, + 5198,720,3866,3844,54,5458,5456,5465,5208,5464, + 5460,5461,5459,5462,5463,5466,5457,3954,3932,5190, + 5213,1053,4412,653,722,5215,672,2661,714,5216, + 5214,575,5208,5209,5211,5212,5210,1,303,5190, + 5190,4804,4801,5190,728,4849,5200,3232,5492,1308, + 5199,4251,5196,528,146,4804,4801,3250,728,3815, + 3888,3232,3910,5197,720,3866,3844,5190,5458,5456, + 5465,993,5464,5460,5461,5459,5462,5463,5466,5457, + 3954,3932,358,5213,1053,118,653,722,5215,672, + 2661,714,5216,5214,575,2750,5209,5211,5212,5210, + 5190,5698,5190,4804,4801,319,728,4849,5120,3232, + 4596,3101,1308,5190,4804,4801,5195,5232,43,43, + 1,4892,4888,3250,4896,3815,3888,3232,3910,5627, + 4852,3866,3844,2058,4879,4885,4858,5190,4861,4873, + 4870,4876,4867,4864,4855,4882,3954,3932,313,5213, + 1053,2694,653,722,5215,672,2661,714,5216,5214, + 575,1855,5209,5211,5212,5210,98,1,1,5190, + 1,125,5030,3152,5030,3998,43,5547,1308,5190, + 5232,4020,3001,2976,43,43,43,4804,4801,3250, + 728,3815,3888,3232,3910,5194,720,3866,3844,54, + 5458,5456,5465,5207,5464,5460,5461,5459,5462,5463, + 5466,5457,3954,3932,1265,5213,1053,1123,653,722, + 5215,672,2661,714,5216,5214,575,5207,5209,5211, + 5212,5210,43,4804,4801,3250,728,3815,3888,3232, + 3910,5641,720,3866,3844,5190,5458,5456,5465,5190, + 5464,5460,5461,5459,5462,5463,5466,5457,3954,3932, + 5190,5213,1053,4414,653,722,5215,672,2661,714, + 5216,5214,575,925,5209,5211,5212,5210,4143,5621, + 5622,5623,124,101,43,43,453,5232,348,5114, + 1308,5111,4251,3001,2976,43,4804,4801,3250,728, + 3815,3888,3232,3910,5193,720,3866,3844,1,5458, + 5456,5465,106,5464,5460,5461,5459,5462,5463,5466, + 5457,3954,3932,5190,5213,1053,4430,653,722,5215, + 672,2661,714,5216,5214,575,925,5209,5211,5212, + 5210,5190,4831,1,1855,1388,641,1,5655,5649, + 5190,5653,303,1308,5647,5648,196,336,81,5200, + 196,4094,5492,5199,5190,42,4819,4816,4622,5678, + 5679,5658,807,5656,33,385,385,5018,385,385, + 5018,385,5018,5021,5258,5259,1,5018,394,4804, + 4801,385,5232,1,5081,5077,5099,1,5102,537, + 5105,370,4807,5527,5528,5659,166,1331,1339,5657, + 5680,5190,5207,5208,3699,385,783,3602,3232,43, 385,385,385,385,385,385,385,385,385,385, - 5022,5673,5672,5685,5654,5655,5678,5679,119,118, - 5676,5677,5656,5658,5680,5681,2513,5022,33,5686, - 5666,5667,5668,5664,5665,5674,5675,5670,5669,5671, - 5194,105,3838,642,656,5659,5653,1985,5657,5194, - 1,5651,5652,5194,4805,4802,926,5236,795,4823, - 5194,79,42,4820,4817,5194,5682,5683,5662,808, - 5660,36,386,386,5013,386,386,5013,386,5013, - 5016,5194,3546,3038,5013,41,5037,5037,386,5121, - 5037,2459,2432,5194,5211,5212,538,2022,2649,420, - 5194,5663,1,370,1332,1340,5684,5661,3999,3999, - 321,5172,386,3153,4021,4021,2818,386,386,386, - 386,386,386,386,386,386,386,5016,5673,5672, - 5685,5654,5655,5678,5679,5194,5592,5676,5677,5656, - 5658,5680,5681,4171,5016,5553,5686,5666,5667,5668, - 5664,5665,5674,5675,5670,5669,5671,43,4805,4802, - 3251,729,3816,3889,3233,3911,1856,721,3867,3845, - 1175,5462,5460,5469,5201,5468,5464,5465,5463,5466, - 5467,5470,5461,3955,3933,5194,5217,1054,3621,654, - 723,5219,673,2662,715,5220,5218,576,5194,5213, - 5215,5216,5214,2649,43,4805,4802,3251,729,3816, - 3889,3233,3911,1650,721,3867,3845,368,5462,5460, - 5469,5194,5468,5464,5465,5463,5466,5467,5470,5461, - 3955,3933,282,5217,1054,5151,654,723,5219,673, - 2662,715,5220,5218,576,444,5213,5215,5216,5214, - 41,5046,5046,43,4805,4802,3639,729,3816,3889, - 3233,3911,1309,721,3867,3845,5194,5462,5460,5469, - 5194,5468,5464,5465,5463,5466,5467,5470,5461,3955, - 3933,2934,5217,1054,1224,654,723,5219,673,2662, - 715,5220,5218,576,5194,5213,5215,5216,5214,43, - 4805,4802,3251,729,3816,3889,3233,3911,5194,721, - 3867,3845,5194,5462,5460,5469,3189,5468,5464,5465, - 5463,5466,5467,5470,5461,3955,3933,4084,5217,1054, - 5194,654,723,5219,673,2662,715,5220,5218,576, - 117,5213,5215,5216,5214,43,4805,4802,3251,729, - 3816,3889,3233,3911,2742,721,3867,3845,3807,5462, - 5460,5469,422,5468,5464,5465,5463,5466,5467,5470, - 5461,3955,3933,5194,5217,1054,5194,654,723,5219, - 673,2662,715,5220,5218,576,5194,5213,5215,5216, - 5214,5194,4805,4802,5194,5236,5194,5066,5063,5194, - 5194,669,51,5072,5072,5462,5460,5469,5455,5468, - 5464,5465,5463,5466,5467,5470,5461,394,5211,5212, - 5194,4983,4980,5194,5093,5089,416,5234,4527,3608, - 3999,5194,5458,5069,2981,1,4021,5531,5532,5452, - 5459,5431,5457,5456,5453,5454,5432,2109,245,4973, - 4969,122,4977,5589,5234,5194,5194,3569,669,572, - 5590,5591,4960,4966,4939,4924,4942,4954,4951,4957, - 4948,4945,4936,4963,1,5157,5157,232,5157,232, - 232,232,232,5160,3977,815,5194,232,1,4915, - 5194,8322,3387,2159,4909,4906,4933,4912,4903,4918, - 4921,4930,4927,4900,5194,5154,1,39,5194,2856, - 5589,4630,133,5200,4202,341,572,5590,5591,1, - 5157,5157,232,5157,232,232,232,232,232,121, - 4132,3065,232,1433,1,3569,8322,2942,5194,5194, - 2513,4522,3546,3038,5194,5194,224,2738,4200,5690, - 5154,504,1,5157,5157,232,5157,232,232,232, - 232,5163,1856,2929,375,232,1,341,5194,8322, - 4597,5194,341,4998,2887,5200,3065,5199,1433,341, - 5204,5194,2942,5154,5203,5194,7233,7158,132,5194, - 7233,7158,5194,5194,5690,1,5157,5157,232,5157, - 232,232,232,232,5160,2459,2432,1,232,3065, - 1,1433,8322,1,5194,2942,2513,5166,4570,5204, - 3546,3038,525,5203,223,502,5154,5690,1,5157, - 5157,232,5157,232,232,232,232,5160,3071,5199, - 5194,232,4305,2857,5194,8322,5194,3105,1,5001, - 445,1,3065,5194,1433,518,310,196,2942,5154, - 168,196,5194,5377,3133,4564,5194,224,5194,5169, - 5690,1,5157,5157,232,5157,232,232,232,232, - 232,2459,2432,3387,232,3065,525,1433,8322,5194, - 5194,2942,4577,2778,5194,5194,5194,4567,4612,4628, - 224,5194,5154,5690,1,5157,5157,232,5157,232, - 232,232,232,232,3458,5376,3629,232,506,3105, - 5194,8322,4285,3464,168,5194,5194,5194,3065,5194, - 1433,2,5194,2887,2942,5154,5194,5194,5194,5194, - 228,5194,5194,5194,5194,5194,5690,1,5157,5157, - 232,5157,232,232,232,232,232,5455,5194,41, - 232,3065,5194,1433,8322,5194,229,2942,1943,5194, - 5194,5194,5194,5194,3387,5194,5194,5194,5154,5690, - 5194,5458,230,5455,5194,932,5531,5532,5452,5459, - 5431,5457,5456,5453,5454,5432,5194,5194,5194,5455, - 5194,5194,5194,5194,3065,5194,1433,5458,231,5194, - 2942,5194,5531,5532,5452,5459,5431,5457,5456,5453, - 5454,5432,5690,5458,5194,5455,5194,5194,5531,5532, - 5452,5459,5431,5457,5456,5453,5454,5432,5194,5194, - 5194,5194,5194,5194,5194,5194,5194,5194,5194,5458, - 5194,5194,5194,5194,5531,5532,5452,5459,5431,5457, - 5456,5453,5454,5432 + 5021,5669,5668,5681,5650,5651,5674,5675,117,1, + 5672,5673,5652,5654,5676,5677,362,5021,5168,5682, + 5662,5663,5664,5660,5661,5670,5671,5666,5665,5667, + 5190,5190,291,641,655,5655,5649,1174,5653,5190, + 166,5647,5648,79,2648,5190,4804,4801,794,728, + 783,5549,3232,51,5068,5068,5678,5679,5658,2707, + 5656,36,386,386,5012,386,386,5012,386,5012, + 5015,5117,1,5190,5012,41,5033,5033,386,105, + 5033,5197,5162,3618,5065,424,537,394,5207,5208, + 5190,5190,5659,4617,1331,1339,5657,5680,3998,914, + 5196,5190,386,3069,4020,2131,2817,386,386,386, + 386,386,386,386,386,386,386,5015,5669,5668, + 5681,5650,5651,5674,5675,5190,5190,5672,5673,5652, + 5654,5676,5677,5165,5015,2021,5682,5662,5663,5664, + 5660,5661,5670,5671,5666,5665,5667,43,4804,4801, + 3250,728,3815,3888,3232,3910,2647,720,3866,3844, + 5190,5458,5456,5465,5195,5464,5460,5461,5459,5462, + 5463,5466,5457,3954,3932,5190,5213,1053,4110,653, + 722,5215,672,2661,714,5216,5214,575,3444,5209, + 5211,5212,5210,3104,43,4804,4801,3250,728,3815, + 3888,3232,3910,1649,720,3866,3844,1,5458,5456, + 5465,5190,5464,5460,5461,5459,5462,5463,5466,5457, + 3954,3932,5190,5213,1053,4252,653,722,5215,672, + 2661,714,5216,5214,575,5190,5209,5211,5212,5210, + 5190,5089,5085,43,4804,4801,3638,728,3815,3888, + 3232,3910,1308,720,3866,3844,5190,5458,5456,5465, + 5190,5464,5460,5461,5459,5462,5463,5466,5457,3954, + 3932,5230,5213,1053,321,653,722,5215,672,2661, + 714,5216,5214,575,5190,5209,5211,5212,5210,43, + 4804,4801,3250,728,3815,3888,3232,3910,5190,720, + 3866,3844,4131,5458,5456,5465,5588,5464,5460,5461, + 5459,5462,5463,5466,5457,3954,3932,109,5213,1053, + 4628,653,722,5215,672,2661,714,5216,5214,575, + 1855,5209,5211,5212,5210,43,4804,4801,3250,728, + 3815,3888,3232,3910,3764,720,3866,3844,422,5458, + 5456,5465,368,5464,5460,5461,5459,5462,5463,5466, + 5457,3954,3932,1,5213,1053,5190,653,722,5215, + 672,2661,714,5216,5214,575,5190,5209,5211,5212, + 5210,5190,4804,4801,444,5232,131,5190,7562,7367, + 416,668,5190,7562,7367,5458,5456,5465,5451,5464, + 5460,5461,5459,5462,5463,5466,5457,5190,5190,5190, + 122,3620,1,5190,2512,4526,3568,282,1223,5190, + 5147,5196,5454,5190,4982,4979,2741,5527,5528,5448, + 5455,5427,5453,5452,5449,5450,5428,3806,4083,3837, + 5190,4201,5585,245,4972,4968,121,4976,4822,571, + 5586,5587,3568,668,5190,3188,2158,4959,4965,4938, + 4923,4941,4953,4950,4956,4947,4944,4935,4962,1, + 5153,5153,232,5153,232,232,232,232,5156,2458, + 2431,133,232,5190,4914,5195,8402,3976,814,4908, + 4905,4932,4911,4902,4917,4920,4929,4926,4899,1, + 5150,3545,3037,5190,5585,1,2941,132,524,2512, + 5190,571,5586,5587,1,5153,5153,232,5153,232, + 232,232,232,232,375,2108,3064,232,1432,2, + 5190,8402,2928,4629,5190,2512,517,3545,3037,3607, + 5190,224,2707,4997,5686,5150,445,1,5153,5153, + 232,5153,232,232,232,232,5159,41,5190,3339, + 232,4521,5190,5190,8402,4199,2856,5190,5190,5000, + 310,3064,524,1432,2458,2431,5198,2928,5150,1, + 5190,5190,2855,4563,39,504,5190,5190,341,5686, + 1,5153,5153,232,5153,232,232,232,232,5156, + 2458,2431,1,232,3064,1,1432,8402,2855,1, + 2928,1,5162,3628,5003,502,5190,5190,5190,223, + 168,5150,5686,1,5153,5153,232,5153,232,232, + 232,232,5156,3069,1011,1855,232,4284,2923,5197, + 8402,341,5190,3339,5190,2777,341,3064,5190,1432, + 2886,4569,341,2928,5150,3339,5190,5373,3132,4566, + 506,1855,224,5165,5190,5686,1,5153,5153,232, + 5153,232,232,232,232,232,5190,5190,5006,232, + 3064,4576,1432,8402,168,5190,2928,5372,4611,5190, + 5190,5190,4627,5190,5190,224,5190,5150,5686,1, + 5153,5153,232,5153,232,232,232,232,232,5190, + 2886,5190,232,5190,1942,5190,8402,5190,5190,5190, + 5190,5190,5190,3064,5190,1432,931,5190,5190,2928, + 5150,5190,5190,5190,5190,228,5190,5190,5190,5190, + 5190,5686,1,5153,5153,232,5153,232,232,232, + 232,232,5451,5190,5190,232,3064,5190,1432,8402, + 5190,229,2928,5190,5190,5190,5190,5190,5190,5190, + 5190,5190,5190,5150,5686,5190,5454,230,5451,5190, + 5190,5527,5528,5448,5455,5427,5453,5452,5449,5450, + 5428,5190,5190,5190,5451,5190,5190,5190,5190,3064, + 5190,1432,5454,231,5190,2928,5190,5527,5528,5448, + 5455,5427,5453,5452,5449,5450,5428,5686,5454,5190, + 5451,5190,5190,5527,5528,5448,5455,5427,5453,5452, + 5449,5450,5428,5190,5190,5190,5190,5190,5190,5190, + 5190,5190,5190,5190,5454,5190,5190,5190,5190,5527, + 5528,5448,5455,5427,5453,5452,5449,5450,5428 }; }; public final static char termAction[] = TermAction.termAction; @@ -1662,59 +1661,59 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 631,7,184,1,868,549,549,549,549,70, - 868,683,683,559,683,531,184,533,185,185, + 631,7,184,1,401,549,549,549,549,1102, + 401,683,683,559,683,535,184,537,185,185, 185,185,185,185,185,185,185,685,691,696, 693,700,698,705,703,707,706,708,87,709, - 184,168,42,42,42,42,224,493,14,14, + 184,168,42,42,42,42,224,497,14,14, 680,42,364,271,683,683,14,590,685,271, - 827,41,909,72,1039,168,683,685,783,783, - 493,184,185,185,185,185,185,185,185,185, + 827,41,909,1104,1039,168,683,685,783,783, + 497,184,185,185,185,185,185,185,185,185, 185,185,185,185,185,185,185,185,185,185, 185,184,184,184,184,184,184,184,184,184, - 184,184,184,185,271,271,262,168,1104,1104, - 1104,1104,319,271,14,14,134,1028,1039,406, - 1039,414,1039,9,1039,1023,70,224,364,364, + 184,184,184,185,271,271,262,168,629,629, + 629,629,319,271,14,14,1100,1028,1039,406, + 1039,414,1039,9,1039,1023,1102,224,364,364, 14,364,41,184,222,908,271,221,224,223, 221,271,364,693,693,691,691,691,698,698, 698,698,696,696,703,700,700,706,705,707, - 1116,708,134,323,454,436,435,367,1046,1046, - 70,533,868,868,868,868,224,224,1104,1066, - 1103,1104,680,224,676,274,274,224,418,319, - 417,403,420,554,224,224,224,319,1104,185, - 42,689,227,271,72,224,224,549,223,909, - 184,262,364,724,271,456,458,224,909,184, - 184,184,184,868,868,168,138,676,274,274, - 418,404,418,319,418,554,554,224,319,224, - 271,689,134,908,72,224,222,271,440,428, - 439,458,319,222,271,271,271,271,493,493, - 676,675,411,224,274,1116,10,549,321,1016, - 1106,274,411,418,418,444,224,554,411,409, - 410,224,689,690,689,184,227,1021,685,72, - 735,184,437,437,74,74,224,452,134,790, - 271,224,271,271,676,909,745,420,1104,549, - 221,823,1108,218,868,538,69,445,224,411, - 185,224,689,493,185,364,1021,735,184,184, - 458,909,271,456,428,735,378,222,745,745, - 916,290,222,419,419,218,729,134,542,185, - 1116,82,444,224,70,70,224,690,271,364, - 967,458,222,735,730,411,673,870,129,868, - 10,952,745,745,290,222,419,420,70,1108, - 218,185,185,224,224,224,967,271,967,915, - 129,673,551,70,411,1103,549,422,422,730, - 420,148,539,224,868,224,224,868,960,967, - 916,745,730,81,729,271,70,224,290,916, - 290,1102,1102,975,149,70,224,493,459,960, - 745,184,979,218,730,224,224,290,42,42, - 975,148,1116,185,1116,730,868,868,868,149, - 868,224,95,730,730,224,420,271,270,962, - 411,271,977,224,730,1103,140,868,140,1116, - 149,168,168,166,733,168,730,730,629,975, - 42,962,977,730,491,790,271,218,271,166, - 129,868,271,975,410,422,271,271,391,149, - 629,149,730,129,184,149,146,977,1102,420, - 420,860,184,147,493,730,271,221,149,271, - 730,149 + 1116,708,1100,323,454,436,435,367,1046,1046, + 1102,537,401,401,401,401,224,224,629,628, + 629,680,224,676,274,274,224,418,319,417, + 403,420,554,224,224,224,319,629,185,42, + 689,227,271,1104,224,224,549,223,909,184, + 262,364,724,271,456,458,224,909,184,184, + 184,184,401,401,168,868,676,274,274,418, + 404,418,319,418,554,554,224,319,224,271, + 689,1100,908,1104,224,222,271,440,428,439, + 458,319,222,271,271,271,271,497,497,676, + 675,411,224,274,1116,10,549,321,1016,1106, + 274,411,418,418,444,224,554,411,409,410, + 224,689,690,689,184,227,138,685,1104,735, + 184,437,437,74,74,224,452,1100,790,271, + 224,271,271,676,909,745,420,629,549,221, + 823,1108,218,401,493,69,445,224,411,185, + 224,689,497,185,364,138,735,184,184,458, + 909,271,456,428,735,1081,222,745,745,916, + 290,222,419,419,218,729,1100,542,185,1116, + 82,444,224,1102,1102,224,690,271,364,967, + 458,222,735,730,411,673,870,129,401,10, + 952,745,745,290,222,419,420,1102,1108,218, + 185,185,224,224,224,967,271,967,915,129, + 673,551,1102,411,628,549,422,422,730,420, + 148,494,224,401,224,224,401,960,967,916, + 745,730,81,729,271,1102,224,290,916,290, + 627,627,975,149,1102,224,497,459,960,745, + 184,979,218,730,224,224,290,42,42,975, + 148,1116,185,1116,730,401,401,401,149,401, + 224,95,730,730,224,420,271,270,962,411, + 271,977,224,730,628,140,401,140,1116,149, + 168,168,166,733,168,730,730,973,975,42, + 962,977,730,491,790,271,218,271,166,129, + 401,271,975,410,422,271,271,1094,149,973, + 149,730,129,184,149,146,977,627,420,420, + 1096,184,147,497,730,271,221,149,271,730, + 149 }; }; public final static char asb[] = Asb.asb; @@ -1722,23 +1721,23 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 9,71,118,73,13,66,121,0,4,1, + 9,71,118,73,13,67,121,0,4,1, 2,60,0,32,64,33,34,65,7,35, 36,37,38,58,39,40,42,43,44,29, - 26,27,8,6,11,12,5,30,61,45, - 3,48,14,15,62,46,16,68,49,17, + 26,27,8,6,11,12,5,30,62,45, + 3,48,14,15,61,46,16,68,49,17, 18,50,51,19,20,52,53,21,22,54, - 69,55,10,70,23,24,47,25,41,1, - 2,4,0,76,60,61,71,95,73,56, - 3,9,66,13,67,0,61,71,95,66, + 69,55,10,70,23,24,47,25,1,2, + 4,41,0,76,60,62,71,95,73,56, + 3,9,67,13,66,0,62,71,95,67, 118,73,72,121,14,15,32,64,16,33, 34,18,19,20,65,35,21,22,36,37, 38,58,39,40,10,23,24,25,42,43, - 44,29,26,27,11,12,30,45,9,13, - 7,5,3,1,2,8,4,6,0,75, + 44,29,26,27,11,12,30,45,9,8, + 6,4,13,1,2,7,3,5,0,75, 103,104,105,31,71,119,122,72,74,76, 59,57,63,78,80,86,84,77,82,83, - 85,87,60,79,81,13,9,48,62,46, + 85,87,60,79,81,13,9,48,61,46, 68,49,17,50,51,52,53,54,69,55, 70,41,47,58,64,65,10,33,37,35, 32,40,15,25,14,21,19,20,22,23, @@ -1746,45 +1745,45 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 38,26,27,11,12,30,36,8,6,3, 4,7,5,1,2,0,96,90,11,12, 91,92,88,89,28,93,94,97,98,99, - 100,101,102,117,71,95,67,107,108,109, + 100,101,102,117,71,95,66,107,108,109, 110,111,112,113,114,115,116,118,72,13, - 121,61,1,2,8,6,4,3,56,66, + 121,62,1,2,8,6,4,3,56,67, 73,9,0,75,57,7,103,104,105,59, 9,3,8,6,5,71,72,13,74,48, - 14,15,62,46,16,68,49,17,18,50, + 14,15,61,46,16,68,49,17,18,50, 51,19,20,52,53,21,22,54,69,55, 10,70,23,41,24,47,25,4,1,2, 31,0,64,65,10,33,37,35,32,40, 15,25,14,21,19,20,22,23,18,16, 24,42,45,43,44,29,39,34,38,5, 7,4,3,26,27,8,6,11,12,30, - 36,1,2,118,9,0,14,15,16,18, - 19,20,21,22,23,24,25,48,46,49, - 17,50,51,52,53,54,55,41,47,13, - 9,73,7,1,2,56,3,8,6,5, - 4,0,4,71,28,60,9,0,67,66, + 36,1,2,118,9,0,48,14,15,46, + 16,49,17,18,50,51,19,20,52,7, + 53,21,22,54,55,23,41,24,47,25, + 1,2,9,56,8,6,5,4,73,13, + 3,0,4,71,28,60,9,0,66,67, 72,9,0,31,1,2,4,9,71,60, - 0,61,67,66,1,2,0,8,6,4, - 5,7,1,2,3,56,61,67,66,9, + 0,62,66,67,1,2,0,8,6,4, + 5,7,1,2,3,56,62,66,67,9, 73,95,0,41,1,2,4,103,104,105, 0,7,5,3,56,6,8,95,48,14, 15,46,16,68,49,17,18,50,51,19, 20,52,53,21,22,54,69,55,10,70, 23,41,24,47,25,1,2,4,73,9, - 62,0,9,73,14,15,32,16,33,34, - 18,19,20,35,21,22,36,37,38,58, - 39,40,10,23,24,25,42,43,44,29, - 3,26,27,8,6,11,12,30,4,45, - 5,7,1,2,65,64,0,9,60,66, - 0,71,9,56,3,67,66,13,28,0, - 60,67,0,1,2,9,72,0,48,14, - 15,62,46,16,68,49,17,18,50,51, + 61,0,9,60,67,0,9,73,14,15, + 32,16,33,34,18,19,20,35,21,22, + 36,37,38,58,39,40,10,23,24,25, + 42,43,44,29,3,26,27,8,6,11, + 12,30,4,45,5,7,1,2,65,64, + 0,71,9,56,3,66,67,13,28,0, + 60,66,0,1,2,9,72,0,48,14, + 15,61,46,16,68,49,17,18,50,51, 19,20,52,53,21,22,54,69,55,10, 70,23,41,24,47,25,1,2,4,65, 64,11,12,6,91,92,99,8,100,5, - 30,28,61,110,111,107,108,109,115,114, - 116,89,88,112,113,97,98,93,94,101, - 102,26,27,66,90,106,3,56,67,0, + 30,28,110,111,107,108,109,115,114,116, + 89,88,112,113,97,98,93,94,101,102, + 26,27,90,106,3,56,66,67,62,0, 14,15,32,64,16,33,34,18,19,20, 65,7,35,21,22,36,37,38,58,39, 40,10,23,24,25,42,43,44,1,2, @@ -1792,47 +1791,47 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 45,74,29,0,58,46,7,47,5,1, 2,4,76,60,120,106,26,27,56,3, 96,90,6,91,92,11,12,89,88,28, - 93,94,97,98,8,99,100,101,61,95, - 73,121,67,107,108,109,110,111,112,113, - 114,115,116,71,118,72,102,117,66,13, - 9,0,77,0,46,58,47,9,61,95, - 67,66,73,0,63,48,14,15,62,46, + 93,94,97,98,8,99,100,101,62,95, + 73,121,66,107,108,109,110,111,112,113, + 114,115,116,71,118,72,102,117,67,13, + 9,0,77,0,46,58,47,9,62,95, + 66,67,73,0,63,48,14,15,61,46, 16,68,49,75,17,18,50,51,19,20, 52,57,53,21,22,54,69,55,10,70, 23,59,41,24,47,25,9,3,8,6, 72,13,7,4,31,5,1,2,0,48, - 14,15,62,46,16,68,49,17,18,50, + 14,15,61,46,16,68,49,17,18,50, 51,19,20,52,53,21,22,54,69,55, 10,70,23,41,24,47,25,1,2,4, 95,0,60,71,76,0,64,65,26,27, - 11,12,30,36,42,45,43,44,29,39, - 34,38,15,25,14,21,19,20,22,23, - 18,16,24,10,33,37,35,32,40,8, - 6,4,56,7,5,1,2,3,0,62, + 8,11,12,5,30,36,3,4,7,42, + 45,43,44,29,39,34,38,15,25,14, + 21,19,20,22,23,18,16,24,10,33, + 37,35,32,40,56,1,2,6,0,61, 46,16,68,49,18,50,51,19,20,52, 53,21,22,54,69,55,10,70,23,41, 24,47,25,15,14,48,9,3,8,13, 59,57,63,75,17,28,4,6,7,1, - 2,5,31,0,60,62,46,16,68,49, + 2,5,31,0,60,61,46,16,68,49, 18,50,51,19,20,52,53,21,22,54, 69,55,70,23,41,24,47,25,15,14, 48,9,3,8,6,13,59,63,75,17, 31,7,1,2,5,4,10,57,0,46, - 47,76,3,60,71,13,58,9,61,95, - 67,66,73,0,119,0,9,72,64,65, + 47,76,3,60,71,13,58,9,62,95, + 67,73,66,0,119,0,9,72,64,65, 58,26,27,8,6,11,12,30,36,3, 42,45,43,44,29,39,34,38,15,25, 14,21,19,20,22,23,18,16,24,33, - 37,35,32,40,60,7,1,2,4,10, - 5,0,10,68,62,69,70,15,25,14, + 37,35,32,40,60,7,1,2,5,4, + 10,0,10,68,61,69,70,15,25,14, 21,19,20,22,23,18,16,24,76,60, - 71,95,118,72,121,7,53,54,55,41, - 47,1,2,52,51,50,17,49,5,4, - 46,48,9,73,13,56,3,120,96,106, - 90,26,27,8,6,11,12,91,92,88, - 89,28,93,94,97,98,99,100,101,102, - 117,107,108,109,110,111,112,113,114,115, - 116,67,66,61,0,13,9,7,5,3, + 71,95,118,72,121,120,96,106,90,26, + 27,11,12,91,92,88,89,28,62,93, + 94,97,98,99,100,101,102,117,66,107, + 108,109,110,111,112,113,114,115,116,67, + 48,46,49,17,50,51,52,53,54,55, + 41,47,13,9,73,3,56,7,5,6, + 8,1,2,4,0,13,9,7,5,3, 1,2,6,8,4,71,0 }; }; @@ -1859,41 +1858,41 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 12,12,12,12,12,12,12,12,12,12, 12,12,176,92,153,13,13,12,12,12, 10,72,12,12,12,12,104,11,12,12, - 12,12,34,72,125,125,125,104,125,179, - 125,12,12,125,179,72,11,12,12,26, - 256,125,89,261,12,11,72,12,127,61, - 26,32,97,12,261,133,125,72,61,165, - 165,165,165,12,12,24,12,115,193,193, - 125,125,109,60,109,125,228,11,60,104, - 261,77,34,48,12,227,104,261,12,118, - 12,142,59,104,261,261,261,261,145,145, - 125,115,70,72,221,12,81,12,12,63, - 247,193,70,109,109,111,104,228,70,12, - 12,104,125,138,12,165,34,128,12,12, - 125,26,12,12,13,13,72,117,176,142, - 261,104,261,261,115,61,125,12,12,12, - 177,125,170,120,12,12,177,83,179,70, - 26,228,77,145,26,97,128,115,26,26, - 125,61,261,133,204,125,12,210,214,125, - 230,125,179,125,75,206,221,176,12,26, - 12,85,263,179,177,177,11,138,261,97, - 125,142,210,115,221,70,12,230,248,12, - 228,63,230,214,142,210,75,54,182,120, - 206,26,26,11,179,179,44,261,125,125, - 170,12,12,177,70,12,12,107,107,221, - 54,130,12,179,12,11,11,12,125,44, - 230,125,221,46,12,261,177,179,142,230, - 125,12,12,125,148,182,11,145,259,115, - 214,99,26,120,221,179,81,142,256,256, - 168,162,12,26,12,221,12,12,12,163, - 12,228,219,221,221,228,79,261,261,125, - 70,261,125,81,221,12,87,12,12,12, - 163,158,158,140,12,158,221,221,12,125, - 256,44,65,221,12,256,261,120,261,255, - 125,12,261,168,70,107,261,261,125,163, - 12,163,221,120,165,163,87,65,12,79, - 79,118,26,12,235,221,261,209,163,261, - 221,163 + 12,34,72,125,125,125,104,125,179,125, + 12,12,125,179,72,11,12,12,26,256, + 125,89,261,12,11,72,12,127,61,26, + 32,97,12,261,133,125,72,61,165,165, + 165,165,12,12,24,12,115,193,193,125, + 125,109,60,109,125,228,11,60,104,261, + 77,34,48,12,227,104,261,12,118,12, + 142,59,104,261,261,261,261,145,145,125, + 115,70,72,221,12,81,12,12,63,247, + 193,70,109,109,111,104,228,70,12,12, + 104,125,138,12,165,34,128,12,12,125, + 26,12,12,13,13,72,117,176,142,261, + 104,261,261,115,61,125,12,12,12,177, + 125,170,120,12,12,177,83,179,70,26, + 228,77,145,26,97,128,115,26,26,125, + 61,261,133,204,125,12,210,214,125,230, + 125,179,125,75,206,221,176,12,26,12, + 85,263,179,177,177,11,138,261,97,125, + 142,210,115,221,70,12,230,248,12,228, + 63,230,214,142,210,75,54,182,120,206, + 26,26,11,179,179,44,261,125,125,170, + 12,12,177,70,12,12,107,107,221,54, + 130,12,179,12,11,11,12,125,44,230, + 125,221,46,12,261,177,179,142,230,125, + 12,12,125,148,182,11,145,259,115,214, + 99,26,120,221,179,81,142,256,256,168, + 162,12,26,12,221,12,12,12,163,12, + 228,219,221,221,228,79,261,261,125,70, + 261,125,81,221,12,87,12,12,12,163, + 158,158,140,12,158,221,221,12,125,256, + 44,65,221,12,256,261,120,261,255,125, + 12,261,168,70,107,261,261,125,163,12, + 163,221,120,165,163,87,65,12,79,79, + 118,26,12,235,221,261,209,163,261,221, + 163 }; }; public final static char nasb[] = Nasb.nasb; @@ -1941,7 +1940,7 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 95,57,63,69,86,90,92,96,99,101, 106,111,112,113,123,56,108,49,66,72, 75,78,85,91,100,2,79,97,105,4, - 22,55,48,60,80,46,35,65,93,103, + 55,22,48,60,80,35,46,65,93,103, 32,120,119,122,67,98,110,51,52,58, 59,61,71,73,74,87,94,19,20,8, 17,18,23,24,34,6,25,26,27,28, @@ -2040,15 +2039,15 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLa { public final static byte scopeLa[] = { 119,73,73,73,73,73,73,73,72,13, - 72,72,61,1,73,122,60,3,73,61, - 61,61,1,1,13,72,72,60,72,72, - 1,1,1,1,4,61,13,1,1,61, + 72,72,62,1,73,122,60,3,73,62, + 62,62,1,1,13,72,72,60,72,72, + 1,1,1,1,4,62,13,1,1,62, 73,73,73,119,73,1,13,72,1,1, 1,1,13,13,72,118,73,73,73,73, - 73,118,1,73,1,66,73,73,73,71, - 4,73,61,61,61,61,73,3,1,1, + 73,118,1,73,1,67,73,73,73,71, + 4,73,62,62,62,62,73,3,1,1, 73,73,3,118,73,1,1,1,13,71, - 73,118,73,5,73,1,31,67,1,1, + 73,118,73,5,73,1,31,66,1,1, 6,1,31,77,76,13,13,4,4,4, 4,3,1,9,60,1,1,3 }; @@ -2106,7 +2105,7 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,0,0,0,0,197,3,0,201,0, 237,127,60,29,17,0,184,128,57,59, 0,197,129,0,131,184,128,275,59,0, - 184,128,275,59,0,184,128,67,124,57, + 184,128,275,59,0,184,128,66,124,57, 0,237,127,60,57,0,237,127,60,226, 57,0,273,127,60,124,68,0,273,127, 60,68,0,184,128,68,0,136,0,188, @@ -2129,11 +2128,11 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,177,3,36,0,149,0,126,31,166, 128,0,33,149,0,95,138,33,149,0, 223,184,128,0,148,33,149,0,177,3, - 40,0,162,3,40,0,162,3,61,177, + 40,0,162,3,40,0,162,3,62,177, 28,32,0,177,28,32,0,22,3,132, - 127,0,162,3,61,177,28,35,0,177, - 28,35,0,162,3,61,177,28,37,0, - 177,28,37,0,162,3,61,177,28,33, + 127,0,162,3,62,177,28,35,0,177, + 28,35,0,162,3,62,177,28,37,0, + 177,28,37,0,162,3,62,177,28,33, 0,177,28,33,0,219,3,126,188,166, 128,10,0,126,188,166,128,10,0,138, 3,0,127,0,219,3,125,171,166,128, @@ -2148,37 +2147,37 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 4507,4567,4564,2857,0,1897,2969,1398,2931,0, - 3463,3397,3313,3253,3193,3133,3068,2894,2832,2778, - 0,770,0,2647,1930,737,0,3629,3189,0, - 3463,3397,2893,2844,3313,3253,3193,3133,1111,3068, - 2894,2832,2741,851,0,4556,3105,3177,0,3123, - 2777,0,4527,2648,0,579,4496,0,4420,579, - 4174,3592,4496,3367,4065,4485,4285,2785,3603,3710, - 3027,2710,2635,0,2960,1082,0,4516,4391,3338, - 0,4516,4391,3338,3730,4305,4251,3676,4197,4143, - 4084,3622,0,4516,4391,3338,3730,4305,4251,3676, - 4197,4143,4084,3622,3463,3397,3313,3253,3193,3133, - 3068,2894,2832,0,3160,790,0,2785,4420,1553, - 4174,3592,3069,3027,1427,1385,1208,2760,717,672, - 1166,856,0,1818,1101,584,557,3592,717,3367, - 2710,2635,2856,3125,0,795,656,0,815,0, - 4324,534,2540,0,4270,4103,4077,3749,3695,3489, - 3379,3285,4471,4366,4362,3615,2919,3278,3093,2732, - 3061,2825,2702,2587,1939,1008,0,4270,3803,4103, - 3451,2963,4077,3749,3695,2582,919,3489,3379,3285, - 4091,4471,3635,3431,4366,2934,2818,2649,2578,4362, - 2722,3615,2240,4238,2919,3278,3093,2233,2732,1935, - 3061,2825,784,2702,4324,2587,2540,1939,1008,729, - 3367,4065,4485,4285,2785,4420,3603,2146,579,1120, - 4174,638,3592,3710,3027,2710,4496,2635,623,932, - 2059,994,795,656,4043,2246,2283,590,2316,2404, - 2376,2347,2596,2549,2513,2486,2459,2432,3569,3546, - 3038,3002,2977,4021,3999,3977,3955,3933,3911,3889, - 3867,3845,3816,1054,2662,1943,2196,2159,2109,2072, - 1224,1175,2022,1985,1133,873,1893,1856,818,739, - 684,534,1814,1772,1730,1688,1646,1604,1562,1520, - 1478,1436,1394,1352,1309,1078,1012,952,1266,0 + 4506,4566,4563,2856,0,1896,2968,1397,2930,0, + 3462,3396,3312,3252,3192,3132,3067,2893,2831,2777, + 0,769,0,2646,1929,736,0,3628,3188,0, + 3462,3396,2892,2843,3312,3252,3192,3132,1110,3067, + 2893,2831,2740,850,0,4555,3104,3176,0,3122, + 2776,0,4526,2647,0,578,4495,0,4419,578, + 4173,3591,4495,3366,4064,4484,4284,2784,3602,3709, + 3026,2709,2634,0,2959,1081,0,4515,4390,3337, + 0,4515,4390,3337,3729,4304,4250,3675,4196,4142, + 4083,3621,0,4515,4390,3337,3729,4304,4250,3675, + 4196,4142,4083,3621,3462,3396,3312,3252,3192,3132, + 3067,2893,2831,0,3159,789,0,2784,4419,1552, + 4173,3591,3068,3026,1426,1384,1207,2759,716,671, + 1165,855,0,1817,1100,583,556,3591,716,3366, + 2709,2634,2855,3124,0,794,655,0,814,0, + 4323,533,2539,0,4269,4102,4076,3748,3694,3488, + 3378,3284,4470,4365,4361,3614,2918,3277,3092,2731, + 3060,2824,2701,2586,1938,1007,0,4269,3802,4102, + 3450,2962,4076,3748,3694,2581,918,3488,3378,3284, + 4090,4470,3634,3430,4365,2933,2817,2648,2577,4361, + 2721,3614,2239,4237,2918,3277,3092,2232,2731,1934, + 3060,2824,783,2701,4323,2586,2539,1938,1007,728, + 3366,4064,4484,4284,2784,4419,3602,2145,578,1119, + 4173,637,3591,3709,3026,2709,4495,2634,622,931, + 2058,993,794,655,4042,2245,2282,589,2315,2403, + 2375,2346,2595,2548,2512,2485,2458,2431,3568,3545, + 3037,3001,2976,4020,3998,3976,3954,3932,3910,3888, + 3866,3844,3815,1053,2661,1942,2195,2158,2108,2071, + 1223,1174,2021,1984,1132,872,1892,1855,817,738, + 683,533,1813,1771,1729,1687,1645,1603,1561,1519, + 1477,1435,1393,1351,1308,1077,1011,951,1265,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2190,55 +2189,55 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 136,125,133,7,130,4,3,128,36,30, 5,12,11,6,8,27,26,140,145,148, 147,150,149,152,151,155,153,157,58,158, - 66,3,28,28,28,28,128,3,28,28, + 67,3,28,28,28,28,128,3,28,28, 167,127,56,3,64,65,28,7,125,162, 64,65,166,165,125,3,124,126,106,120, 3,56,90,96,12,11,92,91,6,94, - 93,61,28,88,89,8,98,97,100,99, + 93,62,28,88,89,8,98,97,100,99, 101,116,115,114,113,112,111,110,109,108, - 107,67,117,102,177,162,167,127,177,177, + 107,66,117,102,177,162,167,127,177,177, 177,177,166,219,127,127,127,267,268,249, 269,242,270,68,271,272,10,128,56,56, 127,56,293,3,188,4,177,31,5,128, 31,219,162,147,147,145,145,145,149,149, 149,149,148,148,151,150,150,153,152,155, 162,157,127,56,3,217,216,136,126,125, - 10,128,61,61,61,61,188,171,252,134, - 255,252,212,128,6,9,60,166,230,128, - 126,125,124,60,128,128,184,166,252,198, - 3,294,167,154,258,188,128,125,184,166, - 71,212,214,158,224,127,3,128,166,3, - 3,3,3,126,125,66,166,127,127,127, - 126,125,127,184,127,60,127,184,166,31, - 177,127,127,4,223,5,31,227,228,146, - 229,127,166,31,162,162,162,162,3,3, - 6,183,281,128,168,222,57,31,195,59, - 170,282,281,127,127,71,188,127,273,124, - 274,188,156,260,263,56,178,4,124,126, - 156,67,224,197,186,180,171,3,127,66, - 227,188,219,219,127,166,60,226,28,31, - 275,277,127,3,180,306,222,41,128,273, - 67,66,127,3,56,162,4,127,67,67, - 3,166,197,127,212,156,126,188,127,60, - 61,28,128,76,127,212,304,127,125,71, - 284,197,66,128,41,307,184,260,219,214, - 220,127,188,127,131,237,17,31,170,63, - 57,59,236,127,127,184,127,278,71,66, - 212,71,67,184,128,128,127,227,220,29, - 127,3,124,57,237,291,31,10,62,131, - 278,60,288,128,289,184,184,58,156,127, - 127,60,266,197,276,29,67,128,66,61, - 28,230,230,279,127,66,184,3,3,127, - 127,3,67,66,156,128,184,127,67,67, - 127,297,81,79,1,162,87,85,83,82, - 77,84,86,80,78,57,76,219,311,220, - 237,154,60,184,226,291,280,119,9,214, - 71,3,3,3,199,3,124,162,124,182, - 66,127,127,226,61,3,225,167,225,299, - 146,77,225,127,303,62,95,310,167,156, - 197,156,298,127,3,156,280,66,230,156, - 156,127,67,199,161,266,162,67,122,296, - 156,156 + 10,128,62,62,62,62,188,171,252,255, + 252,212,128,6,9,60,166,230,128,126, + 125,124,60,128,128,184,166,252,198,3, + 294,167,154,258,188,128,125,184,166,71, + 212,214,158,224,127,3,128,166,3,3, + 3,3,126,125,67,166,127,127,127,126, + 125,127,184,127,60,127,184,166,31,177, + 127,127,4,223,5,31,227,228,146,229, + 127,166,31,162,162,162,162,3,3,6, + 183,281,128,168,222,57,31,195,59,170, + 282,281,127,127,71,188,127,273,124,274, + 188,156,260,263,56,178,4,124,126,156, + 66,224,197,186,180,171,3,127,67,227, + 188,219,219,127,166,60,226,28,31,275, + 277,127,3,180,306,222,41,128,273,66, + 67,127,3,56,162,4,127,66,66,3, + 166,197,127,212,156,126,188,127,60,62, + 28,128,76,127,212,304,127,125,71,284, + 197,67,128,41,307,184,260,219,214,220, + 127,188,127,131,237,17,31,170,63,57, + 59,236,127,127,184,127,278,71,67,212, + 71,66,184,128,128,127,227,220,29,127, + 3,124,57,237,291,31,10,61,131,278, + 60,288,128,289,184,184,58,156,127,127, + 60,266,197,276,29,66,128,67,62,28, + 230,230,279,127,67,184,3,3,127,127, + 3,66,67,156,128,184,127,66,66,127, + 297,81,79,1,162,87,85,83,82,77, + 84,86,80,78,57,76,219,311,220,237, + 154,60,184,226,291,280,119,9,214,71, + 3,3,3,199,3,124,162,124,182,67, + 127,127,226,62,3,225,167,225,299,146, + 77,225,127,303,61,95,310,167,156,197, + 156,298,127,3,156,280,67,230,156,156, + 127,66,199,161,266,162,66,122,296,156, + 156 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2513,20 +2512,20 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 522, + NUM_STATES = 521, NT_OFFSET = 123, - LA_STATE_OFFSET = 5727, + LA_STATE_OFFSET = 5722, MAX_LA = 2147483647, - NUM_RULES = 533, + NUM_RULES = 532, NUM_NONTERMINALS = 194, NUM_SYMBOLS = 317, SEGMENT_SIZE = 8192, - START_STATE = 3258, + START_STATE = 3257, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4801, - ERROR_ACTION = 5194; + ACCEPT_ACTION = 4800, + ERROR_ACTION = 5190; 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 140cd4bb8a1..43f8e7cae3a 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 @@ -22,7 +22,7 @@ public interface CPPNoCastExpressionParsersym { TK_case = 79, TK_catch = 119, TK_char = 15, - TK_class = 62, + TK_class = 61, TK_const = 46, TK_const_cast = 32, TK_continue = 80, @@ -106,7 +106,7 @@ public interface CPPNoCastExpressionParsersym { TK_RightShift = 88, TK_LeftShift = 89, TK_LT = 28, - TK_GT = 61, + TK_GT = 62, TK_LE = 93, TK_GE = 94, TK_EQ = 97, @@ -119,7 +119,7 @@ public interface CPPNoCastExpressionParsersym { TK_Colon = 71, TK_ColonColon = 4, TK_DotDotDot = 95, - TK_Assign = 67, + TK_Assign = 66, TK_StarAssign = 107, TK_SlashAssign = 108, TK_PercentAssign = 109, @@ -130,7 +130,7 @@ public interface CPPNoCastExpressionParsersym { TK_AndAssign = 114, TK_CaretAssign = 115, TK_OrAssign = 116, - TK_Comma = 66, + TK_Comma = 67, TK_RightBracket = 118, TK_RightParen = 73, TK_RightBrace = 72, @@ -201,13 +201,13 @@ public interface CPPNoCastExpressionParsersym { "throw", "using", "LeftBrace", - "GT", "class", + "GT", "asm", "delete", "new", - "Comma", "Assign", + "Comma", "enum", "struct", "union", 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 6adf8f4f45e..db291b008c9 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 @@ -2191,65 +2191,72 @@ public CPPNoFunctionDeclaratorParser(String[] mapFrom) { // constructor } // - // Rule 515: explicit_instantiation ::= template declaration + // Rule 513: template_argument ::= type_id // - case 515: { action.builder. + case 513: { action.builder. + consumeTemplateArgumentTypeId(); break; + } + + // + // Rule 514: explicit_instantiation ::= template declaration + // + case 514: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 516: explicit_specialization ::= template < > declaration + // Rule 515: explicit_specialization ::= template < > declaration // - case 516: { action.builder. + case 515: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 517: try_block ::= try compound_statement handler_seq + // Rule 516: try_block ::= try compound_statement handler_seq // - case 517: { action.builder. + case 516: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 520: handler ::= catch ( exception_declaration ) compound_statement + // Rule 519: handler ::= catch ( exception_declaration ) compound_statement // - case 520: { action.builder. + case 519: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 521: handler ::= catch ( ... ) compound_statement + // Rule 520: handler ::= catch ( ... ) compound_statement // - case 521: { action.builder. + case 520: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 522: exception_declaration ::= type_specifier_seq declarator + // Rule 521: exception_declaration ::= type_specifier_seq declarator // - case 522: { action.builder. + case 521: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 523: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 522: exception_declaration ::= type_specifier_seq abstract_declarator // - case 523: { action.builder. + case 522: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq + // Rule 523: exception_declaration ::= type_specifier_seq // - case 524: { action.builder. + case 523: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 532: no_function_declarator_start ::= ERROR_TOKEN + // Rule 531: no_function_declarator_start ::= ERROR_TOKEN // - case 532: { action.builder. + case 531: { 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 fccf1602f10..5fd8298049e 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 @@ -88,428 +88,428 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 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,1,2,4,4,1,2,5, - 5,3,3,1,4,3,1,0,1,3, - 1,1,1,-107,0,0,0,-2,0,0, + 0,1,1,2,4,4,1,2,5,5, + 3,3,1,4,3,1,0,1,3,1, + 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,-3,0,0,0, - 0,0,0,0,-462,0,-43,0,0,0, - 0,0,-7,0,0,-514,0,0,0,0, - -8,0,0,0,0,0,-457,0,-134,0, + 0,0,0,0,0,-3,0,0,0,0, + 0,0,0,-461,0,-43,0,0,0,0, + 0,-7,0,0,-513,0,0,0,0,-8, + 0,0,0,0,0,-456,0,-134,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,0,0,0, - 0,-260,0,0,-288,-405,0,0,0,-20, - 0,0,0,0,-25,0,0,-86,0,0, - 0,-11,0,-384,0,0,0,0,0,0, - 0,0,0,0,-72,0,0,0,0,0, + -226,0,0,0,0,0,0,0,0,0, + -259,0,0,-287,-404,0,0,0,-20,0, + 0,0,0,-25,0,0,-86,0,0,0, + -11,0,-383,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,-307, + -288,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, - -308,-289,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,-92,0,0,0,0,0, + 0,0,0,-18,0,-227,0,0,0,0, + 0,-344,0,0,0,0,-75,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,0,-18,0,-228,0,0,0, - 0,0,-345,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,0,0,0,-324,-369,0,0,0,0, + -45,0,0,0,-460,0,0,0,-73,0, + 0,-4,0,-113,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-325,-370,0,0,0, - 0,-45,0,0,0,-461,0,0,0,-73, - 0,0,-4,0,-113,0,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,-90,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,-292,0,0,0,0,0,0,-10,0, + 0,0,0,0,0,-179,-26,0,0,-221, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-19,0,0,0, - 0,0,-293,0,0,0,0,0,0,-10, - 0,0,0,0,0,0,-180,-26,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,-27,0,-116,0,0,0,0,-28,0, - 0,0,-77,0,0,-355,0,0,0,-232, - 0,0,0,0,0,0,0,-24,-70,0, - 0,-12,0,0,0,0,0,0,0,0, - 0,0,0,0,-29,-38,0,-349,-94,0, + -27,0,-116,0,0,0,0,-28,0,0, + 0,-77,0,0,-354,0,0,0,-231,0, + 0,0,0,0,0,0,-24,-70,0,0, + -12,0,0,0,0,0,0,0,0,0, + 0,0,0,-29,-38,0,-348,-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,0,0,0,0,-265,0,0,0,0, - 0,0,0,-242,0,0,0,0,0,0, - -5,0,0,-150,0,0,0,-236,0,0, + 0,0,0,0,-264,0,0,0,0,0, + 0,0,-241,0,0,0,0,0,0,-5, + 0,0,-150,0,0,0,-235,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,-102,0,0, + 0,0,0,-39,0,-31,0,0,-48,0, + 0,0,-40,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,-102,0, - 0,0,0,0,-39,0,-31,0,0,-48, - 0,0,0,-40,0,0,0,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,-15,0,0,0,0,0,0, + 0,0,0,0,0,-35,0,0,0,0, + 0,0,0,0,0,-41,0,0,0,-261, + 0,0,0,0,-373,0,0,0,0,-511, + 0,0,0,0,0,-22,0,0,0,0, + 0,-36,0,0,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,0,0,0,0,-41,0,0,0, - -262,0,0,0,0,-374,0,0,0,0, - -512,0,0,0,0,0,-22,0,0,0, - 0,0,-36,0,0,0,0,0,0,0, + 0,0,0,0,-382,0,0,0,0,0, + 0,0,0,0,-21,0,0,0,0,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,-383,0,0,0,0, - 0,0,0,0,0,-21,0,0,0,0, - 0,0,0,0,-320,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-17,0,0,0, + -42,0,0,0,0,-358,0,0,0,-407, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-17,0,0, - 0,-42,0,0,0,0,-359,0,0,0, - -408,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-89, - 0,0,0,0,0,0,0,-513,0,-30, - 0,0,0,0,-44,-57,0,0,-158,0, - 0,0,-190,0,0,-83,0,0,0,0, - 0,0,-58,0,-360,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-89,0, + 0,0,0,0,0,0,-512,0,-30,0, + 0,0,0,-44,-57,0,0,-157,0,0, + 0,-189,0,0,-83,0,0,0,0,0, + 0,-58,0,-359,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-59,0,0, - 0,0,0,0,0,0,-16,0,0,0, - -343,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-59,0,0,0, + 0,0,0,0,0,-16,0,0,0,-342, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-109,0,-60, - 0,0,0,-68,0,0,0,-61,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-109,0,-60,0, + 0,0,-68,0,0,0,-61,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-110,0,-62,0,0,0, - 0,-34,-14,0,0,0,0,0,-389,0, - 0,0,-136,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-110,0,-62,0,0,0,0, + -34,-14,0,0,0,0,0,-388,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,-63,0,0,0,0,0,-470, - -312,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,-64,0,0, - 0,0,0,0,0,0,0,-252,0,0, - 0,0,-65,0,0,0,-138,0,0,0, - -66,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,-37, - 0,0,0,0,-69,-71,0,0,-139,0, - 0,0,-79,0,0,0,0,0,0,0, + 0,0,-63,0,0,0,0,0,-469,-311, + 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,-91, - 0,0,0,0,0,-510,-93,-103,0,0, - -140,0,0,0,-185,0,0,0,0,0, + 0,0,0,0,0,0,-64,0,0,0, + 0,0,0,0,0,0,-251,0,0,0, + 0,-65,0,0,0,-138,0,0,0,-66, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-112,0,0,0,0,0,0, - 0,-149,0,-156,0,0,0,0,-151,-152, - 0,0,-141,0,0,0,-153,0,0,0, + 0,0,0,0,0,0,0,0,-67,0, + 0,0,0,0,0,0,0,0,-37,0, + 0,0,0,-69,-71,0,0,-139,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,0,-154,0,0,0,0, - 0,0,0,-162,0,0,0,0,0,0, - -163,-168,0,0,-142,0,0,0,-169,0, + 0,0,0,0,0,0,0,0,-91,0, + 0,0,0,0,-509,-93,-103,0,0,-140, + 0,0,0,-184,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-112,0,0,0,0,0,0,0, + -149,0,-155,0,0,0,0,-151,-152,0, + 0,-141,0,0,0,-153,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-176,0,-157,0,0, - 0,0,-177,-178,0,0,-143,0,0,0, - -179,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,-188,0,-159, - 0,0,0,0,-189,-202,0,0,-144,0, - 0,0,-203,0,0,0,0,0,0,0, + 0,0,0,0,-161,0,0,0,0,0, + 0,0,-162,0,0,0,0,0,0,-167, + -168,0,0,-142,0,0,0,-175,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-204,0,0,0,0,0,0,0,-205, - 0,-161,0,0,0,0,-206,-207,0,0, - -145,0,0,0,-208,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,-210,0,-164,0,0,0,0,-211,-212, - 0,0,-146,0,0,0,-186,0,0,0, + 0,0,0,0,-176,0,-156,0,0,0, + 0,-177,-178,0,0,-143,0,0,0,-186, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-213,0,0,0,0, - 0,0,0,-214,0,-170,0,0,0,0, - -215,-216,0,0,-172,0,0,0,-382,0, + 0,0,0,0,0,0,0,0,-187,0, + 0,0,0,0,0,0,-188,0,-158,0, + 0,0,0,-201,-202,0,0,-144,0,0, + 0,-203,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-217,0,0, - 0,0,0,0,0,-218,0,0,0,0, - 0,-446,-219,-220,0,0,-257,0,0,0, - -237,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-238, - 0,0,0,0,0,0,0,-239,0,-225, - 0,0,0,0,-240,-261,0,0,-515,0, - 0,0,-263,0,0,0,0,0,0,0, + -204,0,0,0,0,0,0,0,-205,0, + -160,0,0,0,0,-206,-207,0,0,-145, + 0,0,0,-208,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,-275, - 0,-226,0,0,0,0,-192,-173,0,0, - -311,0,0,0,-333,0,0,0,0,0, + 0,0,-209,0,0,0,0,0,0,0, + -210,0,-163,0,0,0,0,-211,-212,0, + 0,-146,0,0,0,-185,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-213,0,0,0,0,0, + 0,0,-214,0,-169,0,0,0,0,-215, + -216,0,0,-171,0,0,0,-381,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-276,0,0,0,0,0,-347,0,0, + 0,0,0,0,0,0,-217,0,0,0, + 0,0,0,0,-218,0,0,0,0,0, + -445,-219,-236,0,0,-256,0,0,0,-237, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-238,0, + 0,0,0,0,0,0,-239,0,-224,0, + 0,0,0,-260,-262,0,0,-514,0,0, + 0,-263,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -274,0,0,0,0,0,0,0,-275,0, + -225,0,0,0,0,-191,-172,0,0,-310, + 0,0,0,-332,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-195,0,0,0,-104,-282, - 0,0,0,0,0,-283,-367,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -281,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,-369, - 0,0,0,-386,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-285,0,0,0, - 0,0,0,0,-329,0,-287,0,0,0, - -336,0,0,0,-105,-407,0,0,0,0, - 0,-294,-387,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-194,0,0,0,-104,-282,0, + 0,0,0,0,-284,-366,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-299,0,0,0,-449, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-368,0, + 0,0,-385,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,-328,0,-293,0,0,0,-335, + 0,0,0,-105,-406,0,0,0,0,0, + -298,-386,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -300,0,-301,0,0,0,-381,0,0,0, - -174,-305,0,0,0,0,0,-306,-148,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-299,0,0,0,-448,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,-135,0,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,0,0,-321,0,-133,0, - 0,0,-175,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-300, + 0,-304,0,0,0,-380,0,0,0,-173, + -305,0,0,0,0,0,-320,-148,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-181,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,-229,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,-131,0, + 0,0,0,0,0,0,0,-200,0,0, + 0,0,0,0,0,-321,0,-133,0,0, + 0,-174,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,-130,0, 0,0,0,0,0,0,0,0,0,0, - 0,-248,0,0,0,0,-132,0,0,0, - -368,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-258, - 0,0,0,0,-124,0,0,0,-292,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-322,0,0, - 0,-125,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,-126,0, 0,0,0,0,0,0,0,0,0,0, + -247,0,0,0,0,-132,0,0,0,-367, 0,0,0,0,0,0,0,0,0,0, - 0,-330,0,0,0,-127,0,0,0,-334, + 0,0,0,0,0,0,0,0,-257,0, + 0,0,0,-124,0,0,0,-291,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-335,0, - 0,0,-23,0,0,0,-346,0,-406,0, - 0,-128,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-329,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,-348,0, - -416,-364,-286,0,0,0,0,-372,0,0, - 0,0,0,-78,-268,-196,-171,-129,0,0, + 0,0,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, - -13,0,0,-375,-80,0,0,0,0,0, - 0,-409,-246,-231,0,0,0,0,0,-200, - -251,0,0,0,0,-365,-245,0,-377,-399, - 0,0,0,0,-229,0,0,0,0,0, - 0,0,0,-167,0,0,0,0,-431,0, - 0,-235,0,0,0,0,0,0,0,0, - 0,-396,0,0,-400,0,0,0,0,0, - 0,0,0,0,0,-87,0,0,0,-155, - 0,0,0,0,0,-403,0,0,0,0, - 0,0,0,0,0,0,-404,0,0,0, - 0,0,-414,0,0,0,0,-447,-410,-298, - 0,0,0,0,0,0,-147,0,-194,0, + -333,0,0,0,-127,0,0,0,-334,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,0,-345,0,0, + 0,-23,0,0,0,-347,0,-405,0,0, + -128,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -244,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,0,-363,0,-415, + -371,-285,0,0,0,0,-374,0,0,0, + 0,0,-78,-267,-195,-170,-129,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,-256,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-13, + 0,0,-398,-80,0,0,0,0,0,0, + -408,-245,-230,0,0,0,0,0,-199,-250, + 0,0,0,0,-364,-244,0,-376,-399,0, + 0,0,0,-228,0,0,0,0,0,0, + 0,0,-166,0,0,0,0,-430,0,0, + -234,0,0,0,0,0,0,0,0,0, + -395,0,0,-402,0,0,0,0,0,0, + 0,0,0,0,-87,0,0,0,-154,0, + 0,0,0,0,-403,0,0,0,0,0, + 0,0,0,0,0,-409,0,0,0,0, + 0,-413,0,0,0,0,-446,-411,-297,0, + 0,0,0,0,0,-147,0,-193,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-421,0,-234,0,0,0,-120,0, + 0,0,0,0,0,0,0,-420,0,0, + 0,0,0,0,0,0,0,0,0,-243, 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,0,0,0,0,0, - 0,-253,0,-323,0,0,0,0,-420,0, - 0,0,0,0,-106,-332,-297,0,0,-428, - 0,-398,0,0,0,0,0,0,0,0, - 0,0,0,-496,0,-266,0,0,0,0, - -429,0,0,0,0,0,0,-255,0,0, - 0,0,-233,0,0,-436,-96,-284,0,0, - 0,0,-448,0,0,-269,-274,-291,0,0, - -302,-82,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-307,0,-455, + 0,0,0,0,0,0,0,0,-119,0, + 0,0,-255,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -499,0,0,0,-450,0,0,0,0,0, - 0,-303,0,-358,0,0,0,-452,-85,0, - 0,0,0,0,0,0,-453,0,0,0, - 0,0,-454,-319,0,0,0,0,0,0, - 0,0,0,-456,-271,0,0,0,-474,0, - -469,-310,0,0,-313,0,0,0,0,-270, - 0,-471,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-371,0,-437,-46, - -517,0,-472,0,0,0,0,0,0,0, - 0,-84,-380,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-503,0,0, - 0,0,0,0,0,0,-328,0,0,0, + 0,-427,0,-233,0,0,0,-120,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-473,-478,0,0,0,0,0,0,0, - 0,-482,0,0,-361,0,0,-497,0,0, - 0,-425,0,0,0,0,0,0,0,0, - 0,-415,0,0,0,0,-505,0,0,0, - 0,-273,0,-487,0,-338,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -494,-504,-221,-160,0,0,0,-314,0,0, - 0,0,-243,-315,0,0,0,0,-511,-76, + -252,0,-322,0,0,0,0,-419,0,0, + 0,0,0,-106,-331,-296,0,0,-428,0, + -397,0,0,0,0,0,0,0,0,0, + 0,0,-495,0,-265,0,0,0,0,-435, + 0,0,0,0,0,0,-254,0,0,0, + 0,-232,0,0,-447,-96,-283,0,0,0, + 0,-449,0,0,-268,-273,-290,0,0,-301, + -82,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-306,0,-454,0, + 0,0,0,0,0,0,0,0,0,-498, + 0,0,0,-451,0,0,0,0,0,0, + -302,0,-357,0,0,0,-452,-85,0,0, + 0,0,0,0,0,-453,0,0,0,0, + 0,-455,-318,0,0,0,0,0,0,0, + 0,0,-468,-270,0,0,0,-473,0,-470, + -309,0,0,-312,0,0,0,0,-269,0, + -471,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-370,0,-436,-46,-516, + 0,-472,0,0,0,0,0,0,0,0, + -84,-379,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-502,0,0,0, + 0,0,0,0,0,-327,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -516,0,0,-316,0,-509,0,0,0,0, - 0,-394,0,0,0,0,-326,0,0,0, + -477,-481,0,0,0,0,0,0,0,0, + -486,0,0,-360,0,0,-496,0,0,0, + -424,0,0,0,0,0,0,0,0,0, + -414,0,0,0,0,-504,0,0,0,0, + -272,0,-493,0,-337,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-503, + -510,-220,-159,0,0,0,-313,0,0,0, + 0,-242,-314,0,0,0,0,-515,-76,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-101,0,0, - 0,0,0,0,0,0,0,0,-356,0, + 0,0,-315,0,-508,0,0,0,0,0, + -393,0,0,0,0,-325,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-340,0,-521,-95,0,-342,0,0, + 0,0,0,0,0,0,-101,0,0,0, + 0,0,0,0,0,0,0,-355,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,-111,0,0,0,0, - 0,0,0,0,0,0,0,-353,0,0, + 0,-339,0,-520,-95,0,-341,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -350,0,0,-524,0,-458,0,0,0,0, - -354,0,0,0,0,0,-357,0,0,0, + 0,0,0,0,0,0,0,0,-81,0, + 0,0,0,0,-111,0,0,0,0,0, + 0,0,0,0,0,0,-352,0,0,0, + 0,0,0,0,0,0,0,0,0,-349, + 0,0,-523,0,-457,0,0,0,0,-353, + 0,0,0,0,0,-356,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-432,0,0,-363,0,0,0,0, - -401,0,0,0,0,0,-423,0,0,0, - 0,0,0,0,0,0,0,-520,0,0, + 0,-431,0,0,-362,0,0,0,0,-400, + 0,0,0,0,0,-422,0,0,0,0, + 0,0,0,0,0,0,-519,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-241,0,0,0,0,0,0,0, - 0,0,0,0,0,-121,0,0,0,0, + 0,-240,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,0,0,0,-122,0, + 0,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,0, - 0,-123,0,0,0,0,0,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,0,0,-304,0,0,0,0,0, - 0,0,0,0,0,-392,-115,0,-443,0, - 0,-337,0,-395,-413,0,-433,0,0,0, - -379,-402,0,0,0,-272,0,0,0,-397, + 0,0,0,-303,0,0,0,0,0,0, + 0,0,0,0,-391,-115,0,-442,0,0, + -336,0,-394,-412,0,-432,0,0,0,-378, + -401,0,0,0,-271,0,0,0,-396,0, 0,0,0,0,0,0,0,0,0,0, - 0,-183,0,0,0,0,0,-440,-417,0, + -182,0,0,0,0,0,-439,-416,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-422,0, + 0,0,0,0,0,0,0,-421,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-438,0,0,0, - 0,0,0,0,0,-197,0,0,0,0, + 0,0,0,0,0,-437,0,0,0,0, + 0,0,0,0,-196,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-276, + 0,0,0,-418,0,0,0,0,0,-6, + 0,0,0,0,0,-426,0,0,-450,0, + 0,0,0,-465,0,0,0,0,0,-289, + 0,0,0,0,0,-294,0,0,0,0, + 0,0,0,0,0,0,0,0,-429,-458, + -459,0,0,0,0,0,0,0,0,0, + -49,0,0,0,-462,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -277,0,0,0,-419,0,0,0,0,0, - -6,0,0,0,0,0,-427,0,0,-451, - 0,0,0,0,-466,0,0,0,0,0, - -290,0,0,0,0,0,-295,0,0,0, - 0,0,0,0,0,0,0,0,0,-430, - -459,-460,0,0,0,0,0,0,0,0, - 0,-49,0,0,0,-463,0,0,0,0, + 0,0,-295,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,-296,0,0,0,0,0,0, - 0,0,-50,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,-51,0,0,0,0,0, + 0,0,0,0,0,-52,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-52,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,-53,0, + 0,0,0,0,0,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, - -54,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,-55,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,-56,0,0,0,0,0, + 0,0,0,0,0,-108,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-108,0,0,0, + 0,0,0,0,0,0,0,-117,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,0,0,0,-118, 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,0,0,0, + 0,-181,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,0,0,-248,0,0,0,-467,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-249,0,0,0,-468,0, + 0,0,0,0,0,-361,0,0,0,-484, + 0,0,0,0,0,0,-183,-277,-488,-278, + 0,0,-338,0,0,0,0,-198,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-362,0,0,0, - -485,0,0,0,0,0,0,-184,-278,-489, - -279,0,0,-339,0,0,0,0,-199,0, + 0,-164,0,0,0,0,-479,0,-480,0, + 0,-434,0,0,0,0,0,-485,0,-97, 0,0,0,0,0,0,0,0,0,0, - 0,0,-165,0,0,0,0,-480,0,-481, - 0,0,-435,0,0,0,0,0,-486,0, - -97,0,0,0,0,0,0,0,0,0, - 0,-491,0,0,0,0,0,0,-373,0, - 0,-495,0,0,0,0,0,0,0,0, + -490,0,0,0,0,0,0,-372,0,0, + -494,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-193,-477,0,-378,0, - 0,-506,0,0,0,0,-500,0,0,0, - 0,0,-327,0,0,0,0,0,0,0, - -393,0,-518,-523,0,0,0,0,0,0, - 0,-376,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-501,0,0,0, - 0,0,-418,-483,-280,-484,0,0,0,0, - 0,0,0,-519,0,0,0,0,0,0, - 0,0,-493,0,-281,0,0,0,0,0, - 0,0,0,-522,0,0,0,0,-33,0, - 0,0,-426,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-502,0,-388,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,-192,-476,0,-377,0,0, + -505,0,0,0,0,-499,0,0,0,0, + 0,-326,0,0,0,0,0,0,0,-392, + 0,-517,-522,0,0,0,0,0,0,0, + -375,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-500,0,0,0,0, + 0,-417,-482,-279,-483,0,0,0,0,0, + 0,0,-518,0,0,0,0,0,0,0, + 0,-492,0,-280,0,0,0,0,0,0, + 0,0,-521,0,0,0,0,-33,0,0, + 0,-425,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-501,0,-387,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,-190,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-98,0,0, - 0,0,0,0,0,0,0,-1,0,0, + 0,0,0,0,0,-506,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-317,0,0,-223, - 0,0,0,0,0,-99,0,0,0,0, - 0,0,0,0,0,0,-198,0,0,0, - -250,0,0,-318,0,0,-464,0,0,0, - 0,0,0,0,0,0,0,0,0,-442, - 0,0,0,0,0,0,0,-224,0,0, - 0,0,0,0,0,0,0,-331,0,0, + 0,0,0,0,0,0,-98,0,0,0, + 0,0,0,0,0,0,-1,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-316,0,0,-222,0, + 0,0,0,0,-99,0,0,0,0,0, + 0,0,0,0,0,-197,0,0,0,-249, + 0,0,-317,0,0,-463,0,0,0,0, + 0,0,0,0,0,0,0,0,-441,0, + 0,0,0,0,0,0,-223,0,0,0, + 0,0,0,0,0,0,-330,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,0,0,0,0,0,0,0,-385, 0,0,0,0,0,0,0,0,0,0, + 0,-323,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-384,0, 0,0,0,0,0,0,0,0,0,0, - -366,0,0,0,0,0,0,-439,0,0, - 0,0,0,0,0,0,0,0,-475,0, - 0,0,0,0,-267,0,0,0,0,0, - 0,0,-434,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-365, + 0,0,0,0,0,0,-438,0,0,0, + 0,0,0,0,0,0,0,-474,0,0, + 0,0,0,-266,0,0,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,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-32,0,0,0,0,0,0, - 0,0,0,0,-508,0,0,0,0,0, - 0,0,0,0,0,0,0,-344,0,0, + 0,0,-32,0,0,0,0,0,0,0, + 0,0,0,-507,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,-351,0,0,0,0, - 0,0,0,0,-467,0,0,0,0,0, - 0,0,0,0,0,-309,0,0,0,0, - 0,-341,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-490, + 0,0,0,0,-350,0,0,0,0,0, + 0,0,0,-466,0,0,0,0,0,0, + 0,0,0,0,-308,0,0,0,0,0, + -340,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-489,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-352,0,0,0, - -390,0,0,0,0,0,0,0,-391,0, - 0,0,0,0,0,0,0,0,0,-411, - 0,0,0,0,0,0,0,0,-465,0, - 0,-444,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-424,0,0,0, - 0,0,0,-492,0,0,0,0,0,0, - 0,0,0,0,0,-441,0,0,0,0, - 0,0,0,0,0,0,0,-47,0,0, + 0,0,0,0,0,-351,0,0,0,-389, + 0,0,0,0,0,0,0,-390,0,0, + 0,0,0,0,0,0,0,0,-410,0, + 0,0,0,0,0,0,0,-464,0,0, + -443,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-423,0,0,0,0, + 0,0,-491,0,0,0,0,0,0,0, + 0,0,0,0,-440,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,0,0,0,0,0,-100,0,0, - 0,0,0,-166,0,0,0,0,0,0, - 0,0,0,0,0,-247,0,0,0,0, - 0,0,0,-254,0,0,0,0,0,-259, - 0,0,0,-9,0,0,0,0,-488,0, - 0,0,0,0,0,0,-476,0,0,-479, - 0,-445,0,0,0,0,0,0,0,0, - 0,0,0,0,-498,0,0,0,0,0, + 0,0,0,0,0,0,-100,0,0,0, + 0,0,-165,0,0,0,0,0,0,0, + 0,0,0,0,-246,0,0,0,0,0, + 0,0,-253,0,0,0,0,0,-258,0, + 0,0,-9,0,0,0,0,-487,0,0, + 0,0,0,0,0,-475,0,0,-478,0, + -444,0,0,0,0,0,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, @@ -525,7 +525,7 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,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; @@ -586,483 +586,483 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 167,167,167,167,167,167,167,167,167,167, 167,167,167,167,66,72,72,168,168,129, 129,130,130,130,130,130,130,3,131,131, - 128,128,111,111,111,83,67,81,157,157, - 112,112,187,187,187,132,132,122,122,188, - 188,169,169,103,881,39,1735,1728,205,4177, - 34,573,31,35,581,30,32,1720,29,27, - 56,1256,112,82,83,114,1273,1616,1350,1308, - 1387,1358,1468,1434,1491,2602,1483,1340,1510,1525, - 149,278,4658,29,164,150,1852,39,642,36, - 4333,293,34,573,338,35,581,512,3978,2272, - 39,642,36,237,4638,34,573,31,35,581, - 30,32,1255,29,27,56,1256,112,82,83, - 114,1273,2281,1350,1308,1387,1358,1468,1888,240, - 235,236,153,4104,3591,2011,2560,39,392,2543, - 31,793,321,279,683,2098,315,1001,248,39, - 284,522,381,4664,248,39,448,351,2583,4580, - 247,250,253,256,3270,1235,39,642,36,1533, - 400,34,573,339,35,581,492,343,1827,1575, - 348,233,2496,39,282,1567,523,913,2594,2625, - 2932,3052,2979,1418,39,642,36,2543,4638,34, - 573,31,35,581,1610,32,1255,29,27,56, - 1256,112,82,83,114,1273,342,1350,1308,1387, - 1358,1468,1434,1491,359,1483,117,1510,1525,149, - 994,388,422,512,150,1243,2875,2457,39,285, - 3197,2137,2147,2617,2880,314,4063,513,1418,39, - 642,36,2543,4638,34,573,31,35,581,1610, - 32,1255,29,27,56,1256,112,82,83,114, - 1273,342,1350,1308,1387,1358,1468,1434,1491,433, - 1483,398,1510,1525,149,2597,1771,593,512,150, - 2543,2875,1728,39,1568,47,512,3102,46,573, - 1370,3486,513,1019,508,1011,39,642,36,2583, - 4267,34,573,31,35,581,63,32,441,2729, - 2759,1609,328,334,1617,402,1418,39,642,36, - 2543,4638,34,573,31,35,581,1610,32,1255, - 29,27,56,1256,112,82,83,114,1273,342, - 1350,1308,1387,1358,1468,1434,1491,469,1483,508, - 1510,1525,149,68,1004,3311,512,150,4139,2875, - 512,945,909,38,325,360,1636,1888,1160,1617, - 513,1674,39,642,36,2543,4638,34,573,31, - 35,581,1610,32,1255,29,27,56,1256,112, - 82,83,114,1273,342,1350,1308,1387,1358,1468, - 1434,1491,1189,1483,31,1510,1525,149,1133,557, - 2876,512,150,1862,2875,994,512,39,847,385, - 512,39,287,48,1602,513,244,508,1847,1847, - 67,3373,1138,39,642,36,2621,162,34,573, - 338,35,581,2309,1659,1177,62,1617,2185,1485, - 39,642,36,426,4638,34,573,31,35,581, - 30,32,1255,29,27,56,1256,112,82,83, - 114,1273,237,1350,1308,1387,1358,1468,1434,1491, - 3591,1483,509,1510,1525,149,1896,793,321,378, - 150,100,315,1001,512,39,2076,1047,245,235, - 236,1074,493,326,512,39,847,385,1546,39, - 642,36,381,4638,34,573,31,35,581,30, - 32,1255,29,27,56,1256,112,82,83,114, - 1273,1847,1350,1308,1387,1358,1468,1434,1491,2002, - 1483,55,1510,1525,149,645,52,2098,378,150, - 2224,39,642,36,733,4638,34,573,31,35, - 581,30,32,1255,29,27,56,1256,92,82, - 83,379,324,382,1741,39,642,36,322,4638, - 34,573,31,35,581,30,32,1255,29,27, - 56,1256,112,82,83,114,1273,2098,1350,1308, - 1387,1358,1468,1434,1491,455,1483,1118,1510,1525, - 149,2469,39,296,378,150,2078,39,642,36, - 2882,2602,34,573,338,35,581,1347,377,1988, - 416,3170,383,1954,39,642,36,2931,4638,34, - 573,31,35,581,30,32,1255,29,27,56, - 1256,112,82,83,114,1273,2602,1350,1308,1387, - 1358,1468,1434,1491,3591,1483,31,1510,1525,149, - 738,2242,321,164,150,1954,39,642,36,521, - 4638,34,573,31,35,581,30,32,1255,29, - 27,56,1256,112,82,83,114,1273,376,1350, - 1308,1387,1358,1468,1434,1491,451,1483,1308,1510, - 1525,149,1182,2196,375,372,150,1954,39,642, - 36,2602,4638,34,573,31,35,581,30,32, - 1255,29,27,56,1256,112,82,83,114,1273, - 1847,1350,1308,1387,1358,1468,1434,1491,2602,1483, - 31,1510,1525,149,816,238,2371,372,150,512, - 39,1982,1940,248,39,284,2402,1651,4676,2972, - 317,3973,655,1135,1567,1954,39,642,36,375, - 4638,34,573,31,35,581,30,32,1255,29, - 27,56,1256,112,82,83,114,1273,371,1350, - 1308,1387,1358,1468,1434,1491,520,1483,1059,1510, - 1525,149,373,438,454,372,150,1789,39,642, - 36,2475,4638,34,573,31,35,581,30,32, - 1255,29,27,56,1256,112,82,83,114,1273, - 370,1350,1308,1387,1358,1468,1434,1491,502,1483, - 854,1510,1526,170,1607,39,642,36,1839,4638, - 34,573,31,35,581,30,32,1255,29,27, - 56,1256,112,82,83,114,1273,3630,1350,1308, - 1387,1358,1468,1434,1491,1308,1483,600,1510,1525, - 149,327,31,31,148,150,716,1133,368,512, - 39,847,385,1954,39,642,36,929,4638,34, - 573,31,35,581,30,32,1255,29,27,56, - 1256,112,82,83,114,1273,1097,1350,1308,1387, - 1358,1468,1434,1491,332,1483,429,1510,1525,149, - 559,512,1980,161,150,1954,39,642,36,2065, - 4638,34,573,31,35,581,30,32,1255,29, - 27,56,1256,112,82,83,114,1273,868,1350, - 1308,1387,1358,1468,1434,1491,1156,1483,2035,1510, - 1525,149,853,1301,442,160,150,1954,39,642, - 36,145,4638,34,573,31,35,581,30,32, - 1255,29,27,56,1256,112,82,83,114,1273, - 1427,1350,1308,1387,1358,1468,1434,1491,4046,1483, - 31,1510,1525,149,949,1144,1380,159,150,1954, - 39,642,36,2531,4638,34,573,31,35,581, - 30,32,1255,29,27,56,1256,112,82,83, - 114,1273,519,1350,1308,1387,1358,1468,1434,1491, - 414,1483,291,1510,1525,149,1356,1663,1637,158, - 150,1954,39,642,36,1264,4638,34,573,31, - 35,581,30,32,1255,29,27,56,1256,112, - 82,83,114,1273,1296,1350,1308,1387,1358,1468, - 1434,1491,1342,1483,31,1510,1525,149,4250,1543, - 1239,157,150,1954,39,642,36,1686,4638,34, - 573,31,35,581,30,32,1255,29,27,56, - 1256,112,82,83,114,1273,1671,1350,1308,1387, - 1358,1468,1434,1491,1350,1483,352,1510,1525,149, - 99,1784,1466,156,150,1954,39,642,36,1858, - 4638,34,573,31,35,581,30,32,1255,29, - 27,56,1256,112,82,83,114,1273,519,1350, - 1308,1387,1358,1468,1434,1491,2026,1483,31,1510, - 1525,149,4298,2086,2172,155,150,1954,39,642, - 36,2206,4638,34,573,31,35,581,30,32, - 1255,29,27,56,1256,112,82,83,114,1273, - 766,1350,1308,1387,1358,1468,1434,1491,2516,1483, - 31,1510,1525,149,612,2502,1832,154,150,1954, - 39,642,36,1997,4638,34,573,31,35,581, - 30,32,1255,29,27,56,1256,112,82,83, - 114,1273,1966,1350,1308,1387,1358,1468,1434,1491, - 2533,1483,1702,1510,1525,149,2655,2542,1685,153, - 150,1954,39,642,36,2042,4638,34,573,31, - 35,581,30,32,1255,29,27,56,1256,112, - 82,83,114,1273,2168,1350,1308,1387,1358,1468, - 1434,1491,2536,1483,31,1510,1525,149,2634,1724, - 2174,152,150,1954,39,642,36,1359,4638,34, - 573,31,35,581,30,32,1255,29,27,56, - 1256,112,82,83,114,1273,1542,1350,1308,1387, - 1358,1468,1434,1491,1848,1483,31,1510,1525,149, - 2672,2379,417,151,150,1954,39,642,36,2475, - 4638,34,573,31,35,581,30,32,1255,29, - 27,56,1256,112,82,83,114,1273,772,1350, - 1308,1387,1358,1468,1434,1491,1669,1483,353,1510, - 1525,149,471,2057,1635,165,150,1954,39,642, - 36,1358,4638,34,573,31,35,581,30,32, - 1255,29,27,56,1256,112,82,83,114,1273, - 1704,1350,1308,1387,1358,1468,1434,1491,1819,1483, - 31,1510,1525,149,2926,1872,2363,146,150,2176, - 39,642,36,2004,4638,34,573,31,35,581, - 30,32,1255,29,27,56,1256,112,82,83, - 114,1273,1861,1350,1308,1387,1358,1468,1434,1491, - 823,1483,1984,1510,1525,149,3020,1847,1659,195, - 150,2272,39,642,36,596,4638,34,573,31, - 35,581,30,32,1255,29,27,56,1256,112, - 82,83,114,1273,518,1350,1308,1387,1358,1468, - 1434,1491,1987,1483,1221,1510,1526,170,2272,39, - 642,36,442,4638,34,573,31,35,581,30, - 32,1255,29,27,56,1256,112,82,83,114, - 1273,380,1350,1308,1387,1358,1468,1434,1491,1440, - 1483,3915,1510,1526,170,1235,39,642,36,2098, - 2006,34,573,44,35,581,2167,2272,39,642, - 36,295,4638,34,573,31,35,581,30,32, - 1255,29,27,56,1256,112,82,83,114,1273, - 3893,1350,1308,1387,1358,1468,1434,1491,76,1483, - 596,1510,1526,170,2272,39,642,36,418,4638, - 34,573,31,35,581,30,32,1255,29,27, - 56,1256,112,82,83,114,1273,1281,1350,1308, - 1387,1358,1468,1434,1491,2329,1483,2105,1510,1526, - 170,1235,39,642,36,2098,593,34,573,777, - 35,581,2049,2272,39,642,36,2682,4638,34, - 573,31,35,581,30,32,1255,29,27,56, - 1256,112,82,83,114,1273,28,1350,1308,1387, - 1358,1468,1434,1491,302,1483,2350,1510,1526,170, - 2320,39,642,36,417,4638,34,573,31,35, - 581,30,32,1255,29,27,56,1256,112,82, - 83,114,1273,77,1350,1308,1387,1358,1468,1434, - 1491,2254,1483,2208,1510,1526,170,1235,39,642, - 36,2098,2302,34,573,2156,35,581,2219,2272, - 39,642,36,420,4638,34,573,31,35,581, - 30,32,1255,29,27,56,1256,112,82,83, - 114,1273,75,1350,1308,1387,1358,1468,1434,1491, - 31,1483,94,1904,3132,108,2272,39,642,36, - 3092,4638,34,573,31,35,581,30,32,1255, - 29,27,56,1256,112,82,83,114,1273,1847, - 1350,1308,1387,1358,1468,1434,1491,1383,1896,2272, - 39,642,36,2098,4638,34,573,31,35,581, - 30,32,1255,29,27,56,1256,112,82,83, - 114,1273,2098,1350,1308,1387,1358,1468,1434,1862, - 2272,39,642,36,74,4638,34,573,31,35, - 581,30,32,1255,29,27,56,1256,112,82, - 83,114,1273,59,1350,1308,1387,1358,1846,2272, - 39,642,36,57,4638,34,573,31,35,581, - 30,32,1255,29,27,56,1256,112,82,83, - 114,1273,2465,1350,1308,1387,1854,2272,39,642, - 36,1847,4638,34,573,31,35,581,30,32, - 1255,29,27,56,1256,112,82,83,114,1273, - 2373,1350,1308,1387,1861,2272,39,642,36,1841, - 4638,34,573,31,35,581,30,32,1255,29, - 27,56,1256,112,82,83,114,1273,2082,1350, - 1308,1778,2272,39,642,36,2065,4638,34,573, - 31,35,581,30,32,1255,29,27,56,1256, - 112,82,83,114,1273,103,1350,1308,1785,2272, - 39,642,36,387,4638,34,573,31,35,581, - 30,32,1255,29,27,56,1256,112,82,83, - 114,1273,2353,1350,1308,1804,2272,39,642,36, - 2515,4638,34,573,31,35,581,30,32,1255, - 29,27,56,1256,112,82,83,114,1273,2300, - 1350,1308,1812,2368,39,847,385,821,2696,2560, - 39,392,2272,39,642,36,242,4638,34,573, - 31,35,581,30,32,1255,29,27,56,1256, - 112,82,83,114,1273,2145,1350,1819,2512,2476, - 278,1262,2412,1533,39,642,36,4333,2399,34, - 573,338,35,581,1169,2373,2098,117,2272,39, - 642,36,237,4638,34,573,31,35,581,30, - 32,1255,29,27,56,1256,112,82,83,114, - 1273,68,1350,1820,2426,2022,4139,93,240,235, - 236,3591,2643,31,2375,1980,2669,625,793,321, - 2098,31,279,315,1001,2439,1841,1373,2458,2152, - 2413,2543,4139,237,351,2281,2597,2901,386,247, - 250,253,256,3270,512,39,847,385,1533,177, - 2583,58,117,534,343,1827,1575,348,331,249, - 235,236,1847,2317,237,2425,913,2594,2625,2932, - 3052,2979,234,333,334,188,776,39,847,385, - 2017,278,162,355,331,4139,1515,186,3600,4444, - 252,235,236,527,209,220,1116,2635,208,217, - 218,219,221,512,39,847,385,175,1,2284, - 31,2597,534,55,3472,3163,359,31,725,31, - 1652,1133,174,1133,189,173,176,177,178,179, - 180,234,2918,2137,2147,290,104,332,2664,2627, - 428,162,365,280,389,422,186,3600,330,334, - 162,2098,2862,209,220,1116,1903,208,217,218, - 219,221,3192,2927,2022,2512,175,1087,39,642, - 36,187,4267,34,573,31,35,581,62,32, - 2931,174,349,190,173,176,177,178,179,180, - 2272,39,642,36,978,4638,34,573,31,35, - 581,30,32,1255,29,27,56,1256,112,82, - 83,114,1273,2642,1736,512,39,909,281,2272, - 39,642,36,2728,4638,34,573,31,35,581, - 30,32,1255,29,27,56,1256,112,82,83, - 114,1273,2098,1743,1594,39,642,36,3105,593, - 34,573,338,35,581,1661,2044,1308,2065,3502, - 2573,4139,1311,39,642,36,2621,4139,34,573, - 338,35,581,96,471,350,1334,39,642,36, - 3455,2586,34,573,338,35,581,226,2059,39, - 847,385,3591,2457,39,282,2672,31,2098,793, - 321,2543,66,2666,315,1001,2281,2373,2098,1047, - 3591,1340,2821,2876,399,351,4512,793,321,331, - 342,2151,315,1001,3591,278,351,557,1982,2994, - 265,2242,321,4557,534,343,1827,1575,348,3077, - 2875,2560,39,392,2771,2676,343,1827,1575,348, - 4468,1686,1025,234,117,341,1321,3581,2674,2431, - 39,847,385,162,2696,309,533,2716,186,3600, - 288,237,243,2720,31,209,220,1116,2974,208, - 217,218,219,221,2722,1817,518,2162,175,353, - 4506,1963,2373,534,102,2098,278,255,235,236, - 2281,78,2748,174,2869,3093,173,176,177,178, - 179,180,234,2597,2833,391,422,2373,237,1262, - 31,2709,162,89,534,1133,73,186,3600,2972, - 317,1566,2845,1451,209,220,1116,2543,208,217, - 218,219,221,342,241,235,236,175,441,3169, - 3466,334,534,162,162,289,2583,31,279,2155, - 168,2646,174,2875,182,173,176,177,178,179, - 180,234,2710,2544,2069,248,251,254,257,3270, - 300,162,2711,2948,1533,1373,186,3600,1262,2543, - 4139,237,1451,209,220,1116,2543,208,217,218, - 219,221,512,39,847,385,175,529,2583,390, - 422,534,2375,1980,2512,2583,31,258,235,236, - 3481,174,500,193,173,176,177,178,179,180, - 234,2749,2712,2394,864,39,847,385,2098,427, - 162,354,331,1226,2098,186,3600,424,4139,2724, - 68,527,209,220,1116,4139,208,217,218,219, - 221,207,497,499,2098,175,617,5278,2248,72, - 534,55,2329,3937,359,71,725,2098,53,5278, - 174,500,3181,173,176,177,178,179,180,234, - 2918,2137,2147,5278,4134,70,727,1004,2532,162, - 332,2706,1133,5278,186,3600,5278,331,3336,2098, - 323,209,220,1116,351,208,217,218,219,221, - 527,498,499,31,175,705,31,3053,31,534, - 534,166,1869,290,345,1827,1575,348,2700,174, - 61,198,173,176,177,178,179,180,234,342, - 1869,39,1644,1772,5278,3154,31,5278,162,162, - 534,3012,2022,186,3600,2323,50,1602,1340,2875, - 209,220,1116,4561,208,217,218,219,221,342, - 2241,31,5278,175,793,4159,681,55,534,162, - 1133,1340,725,2342,1259,2155,4569,2098,174,2875, - 192,173,176,177,178,179,180,234,5278,95, - 2596,5278,108,424,39,448,31,162,4580,162, - 4071,1340,186,3600,206,3980,4607,1340,60,209, - 220,1116,4626,208,217,218,219,221,1163,39, - 642,36,175,4684,34,573,31,35,581,30, - 32,5278,506,512,39,909,2070,174,1730,200, - 173,176,177,178,179,180,2272,39,642,36, - 5278,4638,34,573,31,35,581,30,32,1255, - 29,27,56,1256,112,82,83,114,1762,2272, - 39,642,36,5278,4638,34,573,31,35,581, - 30,32,1255,29,27,56,1256,112,82,83, - 114,1770,2272,39,642,36,5278,4638,34,573, - 31,35,581,30,32,1255,29,27,56,1256, - 112,82,83,114,1777,1192,39,2547,36,2621, - 4139,34,573,338,35,581,31,2532,5278,2631, - 2581,1133,2576,2543,2098,2098,2543,512,39,847, - 385,2683,2373,5278,5278,2543,512,39,909,286, - 2654,5278,2583,5278,4103,234,5278,445,2729,2759, - 166,5278,68,3591,234,107,3983,4139,593,31, - 793,321,331,3039,447,315,1001,211,220,1116, - 948,210,217,218,219,221,211,220,1116,2098, - 210,217,218,219,221,5278,5278,5278,212,214, - 216,297,298,4468,1972,299,306,212,214,216, - 297,298,5278,1972,222,213,215,2696,500,331, - 3508,2543,2640,222,213,215,937,39,642,36, - 5278,4684,34,573,31,35,581,65,32,5278, - 234,512,39,909,283,31,4049,3037,5278,3557, - 3163,512,39,847,385,4049,3482,31,497,499, - 593,3469,211,220,1116,2373,210,217,218,219, - 221,2488,39,909,281,413,2579,512,2520,909, - 80,5278,5278,212,214,216,297,298,55,1972, - 31,593,593,725,1902,1208,733,3011,185,222, - 213,215,2272,39,642,36,2098,4638,34,573, - 31,35,581,30,32,1255,29,27,56,1256, - 112,82,83,91,2488,39,909,2539,307,204, - 203,4049,3605,2272,945,642,1594,446,4638,34, - 573,31,35,581,30,32,1255,29,27,56, - 1256,112,82,83,90,2272,39,642,36,5278, - 4638,34,573,31,35,581,30,32,1255,29, - 27,56,1256,112,82,83,89,2272,39,642, - 36,5278,4638,34,573,31,35,581,30,32, - 1255,29,27,56,1256,112,82,83,88,2272, - 39,642,36,5278,4638,34,573,31,35,581, - 30,32,1255,29,27,56,1256,112,82,83, - 87,2272,39,642,36,5278,4638,34,573,31, - 35,581,30,32,1255,29,27,56,1256,112, - 82,83,86,2272,39,642,36,5278,4638,34, - 573,31,35,581,30,32,1255,29,27,56, - 1256,112,82,83,85,2272,39,642,36,5278, - 4638,34,573,31,35,581,30,32,1255,29, - 27,56,1256,112,82,83,84,2119,39,642, - 36,5278,4638,34,573,31,35,581,30,32, - 1255,29,27,56,1256,112,82,83,110,2272, - 39,642,36,5278,4638,34,573,31,35,581, - 30,32,1255,29,27,56,1256,112,82,83, - 116,2272,39,642,36,5278,4638,34,573,31, - 35,581,30,32,1255,29,27,56,1256,112, - 82,83,115,2272,39,642,36,5278,4638,34, - 573,31,35,581,30,32,1255,29,27,56, - 1256,112,82,83,113,2272,39,642,36,593, - 4638,34,573,31,35,581,30,32,1255,29, - 27,56,1256,112,82,83,111,986,39,642, - 36,1142,4139,34,573,338,35,581,2405,31, - 2098,31,2647,1133,2727,1133,5278,305,2543,937, - 39,642,36,5278,4684,34,573,31,35,581, - 64,32,525,776,39,847,385,234,593,350, - 593,3068,162,31,162,3591,5278,4277,3015,593, - 3158,31,793,321,332,2543,5278,316,1001,211, - 220,1116,2098,210,217,218,219,221,351,2592, - 55,5278,2098,2543,342,725,207,53,205,351, - 212,214,216,297,298,5278,1972,301,345,1827, - 1575,348,234,3127,2875,920,516,213,215,343, - 1827,1575,348,3186,5278,1693,1184,681,2771,2607, - 2543,534,593,2543,211,220,1116,2098,210,217, - 218,219,221,512,39,909,2582,5278,5278,342, - 4123,117,234,593,593,212,214,216,297,298, - 162,1972,2469,2685,296,186,3600,5278,1121,1478, - 3041,515,213,215,211,220,1116,2098,210,217, - 218,219,221,2792,31,31,31,2543,2894,1133, - 3108,227,199,5278,2098,212,214,216,297,298, - 201,1972,5278,31,5278,31,234,4197,1248,1133, - 2597,223,213,215,2098,5278,5278,5278,162,512, - 39,847,385,2805,3164,4074,5278,2543,211,220, - 1116,5278,210,217,218,219,221,2671,162,2011, - 5278,576,5278,2543,3184,3304,234,3509,334,212, - 214,216,297,298,5278,1972,55,1364,39,847, - 385,725,2583,1560,2196,308,213,215,211,220, - 1116,5278,210,217,218,219,221,1469,39,642, - 36,2621,5278,34,573,338,35,581,5278,212, - 214,216,297,298,55,1972,5278,2641,31,725, - 5278,2402,2543,4614,202,494,213,215,1325,39, - 642,36,2621,5278,34,573,338,35,581,2664, - 5278,342,5278,5278,5278,3591,5278,2532,359,5278, - 952,1133,793,321,2543,4690,31,315,1001,5278, - 2543,2875,557,5278,3475,2137,2147,996,39,847, - 385,31,1694,234,2532,2543,3591,117,1133,342, - 166,5278,5278,793,321,5278,5278,5278,315,1001, - 512,39,296,557,342,622,403,2896,1028,2875, - 309,533,2543,4690,55,5278,5278,166,31,725, - 1701,2814,1133,5278,2875,5278,404,405,406,297, - 298,234,1972,5278,5278,2928,5278,5278,5278,2908, - 5278,531,533,68,5278,5278,2597,5278,4139,4073, - 5278,162,3229,622,403,2896,5278,2411,1946,2833, - 1655,39,2547,36,2621,5278,34,573,338,35, - 581,5278,5278,5278,404,405,406,297,298,3317, - 1972,2532,5278,4106,334,1133,407,409,1138,39, - 642,36,2621,5278,34,573,338,35,581,31, - 331,5278,3919,534,5278,1104,1946,538,3591,2543, - 4690,5278,5278,2532,166,793,321,1133,2430,4395, - 315,1001,342,5278,5278,948,5278,5278,234,5278, - 5278,3937,162,5278,407,409,3591,5278,194,5278, - 5278,5278,4530,793,321,5278,166,5278,315,1001, - 622,403,2896,557,1062,39,642,36,5278,4139, - 34,573,338,35,581,31,2595,4395,5278,1133, - 5278,404,405,406,297,298,3474,1972,1062,39, - 642,36,5278,4139,34,573,338,35,581,5278, - 5278,310,533,5278,5278,5278,1817,5278,162,5278, - 3950,4506,3591,1946,4114,512,39,296,3646,793, - 321,332,5278,5278,316,1001,2537,39,847,385, - 414,2579,996,39,847,385,3591,5278,5278,5278, - 5278,407,410,793,321,332,5278,5278,318,1001, - 1138,39,642,36,2621,5278,34,573,338,35, - 581,5278,5278,55,5278,5278,5278,5278,725,55, - 53,5278,5278,5278,725,5278,53,2537,39,847, - 385,2537,39,847,385,5278,5278,5278,916,2537, - 39,847,385,5278,2237,5278,5278,5278,3591,5278, - 2537,39,847,385,2948,793,321,5278,5278,2669, - 315,1001,31,2543,55,3152,2543,3989,55,725, - 5278,53,5278,725,5278,53,55,2644,39,847, - 385,725,342,53,1084,342,5278,55,534,1399, - 526,5278,725,2723,53,5278,2656,39,847,385, - 5278,3122,2875,5278,5278,2875,5278,342,1148,39, - 847,385,3477,529,55,5278,504,162,425,725, - 5278,53,5278,194,5278,5278,5278,4530,512,39, - 847,385,5278,55,512,39,847,385,725,4290, - 53,5278,5278,5278,5278,55,512,39,847,385, - 725,5278,1385,5278,512,39,847,385,4495,5278, - 512,39,847,385,1837,55,5278,5278,2543,2468, - 725,55,867,2543,5278,5278,725,31,2913,5278, - 31,534,31,55,534,196,2543,342,725,5278, - 672,55,342,5278,5278,31,725,55,1385,2543, - 342,5278,725,342,2877,342,5278,1127,5278,5278, - 162,5278,4157,162,5278,5278,194,5278,342,194, - 4530,5278,5278,4530,5278,2875,5278,5278,5278,5278, - 5278,5278,5278,5278,5278,5278,502,5278,2875,5278, - 5278,5278,5278,5278,5278,5278,5278,3941,5278,530, - 5278,5278,5278,5278,5278,5278,5278,5278,5278,4052, - 5278,5278,5278,5278,5278,5278,5278,5278,5278,5278, - 5278,5278,5278,5278,5278,5278,5278,5278,4002,5278, - 5278,4012,5278,5278,5278,5278,5278,5278,5278,5278, - 5278,5278,5278,5278,5278,5278,5278,5278,5278,5278, - 5278,5278,5278,5278,5278,5278,5278,5278,5278,5278, - 5278,5278,5278,5278,5278,5278,5278,5278,5278,5278, - 5278,5278,5278,5278,5278,5278,5278,5278,5278,5278, - 5278,451,5278,5278,5278,5278,5278,5278,5278,5278, - 5278,5278,5278,5278,5278,5278,5278,5278,5278,437, - 5278,5278,5278,5278,5278,5278,4097,5278,0,5296, - 2,1,0,5295,2,1,0,449,630,0, - 435,1166,0,1250,33,0,43,5296,0,43, - 5295,0,1250,384,0,1,439,0,453,1031, - 0,452,1240,0,39,37,0,43,5296,2, - 0,43,5295,2,0,42,5296,0,42,5295, - 0,2489,132,0,49,5318,0,49,41,0, - 1,567,0,1,5555,0,1,5554,0,1, - 5553,0,1,5552,0,1,5551,0,1,5550, - 0,1,5549,0,1,5548,0,1,5547,0, - 1,5546,0,1,5545,0,43,5296,1,0, - 43,5295,1,0,782,1,0,5517,246,0, - 5516,246,0,5615,246,0,5614,246,0,5544, - 246,0,5543,246,0,5542,246,0,5541,246, - 0,5540,246,0,5539,246,0,5538,246,0, - 5537,246,0,5555,246,0,5554,246,0,5553, - 246,0,5552,246,0,5551,246,0,5550,246, - 0,5549,246,0,5548,246,0,5547,246,0, - 5546,246,0,5545,246,0,43,246,5296,0, - 43,246,5295,0,5320,246,0,54,5296,0, - 54,5295,0,1250,45,0,2739,97,0,36, - 38,0,43,860,0,30,514,0,5607,440, - 0,1392,440,0,5284,1,0,5283,1,0, - 242,3218,0,385,36,0,36,385,0,384, - 33,0,33,384,0,5296,54,0,5295,54, - 0,2489,134,0,2489,133,0,5318,51,0, - 51,41,0,496,1953,0,5320,233,1,0, - 43,233,1,0,233,412,0,41,5296,0, - 41,5295,0,5320,1,0,43,1,0,53, - 41,0,1,98,0,41,53,0,5288,401, - 0,5287,401,0,932,1,0,860,1,0, - 4694,1,0,233,411,0,41,5296,2,0, - 41,5295,2,0,5296,40,0,5295,40,0, - 1,5607,0,1,1392,0,43,5296,2,1, - 0,43,5295,2,1,0,5607,101,0,1392, - 101,0,39,79,0,496,4009,0,233,1, - 0,233,225,0,283,4247,0,233,224,0, - 1,626,0,1,2549,0,5286,1,0,233, - 1,2965,0,5288,233,0,5287,233,0,3043, - 233,0,8,10,0,191,3245,0 + 128,128,111,111,83,67,81,157,157,112, + 112,187,187,187,132,132,122,122,188,188, + 169,169,103,881,39,1727,1719,823,4176,34, + 572,31,35,580,30,32,1700,29,27,56, + 1255,112,82,83,114,1272,1600,1349,1307,1386, + 1357,1467,1433,1490,1962,1482,1357,1509,1524,149, + 278,4657,29,164,150,1849,39,641,36,4332, + 117,34,572,338,35,580,512,3977,2269,39, + 641,36,237,4637,34,572,31,35,580,30, + 32,1254,29,27,56,1255,112,82,83,114, + 1272,2056,1349,1307,1386,1357,1467,1861,240,235, + 236,151,4103,3590,1075,2700,39,392,2542,31, + 792,321,279,682,2395,315,1000,248,39,284, + 521,293,4663,248,39,448,351,2582,4579,247, + 250,253,256,3269,2484,39,641,36,1532,400, + 34,572,339,35,580,492,343,1826,1574,348, + 233,2657,39,282,1566,522,912,2593,2624,2931, + 3051,2978,1418,39,641,36,2542,4637,34,572, + 31,35,580,30,32,1254,29,27,56,1255, + 112,82,83,114,1272,342,1349,1307,1386,1357, + 1467,1433,1490,359,1482,1182,1509,1524,149,993, + 388,422,512,150,1321,2874,2578,39,285,3196, + 2075,2136,2605,2832,314,4062,513,1418,39,641, + 36,2542,4637,34,572,31,35,580,30,32, + 1254,29,27,56,1255,112,82,83,114,1272, + 342,1349,1307,1386,1357,1467,1433,1490,433,1482, + 398,1509,1524,149,2596,2185,1857,512,150,2542, + 2874,1364,39,1567,47,512,3092,46,572,2391, + 3485,513,63,508,1138,39,641,36,2582,4266, + 34,572,31,35,580,63,32,441,2716,2728, + 1608,328,334,1609,402,1418,39,641,36,2542, + 4637,34,572,31,35,580,30,32,1254,29, + 27,56,1255,112,82,83,114,1272,342,1349, + 1307,1386,1357,1467,1433,1490,381,1482,508,1509, + 1524,149,68,1003,3310,512,150,4138,2874,512, + 944,908,38,325,360,1616,2410,327,1609,513, + 1672,39,641,36,2542,4637,34,572,31,35, + 580,30,32,1254,29,27,56,1255,112,82, + 83,114,1272,342,1349,1307,1386,1357,1467,1433, + 1490,415,1482,31,1509,1524,149,1132,469,2875, + 512,150,1859,2874,993,512,39,846,385,512, + 39,287,48,1601,513,244,508,1725,1725,67, + 3372,1594,39,641,36,2620,162,34,572,338, + 35,580,2308,1651,1177,865,1609,2406,1484,39, + 641,36,426,4637,34,572,31,35,580,30, + 32,1254,29,27,56,1255,112,82,83,114, + 1272,237,1349,1307,1386,1357,1467,1433,1490,3590, + 1482,509,1509,1524,149,1819,792,321,378,150, + 100,315,1000,512,39,2069,1046,245,235,236, + 239,493,326,512,39,846,385,1545,39,641, + 36,381,4637,34,572,31,35,580,30,32, + 1254,29,27,56,1255,112,82,83,114,1272, + 1725,1349,1307,1386,1357,1467,1433,1490,1999,1482, + 55,1509,1524,149,557,52,2395,378,150,2221, + 39,641,36,645,4637,34,572,31,35,580, + 30,32,1254,29,27,56,1255,92,82,83, + 379,324,382,1738,39,641,36,322,4637,34, + 572,31,35,580,30,32,1254,29,27,56, + 1255,112,82,83,114,1272,2395,1349,1307,1386, + 1357,1467,1433,1490,455,1482,733,1509,1524,149, + 2680,39,296,378,150,2164,39,641,36,2881, + 1962,34,572,338,35,580,937,377,1987,416, + 3169,383,1951,39,641,36,2930,4637,34,572, + 31,35,580,30,32,1254,29,27,56,1255, + 112,82,83,114,1272,1962,1349,1307,1386,1357, + 1467,1433,1490,3590,1482,31,1509,1524,149,737, + 2232,321,164,150,1951,39,641,36,520,4637, + 34,572,31,35,580,30,32,1254,29,27, + 56,1255,112,82,83,114,1272,376,1349,1307, + 1386,1357,1467,1433,1490,451,1482,1011,1509,1524, + 149,1118,2161,375,372,150,1951,39,641,36, + 1962,4637,34,572,31,35,580,30,32,1254, + 29,27,56,1255,112,82,83,114,1272,1725, + 1349,1307,1386,1357,1467,1433,1490,1962,1482,31, + 1509,1524,149,815,996,2466,372,150,512,39, + 1981,1939,248,39,284,1014,1643,4675,2971,317, + 3972,654,998,1566,1951,39,641,36,375,4637, + 34,572,31,35,580,30,32,1254,29,27, + 56,1255,112,82,83,114,1272,371,1349,1307, + 1386,1357,1467,1433,1490,519,1482,1337,1509,1524, + 149,373,438,454,372,150,1786,39,641,36, + 2328,4637,34,572,31,35,580,30,32,1254, + 29,27,56,1255,112,82,83,114,1272,370, + 1349,1307,1386,1357,1467,1433,1490,1092,1482,1838, + 1509,1525,170,1606,39,641,36,997,4637,34, + 572,31,35,580,30,32,1254,29,27,56, + 1255,112,82,83,114,1272,3629,1349,1307,1386, + 1357,1467,1433,1490,1011,1482,67,1509,1524,149, + 327,31,31,148,150,715,1132,368,512,39, + 846,385,1951,39,641,36,928,4637,34,572, + 31,35,580,30,32,1254,29,27,56,1255, + 112,82,83,114,1272,1096,1349,1307,1386,1357, + 1467,1433,1490,596,1482,429,1509,1524,149,2617, + 512,1971,161,150,1951,39,641,36,2064,4637, + 34,572,31,35,580,30,32,1254,29,27, + 56,1255,112,82,83,114,1272,503,1349,1307, + 1386,1357,1467,1433,1490,1155,1482,2075,1509,1524, + 149,852,1017,442,160,150,1951,39,641,36, + 767,4637,34,572,31,35,580,30,32,1254, + 29,27,56,1255,112,82,83,114,1272,591, + 1349,1307,1386,1357,1467,1433,1490,4045,1482,31, + 1509,1524,149,948,1144,864,159,150,1951,39, + 641,36,2688,4637,34,572,31,35,580,30, + 32,1254,29,27,56,1255,112,82,83,114, + 1272,518,1349,1307,1386,1357,1467,1433,1490,1087, + 1482,291,1509,1524,149,2694,1164,1399,158,150, + 1951,39,641,36,679,4637,34,572,31,35, + 580,30,32,1254,29,27,56,1255,112,82, + 83,114,1272,1296,1349,1307,1386,1357,1467,1433, + 1490,1446,1482,31,1509,1524,149,4249,1264,1429, + 157,150,1951,39,641,36,1479,4637,34,572, + 31,35,580,30,32,1254,29,27,56,1255, + 112,82,83,114,1272,1841,1349,1307,1386,1357, + 1467,1433,1490,1012,1482,352,1509,1524,149,99, + 1141,1495,156,150,1951,39,641,36,1516,4637, + 34,572,31,35,580,30,32,1254,29,27, + 56,1255,112,82,83,114,1272,518,1349,1307, + 1386,1357,1467,1433,1490,1602,1482,31,1509,1524, + 149,4297,1667,1835,155,150,1951,39,641,36, + 1184,4637,34,572,31,35,580,30,32,1254, + 29,27,56,1255,112,82,83,114,1272,2498, + 1349,1307,1386,1357,1467,1433,1490,1327,1482,31, + 1509,1524,149,611,2003,2373,154,150,1951,39, + 641,36,1939,4637,34,572,31,35,580,30, + 32,1254,29,27,56,1255,112,82,83,114, + 1272,1963,1349,1307,1386,1357,1467,1433,1490,2603, + 1482,1471,1509,1524,149,2654,243,419,153,150, + 1951,39,641,36,595,4637,34,572,31,35, + 580,30,32,1254,29,27,56,1255,112,82, + 83,114,1272,771,1349,1307,1386,1357,1467,1433, + 1490,1340,1482,31,1509,1524,149,2633,2001,1960, + 152,150,1951,39,641,36,1160,4637,34,572, + 31,35,580,30,32,1254,29,27,56,1255, + 112,82,83,114,1272,1073,1349,1307,1386,1357, + 1467,1433,1490,2368,1482,31,1509,1524,149,2671, + 1634,772,151,150,1951,39,641,36,2328,4637, + 34,572,31,35,580,30,32,1254,29,27, + 56,1255,112,82,83,114,1272,1301,1349,1307, + 1386,1357,1467,1433,1490,2054,1482,353,1509,1524, + 149,2082,1715,1615,165,150,1951,39,641,36, + 1681,4637,34,572,31,35,580,30,32,1254, + 29,27,56,1255,112,82,83,114,1272,1702, + 1349,1307,1386,1357,1467,1433,1490,1747,1482,31, + 1509,1524,149,2925,2182,2205,146,150,2173,39, + 641,36,1638,4637,34,572,31,35,580,30, + 32,1254,29,27,56,1255,112,82,83,114, + 1272,1527,1349,1307,1386,1357,1467,1433,1490,1836, + 1482,1888,1509,1524,149,3019,1725,2535,195,150, + 2269,39,641,36,1206,4637,34,572,31,35, + 580,30,32,1254,29,27,56,1255,112,82, + 83,114,1272,517,1349,1307,1386,1357,1467,1433, + 1490,1855,1482,1220,1509,1525,170,2269,39,641, + 36,442,4637,34,572,31,35,580,30,32, + 1254,29,27,56,1255,112,82,83,114,1272, + 380,1349,1307,1386,1357,1467,1433,1490,1439,1482, + 3914,1509,1525,170,2484,39,641,36,2395,2203, + 34,572,44,35,580,1768,2269,39,641,36, + 295,4637,34,572,31,35,580,30,32,1254, + 29,27,56,1255,112,82,83,114,1272,3892, + 1349,1307,1386,1357,1467,1433,1490,76,1482,1206, + 1509,1525,170,2269,39,641,36,418,4637,34, + 572,31,35,580,30,32,1254,29,27,56, + 1255,112,82,83,114,1272,2184,1349,1307,1386, + 1357,1467,1433,1490,2299,1482,1573,1509,1525,170, + 2484,39,641,36,2395,1857,34,572,776,35, + 580,1921,2269,39,641,36,2681,4637,34,572, + 31,35,580,30,32,1254,29,27,56,1255, + 112,82,83,114,1272,28,1349,1307,1386,1357, + 1467,1433,1490,302,1482,1938,1509,1525,170,2317, + 39,641,36,417,4637,34,572,31,35,580, + 30,32,1254,29,27,56,1255,112,82,83, + 114,1272,77,1349,1307,1386,1357,1467,1433,1490, + 2301,1482,2278,1509,1525,170,2484,39,641,36, + 2395,2230,34,572,2155,35,580,2078,2269,39, + 641,36,420,4637,34,572,31,35,580,30, + 32,1254,29,27,56,1255,112,82,83,114, + 1272,75,1349,1307,1386,1357,1467,1433,1490,31, + 1482,94,1902,3131,108,2269,39,641,36,3042, + 4637,34,572,31,35,580,30,32,1254,29, + 27,56,1255,112,82,83,114,1272,1725,1349, + 1307,1386,1357,1467,1433,1490,2080,1887,2269,39, + 641,36,2395,4637,34,572,31,35,580,30, + 32,1254,29,27,56,1255,112,82,83,114, + 1272,2395,1349,1307,1386,1357,1467,1433,1860,2269, + 39,641,36,74,4637,34,572,31,35,580, + 30,32,1254,29,27,56,1255,112,82,83, + 114,1272,59,1349,1307,1386,1357,1819,2269,39, + 641,36,57,4637,34,572,31,35,580,30, + 32,1254,29,27,56,1255,112,82,83,114, + 1272,2654,1349,1307,1386,1845,2269,39,641,36, + 1725,4637,34,572,31,35,580,30,32,1254, + 29,27,56,1255,112,82,83,114,1272,2660, + 1349,1307,1386,1853,2269,39,641,36,855,4637, + 34,572,31,35,580,30,32,1254,29,27, + 56,1255,112,82,83,114,1272,909,1349,1307, + 1776,2269,39,641,36,2064,4637,34,572,31, + 35,580,30,32,1254,29,27,56,1255,112, + 82,83,114,1272,103,1349,1307,1777,2269,39, + 641,36,387,4637,34,572,31,35,580,30, + 32,1254,29,27,56,1255,112,82,83,114, + 1272,2394,1349,1307,1784,2269,39,641,36,1657, + 4637,34,572,31,35,580,30,32,1254,29, + 27,56,1255,112,82,83,114,1272,821,1349, + 1307,1803,2365,39,846,385,2455,2695,2700,39, + 392,2269,39,641,36,242,4637,34,572,31, + 35,580,30,32,1254,29,27,56,1255,112, + 82,83,114,1272,2144,1349,1811,2457,2347,278, + 2529,2438,1532,39,641,36,4332,2471,34,572, + 338,35,580,1169,2660,2395,1182,2269,39,641, + 36,237,4637,34,572,31,35,580,30,32, + 1254,29,27,56,1255,112,82,83,114,1272, + 68,1349,1818,2545,2019,4138,93,240,235,236, + 3590,2735,31,1372,1971,2668,624,792,321,2395, + 31,279,315,1000,2438,855,1654,2316,1984,2538, + 2542,4138,237,351,2056,2596,2879,386,247,250, + 253,256,3269,512,39,846,385,1532,177,2582, + 58,1182,533,343,1826,1574,348,331,249,235, + 236,1725,2247,237,1241,912,2593,2624,2931,3051, + 2978,234,333,334,188,688,39,846,385,2032, + 278,162,355,331,4138,2582,186,3599,4443,252, + 235,236,526,209,220,1115,2458,208,217,218, + 219,221,512,39,846,385,175,1,2540,31, + 2596,533,55,3471,3162,359,31,724,31,1650, + 1132,174,1132,189,173,176,177,178,179,180, + 234,2917,2075,2136,290,104,332,2663,2576,428, + 162,365,280,389,422,186,3599,330,334,162, + 2395,2861,209,220,1115,1895,208,217,218,219, + 221,3191,2926,1979,2457,175,2016,39,641,36, + 187,4266,34,572,31,35,580,62,32,2930, + 174,349,190,173,176,177,178,179,180,2269, + 39,641,36,978,4637,34,572,31,35,580, + 30,32,1254,29,27,56,1255,112,82,83, + 114,1272,2653,1734,512,39,908,281,2269,39, + 641,36,2727,4637,34,572,31,35,580,30, + 32,1254,29,27,56,1255,112,82,83,114, + 1272,2395,1735,2400,39,641,36,3104,1857,34, + 572,338,35,580,2606,2370,1011,2064,3501,2671, + 4138,1311,39,641,36,2620,4138,34,572,338, + 35,580,96,2082,350,1467,39,641,36,3454, + 2648,34,572,338,35,580,226,2665,39,846, + 385,3590,2578,39,282,2457,31,2395,792,321, + 2542,66,2494,315,1000,2056,2660,2395,1046,3590, + 1357,2738,2875,399,351,4511,792,321,331,342, + 2150,315,1000,3590,278,351,556,1979,2993,265, + 2232,321,4556,533,343,1826,1574,348,3076,2874, + 2700,39,392,2770,2686,343,1826,1574,348,4467, + 1658,1054,234,1182,341,1320,3580,2703,2427,39, + 846,385,162,2695,309,532,2704,186,3599,288, + 237,243,2798,31,209,220,1115,2973,208,217, + 218,219,221,1704,1814,517,2146,175,353,4505, + 2799,2660,533,102,2395,278,255,235,236,2056, + 78,89,174,2868,3091,173,176,177,178,179, + 180,234,2596,2758,391,422,2660,237,2529,31, + 2795,162,2741,533,1132,73,186,3599,2971,317, + 1565,2782,1451,209,220,1115,2542,208,217,218, + 219,221,342,241,235,236,175,441,3151,3465, + 334,533,162,162,289,2582,31,279,2154,168, + 2645,174,2874,182,173,176,177,178,179,180, + 234,2249,2742,2068,248,251,254,257,3269,300, + 162,1575,2947,1532,1654,186,3599,2529,2542,4138, + 237,1451,209,220,1115,2542,208,217,218,219, + 221,512,39,846,385,175,529,2582,390,422, + 533,1372,1971,2803,2582,31,258,235,236,3480, + 174,500,193,173,176,177,178,179,180,234, + 2751,2763,2423,776,39,846,385,2395,427,162, + 354,331,1226,2395,186,3599,424,4138,1659,68, + 526,209,220,1115,4138,208,217,218,219,221, + 5274,497,499,2395,175,617,5274,2241,72,533, + 55,2299,3936,359,71,724,2395,53,5274,174, + 500,3168,173,176,177,178,179,180,234,2917, + 2075,2136,5274,4133,70,726,1003,2454,162,332, + 2684,1132,5274,186,3599,5274,331,3335,2395,323, + 209,220,1115,351,208,217,218,219,221,526, + 498,499,31,175,705,31,3052,31,533,533, + 166,1868,290,345,1826,1574,348,2699,174,61, + 198,173,176,177,178,179,180,234,342,1885, + 39,1635,1771,5274,3153,31,5274,162,162,533, + 3011,1979,186,3599,2322,50,1601,1357,2874,209, + 220,1115,4560,208,217,218,219,221,342,2240, + 31,5274,175,793,4158,2028,55,533,162,1132, + 1357,724,2341,1258,2154,4568,2395,174,2874,192, + 173,176,177,178,179,180,234,5274,95,2595, + 5274,108,424,39,448,31,162,4579,162,4070, + 1357,186,3599,206,3979,4606,1357,60,209,220, + 1115,4625,208,217,218,219,221,2532,39,641, + 36,175,4683,34,572,31,35,580,30,32, + 5274,506,512,39,908,2021,174,1729,200,173, + 176,177,178,179,180,2269,39,641,36,5274, + 4637,34,572,31,35,580,30,32,1254,29, + 27,56,1255,112,82,83,114,1742,2269,39, + 641,36,5274,4637,34,572,31,35,580,30, + 32,1254,29,27,56,1255,112,82,83,114, + 1761,2269,39,641,36,5274,4637,34,572,31, + 35,580,30,32,1254,29,27,56,1255,112, + 82,83,114,1769,1192,39,2538,36,2620,4138, + 34,572,338,35,580,31,2454,5274,1639,2580, + 1132,2512,2542,2395,2395,2542,512,39,846,385, + 2620,2660,5274,5274,2542,512,39,908,286,2508, + 5274,2582,5274,4102,234,5274,445,2716,2728,166, + 5274,68,3590,234,107,3982,4138,1857,31,792, + 321,331,3038,447,315,1000,211,220,1115,947, + 210,217,218,219,221,211,220,1115,2395,210, + 217,218,219,221,5274,5274,5274,212,214,216, + 297,298,4467,1952,299,306,212,214,216,297, + 298,5274,1952,222,213,215,2633,500,331,3507, + 2542,2639,222,213,215,2043,39,641,36,5274, + 4683,34,572,31,35,580,65,32,5274,234, + 512,39,908,283,31,4048,3036,5274,3556,3162, + 512,39,846,385,4048,3481,31,497,499,1857, + 3468,211,220,1115,2660,210,217,218,219,221, + 1893,39,908,281,413,2546,512,2511,908,80, + 5274,5274,212,214,216,297,298,55,1952,31, + 1857,1857,724,1901,1207,732,3003,185,222,213, + 215,2269,39,641,36,2395,4637,34,572,31, + 35,580,30,32,1254,29,27,56,1255,112, + 82,83,91,1893,39,908,2519,307,204,203, + 4048,3604,2269,944,641,1593,446,4637,34,572, + 31,35,580,30,32,1254,29,27,56,1255, + 112,82,83,90,2269,39,641,36,5274,4637, + 34,572,31,35,580,30,32,1254,29,27, + 56,1255,112,82,83,89,2269,39,641,36, + 5274,4637,34,572,31,35,580,30,32,1254, + 29,27,56,1255,112,82,83,88,2269,39, + 641,36,5274,4637,34,572,31,35,580,30, + 32,1254,29,27,56,1255,112,82,83,87, + 2269,39,641,36,5274,4637,34,572,31,35, + 580,30,32,1254,29,27,56,1255,112,82, + 83,86,2269,39,641,36,5274,4637,34,572, + 31,35,580,30,32,1254,29,27,56,1255, + 112,82,83,85,2269,39,641,36,5274,4637, + 34,572,31,35,580,30,32,1254,29,27, + 56,1255,112,82,83,84,2116,39,641,36, + 5274,4637,34,572,31,35,580,30,32,1254, + 29,27,56,1255,112,82,83,110,2269,39, + 641,36,5274,4637,34,572,31,35,580,30, + 32,1254,29,27,56,1255,112,82,83,116, + 2269,39,641,36,5274,4637,34,572,31,35, + 580,30,32,1254,29,27,56,1255,112,82, + 83,115,2269,39,641,36,5274,4637,34,572, + 31,35,580,30,32,1254,29,27,56,1255, + 112,82,83,113,2269,39,641,36,1857,4637, + 34,572,31,35,580,30,32,1254,29,27, + 56,1255,112,82,83,111,986,39,641,36, + 2676,4138,34,572,338,35,580,1864,31,2395, + 31,2646,1132,2709,1132,5274,305,2542,2043,39, + 641,36,5274,4683,34,572,31,35,580,64, + 32,524,688,39,846,385,234,1857,350,1857, + 3067,162,31,162,3590,5274,4276,3014,1857,3157, + 31,792,321,332,2542,5274,316,1000,211,220, + 1115,2395,210,217,218,219,221,351,2555,55, + 5274,2395,2542,342,724,207,53,205,351,212, + 214,216,297,298,5274,1952,301,345,1826,1574, + 348,234,3126,2874,919,515,213,215,343,1826, + 1574,348,3185,5274,1685,1514,2028,2770,2589,2542, + 533,1857,2542,211,220,1115,2395,210,217,218, + 219,221,512,39,908,2578,5274,5274,342,4122, + 1182,234,1857,1857,212,214,216,297,298,162, + 1952,2680,2649,296,186,3599,5274,1120,1477,3040, + 514,213,215,211,220,1115,2395,210,217,218, + 219,221,2722,31,31,31,2542,2893,1132,3107, + 227,199,5274,2395,212,214,216,297,298,201, + 1952,5274,31,5274,31,234,4196,1247,1132,2596, + 223,213,215,2395,5274,5274,5274,162,512,39, + 846,385,2753,3163,4073,5274,2542,211,220,1115, + 5274,210,217,218,219,221,2769,162,1075,5274, + 575,5274,2542,3183,3303,234,3508,334,212,214, + 216,297,298,5274,1952,55,2084,39,846,385, + 724,2582,1559,2161,308,213,215,211,220,1115, + 5274,210,217,218,219,221,1721,39,641,36, + 2620,5274,34,572,338,35,580,5274,212,214, + 216,297,298,55,1952,5274,2640,31,724,5274, + 2401,2542,4613,202,494,213,215,1341,39,641, + 36,2620,5274,34,572,338,35,580,2663,5274, + 342,5274,5274,5274,3590,5274,2454,359,5274,952, + 1132,792,321,2542,4689,31,315,1000,5274,2542, + 2874,556,5274,3474,2075,2136,946,39,846,385, + 31,1692,234,2454,2542,3590,1182,1132,342,166, + 5274,5274,792,321,5274,5274,5274,315,1000,512, + 39,296,556,342,621,403,2895,1028,2874,309, + 532,2542,4689,55,5274,5274,166,31,724,1693, + 2813,1132,5274,2874,5274,404,405,406,297,298, + 234,1952,5274,5274,2927,5274,5274,5274,2907,5274, + 530,532,68,5274,5274,2596,5274,4138,4072,5274, + 162,3228,621,403,2895,5274,2410,1944,2758,1235, + 39,2538,36,2620,5274,34,572,338,35,580, + 5274,5274,5274,404,405,406,297,298,3316,1952, + 2454,5274,4105,334,1132,407,409,1594,39,641, + 36,2620,5274,34,572,338,35,580,31,331, + 5274,3918,533,5274,1104,1944,537,3590,2542,4689, + 5274,5274,2454,166,792,321,1132,2429,4394,315, + 1000,342,5274,5274,947,5274,5274,234,5274,5274, + 3936,162,5274,407,409,3590,5274,194,5274,5274, + 5274,4529,792,321,5274,166,5274,315,1000,621, + 403,2895,556,1062,39,641,36,5274,4138,34, + 572,338,35,580,31,2594,4394,5274,1132,5274, + 404,405,406,297,298,3473,1952,1062,39,641, + 36,5274,4138,34,572,338,35,580,5274,5274, + 310,532,5274,5274,5274,1814,5274,162,5274,3949, + 4505,3590,1944,4113,512,39,296,3645,792,321, + 332,5274,5274,316,1000,2102,39,846,385,414, + 2546,946,39,846,385,3590,5274,5274,5274,5274, + 407,410,792,321,332,5274,5274,318,1000,1594, + 39,641,36,2620,5274,34,572,338,35,580, + 5274,5274,55,5274,5274,5274,5274,724,55,53, + 5274,5274,5274,724,5274,53,2102,39,846,385, + 2102,39,846,385,5274,5274,5274,915,2102,39, + 846,385,5274,2236,5274,5274,5274,3590,5274,2102, + 39,846,385,2947,792,321,5274,5274,2768,315, + 1000,31,2542,55,3150,2542,3988,55,724,5274, + 53,5274,724,5274,53,55,2745,39,846,385, + 724,342,53,2159,342,5274,55,533,1398,525, + 5274,724,2722,53,5274,2773,39,846,385,5274, + 3121,2874,5274,5274,2874,5274,342,1149,39,846, + 385,3476,528,55,5274,504,162,425,724,5274, + 53,5274,194,5274,5274,5274,4529,512,39,846, + 385,5274,55,512,39,846,385,724,4289,53, + 5274,5274,5274,5274,55,512,39,846,385,724, + 5274,1384,5274,512,39,846,385,4494,5274,512, + 39,846,385,1834,55,5274,5274,2542,2254,724, + 55,866,2542,5274,5274,724,31,2912,5274,31, + 533,31,55,533,196,2542,342,724,5274,671, + 55,342,5274,5274,31,724,55,1384,2542,342, + 5274,724,342,2876,342,5274,1126,5274,5274,162, + 5274,4156,162,5274,5274,194,5274,342,194,4529, + 5274,5274,4529,5274,2874,5274,5274,5274,5274,5274, + 5274,5274,5274,5274,5274,502,5274,2874,5274,5274, + 5274,5274,5274,5274,5274,5274,3940,5274,529,5274, + 5274,5274,5274,5274,5274,5274,5274,5274,4051,5274, + 5274,5274,5274,5274,5274,5274,5274,5274,5274,5274, + 5274,5274,5274,5274,5274,5274,5274,4001,5274,5274, + 4011,5274,5274,5274,5274,5274,5274,5274,5274,5274, + 5274,5274,5274,5274,5274,5274,5274,5274,5274,5274, + 5274,5274,5274,5274,5274,5274,5274,5274,5274,5274, + 5274,5274,5274,5274,5274,5274,5274,5274,5274,5274, + 5274,5274,5274,5274,5274,5274,5274,5274,5274,5274, + 451,5274,5274,5274,5274,5274,5274,5274,5274,5274, + 5274,5274,5274,5274,5274,5274,5274,5274,437,5274, + 5274,5274,5274,5274,5274,4096,5274,0,5292,2, + 1,0,5291,2,1,0,449,629,0,435, + 1165,0,1249,33,0,43,5292,0,43,5291, + 0,1249,384,0,1,439,0,453,1030,0, + 452,1239,0,39,37,0,43,5292,2,0, + 43,5291,2,0,42,5292,0,42,5291,0, + 2488,132,0,49,5314,0,49,41,0,1, + 566,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,43,5292,1,0,43, + 5291,1,0,781,1,0,5513,246,0,5512, + 246,0,5611,246,0,5610,246,0,5540,246, + 0,5539,246,0,5538,246,0,5537,246,0, + 5536,246,0,5535,246,0,5534,246,0,5533, + 246,0,5551,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,5542, + 246,0,5541,246,0,43,246,5292,0,43, + 246,5291,0,5316,246,0,54,5292,0,54, + 5291,0,1249,45,0,2738,97,0,36,38, + 0,43,859,0,5603,440,0,1391,440,0, + 5280,1,0,5279,1,0,242,3217,0,385, + 36,0,36,385,0,384,33,0,33,384, + 0,5292,54,0,5291,54,0,2488,134,0, + 2488,133,0,5314,51,0,51,41,0,496, + 1945,0,5316,233,1,0,43,233,1,0, + 233,412,0,41,5292,0,41,5291,0,5316, + 1,0,43,1,0,53,41,0,1,98, + 0,41,53,0,5284,401,0,5283,401,0, + 931,1,0,859,1,0,4693,1,0,233, + 411,0,41,5292,2,0,41,5291,2,0, + 5292,40,0,5291,40,0,1,5603,0,1, + 1391,0,43,5292,2,1,0,43,5291,2, + 1,0,5603,101,0,1391,101,0,39,79, + 0,496,4008,0,233,1,0,233,225,0, + 283,4246,0,233,224,0,1,625,0,1, + 2548,0,5282,1,0,233,1,2922,0,5284, + 233,0,5283,233,0,3021,233,0,8,10, + 0,191,3244,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1078,78 +1078,78 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 0,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, 50,51,52,53,54,55,28,57,58,59, - 60,0,62,63,3,65,66,0,68,69, + 60,61,0,63,64,65,0,0,68,69, 70,4,72,6,74,8,76,77,78,79, 80,81,82,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,29,0,31, + 22,23,24,25,26,27,0,29,56,31, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,0,57,58,59,60,33, - 62,63,0,65,66,0,68,69,70,43, - 72,9,74,11,76,77,78,79,80,81, + 52,53,54,55,28,57,58,59,60,61, + 0,63,64,65,88,89,68,69,70,9, + 72,11,74,0,76,77,78,79,80,81, 82,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,0,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, - 54,55,0,57,58,59,60,0,62,63, - 3,65,66,99,68,69,70,0,1,2, + 54,55,0,57,58,59,60,61,0,63, + 64,65,0,0,68,69,70,0,1,2, 74,4,76,77,78,79,80,81,82,83, 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,0,29,0,31,32,33,34,35, + 26,27,0,29,56,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 28,57,58,59,60,121,62,63,122,65, - 66,0,68,69,70,103,104,105,74,8, + 28,57,58,59,60,61,0,63,64,65, + 88,89,68,69,70,103,104,105,74,0, 76,77,78,79,80,81,82,83,84,85, 86,87,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, - 0,29,0,31,32,33,34,35,36,37, + 0,29,56,31,32,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, 48,49,50,51,52,53,54,55,28,57, - 58,59,60,0,62,63,0,65,66,6, + 58,59,60,61,0,63,64,65,0,0, 68,69,70,0,1,2,74,4,76,77, 78,79,80,81,82,83,84,85,86,87, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,0,29, - 0,31,32,33,34,35,36,37,38,39, + 56,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, 50,51,52,53,54,55,28,57,58,59, - 60,0,62,63,3,65,66,0,68,69, - 70,0,1,2,74,99,76,77,78,79, + 60,61,0,63,64,65,88,89,68,69, + 70,0,1,2,74,0,76,77,78,79, 80,81,82,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,0,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,54,55,28,57,58,59,60,119, - 62,63,0,65,66,0,68,69,70,0, - 5,9,74,11,76,77,78,79,80,81, + 52,53,54,55,28,57,58,59,60,61, + 0,63,64,65,0,0,68,69,70,97, + 98,0,74,8,76,77,78,79,80,81, 82,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,0,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, - 54,55,28,57,58,59,60,119,62,63, - 0,65,66,0,68,69,70,88,89,9, - 74,11,76,77,78,79,80,81,82,83, + 54,55,28,57,58,59,60,61,0,63, + 64,65,88,89,68,69,70,0,1,2, + 74,101,76,77,78,79,80,81,82,83, 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,0,29,0,31,32,33,34,35, + 26,27,0,29,56,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 28,57,58,59,60,0,62,63,3,65, - 66,0,68,69,70,0,1,2,74,8, + 28,57,58,59,60,61,0,63,64,65, + 0,0,68,69,70,0,1,2,74,8, 76,77,78,79,80,81,82,83,84,85, 86,87,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, @@ -1157,218 +1157,216 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 0,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,54,55,28,57, - 58,59,60,0,62,63,0,65,66,6, - 68,69,70,0,1,2,74,0,76,77, + 58,59,60,61,0,63,64,65,88,89, + 68,69,70,0,0,99,74,3,76,77, 78,79,80,81,82,83,84,85,86,87, - 0,1,2,3,4,5,6,7,8,67, + 0,1,2,3,4,5,6,7,8,0, 10,71,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,0,29, - 0,31,32,33,34,35,36,37,38,39, + 56,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, 50,51,52,53,54,55,0,1,2,59, - 4,5,62,7,91,92,0,0,68,69, + 4,61,6,121,8,0,1,2,68,69, 70,0,1,2,3,4,5,6,7,8, - 9,10,11,12,97,98,15,16,17,18, + 9,10,11,12,56,102,15,16,17,18, 19,20,21,22,23,24,25,0,1,2, - 0,30,5,32,33,0,1,2,3,4, - 5,6,7,8,43,0,1,2,0,48, + 117,30,5,32,33,0,1,2,3,4, + 5,6,7,8,43,0,0,0,3,48, 49,50,51,52,53,54,55,30,57,58, - 0,1,2,62,4,5,0,7,0,68, - 69,70,71,72,0,74,75,0,1,2, + 0,0,61,0,1,2,0,4,0,68, + 69,70,71,72,28,74,75,0,1,2, 3,4,5,6,7,8,9,10,11,12, 30,56,15,16,17,18,19,20,21,22, - 23,24,25,0,103,104,105,30,0,32, + 23,24,25,0,103,104,105,30,62,32, 33,0,1,2,3,4,5,6,7,8, - 43,13,14,0,56,48,49,50,51,52, - 53,54,55,0,57,58,0,1,2,62, - 4,5,9,7,11,68,69,70,71,72, - 76,74,75,0,1,2,3,4,5,6, - 7,8,9,10,11,12,30,0,15,16, - 17,18,19,20,21,22,23,24,25,56, - 103,104,105,30,0,32,33,0,1,2, - 3,0,5,0,7,28,43,0,1,2, - 9,48,49,50,51,52,53,54,55,0, - 57,58,0,1,2,62,4,5,0,7, - 0,68,69,70,71,72,0,74,75,3, + 43,60,0,60,0,48,49,50,51,52, + 53,54,55,9,57,58,0,90,61,93, + 94,0,6,96,3,68,69,70,71,72, + 28,74,75,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,76, + 103,104,105,30,62,32,33,0,1,2, + 0,4,5,0,7,28,43,73,0,1, + 2,48,49,50,51,52,53,54,55,0, + 57,58,3,0,61,93,94,30,0,95, + 30,68,69,70,71,72,0,74,75,3, 12,0,6,0,8,9,3,11,0,13, 14,0,1,2,3,4,5,6,7,8, - 32,33,26,27,28,64,103,104,105,28, - 67,43,65,66,73,56,48,49,50,51, - 52,53,54,55,90,0,1,2,3,4, - 96,6,56,8,0,1,2,61,0,5, - 64,7,0,67,56,102,4,71,72,73, + 32,33,26,27,28,0,103,104,105,66, + 5,43,64,65,33,56,48,49,50,51, + 52,53,54,55,43,0,1,2,3,4, + 67,6,56,8,0,1,2,3,62,5, + 0,7,66,67,0,102,0,71,72,73, 107,108,109,110,111,112,113,114,115,116, 117,0,71,0,88,89,90,91,92,93, 94,95,96,97,98,99,100,101,102,0, 0,56,106,107,108,109,110,111,112,113, - 114,115,116,117,118,0,120,121,3,61, - 0,6,64,8,9,0,11,0,13,14, - 0,1,2,3,4,5,6,7,8,56, - 59,26,27,28,0,1,2,3,4,5, - 6,7,8,0,1,2,3,30,5,0, - 7,0,9,4,11,4,0,1,2,0, - 4,56,6,4,8,0,61,0,0,64, - 3,3,67,0,1,2,71,72,73,0, - 1,2,0,1,2,95,4,28,6,0, - 8,9,0,88,89,90,91,92,93,94, - 95,96,97,98,99,100,101,102,74,30, + 114,115,116,117,118,0,120,121,3,0, + 0,6,62,8,9,71,11,67,13,14, + 0,1,2,3,4,5,6,7,8,0, + 0,26,27,28,4,62,0,1,2,3, + 4,5,6,7,8,9,0,11,12,0, + 0,1,2,3,4,5,6,7,8,13, + 14,56,13,14,28,0,0,62,32,33, + 4,66,67,0,1,2,71,72,73,43, + 7,0,1,2,48,49,50,51,52,53, + 54,55,56,88,89,90,91,92,93,94, + 95,96,97,98,99,100,101,102,0,73, 100,106,107,108,109,110,111,112,113,114, - 115,116,117,118,56,120,121,0,1,2, - 3,4,5,6,7,8,0,10,65,66, + 115,116,117,118,74,120,121,0,1,2, + 3,4,5,6,7,8,28,10,0,0, 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,73,29,0,31,67, + 23,24,25,26,27,0,29,0,31,4, 0,34,35,36,37,38,39,40,41,42, - 10,44,45,46,47,0,0,95,0,1, - 2,3,0,5,119,7,59,9,61,11, - 30,102,65,66,0,1,2,3,4,5, - 6,7,8,9,10,30,117,13,14,15, + 10,44,45,46,47,0,0,1,2,3, + 0,5,0,7,4,9,59,11,0,62, + 30,64,65,0,1,2,3,4,5,6, + 7,8,9,10,0,67,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,61,29,0,31,0,3,34,35,36, + 37,38,39,40,41,42,0,44,45,46, + 47,0,1,2,3,4,5,6,7,8, + 62,0,59,60,0,1,2,3,4,5, + 6,7,8,9,10,72,62,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,62,29,0,31,0,0,34,35, - 36,37,38,39,40,41,42,101,44,45, - 46,47,0,1,2,3,4,5,6,7, - 8,0,0,59,60,0,1,2,3,4, - 5,6,7,8,9,10,72,0,13,14, + 26,27,0,29,0,31,4,62,34,35, + 36,37,38,39,40,41,42,56,44,45, + 46,47,66,0,1,2,3,66,5,0, + 7,0,3,59,60,0,1,2,3,4, + 5,6,7,8,0,10,72,3,13,14, 15,16,17,18,19,20,21,22,23,24, - 25,26,27,0,29,61,31,4,64,34, - 35,36,37,38,39,40,41,42,56,44, - 45,46,47,0,1,2,3,0,5,67, - 7,28,9,61,59,60,0,1,2,3, - 4,5,6,7,8,0,10,72,3,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,0,29,0,31,97,98, - 34,35,36,37,38,39,40,41,42,56, - 44,45,46,47,0,1,2,3,0,5, - 0,7,0,3,28,59,73,9,0,9, - 0,65,66,0,1,2,3,4,5,6, - 7,8,67,10,0,0,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,0,29,0,31,4,3,34,35,36, - 37,38,39,40,41,42,56,44,45,46, - 47,61,64,0,64,71,64,0,1,2, - 72,61,59,73,7,101,13,14,65,66, - 0,1,2,3,4,5,6,7,8,64, + 25,26,27,0,29,61,31,0,0,34, + 35,36,37,38,39,40,41,42,10,44, + 45,46,47,0,1,2,0,4,0,6, + 4,8,9,62,59,66,0,30,30,64, + 65,0,1,2,3,4,5,6,7,8, + 0,10,0,3,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,61, + 29,0,31,0,3,34,35,36,37,38, + 39,40,41,42,0,44,45,46,47,0, + 0,1,2,3,0,5,73,7,62,9, + 59,11,99,9,0,64,65,0,1,2, + 3,4,5,6,7,8,0,10,95,3, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,62,29,0,31,0, + 67,34,35,36,37,38,39,40,41,42, + 122,44,45,46,47,0,1,2,3,4, + 5,6,7,8,9,10,59,60,13,14, + 15,16,17,18,19,20,21,22,23,24, + 25,26,27,0,29,101,31,4,0,34, + 35,36,37,38,39,40,41,42,10,44, + 45,46,47,0,0,0,3,0,5,6, + 0,8,118,6,4,32,13,14,0,1, + 2,3,0,5,0,7,0,3,0,26, + 27,28,95,0,31,9,3,11,28,0, + 12,0,9,15,16,17,18,19,20,21, + 22,23,24,25,0,1,2,0,4,56, + 32,33,0,1,2,62,62,64,65,66, + 67,43,67,118,56,0,48,49,50,51, + 52,53,54,55,30,28,103,104,105,56, + 0,88,89,90,91,92,93,94,91,92, + 97,98,99,100,101,102,73,0,0,106, + 107,108,109,110,111,112,113,114,115,116, + 0,1,2,3,4,5,6,7,8,0, 10,0,0,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,100,29, - 0,31,88,89,34,35,36,37,38,39, - 40,41,42,0,44,45,46,47,0,1, - 2,3,4,5,6,7,8,9,10,59, - 60,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,29,0,31, - 4,3,34,35,36,37,38,39,40,41, - 42,0,44,45,46,47,0,6,0,3, - 0,5,6,60,8,0,0,0,32,13, - 14,0,1,2,3,9,5,0,7,0, - 0,0,26,27,28,95,28,31,0,1, - 2,0,4,12,3,28,15,16,17,18, - 19,20,21,22,23,24,25,0,1,2, - 30,0,56,32,33,0,56,61,30,61, - 64,65,66,67,43,10,118,56,61,48, - 49,50,51,52,53,54,55,30,61,103, - 104,105,91,92,88,89,90,91,92,93, - 94,93,94,97,98,99,100,101,102,0, - 93,94,106,107,108,109,110,111,112,113, - 114,115,116,0,1,2,3,4,5,6, - 7,8,0,10,118,0,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,0,29,0,31,4,0,34,35,36, - 37,38,39,40,41,42,0,44,45,46, - 47,0,6,0,3,0,5,6,3,8, - 0,28,59,32,13,14,0,1,2,9, - 4,0,6,61,8,0,64,26,27,28, - 0,28,31,12,0,1,2,0,4,0, - 6,0,8,0,1,2,0,4,0,6, - 64,8,4,32,33,90,0,56,0,1, - 2,96,61,5,43,64,65,66,67,48, - 49,50,51,52,53,54,55,0,1,2, - 3,0,5,73,7,0,61,91,92,88, - 89,90,91,92,93,94,0,0,97,98, - 99,100,101,102,0,95,9,106,107,108, - 109,110,111,112,113,114,115,116,0,1, - 2,3,4,5,6,7,8,71,10,88, - 89,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,61,29,67,31, - 0,0,34,35,36,37,38,39,40,41, - 42,10,44,45,46,47,0,0,64,3, - 73,0,0,0,56,0,1,2,3,4, - 5,6,7,8,0,10,13,14,13,14, + 20,21,22,23,24,25,26,27,0,29, + 60,31,4,0,34,35,36,37,38,39, + 40,41,42,10,44,45,46,47,0,62, + 0,3,0,5,6,0,8,0,6,59, + 32,13,14,13,14,0,1,2,0,4, + 5,60,7,0,26,27,28,0,90,31, + 12,0,1,2,96,4,9,6,11,8, + 57,0,0,1,2,30,4,5,0,7, + 32,33,90,0,56,0,97,98,96,0, + 62,43,64,65,66,67,48,49,50,51, + 52,53,54,55,0,1,2,0,4,0, + 6,0,8,0,1,2,88,89,90,91, + 92,93,94,91,92,97,98,99,100,101, + 102,0,1,2,106,107,108,109,110,111, + 112,113,114,115,116,0,1,2,3,4, + 5,6,7,8,71,10,71,0,13,14, 15,16,17,18,19,20,21,22,23,24, - 25,26,27,0,29,0,31,0,57,34, + 25,26,27,66,29,66,31,64,65,34, 35,36,37,38,39,40,41,42,0,44, - 45,46,47,0,1,2,3,4,5,6, - 7,8,61,10,59,28,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,67,29,0,31,88,89,34,35,36, - 37,38,39,40,41,42,61,44,45,46, - 47,0,1,2,3,4,5,6,7,8, - 0,10,64,0,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,0, - 29,0,31,4,3,34,35,36,37,38, - 39,40,41,42,61,44,45,46,47,0, - 1,2,3,4,5,6,7,8,0,10, - 0,3,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,64,29,0, - 31,71,0,34,35,36,37,38,39,40, - 41,42,0,44,45,46,47,0,1,2, - 0,4,0,3,0,1,2,10,0,12, - 0,9,15,16,17,18,19,20,21,22, - 23,24,25,0,1,2,26,27,0,32, - 33,0,1,2,0,4,28,3,56,60, - 43,0,0,9,3,48,49,50,51,52, - 53,54,55,30,0,0,56,29,3,62, - 0,1,2,71,4,68,69,70,0,61, - 10,29,12,0,72,15,16,17,18,19, - 20,21,22,23,24,25,0,1,2,0, - 56,60,32,33,0,1,2,0,0,1, - 2,93,94,43,0,0,106,73,48,49, - 50,51,52,53,54,55,30,0,1,2, - 120,67,62,0,30,0,1,2,68,69, - 70,0,1,2,3,4,5,6,7,8, - 9,0,11,12,0,0,1,2,3,4, - 5,6,7,8,9,30,11,12,60,28, - 0,0,0,32,33,0,0,1,2,9, - 9,0,28,0,43,71,71,32,33,48, - 49,50,51,52,53,54,55,56,43,0, - 1,2,95,48,49,50,51,52,53,54, - 55,56,0,62,73,0,1,2,3,4, - 5,6,7,8,9,0,11,12,73,0, - 60,0,1,2,3,4,5,6,7,8, - 9,0,11,12,73,30,0,1,2,3, - 4,5,6,7,8,9,0,11,12,28, - 77,30,90,88,89,9,0,11,96,3, - 0,90,57,58,0,0,30,96,63,67, - 10,0,0,0,1,2,0,72,57,58, - 75,9,67,0,63,0,1,2,0,0, - 30,60,28,57,58,0,75,0,0,63, - 0,0,0,0,3,0,3,9,72,9, - 64,75,0,1,2,3,4,5,6,7, - 8,9,62,11,12,0,1,2,3,4, - 5,6,7,8,9,64,11,12,0,0, - 0,0,30,60,72,0,0,9,3,0, - 4,0,3,0,3,30,0,1,2,3, - 4,5,6,7,8,9,71,11,12,57, - 58,73,0,73,28,63,71,0,0,0, - 3,3,57,58,72,0,30,75,63,0, - 0,0,0,0,0,0,0,72,0,0, - 75,29,0,0,0,0,0,67,67,0, - 71,73,0,57,58,0,0,28,0,63, - 67,0,1,2,3,4,5,6,7,8, - 9,75,11,12,0,1,2,3,4,5, - 6,7,8,9,0,11,12,0,0,0, - 0,30,0,0,0,0,0,0,0,0, - 0,0,12,0,30,0,0,0,0,0, - 0,0,0,0,0,0,0,0,57,58, - 0,0,32,33,63,0,12,0,0,0, - 0,57,58,43,0,0,75,63,48,49, - 50,51,52,53,54,55,32,33,0,75, - 0,0,0,0,0,0,0,43,0,0, - 0,0,48,49,50,51,52,53,54,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,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0 + 45,46,47,0,1,2,3,9,5,11, + 7,56,0,1,2,3,4,5,6,7, + 8,0,10,0,0,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 119,29,0,31,0,3,34,35,36,37, + 38,39,40,41,42,0,44,45,46,47, + 0,1,2,3,4,5,6,7,8,0, + 10,59,28,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,0,29, + 67,31,71,0,34,35,36,37,38,39, + 40,41,42,0,44,45,46,47,0,1, + 2,3,4,5,6,7,8,0,10,95, + 3,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,67,29,0,31, + 0,3,34,35,36,37,38,39,40,41, + 42,0,44,45,46,47,0,1,2,3, + 4,5,6,7,8,77,10,0,28,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,0,29,0,31,95,3, + 34,35,36,37,38,39,40,41,42,0, + 44,45,46,47,0,1,2,0,4,0, + 1,2,0,4,10,6,12,8,6,15, + 16,17,18,19,20,21,22,23,24,25, + 0,1,2,0,0,28,32,33,71,0, + 1,2,3,9,5,0,7,43,9,0, + 1,2,48,49,50,51,52,53,54,55, + 30,28,0,1,2,61,0,1,2,62, + 4,0,68,69,70,0,10,0,12,30, + 0,15,16,17,18,19,20,21,22,23, + 24,25,30,0,0,56,0,0,32,33, + 93,94,9,91,92,0,29,73,3,43, + 0,66,73,3,48,49,50,51,52,53, + 54,55,0,0,1,2,4,61,5,0, + 7,26,27,0,68,69,70,0,1,2, + 3,4,5,6,7,8,9,0,11,12, + 28,0,1,2,3,4,5,6,7,8, + 9,56,11,12,67,71,73,71,0,32, + 33,0,1,2,0,4,5,0,7,0, + 43,30,3,9,0,48,49,50,51,52, + 53,54,55,56,0,1,2,3,4,5, + 6,7,8,9,71,11,12,60,57,58, + 73,106,0,29,63,0,0,0,1,2, + 0,0,28,72,30,120,75,59,0,1, + 2,3,4,5,6,7,8,9,0,11, + 12,67,0,66,0,0,72,30,3,28, + 0,57,58,9,9,11,0,63,30,0, + 1,2,3,4,5,6,7,8,9,75, + 11,12,0,1,2,3,4,5,6,7, + 8,9,67,11,12,57,58,0,0,30, + 3,63,0,0,1,2,0,1,2,0, + 72,56,30,75,0,1,2,62,9,5, + 0,67,67,0,0,0,57,58,73,0, + 1,2,63,30,9,0,30,0,3,57, + 58,72,90,0,75,63,9,0,96,0, + 1,2,0,0,72,3,3,75,0,1, + 2,3,4,5,6,7,8,9,66,11, + 12,0,1,2,3,4,5,6,7,8, + 9,72,11,12,0,119,66,0,30,60, + 0,0,67,9,0,1,2,60,73,12, + 0,30,0,1,2,3,4,5,6,7, + 8,9,0,11,12,57,58,0,0,32, + 33,63,0,1,2,0,9,9,57,58, + 43,0,30,75,63,48,49,50,51,52, + 53,54,55,12,0,0,75,0,0,4, + 3,3,0,9,29,3,72,66,0,57, + 58,71,119,32,33,63,66,0,0,0, + 0,0,0,28,43,0,0,75,66,48, + 49,50,51,52,53,54,55,0,0,0, + 73,73,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,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, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,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; @@ -1376,296 +1374,293 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface TermAction { public final static char termAction[] = {0, - 5278,5259,5238,5238,5238,5238,5238,5238,5238,5269, - 1,5266,1,1,1,1,1,1,1,1, + 5274,5255,5234,5234,5234,5234,5234,5234,5234,5265, + 1,5262,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,449,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,4897,786,2649,1, - 2632,5278,1,2624,3246,1,1,43,1,1, - 1,5320,5285,1392,5459,5607,565,3004,3632,2200, - 3631,2923,2950,2993,587,2987,3306,2978,8,5272, - 5272,5272,5272,5272,5272,5272,5272,5272,5272,5272, - 5272,5272,5272,5272,5272,5272,5272,5272,5272,5272, - 5272,5272,5272,5272,5272,5272,335,5272,5278,5272, - 5272,5272,5272,5272,5272,5272,5272,5272,5272,5272, - 5272,5272,5272,5272,5272,5272,5272,5272,5272,5272, - 5272,5272,5272,5272,139,5272,5272,5272,5272,5614, - 5272,5272,401,5272,5272,5278,5272,5272,5272,5615, - 5272,5178,5272,5181,5272,5272,5272,5272,5272,5272, - 5272,5272,5272,5272,5272,5272,5278,5259,5238,5238, - 5238,5238,5238,5238,5238,5263,1,5266,1,1, + 1,1,1,1,1,1,4896,785,2648,1, + 2631,1,319,2587,1,1,127,43,1,1, + 1,5316,5281,1391,5455,5603,564,2992,3631,2199, + 3630,2915,2949,2986,586,2977,3305,2964,8,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,435,5268,1316,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,4899,5268,5268,5268,5268,5268, + 401,5268,5268,5268,2551,2597,5268,5268,5268,5174, + 5268,5177,5268,5274,5268,5268,5268,5268,5268,5268, + 5268,5268,5268,5268,5268,5268,5274,5255,5234,5234, + 5234,5234,5234,5234,5234,5259,1,5262,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5278,1,191,1,1,1, + 1,1,1,1,5274,1,5274,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,434,786,2649,1,2632,5278,1,2624, - 3218,1,1,589,1,1,1,5278,4909,4906, - 5459,5320,565,3004,3632,2200,3631,2923,2950,2993, - 587,2987,3306,2978,5278,5259,5238,5238,5238,5238, - 5238,5238,5238,5263,1,5266,1,1,1,1, + 1,1,434,785,2648,1,2631,1,320,2587, + 1,1,131,5274,1,1,1,5274,4908,4905, + 5455,5316,564,2992,3631,2199,3630,2915,2949,2986, + 586,2977,3305,2964,5274,5255,5234,5234,5234,5234, + 5234,5234,5234,5259,1,5262,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,435,1,5278,1,1,1,1,1, + 1,1,33,1,1316,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 4900,786,2649,1,2632,4888,1,2624,5275,1, - 1,137,1,1,1,5708,5709,5710,5459,2350, - 565,3004,3632,2200,3631,2923,2950,2993,587,2987, - 3306,2978,5278,5259,5238,5238,5238,5238,5238,5238, - 5238,5263,1,5266,1,1,1,1,1,1, + 4902,785,2648,1,2631,1,453,2587,1,1, + 2551,2597,1,1,1,5704,5705,5706,5455,5274, + 564,2992,3631,2199,3630,2915,2949,2986,586,2977, + 3305,2964,5274,5255,5234,5234,5234,5234,5234,5234, + 5234,5259,1,5262,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 33,1,5278,1,1,1,1,1,1,1, + 384,1,4917,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,4903,786, - 2649,1,2632,5278,1,2624,140,1,1,1856, - 1,1,1,5278,4909,4906,5459,5320,565,3004, - 3632,2200,3631,2923,2950,2993,587,2987,3306,2978, - 5278,5259,5238,5238,5238,5238,5238,5238,5238,5263, - 1,5266,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,384,1, - 5278,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,4911,785, + 2648,1,2631,1,452,2587,1,1,130,5274, + 1,1,1,5274,4908,4905,5455,5316,564,2992, + 3631,2199,3630,2915,2949,2986,586,2977,3305,2964, + 5274,5255,5234,5234,5234,5234,5234,5234,5234,5259, + 1,5262,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5274,1, + 4920,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,4912,786,2649,1, - 2632,97,1,2624,5086,1,1,5278,1,1, - 1,5278,5295,5296,5459,589,565,3004,3632,2200, - 3631,2923,2950,2993,587,2987,3306,2978,5278,5259, - 5238,5238,5238,5238,5238,5238,5238,5263,1,5266, + 1,1,1,1,1,1,1249,785,2648,1, + 2631,1,135,2587,1,1,2551,2597,1,1, + 1,5274,5291,5292,5455,5274,564,2992,3631,2199, + 3630,2915,2949,2986,586,2977,3305,2964,5274,5255, + 5234,5234,5234,5234,5234,5234,5234,5259,1,5262, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5278,1,374,1, + 1,1,1,1,1,1,5274,1,5274,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1250,786,2649,1,2632,3022, - 1,2624,5278,1,1,5278,1,1,1,127, - 3617,5288,5459,5287,565,3004,3632,2200,3631,2923, - 2950,2993,587,2987,3306,2978,5278,5259,5238,5238, - 5238,5238,5238,5238,5238,5263,1,5266,1,1, + 1,1,1,1,2916,785,2648,1,2631,1, + 143,2587,1,1,129,137,1,1,1,2406, + 2378,5274,5455,2349,564,2992,3631,2199,3630,2915, + 2949,2986,586,2977,3305,2964,5274,5255,5234,5234, + 5234,5234,5234,5234,5234,5259,1,5262,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5278,1,5278,1,1,1, + 1,1,1,1,5274,1,5274,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,2917,786,2649,1,2632,3022,1,2624, - 1,1,1,5278,1,1,1,2552,2598,5288, - 5459,5287,565,3004,3632,2200,3631,2923,2950,2993, - 587,2987,3306,2978,5278,5259,5238,5238,5238,5238, - 5238,5238,5238,5263,1,5266,1,1,1,1, + 1,1,3990,785,2648,1,2631,1,347,2587, + 1,1,2551,2597,1,1,1,5274,5079,5076, + 5455,2285,564,2992,3631,2199,3630,2915,2949,2986, + 586,2977,3305,2964,5274,5255,5234,5234,5234,5234, + 5234,5234,5234,5259,1,5262,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5278,1,5278,1,1,1,1,1, + 1,1,5274,1,1316,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 3991,786,2649,1,2632,242,1,2624,5110,1, - 1,138,1,1,1,5278,5080,5077,5459,2350, - 565,3004,3632,2200,3631,2923,2950,2993,587,2987, - 3306,2978,5278,2965,1,1,1,1,1,1, - 1,5288,1,5287,1,1,1,1,1,1, + 4217,785,2648,1,2631,1,139,2587,1,1, + 128,138,1,1,1,54,5079,5076,5455,2349, + 564,2992,3631,2199,3630,2915,2949,2986,586,2977, + 3305,2964,5274,2922,1,1,1,1,1,1, + 1,5284,1,5283,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 33,1,294,1,1,1,1,1,1,1, + 33,1,5274,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1250,786, - 2649,1,2632,121,1,2624,5278,1,1,3432, - 1,1,1,54,5080,5077,5459,135,565,3004, - 3632,2200,3631,2923,2950,2993,587,2987,3306,2978, - 43,4909,4906,3040,782,3673,3739,4694,3761,1991, - 1263,419,5540,3717,3695,5547,5545,5554,5553,5549, - 5550,5548,5551,5552,5555,5546,3805,3783,5278,5301, - 5278,3642,5543,5614,1045,1212,5303,1054,1050,1107, - 5304,5302,946,5615,5297,5299,5300,5298,5537,5544, - 5516,5542,5541,5538,5539,5517,5278,4909,4906,1354, - 782,860,5672,4694,3409,3386,5278,5278,1266,5673, - 5674,5278,5150,5150,233,5146,233,233,233,233, - 5154,1,233,1,2407,2379,1,1,1,1, - 1,1,1,1,1,1,1,41,5175,5175, - 5278,5143,5175,1,1,344,4931,4927,2864,5320, - 860,1392,4694,5607,1,54,5128,5125,5278,1, - 1,1,1,1,1,1,1,3664,1111,986, - 5278,4909,4906,1,782,5092,5278,4694,319,1, - 1,1,233,412,1,5686,5773,5278,5150,5150, - 233,5146,233,233,233,233,5154,1,233,1, - 3566,1317,1,1,1,1,1,1,1,1, - 1,1,1,5278,5708,5709,5710,5143,124,1, - 1,5278,4931,4927,932,5320,860,1392,4694,5607, - 1,2839,2810,320,1317,1,1,1,1,1, - 1,1,1,1,1111,986,5278,4909,4906,1, - 782,5092,197,4694,197,1,1,1,233,412, - 3248,5686,5773,5278,5150,5150,233,5146,233,233, - 233,233,5193,1,233,1,3959,5278,1,1, - 1,1,1,1,1,1,1,1,1,1317, - 5708,5709,5710,5143,117,1,1,1,4893,4889, - 932,5278,860,145,4694,4218,1,5278,5295,5296, - 5284,1,1,1,1,1,1,1,1,453, - 1111,986,5278,4909,4906,1,782,860,229,4694, - 5278,1,1,1,233,411,37,5686,5773,4924, - 5540,5278,4924,1,4924,4924,4271,4924,452,4924, - 4924,5278,5221,5216,932,5163,860,5213,4694,5210, - 5543,5614,4924,4924,4924,4725,5708,5709,5710,4256, - 1823,5615,3827,1348,5283,4918,5537,5544,5516,5542, - 5541,5538,5539,5517,3849,344,43,43,3948,5320, - 3871,1392,4924,5607,5278,5295,5296,4924,30,860, - 4924,4694,5278,4924,4921,2249,790,4924,4924,4924, - 1781,1739,1697,1655,1613,1571,1529,1487,1445,1403, - 2737,528,2028,347,4924,4924,4924,4924,4924,4924, - 4924,4924,4924,4924,4924,4924,4924,4924,4924,5278, - 357,1317,4924,4924,4924,4924,4924,4924,4924,4924, - 4924,4924,4924,4924,4924,5278,4924,4924,5089,5095, - 141,5089,5095,5089,5089,5278,5089,41,5089,5089, - 312,5221,5216,932,5163,860,5213,4694,5210,1317, - 2916,5089,5089,5089,5278,4893,4889,932,1,860, - 1,4694,1,1,4893,4889,5184,5318,5187,43, - 5190,5278,5288,5320,5287,3153,439,1,1,392, - 1,5089,4915,384,4915,517,5089,5278,346,5089, - 3949,2633,5089,5278,5080,5077,5089,5089,5089,49, - 4947,4947,1,5166,5166,5634,5163,1250,1392,145, - 5607,362,369,5089,5089,5089,5089,5089,5089,5089, - 5089,5089,5089,5089,5089,5089,5089,5089,5810,4944, - 2319,5089,5089,5089,5089,5089,5089,5089,5089,5089, - 5089,5089,5089,5089,1317,5089,5089,1,4990,4986, - 3040,4994,3673,3739,4694,3761,143,4950,3827,1348, - 3717,3695,4977,4983,4956,4959,4971,4968,4974,4965, - 4962,4953,4980,3805,3783,362,5301,5278,3642,1217, - 1,1045,1212,5303,1054,1050,1107,5304,5302,946, - 5250,5297,5299,5300,5298,53,5278,362,1,4893, - 4889,932,5278,860,3022,4694,1354,312,511,312, - 2717,2249,43,43,43,4909,4906,3040,782,3673, - 3739,4694,3761,5286,567,2835,2737,3717,3695,5547, - 5545,5554,5553,5549,5550,5548,5551,5552,5555,5546, - 3805,3783,5253,5301,5278,3642,5278,5278,1045,1212, - 5303,1054,1050,1107,5304,5302,946,2286,5297,5299, - 5300,5298,366,4893,4889,2864,1,860,1,4694, - 1,136,5278,1354,1520,43,4909,4906,3040,782, - 3673,3739,4694,3761,5286,567,5285,5278,3717,3695, - 5547,5545,5554,5553,5549,5550,5548,5551,5552,5555, - 5546,3805,3783,54,5301,4143,3642,5296,3112,1045, - 1212,5303,1054,1050,1107,5304,5302,946,1317,5297, - 5299,5300,5298,1,4893,4889,2864,5278,860,1175, - 4694,5296,5104,5728,1354,1520,147,4909,4906,3040, - 782,3673,3739,4694,3761,313,567,5285,1393,3717, - 3695,5547,5545,5554,5553,5549,5550,5548,5551,5552, - 5555,5546,3805,3783,144,5301,45,3642,2407,2379, - 1045,1212,5303,1054,1050,1107,5304,5302,946,1317, - 5297,5299,5300,5298,1,4893,4889,932,5278,860, - 1,4694,163,3948,5083,1354,5107,5286,142,340, - 5278,43,43,1,4990,4986,3040,4994,3673,3739, - 4694,3761,1074,4950,131,510,3717,3695,4977,4983, - 4956,4959,4971,4968,4974,4965,4962,4953,4980,3805, - 3783,1,5301,5278,3642,385,3951,1045,1212,5303, - 1054,1050,1107,5304,5302,946,1317,5297,5299,5300, - 5298,340,1008,126,340,2028,1865,42,4938,4935, - 5285,5714,1354,340,1039,2286,2839,2810,43,43, - 43,4909,4906,3040,782,3673,3739,4694,3761,871, - 567,5278,5278,3717,3695,5547,5545,5554,5553,5549, - 5550,5548,5551,5552,5555,5546,3805,3783,2319,5301, - 1,3642,2552,2598,1045,1212,5303,1054,1050,1107, - 5304,5302,946,5278,5297,5299,5300,5298,43,4909, - 4906,3040,782,3673,3739,4694,3761,5282,567,1354, - 1520,3717,3695,5547,5545,5554,5553,5549,5550,5548, - 5551,5552,5555,5546,3805,3783,43,5301,5278,3642, - 5320,4105,1045,1212,5303,1054,1050,1107,5304,5302, - 946,123,5297,5299,5300,5298,1,3432,132,635, - 106,5742,5736,2280,5740,5278,5278,134,671,5734, - 5735,1,4893,4889,2864,5282,860,5278,4694,5278, - 5278,228,5765,5766,5745,5636,2516,5743,393,4909, - 4906,5278,5320,5540,4125,2516,5547,5545,5554,5553, - 5549,5550,5548,5551,5552,5555,5546,5278,8571,8571, - 2233,5278,928,5543,5614,304,4308,5746,43,4941, - 5767,868,902,5744,5615,5581,5281,1317,5131,5537, - 5544,5516,5542,5541,5538,5539,5517,5318,5785,5708, - 5709,5710,3409,3386,5756,5755,5768,5737,5738,5761, - 5762,2462,2435,5759,5760,5739,5741,5763,5764,5278, - 2462,2435,5769,5749,5750,5751,5747,5748,5757,5758, - 5753,5752,5754,43,4909,4906,3040,782,3673,3739, - 4694,3761,5278,567,5281,120,3717,3695,5547,5545, - 5554,5553,5549,5550,5548,5551,5552,5555,5546,3805, - 3783,43,5301,1,3642,5320,292,1045,1212,5303, - 1054,1050,1107,5304,5302,946,122,5297,5299,5300, - 5298,5278,3432,5278,635,5278,5742,5736,4247,5740, - 1,1250,1354,3288,5734,5735,440,43,43,362, - 5320,230,5101,3134,5098,5278,3112,5765,5766,5745, - 5278,2231,5743,5540,98,1,1,5278,1,5278, - 5172,130,5172,101,43,43,5278,5320,5278,5229, - 1441,5226,1995,5543,5614,3849,5278,928,5278,5295, - 5296,3871,5746,3617,5615,5767,868,902,5744,5537, - 5544,5516,5542,5541,5538,5539,5517,1,4893,4889, - 5184,367,5187,362,5190,5278,1911,3409,3386,5756, - 5755,5768,5737,5738,5761,5762,5278,5278,5759,5760, - 5739,5741,5763,5764,361,362,5284,5769,5749,5750, - 5751,5747,5748,5757,5758,5753,5752,5754,43,4909, - 4906,3040,782,3673,3739,4694,3761,1907,567,2552, - 2598,3717,3695,5547,5545,5554,5553,5549,5550,5548, - 5551,5552,5555,5546,3805,3783,1930,5301,1275,3642, - 5278,304,1045,1212,5303,1054,1050,1107,5304,5302, - 946,5581,5297,5299,5300,5298,5278,129,776,4274, - 5283,5278,5278,125,1987,43,4909,4906,3040,782, - 3673,3739,4694,3761,415,567,2839,2810,3717,3695, - 5547,5545,5554,5553,5549,5550,5548,5551,5552,5555, - 5546,3805,3783,5278,5301,5278,3642,5278,3341,1045, - 1212,5303,1054,1050,1107,5304,5302,946,421,5297, - 5299,5300,5298,43,4909,4906,3276,782,3673,3739, - 4694,3761,1938,567,1354,3243,3717,3695,5547,5545, - 5554,5553,5549,5550,5548,5551,5552,5555,5546,3805, - 3783,2163,5301,5278,3642,2552,2598,1045,1212,5303, - 1054,1050,1107,5304,5302,946,1945,5297,5299,5300, - 5298,43,4909,4906,3040,782,3673,3739,4694,3761, - 423,567,4486,444,3717,3695,5547,5545,5554,5553, - 5549,5550,5548,5551,5552,5555,5546,3805,3783,5278, - 5301,5278,3642,2110,3301,1045,1212,5303,1054,1050, - 1107,5304,5302,946,3954,5297,5299,5300,5298,43, - 4909,4906,3040,782,3673,3739,4694,3761,109,567, - 5278,4371,3717,3695,5547,5545,5554,5553,5549,5550, - 5548,5551,5552,5555,5546,3805,3783,3333,5301,5278, - 3642,3005,105,1045,1212,5303,1054,1050,1107,5304, - 5302,946,5278,5297,5299,5300,5298,5278,4909,4906, - 81,5320,5278,3467,293,5295,5296,638,133,5540, - 5278,5286,5547,5545,5554,5553,5549,5550,5548,5551, - 5552,5555,5546,51,5140,5140,5346,5347,5278,5543, - 5614,5278,4909,4906,1,5320,2516,3948,2077,3136, - 5615,283,5278,5104,5244,5537,5544,5516,5542,5541, - 5538,5539,5517,5137,39,5278,904,3490,2650,5672, - 246,5070,5066,5675,5074,1266,5673,5674,5278,5134, - 638,3529,5021,5278,5285,5057,5063,5036,5039,5051, - 5048,5054,5045,5042,5033,5060,5278,5160,5157,5278, - 1317,1814,5012,5006,41,5169,5169,1,5278,5295, - 5296,2462,2435,5003,443,5278,795,5107,5030,5009, - 5000,5015,5018,5027,5024,4997,5318,40,5207,5204, - 2787,3347,5672,5278,3611,5278,5200,5196,1266,5673, - 5674,33,384,384,5119,384,384,5119,384,5119, - 5122,5278,5119,384,79,36,385,385,5113,385, - 385,5113,385,5113,5116,5318,5113,385,2730,4903, - 5278,1,119,384,384,128,5278,5128,5125,1604, - 167,118,5232,5278,384,644,2114,385,385,384, - 384,384,384,384,384,384,384,5122,385,393, - 5295,5296,4057,385,385,385,385,385,385,385, - 385,5116,503,2961,5122,1,5238,5238,233,5238, - 233,233,233,233,5241,501,233,8554,5116,5278, - 1688,1,5238,5238,233,5238,233,233,233,233, - 233,5278,233,8554,167,5235,1,5238,5238,233, - 5238,233,233,233,233,5247,5278,233,8554,2231, - 3151,5235,3849,2552,2598,5288,5278,5287,3871,4403, - 1,3849,4082,2649,5278,5278,5235,3871,2624,4592, - 5250,311,1,5278,8528,7385,5278,225,4082,2649, - 5773,5256,4712,1,2624,5278,8528,7385,5278,5278, - 2717,2632,3597,4082,2649,5278,5773,5278,1,2624, - 1,5278,5278,5278,4589,5278,4389,5284,224,524, - 4350,5773,1,5238,5238,233,5238,233,233,233, - 233,5241,5253,233,8554,1,5238,5238,233,5238, - 233,233,233,233,5241,4378,233,8554,1,5278, - 5278,5278,5235,3585,5285,5278,54,169,4707,5278, - 5295,5278,4047,505,4710,5235,1,5238,5238,233, - 5238,233,233,233,233,233,5462,233,8554,4082, - 2649,5283,1,524,5295,2624,3009,5278,5278,5278, - 4699,4455,4082,2649,225,5278,5235,5773,2624,2, - 5278,5278,5278,5278,5278,5278,5278,225,5278,5278, - 5773,2588,5278,5278,5278,5278,5278,3347,1949,5278, - 5461,169,5278,4082,2649,5278,5278,41,5278,2624, - 3358,1,5238,5238,233,5238,233,233,233,233, - 233,5773,233,8554,1,5238,5238,233,5238,233, - 233,233,233,233,5278,233,8554,5278,5278,5278, - 231,5235,5278,5278,5278,5278,5278,5278,5278,5278, - 5278,5278,5540,5278,5235,5278,5278,5278,5278,5278, - 5278,5278,5278,5278,232,5278,5278,5278,4082,2649, - 5278,5278,5543,5614,2624,5278,5540,5278,5278,5278, - 5278,4082,2649,5615,5278,5278,5773,2624,5537,5544, - 5516,5542,5541,5538,5539,5517,5543,5614,5278,5773, - 5278,5278,5278,5278,5278,5278,5278,5615,5278,5278, - 5278,5278,5537,5544,5516,5542,5541,5538,5539,5517 + 1,1,1,1,1,1,1,1,1249,785, + 2648,1,2631,1,106,2587,1,1,2551,2597, + 1,1,1,145,5274,588,5455,3245,564,2992, + 3631,2199,3630,2915,2949,2986,586,2977,3305,2964, + 43,4908,4905,3039,781,3672,3738,4693,3760,5274, + 1262,419,5536,3716,3694,5543,5541,5550,5549,5545, + 5546,5544,5547,5548,5551,5542,3804,3782,105,5297, + 4307,3641,5539,5610,1044,1211,5299,1053,1049,1106, + 5300,5298,945,5611,5293,5295,5296,5294,5533,5540, + 5512,5538,5537,5534,5535,5513,439,1,1,1353, + 1,5668,4914,4887,4914,54,5124,5121,1265,5669, + 5670,5274,5146,5146,233,5142,233,233,233,233, + 5150,1,233,1,2076,2248,1,1,1,1, + 1,1,1,1,1,1,1,41,5171,5171, + 2736,5139,5171,1,1,344,4930,4926,2863,5316, + 859,1391,4693,5603,1,5274,132,117,3217,1, + 1,1,1,1,1,1,1,3663,1110,985, + 41,5274,1,5274,4908,4905,141,5316,5274,1, + 1,1,233,412,2515,5682,5769,5274,5146,5146, + 233,5142,233,233,233,233,5150,1,233,1, + 5314,1316,1,1,1,1,1,1,1,1, + 1,1,1,1,5704,5705,5706,5139,4940,1, + 1,5274,4930,4926,931,5316,859,1391,4693,5603, + 1,2279,134,1813,1,1,1,1,1,1, + 1,1,1,362,1110,985,5274,3848,1,2461, + 2434,97,1855,3870,5085,1,1,1,233,412, + 2515,5682,5769,5274,5146,5146,233,5142,233,233, + 233,233,5189,1,233,1,2318,5274,1,1, + 1,1,1,1,1,1,1,1,1,3247, + 5704,5705,5706,5139,5127,1,1,5274,4908,4905, + 53,781,5091,145,4693,4255,1,362,5274,5291, + 5292,1,1,1,1,1,1,1,1,346, + 1110,985,2632,163,1,2461,2434,3565,229,362, + 2834,1,1,1,233,411,37,5682,5769,4923, + 5536,335,4923,242,4923,4923,5106,4923,5274,4923, + 4923,5274,5217,5212,931,5159,859,5209,4693,5206, + 5539,5610,4923,4923,4923,5274,5704,5705,5706,1822, + 3616,5611,3826,1347,5610,1316,5533,5540,5512,5538, + 5537,5534,5535,5513,5611,344,43,43,3947,5316, + 1864,1391,4923,5603,1,4892,4888,931,4923,859, + 5274,4693,4923,4923,5274,2248,5274,4923,4923,4923, + 1780,1738,1696,1654,1612,1570,1528,1486,1444,1402, + 2736,5274,2027,5274,4923,4923,4923,4923,4923,4923, + 4923,4923,4923,4923,4923,4923,4923,4923,4923,5274, + 5274,1316,4923,4923,4923,4923,4923,4923,4923,4923, + 4923,4923,4923,4923,4923,5274,4923,4923,5088,5274, + 142,5088,4142,5088,5088,2027,5088,3111,5088,5088, + 312,5217,5212,931,5159,859,5209,4693,5206,5274, + 5274,5088,5088,5088,789,5724,33,384,384,5115, + 384,384,5115,384,5115,5118,124,5115,384,126, + 5274,4892,4888,931,1,859,1,4693,1,2838, + 2809,5088,2838,2809,4902,5274,43,5088,384,384, + 5316,5088,5088,42,4937,4934,5088,5088,5088,384, + 1038,293,5291,5292,384,384,384,384,384,384, + 384,384,5118,5088,5088,5088,5088,5088,5088,5088, + 5088,5088,5088,5088,5088,5088,5088,5088,45,5118, + 2318,5088,5088,5088,5088,5088,5088,5088,5088,5088, + 5088,5088,5088,5088,5805,5088,5088,1,4989,4985, + 3039,4993,3672,3738,4693,3760,5082,4949,510,5274, + 3716,3694,4976,4982,4955,4958,4970,4967,4973,4964, + 4961,4952,4979,3804,3782,5274,5297,5274,3641,3152, + 1,1044,1211,5299,1053,1049,1106,5300,5298,945, + 5246,5293,5295,5296,5294,5274,1,4892,4888,5180, + 1,5183,5274,5186,385,5284,1353,5283,5274,511, + 2705,43,43,43,4908,4905,3039,781,3672,3738, + 4693,3760,5282,566,5274,870,3716,3694,5543,5541, + 5550,5549,5545,5546,5544,5547,5548,5551,5542,3804, + 3782,5249,5297,1,3641,5274,4270,1044,1211,5299, + 1053,1049,1106,5300,5298,945,294,5293,5295,5296, + 5294,366,4892,4888,2863,1,859,1,4693,1, + 5710,5274,1353,1519,43,4908,4905,3039,781,3672, + 3738,4693,3760,5282,566,5281,5781,3716,3694,5543, + 5541,5550,5549,5545,5546,5544,5547,5548,5551,5542, + 3804,3782,5274,5297,5274,3641,1994,1903,1044,1211, + 5299,1053,1049,1106,5300,5298,945,1316,5293,5295, + 5296,5294,1990,1,4892,4888,931,1174,859,313, + 4693,5274,1392,1353,1519,147,4908,4905,3039,781, + 3672,3738,4693,3760,5274,566,5281,3948,3716,3694, + 5543,5541,5550,5549,5545,5546,5544,5547,5548,5551, + 5542,3804,3782,140,5297,2960,3641,5274,1,1044, + 1211,5299,1053,1049,1106,5300,5298,945,5246,5293, + 5295,5296,5294,1,5162,5162,5274,5159,191,1391, + 2109,5603,362,1910,1353,1073,5274,2230,2705,43, + 43,1,4989,4985,3039,4993,3672,3738,4693,3760, + 5274,4949,5274,3950,3716,3694,4976,4982,4955,4958, + 4970,4967,4973,4964,4961,4952,4979,3804,3782,5249, + 5297,5274,3641,5274,4104,1044,1211,5299,1053,1049, + 1106,5300,5298,945,144,5293,5295,5296,5294,5274, + 1,4892,4888,931,5274,859,362,4693,1929,312, + 1353,312,588,5278,5274,43,43,43,4908,4905, + 3039,781,3672,3738,4693,3760,5274,566,362,4124, + 3716,3694,5543,5541,5550,5549,5545,5546,5544,5547, + 5548,5551,5542,3804,3782,3101,5297,357,3641,5274, + 3111,1044,1211,5299,1053,1049,1106,5300,5298,945, + 5271,5293,5295,5296,5294,43,4908,4905,3039,781, + 3672,3738,4693,3760,5278,566,1353,1519,3716,3694, + 5543,5541,5550,5549,5545,5546,5544,5547,5548,5551, + 5542,3804,3782,43,5297,2285,3641,5316,304,1044, + 1211,5299,1053,1049,1106,5300,5298,945,5577,5293, + 5295,5296,5294,1,5274,292,634,121,5738,5732, + 392,5736,5277,3431,384,670,5730,5731,1,4892, + 4888,2863,5274,859,5274,4693,5274,4246,228,5761, + 5762,5741,5630,1,5739,5284,3947,5283,1249,5274, + 5536,5274,5100,5543,5541,5550,5549,5545,5546,5544, + 5547,5548,5551,5542,393,4908,4905,1,5316,927, + 5539,5610,40,5203,5200,5742,1937,867,901,5740, + 5763,5611,1440,5277,1316,5274,5533,5540,5512,5538, + 5537,5534,5535,5513,43,1249,5704,5705,5706,1316, + 5274,5752,5751,5764,5733,5734,5757,5758,3408,3385, + 5755,5756,5735,5737,5759,5760,5103,5274,120,5765, + 5745,5746,5747,5743,5744,5753,5754,5749,5748,5750, + 43,4908,4905,3039,781,3672,3738,4693,3760,136, + 566,5274,119,3716,3694,5543,5541,5550,5549,5545, + 5546,5544,5547,5548,5551,5542,3804,3782,43,5297, + 3135,3641,5316,304,1044,1211,5299,1053,1049,1106, + 5300,5298,945,5577,5293,5295,5296,5294,5274,3953, + 125,634,123,5738,5732,5274,5736,5274,3431,1353, + 3287,5730,5731,2838,2809,5274,4908,4905,230,781, + 5091,2631,4693,5274,5761,5762,5741,1,3848,5739, + 5536,440,43,43,3870,5316,5284,5097,5283,5094, + 3340,5274,5274,4908,4905,3958,781,859,5274,4693, + 5539,5610,3848,5274,927,423,2406,2378,3870,5274, + 5742,5611,867,901,5740,5763,5533,5540,5512,5538, + 5537,5534,5535,5513,98,1,1,369,1,367, + 5168,5274,5168,5274,5079,5076,5752,5751,5764,5733, + 5734,5757,5758,3408,3385,5755,5756,5735,5737,5759, + 5760,5274,5124,5121,5765,5745,5746,5747,5743,5744, + 5753,5754,5749,5748,5750,43,4908,4905,3039,781, + 3672,3738,4693,3760,1906,566,3004,5274,3716,3694, + 5543,5541,5550,5549,5545,5546,5544,5547,5548,5551, + 5542,3804,3782,1216,5297,1274,3641,3826,1347,1044, + 1211,5299,1053,1049,1106,5300,5298,945,1,5293, + 5295,5296,5294,1,4892,4888,5180,197,5183,197, + 5186,1986,43,4908,4905,3039,781,3672,3738,4693, + 3760,5274,566,361,1,3716,3694,5543,5541,5550, + 5549,5545,5546,5544,5547,5548,5551,5542,3804,3782, + 3010,5297,5274,3641,5274,4273,1044,1211,5299,1053, + 1049,1106,5300,5298,945,5274,5293,5295,5296,5294, + 43,4908,4905,3275,781,3672,3738,4693,3760,421, + 566,1353,2195,3716,3694,5543,5541,5550,5549,5545, + 5546,5544,5547,5548,5551,5542,3804,3782,5274,5297, + 775,3641,5671,1,1044,1211,5299,1053,1049,1106, + 5300,5298,945,5274,5293,5295,5296,5294,43,4908, + 4905,3039,781,3672,3738,4693,3760,5274,566,5632, + 3300,3716,3694,5543,5541,5550,5549,5545,5546,5544, + 5547,5548,5551,5542,3804,3782,4485,5297,109,3641, + 5274,4370,1044,1211,5299,1053,1049,1106,5300,5298, + 945,5274,5293,5295,5296,5294,43,4908,4905,3039, + 781,3672,3738,4693,3760,3133,566,443,3242,3716, + 3694,5543,5541,5550,5549,5545,5546,5544,5547,5548, + 5551,5542,3804,3782,5274,5297,283,3641,4056,5240, + 1044,1211,5299,1053,1049,1106,5300,5298,945,5274, + 5293,5295,5296,5294,5274,4908,4905,133,5316,101, + 43,43,122,5316,637,5225,5536,5222,3431,5543, + 5541,5550,5549,5545,5546,5544,5547,5548,5551,5542, + 49,4946,4946,79,5274,2515,5539,5610,643,1, + 4892,4888,2863,5280,859,415,4693,5611,5100,5274, + 8624,8624,5533,5540,5512,5538,5537,5534,5535,5513, + 4943,5228,51,5136,5136,5668,246,5069,5065,5130, + 5073,5274,1265,5669,5670,5274,637,5274,5020,5314, + 5274,5056,5062,5035,5038,5050,5047,5053,5044,5041, + 5032,5059,5133,1,5274,1316,5274,444,5011,5005, + 2461,2434,167,3408,3385,81,3489,5279,3466,5002, + 5274,2162,5103,2623,5029,5008,4999,5014,5017,5026, + 5023,4996,54,5274,5291,5292,5292,5668,859,5274, + 4693,5342,5343,5274,1265,5669,5670,36,385,385, + 5109,385,385,5109,385,5109,5112,1,5109,385, + 5292,1,5234,5234,233,5234,233,233,233,233, + 5237,903,233,8582,3332,2113,167,5458,527,385, + 385,5274,4908,4905,5274,781,859,39,4693,5274, + 385,5231,4402,5282,5274,385,385,385,385,385, + 385,385,385,5112,1,5234,5234,233,5234,233, + 233,233,233,233,3008,233,8582,3584,4081,2648, + 5112,794,5274,3528,2587,311,5274,5274,5156,5153, + 5274,5274,2195,225,5231,2786,5769,2900,1,5234, + 5234,233,5234,233,233,233,233,5243,5274,233, + 8582,1007,118,3346,5274,1,5281,5314,3947,3596, + 5274,4081,2648,5284,340,5283,374,2587,5231,1, + 5234,5234,233,5234,233,233,233,233,5237,5769, + 233,8582,1,5234,5234,233,5234,233,233,233, + 233,5237,4377,233,8582,4081,2648,5274,5274,5231, + 4588,2587,503,41,5165,5165,5274,5196,5192,5274, + 224,1316,5231,5769,5274,5291,5292,340,5282,3616, + 501,4349,340,5274,5274,5274,4081,2648,340,5274, + 5291,5292,2587,3610,5280,5274,5314,5274,4388,4081, + 2648,225,3848,516,5769,2587,1603,5274,3870,393, + 5291,5292,5274,5274,225,4706,4046,5769,1,5234, + 5234,233,5234,233,233,233,233,233,4591,233, + 8582,1,5234,5234,233,5234,233,233,233,233, + 233,5281,233,8582,1,3010,4711,231,5231,2729, + 5274,5274,4724,5252,5274,8602,8289,1687,5279,5536, + 5274,5231,1,5234,5234,233,5234,233,233,233, + 233,233,505,233,8582,4081,2648,1,1,5539, + 5610,2587,5274,8602,8289,1,5280,523,4081,2648, + 5611,232,5231,5769,2587,5533,5540,5512,5538,5537, + 5534,5535,5513,5536,1,54,5769,5274,5274,5291, + 4709,4698,5274,169,2581,4454,5281,3346,5274,4081, + 2648,5457,3010,5539,5610,2587,1948,2,5274,5274, + 5274,5274,5274,5291,5611,5274,5274,5769,3357,5533, + 5540,5512,5538,5537,5534,5535,5513,5274,5274,5274, + 5279,523,5274,5274,5274,41,5274,5274,5274,5274, + 5274,5274,5274,5274,5274,5274,5274,5274,5274,5274, + 5274,5274,5274,5274,5274,5274,5274,169 }; }; public final static char termAction[] = TermAction.termAction; @@ -1673,59 +1668,59 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Asb { public final static char asb[] = {0, - 993,1,109,102,102,302,544,544,1003,302, - 544,296,212,262,354,121,987,67,711,9, - 9,541,37,162,349,544,544,516,544,9, - 349,296,302,537,349,262,352,939,516,516, - 516,516,65,939,836,246,838,263,263,263, - 263,263,263,263,263,263,546,552,557,554, - 561,559,566,564,568,567,569,165,570,162, - 585,300,635,9,9,212,700,711,457,711, - 843,711,116,711,695,65,302,162,162,9, - 216,537,398,352,246,37,37,37,37,302, - 798,1034,546,349,349,340,246,898,36,987, - 246,546,986,986,798,262,263,263,263,263, + 991,1,109,102,102,302,542,542,1001,302, + 542,296,770,262,354,121,985,774,709,9, + 9,539,37,162,349,542,542,516,542,9, + 349,296,302,535,349,262,352,494,516,516, + 516,516,772,494,834,246,836,263,263,263, + 263,263,263,263,263,263,544,550,555,552, + 559,557,564,562,566,565,567,165,568,162, + 583,300,633,9,9,770,698,709,457,709, + 841,709,116,709,693,772,302,162,162,9, + 638,535,398,352,246,37,37,37,37,302, + 796,1032,544,349,349,340,246,896,36,985, + 246,544,984,984,796,262,263,263,263,263, 263,263,263,263,263,263,263,263,263,263, 263,263,263,263,263,262,262,262,262,262, - 262,262,262,262,262,262,262,263,67,302, - 776,738,775,776,541,405,405,302,847,450, - 846,454,849,496,302,302,302,450,776,537, - 536,262,502,349,349,776,776,776,776,450, - 349,263,212,644,526,525,460,718,718,65, - 838,162,36,262,300,349,299,301,299,349, - 162,554,554,552,552,552,559,559,559,559, - 557,557,564,561,561,567,566,568,693,569, - 635,246,405,405,847,455,847,450,847,496, - 496,302,450,302,537,352,939,939,939,939, - 302,302,340,349,646,648,302,987,263,37, - 550,305,349,302,301,987,262,503,302,405, - 693,117,516,452,391,683,405,503,847,847, - 788,302,496,503,501,502,302,262,262,262, - 262,939,939,349,530,518,529,648,450,300, - 349,550,212,67,302,300,987,597,849,776, - 516,299,944,685,939,506,64,789,302,503, - 263,302,349,349,349,349,798,798,778,262, - 527,527,642,212,69,349,302,550,551,550, - 262,305,396,546,67,300,597,597,852,421, - 300,848,848,296,590,510,263,693,111,648, - 788,302,65,65,302,349,349,778,262,262, - 646,518,778,471,550,798,263,162,396,591, - 503,534,948,207,939,117,888,597,597,421, - 300,848,849,65,685,263,263,648,302,302, - 302,780,778,551,349,162,851,207,534,594, - 65,503,775,516,3,3,591,849,226,507, - 302,939,349,302,302,780,780,852,597,591, - 590,349,65,302,421,852,421,774,774,896, - 227,65,302,798,941,939,780,597,296,591, - 302,302,421,37,37,896,226,693,263,693, - 591,939,939,939,227,939,302,173,591,591, - 302,849,349,941,649,503,302,591,775,218, - 939,218,693,227,246,246,244,796,246,591, - 591,1073,896,943,348,591,681,69,349,296, - 349,244,207,939,349,896,943,37,3,349, - 349,484,227,1073,227,591,207,262,227,224, - 774,849,849,931,262,225,798,591,349,299, - 227,349,591,227 + 262,262,262,262,262,262,262,263,774,302, + 1071,1070,1071,539,405,405,302,845,450,844, + 454,847,496,302,302,302,450,1071,535,534, + 262,502,349,349,1071,1071,1071,1071,450,349, + 263,770,642,526,525,460,716,716,772,836, + 162,36,262,300,349,299,301,299,349,162, + 552,552,550,550,550,557,557,557,557,555, + 555,562,559,559,565,564,566,691,567,633, + 246,405,405,845,455,845,450,845,496,496, + 302,450,302,535,352,494,494,494,494,302, + 302,340,349,644,646,302,985,263,37,548, + 305,349,302,301,985,262,503,302,405,691, + 117,516,452,391,681,405,503,845,845,786, + 302,496,503,501,502,302,262,262,262,262, + 494,494,349,530,518,529,646,450,300,349, + 548,770,774,302,300,985,595,847,1071,516, + 299,942,683,494,506,64,787,302,503,263, + 302,349,349,349,349,796,796,776,262,527, + 527,640,770,69,349,302,548,549,548,262, + 305,216,544,774,300,595,595,850,421,300, + 846,846,296,588,510,263,691,111,646,786, + 302,772,772,302,349,349,776,262,262,644, + 518,776,751,548,796,263,162,216,589,503, + 937,946,207,494,117,886,595,595,421,300, + 846,847,772,683,263,263,646,302,302,302, + 778,776,549,349,162,849,207,937,592,772, + 503,1070,516,3,3,589,847,226,507,302, + 494,349,302,302,778,778,850,595,589,588, + 349,772,302,421,850,421,1069,1069,894,227, + 772,302,796,939,494,778,595,296,589,302, + 302,421,37,37,894,226,691,263,691,589, + 494,494,494,227,494,302,173,589,589,302, + 847,349,939,647,503,302,589,1070,218,494, + 218,691,227,246,246,244,794,246,589,589, + 114,894,941,348,589,679,69,349,296,349, + 244,207,494,349,894,941,37,3,349,349, + 764,227,114,227,589,207,262,227,224,1069, + 847,847,766,262,225,796,589,349,299,227, + 349,589,227 }; }; public final static char asb[] = Asb.asb; @@ -1733,114 +1728,114 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface Asr { public final static byte asr[] = {0, - 121,0,61,67,64,1,2,0,34,65, - 35,36,66,7,37,38,39,40,59,41, + 121,0,62,66,67,1,2,0,34,64, + 35,36,65,7,37,38,39,40,59,41, 42,44,45,46,29,26,27,8,6,13, - 14,5,31,61,47,3,10,68,62,69, + 14,5,31,62,47,3,10,68,61,69, 70,16,25,15,21,19,20,22,23,18, 17,24,48,53,54,12,52,51,49,33, - 43,50,55,32,1,2,4,0,48,15, - 16,62,33,17,68,49,12,18,50,51, + 43,50,55,1,2,4,32,0,48,15, + 16,61,33,17,68,49,12,18,50,51, 19,20,52,53,21,22,54,69,55,10, 70,23,32,24,43,25,1,2,4,95, - 0,76,60,61,71,95,73,56,121,3, - 9,64,11,67,0,4,1,2,60,0, - 65,66,3,10,35,39,37,34,42,16, + 0,76,60,62,71,95,73,56,121,3, + 9,67,11,66,0,4,1,2,60,0, + 64,65,3,10,35,39,37,34,42,16, 25,15,21,19,20,22,23,18,17,24, 44,47,45,46,29,41,36,40,5,7, 4,26,27,8,6,13,14,31,38,1, - 2,118,9,0,61,71,95,64,118,73, - 72,121,15,16,34,65,17,35,36,18, - 19,20,66,37,21,22,38,39,40,59, + 2,118,9,0,62,71,95,67,118,73, + 72,121,15,16,34,64,17,35,36,18, + 19,20,65,37,21,22,38,39,40,59, 41,42,10,23,24,25,44,45,46,29, - 26,27,13,14,31,47,9,11,7,5, - 3,1,2,8,4,6,0,75,103,104, + 26,27,13,14,31,47,9,8,6,4, + 11,1,2,7,3,5,0,75,103,104, 105,30,71,119,122,72,74,76,58,57, 63,78,80,86,84,77,82,83,85,87, - 60,79,81,11,9,48,62,33,68,49, + 60,79,81,11,9,48,61,33,68,49, 12,50,51,52,53,54,69,55,70,32, - 43,59,65,66,10,35,39,37,34,42, + 43,59,64,65,10,35,39,37,34,42, 16,25,15,21,19,20,22,23,18,17, 24,44,47,45,46,29,41,36,40,26, 27,13,14,31,38,8,6,3,4,7, 5,1,2,0,96,90,13,14,91,92, 88,89,28,93,94,97,98,99,100,101, - 102,117,71,95,67,107,108,109,110,111, - 112,113,114,115,116,118,72,11,121,61, - 1,2,8,6,4,3,56,64,73,9, - 0,9,72,65,66,59,26,27,8,6, + 102,117,71,95,66,107,108,109,110,111, + 112,113,114,115,116,118,72,11,121,62, + 1,2,8,6,4,3,56,67,73,9, + 0,9,72,64,65,59,26,27,8,6, 13,14,31,38,3,44,47,45,46,29, 41,36,40,16,25,15,21,19,20,22, 23,18,17,24,35,39,37,34,42,60, - 7,1,2,4,10,5,0,9,71,118, - 73,11,64,0,75,57,7,103,104,105, + 7,1,2,5,4,10,0,9,71,118, + 73,11,67,0,75,57,7,103,104,105, 58,9,3,8,6,5,71,72,11,74, - 48,15,16,62,33,17,68,49,12,18, + 48,15,16,61,33,17,68,49,12,18, 50,51,19,20,52,53,21,22,54,69, 55,10,70,23,32,24,43,25,4,1, - 2,30,0,4,71,28,60,9,0,15, - 16,17,18,19,20,21,22,23,24,25, + 2,30,0,4,71,28,60,9,0,48, + 15,16,33,17,49,12,18,50,51,19, + 20,52,7,53,21,22,54,55,23,32, + 24,43,25,1,2,9,56,8,6,5, + 4,73,11,3,0,1,2,9,72,0, + 66,67,72,9,0,9,60,67,0,71, + 9,56,66,67,11,28,0,8,6,4, + 5,7,1,2,3,56,62,66,67,9, + 73,95,0,59,33,7,43,5,1,2, + 4,76,60,120,106,26,27,56,3,96, + 90,6,91,92,13,14,89,88,28,93, + 94,97,98,8,99,100,101,62,95,73, + 121,66,107,108,109,110,111,112,113,114, + 115,116,71,118,72,102,117,67,11,9, + 0,60,66,0,63,48,15,16,61,33, + 17,68,49,75,12,18,50,51,19,20, + 52,57,53,21,22,54,69,55,10,70, + 23,58,32,24,43,25,9,3,8,4, + 72,11,7,5,1,2,30,6,0,7, + 5,3,56,6,8,95,48,15,16,33, + 17,68,49,12,18,50,51,19,20,52, + 53,21,22,54,69,55,10,70,23,32, + 24,43,25,1,2,4,73,9,61,0, + 11,9,7,5,3,1,2,6,8,4, + 71,0,10,68,61,69,70,16,25,15, + 21,19,20,22,23,18,17,24,76,60, + 71,95,118,72,121,120,96,106,90,26, + 27,13,14,91,92,88,89,28,62,93, + 94,97,98,99,100,101,102,117,66,107, + 108,109,110,111,112,113,114,115,116,67, 48,33,49,12,50,51,52,53,54,55, - 32,43,11,9,73,7,1,2,56,3, - 8,6,5,4,0,1,2,9,72,0, - 67,64,72,9,0,9,60,64,0,71, - 9,56,67,64,11,28,0,8,6,4, - 5,7,1,2,3,56,61,67,64,9, - 73,95,0,29,0,59,33,7,43,5, - 1,2,4,76,60,120,106,26,27,56, - 3,96,90,6,91,92,13,14,89,88, - 28,93,94,97,98,8,99,100,101,61, - 95,73,121,67,107,108,109,110,111,112, - 113,114,115,116,71,118,72,102,117,64, - 11,9,0,60,67,0,63,48,15,16, - 62,33,17,68,49,75,12,18,50,51, - 19,20,52,57,53,21,22,54,69,55, - 10,70,23,58,32,24,43,25,9,3, - 8,4,72,11,7,6,5,1,2,30, - 0,7,5,3,56,6,8,95,48,15, - 16,33,17,68,49,12,18,50,51,19, - 20,52,53,21,22,54,69,55,10,70, - 23,32,24,43,25,1,2,4,73,9, - 62,0,11,9,7,5,3,1,2,6, - 8,4,71,0,10,68,62,69,70,16, - 25,15,21,19,20,22,23,18,17,24, - 76,60,71,95,118,72,121,7,53,54, - 55,32,43,1,2,52,51,50,12,49, - 5,4,33,48,9,73,11,56,3,120, - 96,106,90,26,27,8,6,13,14,91, - 92,88,89,28,93,94,97,98,99,100, - 101,102,117,107,108,109,110,111,112,113, - 114,115,116,67,64,61,0,33,43,59, - 9,61,95,67,64,73,0,32,1,2, - 4,103,104,105,0,77,0,9,73,15, - 16,34,17,35,36,18,19,20,37,21, - 22,38,39,40,59,41,42,10,23,24, - 25,44,45,46,29,3,26,27,8,6, - 13,14,31,4,47,5,7,1,2,66, - 65,0,30,1,2,4,9,71,60,0, - 60,62,33,17,68,49,18,50,51,19, - 20,52,53,21,22,54,69,55,70,23, - 32,24,43,25,16,15,48,9,3,8, - 6,11,58,63,75,12,30,7,1,2, - 5,4,10,57,0,119,0,65,66,26, - 27,13,14,31,38,44,47,45,46,29, - 41,36,40,16,25,15,21,19,20,22, - 23,18,17,24,10,35,39,37,34,42, - 8,6,4,56,7,5,1,2,3,0, - 33,43,59,60,71,76,0,62,33,17, - 68,49,18,50,51,19,20,52,53,21, - 22,54,69,55,10,70,23,32,24,43, - 25,16,15,48,9,3,8,6,11,58, - 57,63,75,12,28,4,7,1,2,5, - 30,0,8,6,4,3,5,7,74,1, - 2,0,48,15,16,62,33,17,68,49, - 12,18,50,51,19,20,52,53,21,22, - 54,69,55,10,70,23,32,24,43,25, - 1,2,4,66,65,13,14,6,91,92, - 99,8,100,5,31,28,61,110,111,107, - 108,109,115,114,116,89,88,112,113,97, - 98,93,94,101,102,26,27,64,90,106, - 3,56,67,0 + 32,43,11,9,73,3,56,7,5,6, + 8,1,2,4,0,33,43,59,9,62, + 95,66,67,73,0,32,1,2,4,103, + 104,105,0,77,0,9,73,15,16,34, + 17,35,36,18,19,20,37,21,22,38, + 39,40,59,41,42,10,23,24,25,44, + 45,46,29,3,26,27,8,6,13,14, + 31,4,47,5,7,1,2,65,64,0, + 30,1,2,4,9,71,60,0,60,61, + 33,17,68,49,18,50,51,19,20,52, + 53,21,22,54,69,55,70,23,32,24, + 43,25,16,15,48,9,3,8,6,11, + 58,63,75,12,30,7,1,2,5,4, + 10,57,0,119,0,64,65,26,27,8, + 6,13,14,5,31,38,3,4,7,44, + 47,45,46,41,36,40,16,25,15,21, + 19,20,22,23,18,17,24,10,35,39, + 37,34,42,56,1,2,29,0,33,43, + 59,60,71,76,0,61,33,17,68,49, + 18,50,51,19,20,52,53,21,22,54, + 69,55,10,70,23,32,24,43,25,16, + 15,48,9,3,8,6,11,58,57,63, + 75,12,28,4,7,1,2,5,30,0, + 8,6,4,3,5,7,74,1,2,0, + 48,15,16,61,33,17,68,49,12,18, + 50,51,19,20,52,53,21,22,54,69, + 55,10,70,23,32,24,43,25,1,2, + 4,65,64,13,14,6,91,92,99,8, + 100,5,31,28,110,111,107,108,109,115, + 114,116,89,88,112,113,97,98,93,94, + 101,102,26,27,90,106,3,56,66,67, + 62,0 }; }; public final static byte asr[] = Asr.asr; @@ -1863,44 +1858,44 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 33,33,33,33,33,33,33,33,33,33, 33,33,33,33,33,33,33,33,33,33, 33,33,33,33,33,33,124,33,12,11, - 12,12,12,12,173,135,135,181,135,168, - 135,12,12,135,168,202,11,12,12,135, - 39,33,70,254,254,12,12,12,12,60, - 254,33,194,222,49,49,12,12,12,10, - 202,86,257,92,218,254,217,202,217,254, - 86,12,12,12,12,12,12,12,12,12, + 12,12,12,173,135,135,181,135,168,135, + 12,12,135,168,202,11,12,12,135,39, + 33,70,254,254,12,12,12,12,60,254, + 33,194,222,49,49,12,12,12,10,202, + 86,257,92,218,254,217,202,217,254,86, 12,12,12,12,12,12,12,12,12,12, - 45,31,237,237,135,135,17,28,17,135, - 210,11,28,181,39,65,12,12,12,12, - 181,11,171,254,111,135,202,29,33,257, - 135,97,254,202,145,29,33,70,202,186, - 12,74,12,12,72,137,237,70,17,17, - 157,181,210,70,12,12,181,124,124,124, - 124,12,12,254,12,128,12,234,27,181, - 254,104,173,12,57,181,29,135,12,12, - 12,195,135,188,12,12,195,25,168,70, - 33,210,254,254,254,254,176,176,135,33, - 12,12,127,194,234,254,181,135,102,12, - 124,173,146,12,12,218,197,135,227,135, - 168,135,88,214,186,12,33,12,63,135, - 248,168,195,195,11,254,254,39,33,33, - 111,212,135,12,104,176,33,86,146,186, - 70,12,227,138,12,210,72,227,197,234, - 218,88,79,21,130,33,33,234,11,168, - 168,135,39,102,254,86,135,188,12,12, - 195,70,12,12,19,19,186,79,108,12, - 168,12,254,11,11,106,135,227,135,186, - 12,254,195,168,234,227,135,12,12,135, - 116,21,11,176,135,12,106,197,130,186, - 168,74,234,257,257,100,121,12,33,12, - 186,12,12,12,122,12,210,184,186,186, - 210,15,254,39,252,70,74,186,12,95, - 12,12,12,122,244,244,232,12,244,186, - 186,12,135,135,254,186,12,257,254,130, - 254,256,135,12,254,100,106,257,19,254, - 254,135,122,12,122,186,130,124,122,95, - 12,15,15,128,33,12,165,186,254,217, - 122,254,186,122 + 12,12,12,12,12,12,12,12,12,45, + 31,237,237,135,135,17,28,17,135,210, + 11,28,181,39,65,12,12,12,12,181, + 11,171,254,111,135,202,29,33,257,135, + 97,254,202,145,29,33,70,202,186,12, + 74,12,12,72,137,237,70,17,17,157, + 181,210,70,12,12,181,124,124,124,124, + 12,12,254,12,128,12,234,27,181,254, + 104,173,12,57,181,29,135,12,12,12, + 195,135,188,12,12,195,25,168,70,33, + 210,254,254,254,254,176,176,135,33,12, + 12,127,194,234,254,181,135,102,12,124, + 173,146,12,12,218,197,135,227,135,168, + 135,88,214,186,12,33,12,63,135,248, + 168,195,195,11,254,254,39,33,33,111, + 212,135,12,104,176,33,86,146,186,70, + 12,227,138,12,210,72,227,197,234,218, + 88,79,21,130,33,33,234,11,168,168, + 135,39,102,254,86,135,188,12,12,195, + 70,12,12,19,19,186,79,108,12,168, + 12,254,11,11,106,135,227,135,186,12, + 254,195,168,234,227,135,12,12,135,116, + 21,11,176,135,12,106,197,130,186,168, + 74,234,257,257,100,121,12,33,12,186, + 12,12,12,122,12,210,184,186,186,210, + 15,254,39,252,70,74,186,12,95,12, + 12,12,122,244,244,232,12,244,186,186, + 12,135,135,254,186,12,257,254,130,254, + 256,135,12,254,100,106,257,19,254,254, + 135,122,12,122,186,130,124,122,95,12, + 15,15,128,33,12,165,186,254,217,122, + 254,186,122 }; }; public final static char nasb[] = Nasb.nasb; @@ -1948,7 +1943,7 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 16,106,56,57,63,69,86,90,92,96, 99,101,108,111,112,113,123,49,66,72, 75,78,85,91,100,2,79,105,97,4, - 22,55,48,46,60,80,35,65,93,103, + 55,22,48,60,80,35,46,65,93,103, 32,120,119,122,67,98,110,51,52,58, 59,61,71,73,74,87,94,19,20,8, 17,18,23,24,34,6,25,26,27,28, @@ -2047,15 +2042,15 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeLa { public final static byte scopeLa[] = { 119,73,73,73,73,73,73,73,72,11, - 72,72,61,1,73,122,60,3,73,61, - 61,61,1,1,11,72,72,60,72,72, - 1,1,1,1,4,61,11,1,1,61, + 72,72,62,1,73,122,60,3,73,62, + 62,62,1,1,11,72,72,60,72,72, + 1,1,1,1,4,62,11,1,1,62, 73,73,73,119,73,1,11,72,1,1, 1,1,11,11,72,118,73,73,73,73, - 73,118,1,73,1,64,73,73,73,71, - 4,73,61,61,61,61,73,3,1,1, + 73,118,1,73,1,67,73,73,73,71, + 4,73,62,62,62,62,73,3,1,1, 73,73,3,118,73,1,1,1,11,71, - 73,118,73,5,73,1,30,67,73,1, + 73,118,73,5,73,1,30,66,73,1, 1,6,1,30,77,76,11,11,4,4, 4,4,3,1,9,60,1,1,3 }; @@ -2113,7 +2108,7 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 0,0,0,0,0,188,3,0,201,0, 238,127,60,29,12,0,185,128,57,58, 0,197,129,0,131,185,128,274,58,0, - 185,128,274,58,0,185,128,67,124,57, + 185,128,274,58,0,185,128,66,124,57, 0,238,127,60,57,0,238,127,60,225, 57,0,272,127,60,124,68,0,272,127, 60,68,0,185,128,68,0,136,0,187, @@ -2131,17 +2126,17 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 0,297,127,60,0,162,0,213,79,0, 32,0,162,117,158,0,32,171,0,177, 3,0,127,151,0,218,3,0,213,56, - 262,0,162,56,0,177,3,293,66,128, - 0,127,0,0,0,0,293,66,128,0, + 262,0,162,56,0,177,3,293,65,128, + 0,127,0,0,0,0,293,65,128,0, 3,147,127,0,0,0,0,177,3,38, 0,149,0,126,30,167,128,0,33,149, 0,95,138,33,149,0,222,185,128,0, 148,33,149,0,177,3,42,0,162,3, - 42,0,162,3,61,177,28,34,0,177, + 42,0,162,3,62,177,28,34,0,177, 28,34,0,22,3,132,127,0,162,3, - 61,177,28,37,0,177,28,37,0,162, - 3,61,177,28,39,0,177,28,39,0, - 162,3,61,177,28,35,0,177,28,35, + 62,177,28,37,0,177,28,37,0,162, + 3,62,177,28,39,0,177,28,39,0, + 162,3,62,177,28,35,0,177,28,35, 0,218,3,126,187,167,128,10,0,126, 187,167,128,10,0,138,3,0,127,0, 218,3,125,171,167,128,10,0,171,167, @@ -2156,38 +2151,38 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface ScopeState { public final static char scopeState[] = {0, - 4614,4710,4707,4389,0,1566,2894,1440,1902,0, - 3304,3245,3186,3127,3068,3009,2950,2728,2669,4047, - 0,3108,3039,2581,0,3333,644,0,3304,3245, - 1248,1121,3186,3127,3068,3009,565,2950,2728,2669, - 1221,1156,0,3469,3112,3053,0,3192,2145,0, - 2646,2439,0,4486,3005,0,1116,2896,0,4395, - 4298,4250,0,4395,4298,4250,3557,4143,4103,3481, - 4049,4009,3954,3472,0,4395,4298,4250,3557,4143, - 4103,3481,4049,4009,3954,3472,3304,3245,3186,3127, - 3068,3009,2950,2728,2669,0,2787,795,0,1348, - 0,3153,790,0,534,2979,2543,0,2882,3937, - 3105,4468,2876,4333,3455,853,2647,3163,3502,2700, - 3170,4444,2621,0,4626,4607,4580,4569,4561,4557, - 4512,4506,4690,4684,4676,4267,4177,4664,3973,3154, - 4658,2696,3270,4638,4139,3591,0,1827,1575,1001, - 793,3937,3163,576,2864,2583,3948,2875,0,557, - 0,1116,3937,4468,2896,4444,576,4197,4530,4378, - 2882,4350,2864,3455,2583,932,4228,0,4626,3477, - 4607,3122,2723,4580,4569,4561,1399,916,4557,4512, - 4063,4506,3664,3617,3611,3581,3486,4690,2908,4684, - 4676,3373,2835,4267,4177,2664,4664,3973,3154,1259, - 1004,4658,2696,2979,3270,4638,4139,2543,860,3591, - 782,576,4197,4530,4378,2882,4350,2237,1116,3937, - 4468,2151,2864,3455,2583,2896,2065,655,4444,932, - 4228,3358,3959,3566,2787,795,1050,3915,3893,2249, - 2286,589,2319,2407,2379,2350,2598,2552,2516,2489, - 2462,2435,3432,3409,3386,2839,2810,3871,3849,3827, - 3805,3783,3761,3739,3717,3695,3673,3642,1949,2200, - 2163,2114,2077,1275,1217,2028,1175,1991,1907,871, - 1865,1823,1781,1739,1697,1655,1613,1571,1529,1487, - 1445,1403,534,816,738,683,1354,1133,1317,1008, - 949,1074,0 + 4613,4709,4706,4388,0,1565,2893,1439,1901,0, + 3303,3244,3185,3126,3067,3008,2949,2727,2668,4046, + 0,3107,3038,2580,0,3332,643,0,3303,3244, + 1247,1120,3185,3126,3067,3008,564,2949,2727,2668, + 1220,1155,0,3468,3111,3052,0,3191,2144,0, + 2645,2438,0,4485,3004,0,1115,2895,0,4394, + 4297,4249,0,4394,4297,4249,3556,4142,4102,3480, + 4048,4008,3953,3471,0,4394,4297,4249,3556,4142, + 4102,3480,4048,4008,3953,3471,3303,3244,3185,3126, + 3067,3008,2949,2727,2668,0,2786,794,0,1347, + 0,3152,789,0,533,2978,2542,0,2881,3936, + 3104,4467,2875,4332,3454,852,2646,3162,3501,2699, + 3169,4443,2620,0,4625,4606,4579,4568,4560,4556, + 4511,4505,4689,4683,4675,4266,4176,4663,3972,3153, + 4657,2695,3269,4637,4138,3590,0,1826,1574,1000, + 792,3936,3162,575,2863,2582,3947,2874,0,556, + 0,1115,3936,4467,2895,4443,575,4196,4529,4377, + 2881,4349,2863,3454,2582,931,4227,0,4625,3476, + 4606,3121,2722,4579,4568,4560,1398,915,4556,4511, + 4062,4505,3663,3616,3610,3580,3485,4689,2907,4683, + 4675,3372,2834,4266,4176,2663,4663,3972,3153,1258, + 1003,4657,2695,2978,3269,4637,4138,2542,859,3590, + 781,575,4196,4529,4377,2881,4349,2236,1115,3936, + 4467,2150,2863,3454,2582,2895,2064,654,4443,931, + 4227,3357,3958,3565,2786,794,1049,3914,3892,2248, + 2285,588,2318,2406,2378,2349,2597,2551,2515,2488, + 2461,2434,3431,3408,3385,2838,2809,3870,3848,3826, + 3804,3782,3760,3738,3716,3694,3672,3641,1948,2199, + 2162,2113,2076,1274,1216,2027,1174,1990,1906,870, + 1864,1822,1780,1738,1696,1654,1612,1570,1528,1486, + 1444,1402,533,815,737,682,1353,1132,1316,1007, + 948,1073,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2196,8 +2191,8 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public interface InSymb { public final static char inSymb[] = {0, 0,292,188,178,184,171,130,133,7,5, - 125,3,127,3,67,56,167,165,125,28, - 28,166,127,56,3,65,66,125,124,28, + 125,3,127,3,66,56,167,165,125,28, + 28,166,127,56,3,64,65,125,124,28, 188,211,128,6,156,127,60,42,34,37, 39,35,10,136,4,3,128,38,31,5, 14,13,6,8,27,26,140,145,148,147, @@ -2205,49 +2200,49 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars 158,187,4,127,127,127,266,267,248,268, 243,269,68,270,271,10,128,56,56,127, 167,127,264,127,3,28,28,28,28,128, - 3,7,125,177,162,166,127,65,66,167, + 3,7,125,177,162,166,127,64,65,167, 3,126,106,120,3,56,90,96,14,13, - 92,91,6,94,93,61,28,88,89,8, + 92,91,6,94,93,62,28,88,89,8, 98,97,100,99,101,116,115,114,113,112, - 111,110,109,108,107,67,117,102,257,187, - 251,134,254,251,211,9,60,167,231,128, - 126,125,124,60,128,128,185,167,251,6, - 182,64,303,177,162,177,177,177,177,167, - 218,154,127,3,216,215,136,126,125,10, - 128,56,293,3,187,177,30,128,30,218, - 162,147,147,145,145,145,149,149,149,149, - 148,148,151,150,150,153,152,155,162,157, - 4,64,127,127,126,125,127,185,127,60, - 127,185,167,30,127,64,61,61,61,61, - 187,171,211,223,127,3,128,167,197,3, - 294,166,156,128,185,167,71,281,128,168, - 221,57,30,195,58,170,282,281,127,127, - 71,187,127,272,124,273,187,3,3,3, - 3,126,125,228,229,146,230,127,167,30, - 177,127,127,222,5,30,167,60,225,28, - 30,274,276,127,178,306,221,32,128,272, - 67,64,162,162,162,162,3,3,154,67, - 223,188,3,127,64,228,187,154,259,262, - 56,180,4,124,126,187,127,60,61,28, - 128,76,127,211,304,125,71,284,188,3, - 64,128,32,307,185,218,218,127,67,67, - 127,211,154,126,127,3,56,162,4,131, - 238,12,30,170,63,57,58,237,127,127, - 185,127,278,71,64,71,67,127,185,128, - 128,219,127,259,218,213,29,127,3,124, - 57,238,291,30,10,62,131,278,60,288, - 128,289,228,185,185,127,219,127,60,265, - 275,29,67,128,64,61,28,231,231,279, - 127,64,185,3,154,59,127,127,64,154, - 128,185,127,67,67,127,297,81,79,1, - 162,87,85,83,82,77,84,86,80,78, - 57,76,218,127,3,238,185,225,291,280, - 119,9,213,71,3,3,3,198,3,124, - 162,124,181,219,311,225,61,3,224,166, - 224,299,146,77,224,127,127,64,62,95, - 310,166,154,188,154,298,127,3,154,280, - 231,154,154,127,67,198,161,265,162,67, - 122,296,154,154 + 111,110,109,108,107,66,117,102,257,187, + 251,254,251,211,9,60,167,231,128,126, + 125,124,60,128,128,185,167,251,6,182, + 67,303,177,162,177,177,177,177,167,218, + 154,127,3,216,215,136,126,125,10,128, + 56,293,3,187,177,30,128,30,218,162, + 147,147,145,145,145,149,149,149,149,148, + 148,151,150,150,153,152,155,162,157,4, + 67,127,127,126,125,127,185,127,60,127, + 185,167,30,127,67,62,62,62,62,187, + 171,211,223,127,3,128,167,197,3,294, + 166,156,128,185,167,71,281,128,168,221, + 57,30,195,58,170,282,281,127,127,71, + 187,127,272,124,273,187,3,3,3,3, + 126,125,228,229,146,230,127,167,30,177, + 127,127,222,5,30,167,60,225,28,30, + 274,276,127,178,306,221,32,128,272,66, + 67,162,162,162,162,3,3,154,66,223, + 188,3,127,67,228,187,154,259,262,56, + 180,4,124,126,187,127,60,62,28,128, + 76,127,211,304,125,71,284,188,3,67, + 128,32,307,185,218,218,127,66,66,127, + 211,154,126,127,3,56,162,4,131,238, + 12,30,170,63,57,58,237,127,127,185, + 127,278,71,67,71,66,127,185,128,128, + 219,127,259,218,213,29,127,3,124,57, + 238,291,30,10,61,131,278,60,288,128, + 289,228,185,185,127,219,127,60,265,275, + 29,66,128,67,62,28,231,231,279,127, + 67,185,3,154,59,127,127,67,154,128, + 185,127,66,66,127,297,81,79,1,162, + 87,85,83,82,77,84,86,80,78,57, + 76,218,127,3,238,185,225,291,280,119, + 9,213,71,3,3,3,198,3,124,162, + 124,181,219,311,225,62,3,224,166,224, + 299,146,77,224,127,127,67,61,95,310, + 166,154,188,154,298,127,3,154,280,231, + 154,154,127,66,198,161,265,162,66,122, + 296,154,154 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2522,20 +2517,20 @@ public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.Pars public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 524, + NUM_STATES = 523, NT_OFFSET = 123, - LA_STATE_OFFSET = 5811, + LA_STATE_OFFSET = 5806, MAX_LA = 2147483647, - NUM_RULES = 533, + NUM_RULES = 532, NUM_NONTERMINALS = 194, NUM_SYMBOLS = 317, SEGMENT_SIZE = 8192, - START_STATE = 4228, + START_STATE = 4227, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4888, - ERROR_ACTION = 5278; + ACCEPT_ACTION = 4887, + ERROR_ACTION = 5274; 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 4229b1da6df..fe6d747c343 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 @@ -22,12 +22,12 @@ public interface CPPNoFunctionDeclaratorParsersym { TK_case = 79, TK_catch = 119, TK_char = 16, - TK_class = 62, + TK_class = 61, TK_const = 33, TK_const_cast = 34, TK_continue = 80, TK_default = 81, - TK_delete = 65, + TK_delete = 64, TK_do = 82, TK_double = 17, TK_dynamic_cast = 35, @@ -47,7 +47,7 @@ public interface CPPNoFunctionDeclaratorParsersym { TK_long = 20, TK_mutable = 52, TK_namespace = 57, - TK_new = 66, + TK_new = 65, TK_operator = 7, TK_private = 103, TK_protected = 104, @@ -106,7 +106,7 @@ public interface CPPNoFunctionDeclaratorParsersym { TK_RightShift = 88, TK_LeftShift = 89, TK_LT = 28, - TK_GT = 61, + TK_GT = 62, TK_LE = 93, TK_GE = 94, TK_EQ = 97, @@ -119,7 +119,7 @@ public interface CPPNoFunctionDeclaratorParsersym { TK_Colon = 71, TK_ColonColon = 4, TK_DotDotDot = 95, - TK_Assign = 67, + TK_Assign = 66, TK_StarAssign = 107, TK_SlashAssign = 108, TK_PercentAssign = 109, @@ -130,7 +130,7 @@ public interface CPPNoFunctionDeclaratorParsersym { TK_AndAssign = 114, TK_CaretAssign = 115, TK_OrAssign = 116, - TK_Comma = 64, + TK_Comma = 67, TK_RightBracket = 118, TK_RightParen = 73, TK_RightBrace = 72, @@ -201,13 +201,13 @@ public interface CPPNoFunctionDeclaratorParsersym { "using", "throw", "LeftBrace", - "GT", "class", + "GT", "asm", - "Comma", "delete", "new", "Assign", + "Comma", "enum", "struct", "union", 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 c65ee79ef43..e3d4d178639 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 @@ -2198,58 +2198,65 @@ public CPPParser(String[] mapFrom) { // constructor } // - // Rule 517: explicit_instantiation ::= template declaration + // Rule 515: template_argument ::= type_id // - case 517: { action.builder. + case 515: { action.builder. + consumeTemplateArgumentTypeId(); break; + } + + // + // Rule 516: explicit_instantiation ::= template declaration + // + case 516: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 518: explicit_specialization ::= template < > declaration + // Rule 517: explicit_specialization ::= template < > declaration // - case 518: { action.builder. + case 517: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 519: try_block ::= try compound_statement handler_seq + // Rule 518: try_block ::= try compound_statement handler_seq // - case 519: { action.builder. + case 518: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 522: handler ::= catch ( exception_declaration ) compound_statement + // Rule 521: handler ::= catch ( exception_declaration ) compound_statement // - case 522: { action.builder. + case 521: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 523: handler ::= catch ( ... ) compound_statement + // Rule 522: handler ::= catch ( ... ) compound_statement // - case 523: { action.builder. + case 522: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq declarator + // Rule 523: exception_declaration ::= type_specifier_seq declarator // - case 524: { action.builder. + case 523: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 524: exception_declaration ::= type_specifier_seq abstract_declarator // - case 525: { action.builder. + case 524: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 526: exception_declaration ::= type_specifier_seq + // Rule 525: exception_declaration ::= type_specifier_seq // - case 526: { action.builder. + case 525: { action.builder. consumeDeclarationSimple(false); 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 898a20837d3..0ad545abc82 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 @@ -88,434 +88,434 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 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,1,2,4,4,1, - 2,5,5,3,3,1,4,3,1,0, - 1,3,-241,0,0,0,-63,0,0,0, + 3,1,0,1,1,2,4,4,1,2, + 5,5,3,3,1,4,3,1,0,1, + 3,-240,0,0,0,-63,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,0,-4,0,-7,0,0,0,0, - -21,0,0,0,0,0,-9,-29,0,0, - 0,0,-82,0,0,0,0,0,-268,0, + 0,0,0,-2,0,0,0,0,0,0, + 0,0,-4,0,-7,0,0,0,0,-21, + 0,0,0,0,0,-9,-29,0,0,0, + 0,-82,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,-14, 0,0,0,0,0,0,0,0,0,0, - -14,0,0,0,0,0,0,0,0,0, - 0,-62,-98,-311,-110,0,0,-27,0,0, - 0,0,0,0,0,0,-163,0,0,0, - -17,-12,0,0,0,0,0,0,0,0, - 0,0,0,0,-166,0,0,0,0,0, + -62,-98,-310,-110,0,0,-27,0,0,0, + 0,0,0,0,0,-162,0,0,0,-17, + -12,0,0,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,0,-93,0,0,0, - 0,0,0,-105,0,0,0,0,0,0, + 0,0,0,0,0,-93,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,0,0,0,0,-316,0,0,0, - -203,0,0,0,0,0,0,-444,0,0, - 0,0,-287,0,0,0,-77,0,-118,0, + 0,0,0,0,0,-315,0,0,0,-202, + 0,0,0,0,0,0,-443,0,0,0, + 0,-286,0,0,0,-77,0,-118,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,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,-25,0,0,0,0,0,0,0, - 0,0,0,0,-247,0,0,0,0,0, + 0,0,0,0,0,-45,0,0,0,0, + 0,-25,0,0,0,0,0,0,0,0, + 0,0,0,-246,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-24,0,0,-31,-122,0,0, + 0,0,-24,0,0,-31,-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,0,0,0,0,0,0,0,0,-117, + 0,0,0,-331,0,0,0,0,0,0, + -30,0,0,0,-39,-242,0,-32,0,0, + 0,-282,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -117,0,0,0,-332,0,0,0,0,0, - 0,-30,0,0,0,-39,-243,0,-32,0, - 0,0,-283,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-34,0,-40,0,0,0,0,0, + -13,0,0,-109,0,0,-36,-314,0,0, + 0,-48,0,0,0,0,0,-104,0,0, + 0,-215,-247,0,0,0,-219,0,0,0, + 0,0,0,0,0,0,0,0,0,-3, + -289,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-34,0,-40,0,0,0,0, - 0,-13,0,0,-109,0,0,-36,-315,0, - 0,0,-48,0,0,0,0,0,-104,0, - 0,0,-216,-248,0,0,0,-220,0,0, 0,0,0,0,0,0,0,0,0,0, - -3,-290,0,0,0,0,0,0,0,0, + 0,0,0,-76,0,0,0,0,-46,-47, + 0,0,0,0,-148,0,0,0,-430,0, 0,0,0,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,-46, - -47,0,0,0,0,-148,0,0,0,-431, + 0,0,0,0,0,0,0,0,0,-37, 0,0,0,0,0,0,0,0,0,0, + -264,0,0,0,-38,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,-114,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,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,-72,0,0,0,0,0,0, - 0,0,-114,0,0,0,0,0,0,0, + 0,0,0,0,-41,0,0,0,-10,0, + 0,0,0,-59,0,0,0,-107,0,0, + 0,-131,0,0,-394,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,-41,0,0,0,-10, - 0,0,0,0,-59,0,0,0,-107,0, - 0,0,-131,0,0,-395,0,0,0,-198, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-64,-42,-132,0,0, + 0,0,-67,-51,-292,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,-64,-42,-132,0, - 0,0,0,-67,-51,-293,0,0,0,-16, + 0,0,0,0,0,0,0,-145,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,0,0,-145,0, - 0,0,0,0,0,0,0,-384,0,0, + 0,0,0,0,0,0,0,-53,0,-49, + 0,0,0,0,0,-52,0,0,-119,0, + -99,0,0,0,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,-139, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-53,0, - -49,0,0,0,0,0,-52,0,0,-119, - 0,-99,0,0,0,0,0,0,-385,0, + -55,0,0,0,0,-54,0,0,0,-112, 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, - 0,-55,0,0,0,0,-54,0,0,0, - -112,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,-185,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-57,0,0,0,0,0,-186, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-60, + 0,-410,0,0,0,0,-68,0,0,0, + -190,0,0,-236,0,-73,-269,0,0,0, 0,0,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,-74,0,-225, + 0,0,0,-120,0,-79,0,0,-270,0, 0,0,0,0,0,0,0,0,0,0, - -60,0,-411,0,0,0,0,-68,0,0, - 0,-191,0,0,-237,0,-73,-270,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-379, - 0,0,0,0,0,0,0,0,-74,0, - -226,0,0,0,-120,0,-79,0,0,-271, + 0,0,0,0,0,0,0,0,0,-80, + 0,-296,0,0,0,-121,0,0,0,0, + -271,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-309,0,0,0,0,0,0,0, + 0,0,0,-61,0,0,0,0,0,-116, + 0,0,-272,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-502,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-194, + 0,0,0,0,-273,0,0,0,-416,0, 0,0,0,0,0,0,0,0,0,0, - -80,0,-297,0,0,0,-121,0,0,0, - 0,-272,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-136,0,0,0, + 0,0,0,0,0,-138,0,-78,0,0, + 0,-224,0,0,0,0,-274,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,0,-310,0,0,0,0,0,0, - 0,0,0,0,-61,0,0,0,0,0, - -116,0,0,-273,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-196, + 0,0,0,-404,0,0,0,0,-275,0, + 0,0,-489,0,0,0,0,0,0,0, 0,0,0,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, - -195,0,0,0,0,-274,0,0,0,-417, + 0,-71,0,0,0,0,0,-151,0,0, + -276,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,0,-136,0,0, - 0,0,0,0,0,0,-138,0,-78,0, - 0,0,-225,0,0,0,0,-275,0,0, - 0,-147,0,0,0,0,0,0,0,0, + 0,0,-153,0,0,0,0,0,0,0, + 0,0,0,-75,0,0,0,0,-373,0, + 0,0,-277,0,0,0,-155,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-503,0,0,0,0,0, + 0,0,0,0,0,-81,0,0,0,0, + -377,0,0,0,-278,0,0,0,-156,0, 0,0,0,0,0,0,0,0,0,0, - -197,0,0,0,-405,0,0,0,0,-276, - 0,0,0,-490,0,0,0,0,0,0, + 0,0,0,0,0,0,-157,0,0,0, + 0,0,0,0,0,-158,0,-83,0,0, + 0,0,-159,0,0,0,-279,0,0,0, + -161,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-174,0, + 0,0,0,0,0,0,0,-175,0,-84, + 0,0,0,0,-176,-177,0,0,-380,0, + 0,0,-178,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -179,0,0,0,0,0,0,0,0,-180, + 0,-87,0,0,0,0,-181,-182,0,0, + -415,0,0,0,-362,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-71,0,0,0,0,0,-151,0, - 0,-277,0,0,0,-152,0,0,0,0, + 0,0,-183,0,0,0,0,0,0,0, + 0,-184,0,-89,0,0,0,0,-186,-187, + 0,0,-505,0,0,0,-243,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-153,0,0,0,0,0,0, - 0,0,0,0,-75,0,0,0,0,-374, - 0,0,0,-278,0,0,0,-155,0,0, + 0,0,0,0,-191,0,0,0,0,0, + 0,0,0,-127,0,-96,0,0,0,0, + -65,-476,0,0,-223,0,0,0,-193,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-504,0,0,0,0, - 0,0,0,0,0,0,-81,0,0,0, - 0,-378,0,0,0,-279,0,0,0,-156, + 0,0,0,0,0,0,-195,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-157,0,0, - 0,0,0,0,0,0,-158,0,-83,0, - 0,0,0,-159,0,0,0,-280,0,0, - 0,-161,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-162, - 0,0,0,0,0,0,0,0,-175,0, - -84,0,0,0,0,-176,-177,0,0,-381, - 0,0,0,-178,0,0,0,0,0,0, + 0,-307,0,0,0,-201,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-179,0,0,0,0,0,0,0,0, - -180,0,-87,0,0,0,0,-181,-182,0, - 0,-416,0,0,0,-363,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,-184,0,-89,0,0,0,0,-185, - -187,0,0,-506,0,0,0,-244,0,0, + 0,0,0,0,-203,0,0,0,-338,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-188,0,0,0,0, - 0,0,0,0,-127,0,-96,0,0,0, - 0,-65,-477,0,0,-224,0,0,0,-192, + 0,-365,0,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,0,0,0,0,0,0,0,0,0, - 0,0,-308,0,0,0,-196,0,0,0, + 0,0,-205,0,-207,0,0,0,-392,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-202,0,0,0,-339, + -208,0,0,0,0,0,0,0,0,-472, + 0,-209,0,0,0,-340,0,0,0,-204, + 0,0,0,0,0,0,0,0,-393,0, 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,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-217, + 0,-237,0,0,0,-499,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-204,0,-206,0,0,0,-393, + 0,0,0,0,0,0,0,-245,0,0, + 0,0,0,0,0,0,-333,0,-288,0, + 0,0,-92,0,0,0,-293,-294,0,0, + 0,0,0,-133,-301,-281,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,-97,0,0,0, + 0,0,-268,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, - -473,0,-209,0,0,0,-341,0,0,0, - -205,0,0,0,0,0,0,0,0,-394, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-266,0,0,0,-238, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -210,0,-218,0,0,0,-500,0,0,0, + 0,0,0,0,0,0,-263,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-238,0, - 0,0,0,0,0,0,0,-334,0,-246, - 0,0,0,-92,0,0,0,-289,-294,0, - 0,0,0,0,-133,-295,-282,0,0,0, + 0,0,0,0,0,0,0,0,-302,0, + 0,0,0,0,0,-265,0,0,0,-306, 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,-97,0,0, - 0,0,0,-269,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-308,0,0, + 0,0,0,-257,0,0,0,-459,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-321,0,0,0,0, + -258,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,-267,0,0,0, - -239,0,0,0,0,0,0,0,0,0, + 0,0,-100,0,0,0,0,-259,0,0, + 0,-322,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-323, + 0,0,0,0,-260,0,0,0,-324,0, 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,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-302, - 0,0,0,0,0,0,-266,0,0,0, - -303,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-307,0, - 0,0,0,0,-258,0,0,0,-460,0, + 0,-5,0,0,0,-150,0,-90,0,-103, + 0,-328,0,0,0,-28,0,0,0,0, + 0,0,0,0,0,0,-160,-433,0,0, + 0,0,-19,0,0,0,-329,0,0,-206, + 0,0,0,0,-342,0,0,0,0,0, + -123,0,0,0,-330,0,0,0,0,0, + 0,0,-135,-226,0,-200,-15,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-309,0,0,0, - 0,-259,0,0,0,-66,0,0,0,0, + -334,-102,0,0,0,0,-447,0,0,0, + 0,0,0,-218,0,0,0,0,0,-33, + 0,0,0,0,0,-374,0,0,-198,0, + -101,0,0,-343,0,-344,0,0,0,0, + 0,0,0,0,-199,0,0,0,0,0, + -345,0,0,0,0,0,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,-100,0,0,0,0,-260,0, - 0,0,-322,0,0,0,0,0,0,0, + 0,0,0,0,0,-261,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -323,0,0,0,0,-261,0,0,0,-324, + 0,0,0,0,0,0,0,-290,0,0, + 0,-262,0,0,0,-347,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-284,0,0,0,0,0,0, + 0,-348,-521,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-146,0,0, + 0,-106,0,0,-141,-514,0,0,0,0, + -227,0,0,0,-188,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-434,0, + 0,0,0,-295,0,0,0,0,-108,0, + 0,0,0,0,0,0,0,0,-349,0, + 0,0,0,0,0,0,0,0,0,-403, + 0,0,0,-143,0,0,0,0,0,0, + 0,-363,0,0,-228,0,-91,0,0,-285, + 0,0,0,-239,0,-350,0,-312,-212,0, + 0,0,0,0,-351,-352,-35,0,0,0, + 0,0,-298,0,0,0,0,-353,0,0, + 0,-137,0,0,0,-354,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-355, + 0,0,0,0,0,-1,-356,-313,0,0, + 0,0,0,-18,0,0,0,0,-144,0, + 0,0,0,0,0,0,0,0,0,-357, + -216,0,0,0,0,0,0,0,0,0, + 0,0,0,-297,-11,-149,0,0,0,0, + 0,0,0,0,0,0,0,0,-444,0, + 0,0,0,-406,0,0,0,0,0,0, + 0,0,0,0,0,-210,0,0,0,-500, + -316,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-5,0,0,0,-150,0,-90,0, - -103,0,-325,0,0,0,-28,0,0,0, - 0,0,0,0,0,0,0,-160,-434,0, - 0,0,0,-19,0,0,0,-329,0,0, - -207,0,0,0,0,-343,0,0,0,0, - 0,-123,0,0,0,-330,0,0,0,0, - 0,0,0,-135,-227,0,-201,-15,0,0, + 0,0,0,0,-213,0,0,0,0,0, + 0,0,-221,0,0,0,0,0,-189,0, + 0,0,-304,0,0,0,0,0,0,0, + 0,0,0,0,0,-252,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-335,-102,0,0,0,0,-448,0,0, - 0,0,0,0,-219,0,0,0,0,0, - -33,0,0,0,0,0,-375,0,0,-199, - 0,-101,0,0,-331,0,-344,0,0,0, - 0,0,0,0,0,-200,0,0,0,0, - 0,-345,0,0,0,0,0,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,-262,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-291,0, - 0,0,-263,0,0,0,-347,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-285,0,0,0,0,0, - 0,0,-348,-522,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-146,0, - 0,0,-106,0,0,-141,-515,0,0,0, - 0,-228,0,0,0,-189,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-435, - 0,0,0,0,-296,0,0,0,0,-108, - 0,0,0,0,0,0,0,0,0,-349, - 0,0,0,0,0,0,0,0,0,0, - -404,0,0,0,-143,0,0,0,0,0, - 0,0,-364,0,0,-229,0,-91,0,0, - -286,0,0,0,-240,0,-350,0,-313,-213, - 0,0,0,0,0,-351,-352,-35,0,0, - 0,0,0,-299,0,0,0,0,-353,0, - 0,0,-137,0,0,0,-354,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -355,0,0,0,0,0,-1,-356,-314,0, - 0,0,0,0,-18,0,0,0,0,-144, - 0,0,0,0,0,0,0,0,0,0, - -357,-217,0,0,0,0,0,0,0,0, - 0,0,0,0,-298,-11,-149,0,0,0, - 0,0,0,0,0,0,0,0,0,-445, - 0,0,0,0,-407,0,0,0,0,0, - 0,0,0,0,0,0,-211,0,0,0, - -501,-317,0,0,0,0,0,0,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,-222,0,0,0,0,0,-190, - 0,0,0,-305,0,0,0,0,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,-337,0,0,0,-223,0,0,0,0, - 0,0,-215,0,0,0,0,0,0,0, - -415,-284,-124,0,0,0,0,-450,0,0, - 0,-292,0,0,-382,0,-461,0,0,-487, - 0,0,0,0,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,-372,0,0,0,0,-69,0,0, - 0,-358,0,0,0,0,0,0,0,0, - -383,0,0,-359,0,0,0,0,-360,-58, - 0,0,0,-361,0,0,0,0,-20,-250, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-421,0,0,0,0, - 0,0,0,0,0,0,0,-212,0,0, - -362,0,0,0,0,0,0,0,0,-320, + -336,0,0,0,-222,0,0,0,0,0, + 0,-214,0,0,0,0,0,0,0,-414, + -283,-124,0,0,0,0,-449,0,0,0, + -291,0,0,-381,0,-460,0,0,-486,0, + 0,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,-371,0,0,0,0,-69,0,0,0, + -358,0,0,0,0,0,0,0,0,-382, + 0,0,-359,0,0,0,0,-360,-58,0, + 0,0,-361,0,0,0,0,-20,-249,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-420,0,0,0,0,0, + 0,0,0,0,0,0,-211,0,0,-364, + 0,0,0,0,0,0,0,0,-319,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-325,0,0,-491,0,0,0,0,0, + 0,0,0,0,0,0,0,-482,-366,0, + -423,0,0,0,0,-368,0,0,-450,0, + 0,0,0,0,0,0,-300,-318,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-501,-22,0,0,0,0,-113,0,0, + -369,0,0,0,0,0,0,0,0,0, + -484,-163,0,-335,0,0,0,0,-370,-111, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-303,0,0,0,0, + 0,0,0,0,0,-305,0,-372,0,0, + 0,0,0,-512,0,0,0,0,0,0, + 0,0,0,-488,-154,0,-409,0,0,0, + 0,-399,0,0,0,0,0,0,0,0, + 0,-400,-401,0,0,0,0,0,-516,0, + 0,0,0,0,0,0,0,-470,0,0, + 0,0,0,0,-413,0,0,0,0,0, + 0,0,0,0,0,0,-367,-504,0,0, + 0,0,0,0,0,0,0,0,-280,-229, + -437,-235,0,0,0,0,0,0,0,0, + -522,0,0,0,0,0,0,0,0,-517, + -320,0,-375,0,0,-376,0,0,0,0, + -326,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,-326,0,0,-492,0,0,0,0, - 0,0,0,0,0,0,0,0,-483,-365, - 0,-424,0,0,0,0,-367,0,0,-451, - 0,0,0,0,0,0,0,-301,-319,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-502,-22,0,0,0,0,-113,0, - 0,-369,0,0,0,0,0,0,0,0, - 0,-485,-164,0,-336,0,0,0,0,-370, - -111,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,-306,0,-371,0, - 0,0,0,0,-513,0,0,0,0,0, - 0,0,0,0,-489,-154,0,-410,0,0, - 0,0,-373,0,0,0,0,0,0,0, - 0,0,-400,-401,0,0,0,0,0,-517, - 0,0,0,0,0,0,0,0,-471,0, - 0,0,0,0,0,-414,0,0,0,0, - 0,0,0,0,0,0,0,-368,-505,0, - 0,0,0,0,0,0,0,0,0,-281, - -230,-438,-236,0,0,0,0,0,0,0, - 0,-523,0,0,0,0,0,0,0,0, - -518,-321,0,-376,0,0,-377,0,0,0, - 0,-327,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-26,0, + 0,0,-523,-244,0,-402,0,0,0,0, + 0,0,0,-429,0,-475,0,0,0,0, + 0,0,-451,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-446,0,-417, + 0,0,0,-337,0,-418,0,0,0,0, + 0,0,0,0,0,-88,-431,0,-341,0, + 0,0,-419,0,-424,0,-379,-428,-230,-462, + 0,-231,0,0,0,0,0,0,-397,-432, + -441,0,0,0,0,0,0,0,-126,0, + 0,-317,0,0,-385,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-497,0, + 0,0,-442,0,0,-448,0,0,0,0, + 0,0,0,-438,0,0,-435,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-129,-457,-439,-461,0,0,0,-411,0, + 0,0,0,0,0,0,0,0,-473,-477, + -478,0,0,0,0,0,0,0,0,0, + -483,-70,0,0,0,0,0,-490,0,0, + 0,0,0,0,0,-390,0,0,0,0, + 0,0,0,0,-496,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-426, + 0,0,-507,0,0,0,0,0,0,-254, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-524,-245,0,-402,0,0,0, - 0,0,0,0,-430,0,-476,0,0,0, - 0,0,0,-452,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-447,0, - -403,0,0,0,-338,0,-418,0,0,0, - 0,0,0,0,0,0,-88,-432,0,-342, - 0,0,0,-419,0,-420,0,-380,-425,-231, - -463,0,-232,0,0,0,0,0,0,-398, - -429,-433,0,0,0,0,0,0,0,-126, - 0,0,-318,0,0,-386,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-498, - 0,0,0,-442,0,0,-443,0,0,0, - 0,0,0,0,-439,0,0,-436,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-129,-449,-440,-458,0,0,0,-412, - 0,0,0,0,0,0,0,0,0,-462, - -474,-478,0,0,0,0,0,0,0,0, - 0,-479,-70,0,0,0,0,0,-484,0, - 0,0,0,0,0,0,-391,0,0,0, - 0,0,0,0,0,-491,0,0,0,0, + 0,-506,0,-511,-456,0,0,0,0,0, + 0,0,0,-436,0,0,-255,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -427,0,0,-508,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,-497,0,-507,-457,0,0,0,0, - 0,-512,0,0,-437,0,0,-256,0,0, + -256,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-386,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,-257,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-140,0,0, + 0,0,-427,0,0,0,0,0,-445,-440, + -474,0,-248,0,0,-452,0,0,0,0, + 0,0,0,-463,-471,-481,-492,0,0,0, + 0,0,0,-454,-513,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-387,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,-140,0, - 0,0,0,-428,0,0,0,0,0,-446, - -441,-475,0,-249,0,0,-453,0,0,0, - 0,0,0,0,-464,-472,-482,-493,0,0, - 0,0,0,0,-455,-514,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,-168,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,-169,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,-170,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,-171,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-172, + -172,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,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-173,0,0,0,0,0,0,0,0, + 0,0,0,0,-241,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-174,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,-242,0,0,0,0, + 0,0,0,0,0,0,0,0,-251,0, 0,0,0,0,0,0,0,0,0,0, - 0,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,-252, + -327,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,-485,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-328,0,0,0,0,0,0,0,0, + 0,0,0,0,-8,-455,-487,0,0,0, + 0,-458,-464,-287,-493,0,0,0,0,0, + -134,0,0,0,0,-398,0,0,-468,0, + 0,0,0,0,-465,0,-232,-85,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-408,0,0,0,-486,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-8,-456,-488,0,0, - 0,0,-459,-465,-288,-494,0,0,0,0, - 0,-134,0,0,0,0,-399,0,0,-469, - 0,0,0,0,0,-466,0,-233,-85,0, + -466,0,0,-467,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,0,0,-479,-480,0,0, + 0,0,0,0,-128,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-467,0,0,-468,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,0,0,-480,-481,0, - 0,0,0,0,0,-128,0,0,0,0, + 0,0,0,0,0,0,0,0,-299,0, + 0,-494,0,-495,0,-509,0,0,0,0, + 0,0,0,0,0,0,0,-508,-469,-498, + 0,-519,0,0,0,-515,0,0,0,0, + 0,0,0,0,0,-518,0,0,0,-520, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-300, - 0,0,-495,0,-496,0,-510,0,0,0, - 0,0,0,0,0,0,0,0,-509,-470, - -499,0,-520,0,0,0,-516,0,0,0, - 0,0,0,0,0,0,-519,0,0,0, - -521,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,-115,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,-125,0,0,0, - 0,0,0,0,0,0,0,-115,0,0, + -23,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,0,0, - -392,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,-454,0, 0,0,0,0,0,0,0,0,0,0, 0,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,0,-95,0,0, 0,0,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,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,0,0,0,0,0, 0,0,0,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,0, + 0,0,0,0,0,-44,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,-43,0, - 0,0,0,0,0,0,-44,0,0,0, - 0,0,0,-6,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,-50,0,0,0,0,0,0,0,0, + 0,0,0,-387,0,0,0,0,0,-56, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-388,0,0,0,0,0, - -56,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,0,0,0, - -130,0,0,0,0,0,0,0,0,0, - 0,0,0,-193,0,0,0,0,0,0, - 0,0,0,0,0,-221,0,0,0,-312, - 0,0,0,-333,0,0,0,0,0,0, - 0,0,0,0,0,-340,0,0,0,0, + 0,0,-192,0,0,0,0,0,0,0, + 0,0,0,0,-220,0,0,0,-311,0, + 0,0,-332,0,0,0,0,0,0,0, + 0,0,0,0,-339,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-396,0, + 0,0,0,0,0,0,0,-395,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-397,0,0,0, - -165,0,0,0,0,0,0,0,-235,0, - 0,0,0,0,0,0,-406,0,0,0, - 0,0,0,0,-413,0,0,0,0,0, - 0,0,-422,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-423,0,0, - 0,0,0,0,0,-426,0,0,0,0, - 0,0,0,-234,0,0,0,0,0,0, - -511,0,0,0,0,0,0,0,-389,0, - 0,0,0,-390,0,0,0,0,0,0, - 0,0,0,-409,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-525,0,0, + 0,0,0,0,0,-396,0,0,0,-164, + 0,0,0,0,0,0,0,-234,0,0, + 0,0,0,0,0,-405,0,0,0,0, + 0,0,0,-412,0,0,0,0,0,0, + 0,-421,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-422,0,0,0, + 0,0,0,0,-425,0,0,0,0,0, + 0,0,-233,0,0,0,0,0,0,-510, + 0,0,0,0,0,0,0,-388,0,0, + 0,0,-389,0,0,0,0,0,0,0, + 0,0,-408,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-524,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -531,7 +531,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0 + 0 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -592,489 +592,489 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 168,168,168,168,168,168,168,168,168,168, 168,168,168,168,168,168,62,69,69,169, 169,130,130,131,131,131,131,131,131,3, - 132,132,129,129,110,110,110,76,63,85, - 158,158,111,111,189,189,189,133,133,123, - 123,190,190,881,39,2625,2566,1136,4614,34, - 904,31,35,869,30,32,2548,29,27,56, - 1849,112,82,83,114,1164,1856,1864,1857,1891, - 1882,1899,1898,1933,244,1924,30,1940,1941,149, - 278,1356,1307,164,150,226,4561,1127,1682,39, - 817,36,1167,382,34,904,340,35,869,2485, - 39,817,36,237,4681,34,904,31,35,869, - 30,32,1822,29,27,56,1849,112,82,83, - 114,1208,1856,1864,1857,1891,1882,1899,3134,240, - 235,236,428,1288,2240,248,39,450,164,4606, - 4594,2848,622,279,321,2436,323,972,39,2219, - 47,1006,152,46,904,316,1982,4499,247,250, - 253,256,2544,1064,2562,2428,39,817,36,641, - 4681,34,904,31,35,869,30,32,1822,29, - 27,56,1849,92,82,83,2238,1136,2578,1180, - 2895,3149,3254,4362,1549,39,817,36,2513,4681, - 34,904,31,35,869,1840,32,1822,29,27, - 56,1849,112,82,83,114,344,1856,1864,1857, - 1891,1882,1899,1898,1933,306,1924,1520,1940,1941, - 149,1883,3633,2605,514,150,3633,3326,1791,39, - 282,390,424,1016,39,814,387,1928,515,1549, - 39,817,36,2513,4681,34,904,31,35,869, - 1840,32,1822,29,27,56,1849,112,82,83, - 114,344,1856,1864,1857,1891,1882,1899,1898,1933, - 449,1924,334,1940,1941,149,334,1504,915,514, - 150,1645,3326,248,39,284,444,427,3140,353, - 443,1990,2008,515,510,1647,39,817,36,3359, - 4626,34,904,31,35,869,63,32,677,347, - 2826,2762,350,1714,910,495,1966,1302,1549,39, - 817,36,2513,4681,34,904,31,35,869,1840, - 32,1822,29,27,56,1849,112,82,83,114, - 344,1856,1864,1857,1891,1882,1899,1898,1933,510, - 1924,943,1940,1941,149,512,39,284,514,150, - 4697,3326,1016,1429,1397,38,1750,1579,2056,1419, - 4193,1966,515,1825,39,817,36,2513,4681,34, - 904,31,35,869,1840,32,1822,29,27,56, - 1849,112,82,83,114,344,1856,1864,1857,1891, - 1882,1899,1898,1933,1467,1924,64,1940,1941,149, - 3517,2577,152,514,150,1930,3326,4507,508,1016, - 39,814,387,1016,39,2278,1977,515,510,1016, - 39,287,67,382,1720,39,817,36,1202,4626, - 34,904,31,35,869,62,32,2104,330,336, - 1966,1049,1619,39,817,36,428,4681,34,904, - 31,35,869,30,32,1822,29,27,56,1849, - 112,82,83,114,377,1856,1864,1857,1891,1882, - 1899,1898,1933,511,1924,1813,1940,1941,149,1260, - 64,64,380,150,4420,4429,1016,39,814,387, - 1692,39,817,36,3004,4681,34,904,31,35, - 869,30,32,1822,29,27,56,1849,112,82, - 83,114,383,1856,1864,1857,1891,1882,1899,1898, - 1933,1767,1924,55,1940,1941,149,435,52,2592, - 380,150,2485,39,817,36,1615,4681,34,904, - 31,35,869,30,32,1822,29,27,56,1849, - 112,82,83,114,1504,1856,1864,1857,1891,2888, - 381,66,375,1953,39,817,36,384,4681,34, - 904,31,35,869,30,32,1822,29,27,56, - 1849,112,82,83,114,324,1856,1864,1857,1891, - 1882,1899,1898,1933,912,1924,1801,1940,1941,149, - 1008,1168,296,380,150,1016,39,814,387,1016, - 39,1397,281,1136,2889,385,1016,39,814,387, - 2133,39,817,36,3075,4681,34,904,31,35, - 869,30,32,1822,29,27,56,1849,112,82, - 83,114,278,1856,1864,1857,1891,1882,1899,1898, - 1933,305,1924,431,1940,1941,149,68,1210,1136, - 164,150,3633,440,941,416,2133,39,817,36, - 1278,4681,34,904,31,35,869,30,32,1822, - 29,27,56,1849,112,82,83,114,378,1856, - 1864,1857,1891,1882,1899,1898,1933,302,1924,2240, - 1940,1941,149,1106,4606,280,374,150,2133,39, - 817,36,333,4681,34,904,31,35,869,30, - 32,1822,29,27,56,1849,112,82,83,114, - 237,1856,1864,1857,1891,1882,1899,1898,1933,1533, - 1924,64,1940,1941,149,623,3281,768,374,150, - 68,2622,1420,39,285,3633,249,235,236,2133, - 39,817,36,2238,4681,34,904,31,35,869, - 30,32,1822,29,27,56,1849,112,82,83, - 114,856,1856,1864,1857,1891,1882,1899,1898,1933, - 373,1924,64,1940,1941,149,2521,1890,2605,374, - 150,1895,39,817,36,333,4681,34,904,31, - 35,869,30,32,1822,29,27,56,1849,112, - 82,83,114,2749,1856,1864,1857,1891,1882,1899, - 1898,1933,372,1924,64,1940,2027,170,684,721, - 1755,39,817,36,315,4681,34,904,31,35, - 869,30,32,1822,29,27,56,1849,112,82, - 83,114,426,1856,1864,1857,1891,1882,1899,1898, - 1933,206,1924,2199,1940,1941,149,2598,860,329, - 148,150,2029,370,2193,2190,2725,1794,2133,39, - 817,36,1561,4681,34,904,31,35,869,30, - 32,1822,29,27,56,1849,112,82,83,114, - 1930,1856,1864,1857,1891,1882,1899,1898,1933,1154, - 1924,68,1940,1941,149,1928,3633,763,161,150, - 2133,39,817,36,912,4681,34,904,31,35, - 869,30,32,1822,29,27,56,1849,112,82, - 83,114,188,1856,1864,1857,1891,1882,1899,1898, - 1933,851,1924,68,1940,1941,149,1928,3633,3475, - 160,150,2133,39,817,36,333,4681,34,904, - 31,35,869,30,32,1822,29,27,56,1849, - 112,82,83,114,2396,1856,1864,1857,1891,1882, - 1899,1898,1933,457,1924,64,1940,1941,149,2790, - 717,1655,159,150,2133,39,817,36,333,4681, - 34,904,31,35,869,30,32,1822,29,27, - 56,1849,112,82,83,114,1930,1856,1864,1857, - 1891,1882,1899,1898,1933,456,1924,99,1940,1941, - 149,1928,3766,453,158,150,2133,39,817,36, - 1462,4681,34,904,31,35,869,30,32,1822, - 29,27,56,1849,112,82,83,114,1560,1856, - 1864,1857,1891,1882,1899,1898,1933,2039,1924,1504, - 1940,1941,149,1016,1689,523,157,150,2133,39, - 817,36,2066,4681,34,904,31,35,869,30, - 32,1822,29,27,56,1849,112,82,83,114, - 494,1856,1864,1857,1891,1882,1899,1898,1933,328, - 1924,1504,1940,1941,149,1016,39,3577,156,150, - 2133,39,817,36,2608,4681,34,904,31,35, - 869,30,32,1822,29,27,56,1849,112,82, - 83,114,379,1856,1864,1857,1891,1882,1899,1898, - 1933,521,1924,64,1940,1941,149,851,418,1660, - 155,150,2133,39,817,36,1085,4681,34,904, - 31,35,869,30,32,1822,29,27,56,1849, - 112,82,83,114,1986,1856,1864,1857,1891,1882, - 1899,1898,1933,291,1924,64,1940,1941,149,739, - 1016,3671,154,150,2133,39,817,36,689,4681, - 34,904,31,35,869,30,32,1822,29,27, - 56,1849,112,82,83,114,1930,1856,1864,1857, - 1891,1882,1899,1898,1933,521,1924,64,1940,1941, - 149,818,1016,3541,153,150,2133,39,817,36, - 2192,4681,34,904,31,35,869,30,32,1822, - 29,27,56,1849,112,82,83,114,2223,1856, - 1864,1857,1891,1882,1899,1898,1933,2228,1924,64, - 1940,1941,149,3063,2318,522,152,150,2133,39, - 817,36,1338,4681,34,904,31,35,869,30, - 32,1822,29,27,56,1849,112,82,83,114, - 1864,1856,1864,1857,1891,1882,1899,1898,1933,1962, - 1924,64,1940,1941,149,4327,1494,1514,151,150, - 2133,39,817,36,332,4681,34,904,31,35, - 869,30,32,1822,29,27,56,1849,112,82, - 83,114,993,1856,1864,1857,1891,1882,1899,1898, - 1933,29,1924,64,1940,1941,149,3550,1991,328, - 165,150,2133,39,817,36,1172,4681,34,904, - 31,35,869,30,32,1822,29,27,56,1849, - 112,82,83,114,504,1856,1864,1857,1891,1882, - 1899,1898,1933,1088,1924,64,1940,1941,149,3603, - 890,1081,146,150,2366,39,817,36,382,4681, - 34,904,31,35,869,30,32,1822,29,27, - 56,1849,112,82,83,114,1547,1856,1864,1857, - 1891,1882,1899,1898,1933,1862,1924,64,1940,1941, - 149,2815,675,587,195,150,2485,39,817,36, - 2206,4681,34,904,31,35,869,30,32,1822, - 29,27,56,1849,112,82,83,114,1425,1856, - 1864,1857,1891,1882,1899,1898,1933,520,1924,3042, - 1940,2027,170,2485,39,817,36,1175,4681,34, - 904,31,35,869,30,32,1822,29,27,56, - 1849,112,82,83,114,300,1856,1864,1857,1891, - 1882,1899,1898,1933,326,1924,2103,1940,2027,170, - 1783,39,817,36,1570,4705,34,904,31,35, - 869,65,32,2485,39,817,36,295,4681,34, - 904,31,35,869,30,32,1822,29,27,56, - 1849,112,82,83,114,76,1856,1864,1857,1891, - 1882,1899,1898,1933,2111,1924,1445,1940,2027,170, - 2485,39,817,36,420,4681,34,904,31,35, - 869,30,32,1822,29,27,56,1849,112,82, - 83,114,2219,1856,1864,1857,1891,1882,1899,1898, - 1933,2644,1924,1985,1940,2027,170,1783,39,817, - 36,1504,4705,34,904,31,35,869,64,32, - 2485,39,817,36,3526,4681,34,904,31,35, - 869,30,32,1822,29,27,56,1849,112,82, - 83,114,3072,1856,1864,1857,1891,1882,1899,1898, - 1933,2347,1924,2337,1940,2027,170,2542,39,817, - 36,419,4681,34,904,31,35,869,30,32, - 1822,29,27,56,1849,112,82,83,114,2377, - 1856,1864,1857,1891,1882,1899,1898,1933,1928,1924, - 1273,1940,2027,170,1541,39,817,36,2340,1818, - 34,904,1169,35,869,1862,2142,2485,39,817, - 36,422,4681,34,904,31,35,869,30,32, - 1822,29,27,56,1849,112,82,83,114,1862, - 1856,1864,1857,1891,1882,1899,1898,1933,1936,1924, - 94,3181,2900,108,2485,39,817,36,3350,4681, - 34,904,31,35,869,30,32,1822,29,27, - 56,1849,112,82,83,114,4104,1856,1864,1857, - 1891,1882,1899,1898,1933,389,3139,2485,39,817, - 36,1504,4681,34,904,31,35,869,30,32, - 1822,29,27,56,1849,112,82,83,114,388, - 1856,1864,1857,1891,1882,1899,1898,3122,2485,39, - 817,36,4082,4681,34,904,31,35,869,30, - 32,1822,29,27,56,1849,112,82,83,114, - 2294,1856,1864,1857,1891,1882,2881,2485,39,817, - 36,2394,4681,34,904,31,35,869,30,32, - 1822,29,27,56,1849,112,82,83,114,1983, - 1856,1864,1857,1891,2911,2485,39,817,36,1172, - 4681,34,904,31,35,869,30,32,1822,29, - 27,56,1849,112,82,83,114,2353,1856,1864, - 1857,2800,2485,39,817,36,1098,4681,34,904, - 31,35,869,30,32,1822,29,27,56,1849, - 112,82,83,114,1437,1856,1864,1857,2837,2485, - 39,817,36,2406,4681,34,904,31,35,869, - 30,32,1822,29,27,56,1849,112,82,83, - 114,2457,1856,1864,1857,2846,2485,39,817,36, - 2458,4681,34,904,31,35,869,30,32,1822, - 29,27,56,1849,112,82,83,114,327,1856, - 1864,1857,2847,2599,39,814,387,1862,3439,152, - 520,1376,1689,2460,4581,996,242,995,39,817, - 36,1167,3633,34,904,340,35,869,152,1016, - 39,814,387,4689,1199,39,1249,1257,2252,4532, - 278,2985,39,817,36,1473,1928,34,904,340, - 35,869,1541,39,817,36,2753,1654,34,904, - 341,35,869,237,1679,2572,430,943,2800,3553, - 2848,55,333,321,2436,323,1175,288,923,48, - 1612,244,2437,64,316,1982,2513,2927,68,240, - 235,236,1174,3633,2848,2047,352,321,2436,323, - 4610,2016,402,279,344,2513,3118,1924,316,1982, - 64,1130,1288,353,952,2709,2246,596,247,250, - 253,256,2544,344,57,1383,64,2577,237,641, - 2699,290,684,345,2826,2762,350,353,309,313, - 162,1251,2239,3477,985,206,3804,1941,2578,1180, - 2895,3149,3254,4362,245,235,236,345,2826,2762, - 350,537,2517,1696,335,336,2962,2485,39,817, - 36,1388,4681,34,904,31,35,869,30,32, - 1822,29,27,56,1849,112,82,83,114,943, - 1856,1864,2859,2485,39,817,36,2112,4681,34, - 904,31,35,869,30,32,1822,29,27,56, - 1849,112,82,83,114,177,1856,1864,2867,533, - 391,424,367,2246,1853,39,817,36,100,4705, - 34,904,31,35,869,30,32,234,508,1016, - 39,1397,286,1420,39,282,1102,2644,162,2577, - 2513,4142,992,186,3378,3328,1016,39,1397,283, - 209,220,4514,208,217,218,219,221,234,453, - 1016,39,814,387,175,3016,39,817,36,3556, - 428,34,904,340,35,869,332,336,439,174, - 71,2574,405,3799,189,173,176,177,178,179, - 180,1016,39,1397,3574,1288,352,429,406,407, - 408,297,298,1,2766,566,1834,533,1016,39, - 296,248,39,450,354,1504,4594,205,2848,152, - 1862,321,2436,323,4659,234,381,557,1016,39, - 814,387,316,1982,1283,1588,162,353,2513,1882, - 1064,186,3378,1008,39,296,28,1993,209,220, - 4514,208,217,218,219,221,2551,345,2826,2762, - 350,680,175,409,412,55,2962,1394,1703,152, - 1175,2513,583,187,4677,2023,95,174,355,108, - 1288,2823,190,173,176,177,178,179,180,234, - 307,1982,1321,39,2399,36,1167,3633,34,904, - 340,35,869,393,424,2179,1470,1376,1689,2513, - 2513,1123,211,220,4514,210,217,218,219,221, - 2119,39,1397,281,502,1657,3000,2551,234,212, - 214,216,297,298,444,237,566,1865,39,394, - 15,1928,1504,213,215,2848,1106,333,321,2436, - 323,211,220,4514,210,217,218,219,221,316, - 1982,252,235,236,500,501,1862,1504,212,214, - 216,297,298,351,1496,566,447,1990,2008,15, - 1930,3118,213,215,1541,39,817,36,392,424, - 34,904,3647,35,869,362,3042,2485,39,817, - 36,13,4681,34,904,31,35,869,30,32, - 1822,29,27,56,1849,112,82,83,114,103, - 1856,2627,1541,39,817,36,1862,290,34,904, - 44,35,869,1016,39,296,299,555,2926,377, - 14,863,64,1656,2370,996,1906,2513,1016,3622, - 1397,80,64,415,2427,1923,3131,2012,3046,1696, - 2025,39,817,36,1167,2551,34,904,340,35, - 869,2485,39,817,36,3307,4681,34,904,31, - 35,869,30,32,1822,29,27,56,1849,112, - 82,83,114,265,1856,2642,289,533,1072,39, - 817,36,2425,3633,34,904,340,35,869,50, - 1612,943,3042,2848,2514,234,321,2436,323,2470, - 1016,39,814,387,2403,382,162,316,1982,2057, - 64,186,3378,361,1130,1174,3297,3062,209,220, - 4514,208,217,218,219,221,353,2151,2106,2132, - 533,2848,175,334,321,2436,323,55,1865,39, - 394,2412,1175,162,2753,319,1982,174,234,2556, - 1504,2577,3529,173,176,177,178,179,180,162, - 325,309,313,1587,186,3378,1865,39,394,237, - 529,209,220,4514,208,217,218,219,221,441, - 2456,75,1924,533,4279,175,533,2517,3518,336, - 2119,39,1397,3632,1388,255,235,236,64,64, - 174,234,4555,4147,3706,182,173,176,177,178, - 179,180,162,587,2197,162,1645,186,3378,64, - 186,3378,2465,1130,209,220,4514,208,217,218, - 219,221,529,64,2811,64,533,533,175,1130, - 2494,1347,39,817,36,2381,3633,34,904,340, - 35,869,1641,174,234,344,201,1136,193,173, - 176,177,178,179,180,162,162,1083,3610,2515, - 186,3378,2835,3712,237,2012,3326,209,220,4514, - 208,217,218,219,221,617,1146,2321,64,533, - 1431,175,3499,2551,2848,301,334,321,2436,323, - 258,235,236,2571,2577,400,174,234,317,1982, - 1928,3705,173,176,177,178,179,180,162,1016, - 39,1397,3703,186,3378,77,335,39,814,387, - 209,220,4514,208,217,218,219,221,1136,2168, - 39,817,36,1473,175,34,904,340,35,869, - 64,64,64,2071,1130,533,1130,1130,353,174, - 4127,202,2012,278,198,173,176,177,178,179, - 180,705,1504,344,1136,533,185,1136,345,2826, - 2762,350,1504,162,162,162,166,343,104,3144, - 3412,4134,2848,234,3326,321,2436,323,357,599, - 39,814,387,74,162,3190,316,1982,529,186, - 3378,353,204,59,524,203,209,220,4514,208, - 217,218,219,221,793,64,3604,2579,533,533, - 175,345,2826,2762,350,64,55,2241,78,2409, - 525,1175,3633,1381,2401,174,234,344,2513,3422, - 192,173,176,177,178,179,180,162,162,1153, - 1115,2602,186,3378,2835,1504,344,2604,3326,209, - 220,4514,208,217,218,219,221,2843,64,3505, - 1504,2513,3077,175,89,356,2553,3827,1504,2088, - 64,943,3477,64,2513,529,93,2513,174,234, - 1504,2461,2272,200,173,176,177,178,179,180, - 2856,58,344,1214,2513,344,1214,2513,3633,448, - 2513,3633,211,220,4514,210,217,218,219,221, - 1153,3588,234,3326,2623,2551,3326,2625,2551,212, - 214,216,297,298,2463,64,566,2481,64,1130, - 222,2577,3531,213,215,211,220,4514,210,217, - 218,219,221,2937,2250,64,2643,2513,333,1130, - 1504,333,212,214,216,297,298,102,162,566, - 2408,2525,2578,222,4156,234,213,215,3828,336, - 4226,1975,2648,1016,39,814,387,2141,162,2584, - 3621,96,717,361,4182,3766,361,1136,211,220, - 4514,210,217,218,219,221,2650,3540,2106,2132, - 3540,2106,2132,4226,2840,212,214,216,297,298, - 55,1136,566,4219,2222,1175,222,1521,1130,213, - 215,2485,39,817,36,404,4681,34,904,31, - 35,869,30,32,1822,29,27,56,1849,112, - 82,83,114,2656,2657,1004,64,162,2757,207, - 3080,3621,2627,168,5336,1504,4226,2986,2485,39, - 817,36,5336,4681,34,904,31,35,869,30, - 32,1822,29,27,56,1849,112,82,83,114, - 5336,2707,2485,39,817,36,3825,4681,34,904, - 31,35,869,30,32,1822,29,27,56,1849, - 112,82,83,114,5336,2733,2261,39,817,36, - 5336,3633,34,904,340,35,869,2485,39,817, - 36,5336,4681,34,904,31,35,869,30,32, - 1822,29,27,56,1849,112,82,83,91,1441, - 39,817,36,2912,1136,34,904,340,35,869, - 1504,64,64,5336,2071,1130,1130,1504,1130,2848, - 5336,334,321,2436,323,64,64,2072,64,4136, - 3570,3379,3315,317,1982,1504,64,401,353,5336, - 3402,3826,205,5336,162,162,5336,166,3219,4297, - 4185,2961,2848,5336,5336,318,918,323,347,2826, - 2762,350,2485,1429,817,2230,3272,4681,34,904, - 31,35,869,30,32,1822,29,27,56,1849, - 112,82,83,90,2485,39,817,36,5336,4681, - 34,904,31,35,869,30,32,1822,29,27, - 56,1849,112,82,83,89,2485,39,817,36, - 3520,4681,34,904,31,35,869,30,32,1822, - 29,27,56,1849,112,82,83,88,2485,39, - 817,36,5336,4681,34,904,31,35,869,30, - 32,1822,29,27,56,1849,112,82,83,87, - 2485,39,817,36,628,4681,34,904,31,35, - 869,30,32,1822,29,27,56,1849,112,82, - 83,86,2485,39,817,36,5336,4681,34,904, - 31,35,869,30,32,1822,29,27,56,1849, - 112,82,83,85,2485,39,817,36,5336,4681, - 34,904,31,35,869,30,32,1822,29,27, - 56,1849,112,82,83,84,2307,39,817,36, - 5336,4681,34,904,31,35,869,30,32,1822, - 29,27,56,1849,112,82,83,110,2485,39, - 817,36,5336,4681,34,904,31,35,869,30, - 32,1822,29,27,56,1849,112,82,83,116, - 2485,39,817,36,5336,4681,34,904,31,35, - 869,30,32,1822,29,27,56,1849,112,82, - 83,115,2485,39,817,36,5336,4681,34,904, - 31,35,869,30,32,1822,29,27,56,1849, - 112,82,83,113,2485,39,817,36,1136,4681, - 34,904,31,35,869,30,32,1822,29,27, - 56,1849,112,82,83,111,1229,2091,64,5336, - 2513,533,1130,1504,1504,2071,943,5336,5336,1130, - 5336,5336,1016,39,814,387,3674,1656,234,344, - 2071,2513,5336,5336,1130,5336,1504,5336,64,2953, - 162,162,2513,2513,3325,73,194,4267,166,2551, - 4379,211,220,4514,210,217,218,219,221,55, - 344,234,1504,166,1175,1504,933,72,212,214, - 216,297,298,2969,5336,566,2577,2513,5336,517, - 5336,3326,213,215,211,220,4514,210,217,218, - 219,221,2490,71,5336,234,70,5336,1504,1504, - 5336,212,214,216,297,298,2875,5336,566,196, - 2513,3528,518,3836,336,213,215,361,211,220, - 4514,210,217,218,219,221,4263,5336,234,1546, - 1756,3715,2106,2132,5336,212,214,216,297,298, - 3030,5336,566,1504,2513,1504,308,1504,5336,213, - 215,211,220,4514,210,217,218,219,221,1136, - 2071,2071,234,1136,1130,1130,5336,1504,212,214, - 216,297,298,5336,61,566,60,1504,4283,223, - 5336,2204,213,215,4108,211,220,4514,210,217, - 218,219,221,166,166,5336,5336,227,107,5336, - 5336,199,212,214,216,297,298,1283,3464,566, - 5336,2513,527,496,5336,5336,213,215,1682,39, - 817,36,1167,5336,34,904,340,35,869,2551, - 5336,1606,39,2399,36,1167,5336,34,904,340, - 35,869,2666,39,814,387,5336,3439,5336,5336, - 5336,5336,5336,5336,5336,243,4265,4287,5336,1682, - 39,817,36,1167,5336,34,904,340,35,869, - 5336,2848,5336,5336,321,2436,323,5336,5336,278, - 5336,5336,5336,5336,2848,316,1982,321,2436,323, - 5336,5336,5336,1174,5336,5336,5336,502,316,1982, - 948,5336,237,5336,2513,4142,1504,5336,5336,1025, - 5336,5336,2848,2513,4142,321,2436,323,5336,5336, - 5336,5336,234,5336,5336,5336,316,1982,241,235, - 236,234,5336,5336,3639,5336,5336,499,501,310, - 313,5336,279,5336,5336,2574,405,3799,5336,5336, - 5336,5336,5336,5336,2574,405,3799,248,251,254, - 257,2544,406,407,408,297,298,5336,641,566, - 5336,406,407,408,297,298,2143,5336,566,1169, - 39,814,387,5336,5336,5336,5336,1184,39,814, - 387,5336,416,2427,1332,39,817,36,2527,1588, - 34,904,340,35,869,5336,5336,5336,1588,5336, - 5336,5336,1294,39,814,387,55,5336,5336,5336, - 5336,1175,5336,53,55,5336,5336,409,411,1175, - 5336,53,5336,5336,5336,2162,409,411,5336,2513, - 2828,599,39,814,387,5336,5336,2848,2234,55, - 318,918,323,5336,1175,5336,53,2551,5336,2245, - 2756,1455,39,814,387,5336,5336,5336,2269,2756, - 5336,5336,5336,1262,1732,39,814,387,55,5336, - 5336,5336,5336,1175,5336,53,1732,39,814,387, - 1732,39,814,387,1517,39,814,387,55,5336, - 5336,5336,929,1175,5336,53,1184,39,814,387, - 5336,55,5336,5336,5336,5336,1175,5336,53,5336, - 5336,5336,3053,55,5336,502,5336,55,1175,5336, - 53,55,1175,5336,53,733,1175,5336,2945,1732, - 39,814,387,55,5336,5336,5336,919,1175,628, - 3061,1126,5336,5336,5336,1115,5336,1732,39,814, - 387,1463,39,814,387,499,501,3366,5336,1016, - 39,814,387,5336,5336,5336,55,1016,39,814, - 387,1175,5336,53,5336,1016,39,814,387,5336, - 5336,5336,5336,64,55,5336,5336,533,55,1175, - 2539,53,5336,1175,3542,1948,55,5336,64,5336, - 5336,1175,533,3203,55,344,64,5336,2780,1175, - 533,728,55,5336,64,5336,162,1175,2513,1948, - 344,2276,194,5336,5336,2513,4379,5336,344,64, - 5336,162,5336,2513,64,5336,344,194,2513,162, - 5336,4379,5336,344,64,194,5336,5336,2513,4379, - 5336,344,528,5336,5336,5336,344,3326,64,5336, - 5336,5336,2513,5336,3326,5336,344,5336,2523,5336, - 5336,5336,3326,5336,5336,531,5336,3326,5336,5336, - 344,5336,5336,506,5336,3817,5336,3326,504,5336, - 5336,5336,5336,5336,5336,5336,5336,5336,3810,5336, - 3835,3326,5336,5336,5336,5336,5336,5336,4133,5336, - 5336,5336,532,5336,5336,5336,5336,5336,5336,5336, - 5336,5336,5336,5336,5336,5336,5336,5336,5336,5336, - 5336,5336,5336,5336,5336,5336,5336,5336,5336,5336, - 5336,5336,5336,5336,5336,5336,5336,5336,5336,5336, - 5336,5336,5336,5336,5336,5336,5336,5336,5336,5336, - 5336,5336,5336,5336,5336,5336,5336,5336,5336,5336, - 5336,5336,5336,5336,5336,5336,5336,5336,5336,5336, - 5336,5336,5336,5336,5336,5336,5336,5336,5336,5336, - 5336,5336,5336,5336,5336,5336,5336,5336,5336,5336, - 5336,5336,5336,5336,5336,5336,5336,5336,5336,5336, - 5336,4301,5336,0,498,4126,0,233,1,0, - 43,5354,0,43,5353,0,1,578,0,1, - 862,0,1,2611,0,1,5354,2,0,1, - 5353,2,0,5575,246,0,5574,246,0,5675, - 246,0,5674,246,0,5602,246,0,5601,246, - 0,5600,246,0,5599,246,0,5598,246,0, - 5597,246,0,5596,246,0,5595,246,0,5613, - 246,0,5612,246,0,5611,246,0,5610,246, - 0,5609,246,0,5608,246,0,5607,246,0, - 5606,246,0,5605,246,0,5604,246,0,5603, - 246,0,43,246,5354,0,43,246,5353,0, - 5378,246,0,1344,386,0,54,5354,0,54, - 5353,0,43,1,5354,2,0,43,1,5353, - 2,0,5378,1,0,1,5667,0,1,1683, - 0,1344,33,0,437,1725,0,451,1767,0, - 5354,54,0,5353,54,0,1809,320,0,43, - 5354,2,0,43,5353,2,0,39,37,0, - 1,441,0,455,1435,0,454,1477,0,233, - 225,0,498,1597,0,5378,233,1,0,43, - 233,1,0,233,414,0,41,5354,0,41, - 5353,0,49,5376,0,49,41,0,1,2538, - 0,1,5613,0,1,5612,0,1,5611,0, - 1,5610,0,1,5609,0,1,5608,0,1, - 5607,0,1,5606,0,1,5605,0,1,5604, - 0,1,5603,0,43,1,5354,0,43,1, - 5353,0,637,1,0,1,2957,0,1,3178, - 0,233,224,0,5346,403,0,5345,403,0, - 233,413,0,30,516,0,42,5354,0,42, - 5353,0,2459,132,0,5344,1,0,5667,442, - 0,1683,442,0,5376,51,0,51,41,0, - 5342,1,0,5341,1,0,1344,45,0,3275, - 97,0,36,38,0,43,862,0,233,1, - 3227,0,5346,233,0,5345,233,0,43,1, - 0,242,3393,0,387,36,0,36,387,0, - 386,33,0,33,386,0,2459,134,0,2459, - 133,0,3524,233,0,53,41,0,1,98, - 0,41,53,0,8,10,0,41,5354,2, - 0,41,5353,2,0,5354,40,0,5353,40, - 0,5667,101,0,1683,101,0,39,79,0, - 283,4150,0,191,3411,0 + 132,132,129,129,110,110,76,63,85,158, + 158,111,111,189,189,189,133,133,123,123, + 190,190,881,39,2565,2547,1283,4613,34,903, + 31,35,868,30,32,2522,29,27,56,1839, + 112,82,83,114,1006,1848,1856,1855,1881,1863, + 1897,1890,1923,159,1898,30,1932,1939,149,278, + 1356,1306,164,150,226,4560,1133,1681,39,816, + 36,1166,382,34,903,340,35,868,2482,39, + 816,36,237,4680,34,903,31,35,868,30, + 32,1821,29,27,56,1839,112,82,83,114, + 1548,1848,1856,1855,1881,1863,1897,3121,240,235, + 236,252,604,2237,70,39,450,76,4605,4593, + 2847,621,279,321,2435,323,972,39,2192,47, + 1083,686,46,903,316,1981,4498,247,250,253, + 256,2543,1063,2561,2425,39,816,36,640,4680, + 34,903,31,35,868,30,32,1821,29,27, + 56,1839,92,82,83,2229,1283,2577,1179,2894, + 3148,3253,4361,1549,39,816,36,2512,4680,34, + 903,31,35,868,30,32,1821,29,27,56, + 1839,112,82,83,114,344,1848,1856,1855,1881, + 1863,1897,1890,1923,306,1898,1520,1932,1939,149, + 2238,3632,2604,514,150,3632,3325,1859,39,282, + 390,424,423,39,813,387,1982,515,1549,39, + 816,36,2512,4680,34,903,31,35,868,30, + 32,1821,29,27,56,1839,112,82,83,114, + 344,1848,1856,1855,1881,1863,1897,1890,1923,449, + 1898,334,1932,1939,149,334,1303,914,514,150, + 1644,3325,70,39,284,444,427,3139,353,443, + 1965,1989,515,510,1646,39,816,36,3358,4625, + 34,903,31,35,868,63,32,676,347,2825, + 2761,350,1713,910,495,1940,1098,1549,39,816, + 36,2512,4680,34,903,31,35,868,30,32, + 1821,29,27,56,1839,112,82,83,114,344, + 1848,1856,1855,1881,1863,1897,1890,1923,510,1898, + 943,1932,1939,149,334,39,284,514,150,4696, + 3325,423,1428,1396,38,1921,1989,2026,1187,4192, + 1940,515,1823,39,816,36,2512,4680,34,903, + 31,35,868,30,32,1821,29,27,56,1839, + 112,82,83,114,344,1848,1856,1855,1881,1863, + 1897,1890,1923,1419,1898,64,1932,1939,149,3516, + 2576,686,514,150,2139,3325,4506,337,423,39, + 813,387,423,39,2277,1976,515,510,423,39, + 287,67,382,1719,39,816,36,1202,4625,34, + 903,31,35,868,62,32,2055,330,336,1940, + 1049,1618,39,816,36,428,4680,34,903,31, + 35,868,30,32,1821,29,27,56,1839,112, + 82,83,114,377,1848,1856,1855,1881,1863,1897, + 1890,1923,511,1898,1881,1932,1939,149,1259,64, + 64,380,150,4419,4428,423,39,813,387,1691, + 39,816,36,3003,4680,34,903,31,35,868, + 30,32,1821,29,27,56,1839,112,82,83, + 114,383,1848,1856,1855,1881,1863,1897,1890,1923, + 1467,1898,55,1932,1939,149,435,52,2591,380, + 150,2482,39,816,36,1296,4680,34,903,31, + 35,868,30,32,1821,29,27,56,1839,112, + 82,83,114,1303,1848,1856,1855,1881,2880,381, + 66,375,1950,39,816,36,384,4680,34,903, + 31,35,868,30,32,1821,29,27,56,1839, + 112,82,83,114,324,1848,1856,1855,1881,1863, + 1897,1890,1923,911,1898,1934,1932,1939,149,1008, + 1167,296,380,150,423,39,813,387,423,39, + 1396,281,1283,2888,385,423,39,813,387,2130, + 39,816,36,3074,4680,34,903,31,35,868, + 30,32,1821,29,27,56,1839,112,82,83, + 114,278,1848,1856,1855,1881,1863,1897,1890,1923, + 305,1898,431,1932,1939,149,1533,1425,1283,164, + 150,3632,440,1208,1210,2130,39,816,36,1278, + 4680,34,903,31,35,868,30,32,1821,29, + 27,56,1839,112,82,83,114,378,1848,1856, + 1855,1881,1863,1897,1890,1923,302,1898,2237,1932, + 1939,149,1105,4605,280,374,150,2130,39,816, + 36,333,4680,34,903,31,35,868,30,32, + 1821,29,27,56,1839,112,82,83,114,237, + 1848,1856,1855,1881,1863,1897,1890,1923,862,1898, + 64,1932,1939,149,622,3280,1291,374,150,1533, + 2621,1184,39,285,3632,249,235,236,2130,39, + 816,36,2229,4680,34,903,31,35,868,30, + 32,1821,29,27,56,1839,112,82,83,114, + 416,1848,1856,1855,1881,1863,1897,1890,1923,373, + 1898,64,1932,1939,149,2520,2015,2604,374,150, + 1892,39,816,36,333,4680,34,903,31,35, + 868,30,32,1821,29,27,56,1839,112,82, + 83,114,2748,1848,1856,1855,1881,1863,1897,1890, + 1923,372,1898,64,1932,2007,170,683,720,1754, + 39,816,36,315,4680,34,903,31,35,868, + 30,32,1821,29,27,56,1839,112,82,83, + 114,426,1848,1856,1855,1881,1863,1897,1890,1923, + 206,1898,2639,1932,1939,149,2597,1587,329,148, + 150,1728,370,2190,2187,2724,1514,2130,39,816, + 36,1560,4680,34,903,31,35,868,30,32, + 1821,29,27,56,1839,112,82,83,114,2139, + 1848,1856,1855,1881,1863,1897,1890,1923,1154,1898, + 1533,1932,1939,149,1982,3632,992,161,150,2130, + 39,816,36,911,4680,34,903,31,35,868, + 30,32,1821,29,27,56,1839,112,82,83, + 114,188,1848,1856,1855,1881,1863,1897,1890,1923, + 2108,1898,1533,1932,1939,149,1982,3632,3474,160, + 150,2130,39,816,36,333,4680,34,903,31, + 35,868,30,32,1821,29,27,56,1839,112, + 82,83,114,2395,1848,1856,1855,1881,1863,1897, + 1890,1923,457,1898,64,1932,1939,149,2789,716, + 1880,159,150,2130,39,816,36,333,4680,34, + 903,31,35,868,30,32,1821,29,27,56, + 1839,112,82,83,114,2139,1848,1856,1855,1881, + 1863,1897,1890,1923,456,1898,99,1932,1939,149, + 1982,3765,453,158,150,2130,39,816,36,2550, + 4680,34,903,31,35,868,30,32,1821,29, + 27,56,1839,112,82,83,114,856,1848,1856, + 1855,1881,1863,1897,1890,1923,1766,1898,1303,1932, + 1939,149,423,1688,522,157,150,2130,39,816, + 36,1543,4680,34,903,31,35,868,30,32, + 1821,29,27,56,1839,112,82,83,114,494, + 1848,1856,1855,1881,1863,1897,1890,1923,328,1898, + 1303,1932,1939,149,423,39,3573,156,150,2130, + 39,816,36,2604,4680,34,903,31,35,868, + 30,32,1821,29,27,56,1839,112,82,83, + 114,379,1848,1856,1855,1881,1863,1897,1890,1923, + 520,1898,64,1932,1939,149,850,418,1560,155, + 150,2130,39,816,36,1659,4680,34,903,31, + 35,868,30,32,1821,29,27,56,1839,112, + 82,83,114,2207,1848,1856,1855,1881,1863,1897, + 1890,1923,291,1898,64,1932,1939,149,738,423, + 3670,154,150,2130,39,816,36,1338,4680,34, + 903,31,35,868,30,32,1821,29,27,56, + 1839,112,82,83,114,2139,1848,1856,1855,1881, + 1863,1897,1890,1923,520,1898,64,1932,1939,149, + 817,423,3528,153,150,2130,39,816,36,1835, + 4680,34,903,31,35,868,30,32,1821,29, + 27,56,1839,112,82,83,114,1904,1848,1856, + 1855,1881,1863,1897,1890,1923,1933,1898,64,1932, + 1939,149,3062,2223,521,152,150,2130,39,816, + 36,1501,4680,34,903,31,35,868,30,32, + 1821,29,27,56,1839,112,82,83,114,1959, + 1848,1856,1855,1881,1863,1897,1890,1923,1834,1898, + 64,1932,1939,149,4326,1069,158,151,150,2130, + 39,816,36,993,4680,34,903,31,35,868, + 30,32,1821,29,27,56,1839,112,82,83, + 114,29,1848,1856,1855,1881,1863,1897,1890,1923, + 504,1898,64,1932,1939,149,3549,680,1585,165, + 150,2130,39,816,36,2375,4680,34,903,31, + 35,868,30,32,1821,29,27,56,1839,112, + 82,83,114,1949,1848,1856,1855,1881,1863,1897, + 1890,1923,2075,1898,64,1932,1939,149,3602,1081, + 1750,146,150,2363,39,816,36,382,4680,34, + 903,31,35,868,30,32,1821,29,27,56, + 1839,112,82,83,114,2158,1848,1856,1855,1881, + 1863,1897,1890,1923,1655,1898,64,1932,1939,149, + 2814,851,587,195,150,2482,39,816,36,1862, + 4680,34,903,31,35,868,30,32,1821,29, + 27,56,1839,112,82,83,114,1513,1848,1856, + 1855,1881,1863,1897,1890,1923,519,1898,3041,1932, + 2007,170,2482,39,816,36,2210,4680,34,903, + 31,35,868,30,32,1821,29,27,56,1839, + 112,82,83,114,300,1848,1856,1855,1881,1863, + 1897,1890,1923,326,1898,2252,1932,2007,170,1782, + 39,816,36,1569,4704,34,903,31,35,868, + 65,32,2482,39,816,36,295,4680,34,903, + 31,35,868,30,32,1821,29,27,56,1839, + 112,82,83,114,76,1848,1856,1855,1881,1863, + 1897,1890,1923,1445,1898,2222,1932,2007,170,2482, + 39,816,36,420,4680,34,903,31,35,868, + 30,32,1821,29,27,56,1839,112,82,83, + 114,941,1848,1856,1855,1881,1863,1897,1890,1923, + 2599,1898,2225,1932,2007,170,1782,39,816,36, + 1303,4704,34,903,31,35,868,64,32,2482, + 39,816,36,3523,4680,34,903,31,35,868, + 30,32,1821,29,27,56,1839,112,82,83, + 114,3071,1848,1856,1855,1881,1863,1897,1890,1923, + 2274,1898,2372,1932,2007,170,2539,39,816,36, + 419,4680,34,903,31,35,868,30,32,1821, + 29,27,56,1839,112,82,83,114,1273,1848, + 1856,1855,1881,1863,1897,1890,1923,1982,1898,2332, + 1932,2007,170,1151,39,816,36,2049,2336,34, + 903,1168,35,868,1655,2391,2482,39,816,36, + 422,4680,34,903,31,35,868,30,32,1821, + 29,27,56,1839,112,82,83,114,1655,1848, + 1856,1855,1881,1863,1897,1890,1923,1561,1898,94, + 3143,2899,108,2482,39,816,36,3349,4680,34, + 903,31,35,868,30,32,1821,29,27,56, + 1839,112,82,83,114,4103,1848,1856,1855,1881, + 1863,1897,1890,1923,389,3133,2482,39,816,36, + 1303,4680,34,903,31,35,868,30,32,1821, + 29,27,56,1839,112,82,83,114,388,1848, + 1856,1855,1881,1863,1897,1890,2910,2482,39,816, + 36,4081,4680,34,903,31,35,868,30,32, + 1821,29,27,56,1839,112,82,83,114,2393, + 1848,1856,1855,1881,1863,2866,2482,39,816,36, + 1147,4680,34,903,31,35,868,30,32,1821, + 29,27,56,1839,112,82,83,114,1101,1848, + 1856,1855,1881,2887,2482,39,816,36,2375,4680, + 34,903,31,35,868,30,32,1821,29,27, + 56,1839,112,82,83,114,2282,1848,1856,1855, + 2732,2482,39,816,36,1922,4680,34,903,31, + 35,868,30,32,1821,29,27,56,1839,112, + 82,83,114,1420,1848,1856,1855,2799,2482,39, + 816,36,2398,4680,34,903,31,35,868,30, + 32,1821,29,27,56,1839,112,82,83,114, + 2403,1848,1856,1855,2836,2482,39,816,36,2404, + 4680,34,903,31,35,868,30,32,1821,29, + 27,56,1839,112,82,83,114,327,1848,1856, + 1855,2845,2596,39,813,387,1655,3438,686,519, + 1169,1688,2168,4580,995,242,995,39,816,36, + 1166,3632,34,903,340,35,868,686,423,39, + 813,387,4688,1199,39,1248,1256,2750,4531,278, + 2982,39,816,36,1472,1982,34,903,340,35, + 868,1151,39,816,36,2706,1653,34,903,341, + 35,868,237,1678,2569,430,943,2797,3552,2847, + 55,333,321,2435,323,1174,288,922,48,1611, + 244,2268,64,316,1981,2512,2926,1533,240,235, + 236,1173,3632,2847,1584,352,321,2435,323,4609, + 2013,402,279,344,2512,3117,2035,316,1981,64, + 1129,604,353,951,422,2238,510,247,250,253, + 256,2543,344,57,1382,64,2576,237,640,2698, + 290,1938,345,2825,2761,350,353,309,313,162, + 1250,2237,3476,984,206,3803,2243,2577,1179,2894, + 3148,3253,4361,245,235,236,345,2825,2761,350, + 536,2516,1695,335,336,2961,2482,39,816,36, + 1387,4680,34,903,31,35,868,30,32,1821, + 29,27,56,1839,112,82,83,114,943,1848, + 1856,2846,2482,39,816,36,2247,4680,34,903, + 31,35,868,30,32,1821,29,27,56,1839, + 112,82,83,114,177,1848,1856,2858,532,391, + 424,367,205,1851,39,816,36,100,4704,34, + 903,31,35,868,30,32,234,508,423,39, + 1396,286,1184,39,282,1102,2599,162,2576,2512, + 4141,2334,186,3377,3327,423,39,1396,283,209, + 220,4513,208,217,218,219,221,234,453,423, + 39,813,387,175,3013,39,816,36,3555,252, + 34,903,340,35,868,332,336,439,174,381, + 2573,405,3798,189,173,176,177,178,179,180, + 423,39,1396,3541,604,352,429,406,407,408, + 297,298,1,2765,565,2162,532,423,39,296, + 70,39,450,354,1303,4593,557,2847,686,1655, + 321,2435,323,4658,234,733,1903,423,39,813, + 387,316,1981,2159,1587,162,353,2512,2043,1063, + 186,3377,1008,39,296,28,1280,209,220,4513, + 208,217,218,219,221,2550,345,2825,2761,350, + 1702,175,409,412,55,2961,1394,1979,686,1174, + 2512,582,187,4676,2020,95,174,355,108,604, + 2822,190,173,176,177,178,179,180,234,307, + 2064,1321,39,2380,36,1166,3632,34,903,340, + 35,868,393,424,2396,1470,1169,1688,2512,2512, + 1122,211,220,4513,210,217,218,219,221,1731, + 39,1396,281,502,1790,2999,2550,234,212,214, + 216,297,298,444,237,565,1461,39,394,15, + 1982,1303,213,215,2847,1105,333,321,2435,323, + 211,220,4513,210,217,218,219,221,316,1981, + 252,235,236,500,501,1655,1503,212,214,216, + 297,298,351,1496,565,447,1965,1989,15,2139, + 3117,213,215,1151,39,816,36,392,424,34, + 903,3646,35,868,362,3041,2482,39,816,36, + 13,4680,34,903,31,35,868,30,32,1821, + 29,27,56,1839,112,82,83,114,103,1848, + 2624,1151,39,816,36,1655,290,34,903,44, + 35,868,423,39,296,299,554,2925,377,14, + 863,64,1581,2245,995,1905,2512,423,3620,1396, + 80,64,415,2398,1586,3130,2463,3045,1695,2022, + 39,816,36,1166,2550,34,903,340,35,868, + 2482,39,816,36,3306,4680,34,903,31,35, + 868,30,32,1821,29,27,56,1839,112,82, + 83,114,265,1848,2626,289,532,1072,39,816, + 36,1285,3632,34,903,340,35,868,50,1611, + 943,3041,2847,2116,234,321,2435,323,1259,423, + 39,813,387,2409,382,162,316,1981,2054,64, + 186,3377,361,1129,1173,3296,3061,209,220,4513, + 208,217,218,219,221,353,2150,2103,2105,532, + 2847,175,334,321,2435,323,55,1461,39,394, + 1793,1174,162,2752,319,1981,174,234,2555,1303, + 2576,3525,173,176,177,178,179,180,162,325, + 309,313,1517,186,3377,1461,39,394,237,528, + 209,220,4513,208,217,218,219,221,441,2014, + 75,2035,532,4278,175,532,2420,3517,336,1731, + 39,1396,3621,1387,255,235,236,64,64,174, + 234,4554,4146,3705,182,173,176,177,178,179, + 180,162,587,2194,162,1644,186,3377,64,186, + 3377,2434,1129,209,220,4513,208,217,218,219, + 221,529,64,2810,64,532,532,175,1129,2454, + 1347,39,816,36,2369,3632,34,903,340,35, + 868,1640,174,234,344,201,1283,193,173,176, + 177,178,179,180,162,162,1920,3609,2455,186, + 3377,2834,3704,237,2463,3325,209,220,4513,208, + 217,218,219,221,617,1146,2320,64,532,1430, + 175,3498,2511,2847,301,334,321,2435,323,258, + 235,236,2512,2517,400,174,234,317,1981,1982, + 3702,173,176,177,178,179,180,162,423,39, + 1396,3655,186,3377,77,687,39,813,387,209, + 220,4513,208,217,218,219,221,1283,1811,39, + 816,36,1472,175,34,903,340,35,868,64, + 64,64,1978,1129,532,1129,1129,353,174,4126, + 202,2463,278,198,173,176,177,178,179,180, + 705,1303,344,1283,532,185,1283,345,2825,2761, + 350,1303,162,162,162,166,343,104,3138,3411, + 4133,2847,234,3325,321,2435,323,357,246,39, + 813,387,74,162,3189,316,1981,528,186,3377, + 353,204,59,523,203,209,220,4513,208,217, + 218,219,221,793,64,3576,2518,532,532,175, + 345,2825,2761,350,64,55,2648,78,2408,524, + 1174,3632,1380,2453,174,234,344,2512,3421,192, + 173,176,177,178,179,180,162,162,2465,1114, + 2519,186,3377,2834,1303,344,89,3325,209,220, + 4513,208,217,218,219,221,2840,64,3504,1303, + 2512,3076,175,2290,356,991,3826,1303,2551,64, + 943,3476,64,2512,528,93,2512,174,234,1303, + 1239,2568,200,173,176,177,178,179,180,2853, + 58,344,2196,2512,344,2196,2512,3632,448,2512, + 3632,211,220,4513,210,217,218,219,221,2465, + 3587,234,3325,2574,2550,3325,2026,2550,212,214, + 216,297,298,2426,64,565,2462,64,1129,222, + 2576,3530,213,215,211,220,4513,210,217,218, + 219,221,2934,2576,64,499,2512,333,1129,1303, + 333,212,214,216,297,298,102,162,565,2567, + 2575,2581,222,4155,234,213,215,3827,336,4225, + 1974,2601,423,39,813,387,2140,162,2621,3619, + 96,716,361,4181,3765,361,1283,211,220,4513, + 210,217,218,219,221,2668,3539,2103,2105,3539, + 2103,2105,4225,2839,212,214,216,297,298,55, + 1283,565,4218,2069,1174,222,1520,1129,213,215, + 2482,39,816,36,404,4680,34,903,31,35, + 868,30,32,1821,29,27,56,1839,112,82, + 83,114,1538,2641,2605,64,162,2756,207,3079, + 3619,5332,168,5332,1303,4225,2985,2482,39,816, + 36,5332,4680,34,903,31,35,868,30,32, + 1821,29,27,56,1839,112,82,83,114,5332, + 2656,2482,39,816,36,3824,4680,34,903,31, + 35,868,30,32,1821,29,27,56,1839,112, + 82,83,114,5332,2706,2258,39,816,36,5332, + 3632,34,903,340,35,868,2482,39,816,36, + 5332,4680,34,903,31,35,868,30,32,1821, + 29,27,56,1839,112,82,83,91,1441,39, + 816,36,2911,1283,34,903,340,35,868,1303, + 64,64,5332,1978,1129,1129,1303,1129,2847,5332, + 334,321,2435,323,64,64,2036,64,4135,3569, + 3378,3314,317,1981,1303,64,401,353,5332,3401, + 3825,205,5332,162,162,5332,166,3218,4296,4184, + 2960,2847,5332,5332,318,917,323,347,2825,2761, + 350,2482,1428,816,2218,3271,4680,34,903,31, + 35,868,30,32,1821,29,27,56,1839,112, + 82,83,90,2482,39,816,36,5332,4680,34, + 903,31,35,868,30,32,1821,29,27,56, + 1839,112,82,83,89,2482,39,816,36,3519, + 4680,34,903,31,35,868,30,32,1821,29, + 27,56,1839,112,82,83,88,2482,39,816, + 36,5332,4680,34,903,31,35,868,30,32, + 1821,29,27,56,1839,112,82,83,87,2482, + 39,816,36,627,4680,34,903,31,35,868, + 30,32,1821,29,27,56,1839,112,82,83, + 86,2482,39,816,36,5332,4680,34,903,31, + 35,868,30,32,1821,29,27,56,1839,112, + 82,83,85,2482,39,816,36,5332,4680,34, + 903,31,35,868,30,32,1821,29,27,56, + 1839,112,82,83,84,2304,39,816,36,5332, + 4680,34,903,31,35,868,30,32,1821,29, + 27,56,1839,112,82,83,110,2482,39,816, + 36,5332,4680,34,903,31,35,868,30,32, + 1821,29,27,56,1839,112,82,83,116,2482, + 39,816,36,5332,4680,34,903,31,35,868, + 30,32,1821,29,27,56,1839,112,82,83, + 115,2482,39,816,36,5332,4680,34,903,31, + 35,868,30,32,1821,29,27,56,1839,112, + 82,83,113,2482,39,816,36,1283,4680,34, + 903,31,35,868,30,32,1821,29,27,56, + 1839,112,82,83,111,1229,2088,64,5332,2512, + 532,1129,1303,1303,1978,943,5332,5332,1129,5332, + 5332,423,39,813,387,3673,1581,234,344,1978, + 2512,5332,5332,1129,5332,1303,5332,64,2950,162, + 162,2512,2512,3324,73,194,4266,166,2550,4378, + 211,220,4513,210,217,218,219,221,55,344, + 234,1303,166,1174,1303,932,72,212,214,216, + 297,298,2966,5332,565,2576,2512,5332,516,5332, + 3325,213,215,211,220,4513,210,217,218,219, + 221,2480,71,5332,234,70,5332,1303,1303,5332, + 212,214,216,297,298,2872,5332,565,196,2512, + 3527,517,3835,336,213,215,361,211,220,4513, + 210,217,218,219,221,4262,5332,234,1545,1755, + 3714,2103,2105,5332,212,214,216,297,298,3027, + 5332,565,1303,2512,1303,308,1303,5332,213,215, + 211,220,4513,210,217,218,219,221,1283,1978, + 1978,234,1283,1129,1129,5332,1303,212,214,216, + 297,298,5332,61,565,60,1303,4282,223,5332, + 1015,213,215,4107,211,220,4513,210,217,218, + 219,221,166,166,5332,5332,227,107,5332,5332, + 199,212,214,216,297,298,2159,3463,565,5332, + 2512,526,496,5332,5332,213,215,1681,39,816, + 36,1166,5332,34,903,340,35,868,2550,5332, + 1606,39,2380,36,1166,5332,34,903,340,35, + 868,2663,39,813,387,5332,3438,5332,5332,5332, + 5332,5332,5332,5332,243,4264,4286,5332,1681,39, + 816,36,1166,5332,34,903,340,35,868,5332, + 2847,5332,5332,321,2435,323,5332,5332,278,5332, + 5332,5332,5332,2847,316,1981,321,2435,323,5332, + 5332,5332,1173,5332,5332,5332,502,316,1981,948, + 5332,237,5332,2512,4141,1503,5332,5332,1025,5332, + 5332,2847,2512,4141,321,2435,323,5332,5332,5332, + 5332,234,5332,5332,5332,316,1981,241,235,236, + 234,5332,5332,3631,5332,5332,499,501,310,313, + 5332,279,5332,5332,2573,405,3798,5332,5332,5332, + 5332,5332,5332,2573,405,3798,248,251,254,257, + 2543,406,407,408,297,298,5332,640,565,5332, + 406,407,408,297,298,2131,5332,565,598,39, + 813,387,5332,5332,5332,5332,774,39,813,387, + 5332,416,2398,1332,39,816,36,2526,1587,34, + 903,340,35,868,5332,5332,5332,1587,5332,5332, + 5332,1016,39,813,387,55,5332,5332,5332,5332, + 1174,5332,53,55,5332,5332,409,411,1174,5332, + 53,5332,5332,5332,2160,409,411,5332,2512,2827, + 246,39,813,387,5332,5332,2847,2233,55,318, + 917,323,5332,1174,5332,53,2550,5332,2244,2755, + 1437,39,813,387,5332,5332,5332,2268,2755,5332, + 5332,5332,1261,1455,39,813,387,55,5332,5332, + 5332,5332,1174,5332,53,1455,39,813,387,1455, + 39,813,387,1464,39,813,387,55,5332,5332, + 5332,928,1174,5332,53,774,39,813,387,5332, + 55,5332,5332,5332,5332,1174,5332,53,5332,5332, + 5332,3052,55,5332,502,5332,55,1174,5332,53, + 55,1174,5332,53,732,1174,5332,2944,1455,39, + 813,387,55,5332,5332,5332,918,1174,627,3060, + 1125,5332,5332,5332,1114,5332,1455,39,813,387, + 1220,39,813,387,499,501,3365,5332,423,39, + 813,387,5332,5332,5332,55,423,39,813,387, + 1174,5332,53,5332,423,39,813,387,5332,5332, + 5332,5332,64,55,5332,5332,532,55,1174,2538, + 53,5332,1174,3540,1947,55,5332,64,5332,5332, + 1174,532,3202,55,344,64,5332,2779,1174,532, + 727,55,5332,64,5332,162,1174,2512,1947,344, + 2199,194,5332,5332,2512,4378,5332,344,64,5332, + 162,5332,2512,64,5332,344,194,2512,162,5332, + 4378,5332,344,64,194,5332,5332,2512,4378,5332, + 344,527,5332,5332,5332,344,3325,64,5332,5332, + 5332,2512,5332,3325,5332,344,5332,2489,5332,5332, + 5332,3325,5332,5332,530,5332,3325,5332,5332,344, + 5332,5332,506,5332,3816,5332,3325,504,5332,5332, + 5332,5332,5332,5332,5332,5332,5332,3809,5332,3834, + 3325,5332,5332,5332,5332,5332,5332,4132,5332,5332, + 5332,531,5332,5332,5332,5332,5332,5332,5332,5332, + 5332,5332,5332,5332,5332,5332,5332,5332,5332,5332, + 5332,5332,5332,5332,5332,5332,5332,5332,5332,5332, + 5332,5332,5332,5332,5332,5332,5332,5332,5332,5332, + 5332,5332,5332,5332,5332,5332,5332,5332,5332,5332, + 5332,5332,5332,5332,5332,5332,5332,5332,5332,5332, + 5332,5332,5332,5332,5332,5332,5332,5332,5332,5332, + 5332,5332,5332,5332,5332,5332,5332,5332,5332,5332, + 5332,5332,5332,5332,5332,5332,5332,5332,5332,5332, + 5332,5332,5332,5332,5332,5332,5332,5332,5332,5332, + 4300,5332,0,498,4125,0,233,1,0,43, + 5350,0,43,5349,0,1,577,0,1,861, + 0,1,2610,0,1,5350,2,0,1,5349, + 2,0,5571,246,0,5570,246,0,5671,246, + 0,5670,246,0,5598,246,0,5597,246,0, + 5596,246,0,5595,246,0,5594,246,0,5593, + 246,0,5592,246,0,5591,246,0,5609,246, + 0,5608,246,0,5607,246,0,5606,246,0, + 5605,246,0,5604,246,0,5603,246,0,5602, + 246,0,5601,246,0,5600,246,0,5599,246, + 0,43,246,5350,0,43,246,5349,0,5374, + 246,0,1343,386,0,54,5350,0,54,5349, + 0,43,1,5350,2,0,43,1,5349,2, + 0,5374,1,0,1,5663,0,1,1682,0, + 1343,33,0,437,1724,0,451,1766,0,5350, + 54,0,5349,54,0,1808,320,0,43,5350, + 2,0,43,5349,2,0,39,37,0,1, + 441,0,455,1434,0,454,1476,0,233,225, + 0,498,1596,0,5374,233,1,0,43,233, + 1,0,233,414,0,41,5350,0,41,5349, + 0,49,5372,0,49,41,0,1,2537,0, + 1,5609,0,1,5608,0,1,5607,0,1, + 5606,0,1,5605,0,1,5604,0,1,5603, + 0,1,5602,0,1,5601,0,1,5600,0, + 1,5599,0,43,1,5350,0,43,1,5349, + 0,636,1,0,1,2956,0,1,3177,0, + 233,224,0,5342,403,0,5341,403,0,233, + 413,0,42,5350,0,42,5349,0,2458,132, + 0,5340,1,0,5663,442,0,1682,442,0, + 5372,51,0,51,41,0,5338,1,0,5337, + 1,0,1343,45,0,3274,97,0,36,38, + 0,43,861,0,233,1,3219,0,5342,233, + 0,5341,233,0,43,1,0,242,3392,0, + 387,36,0,36,387,0,386,33,0,33, + 386,0,2458,134,0,2458,133,0,3506,233, + 0,53,41,0,1,98,0,41,53,0, + 8,10,0,41,5350,2,0,41,5349,2, + 0,5350,40,0,5349,40,0,5663,101,0, + 1682,101,0,39,79,0,283,4149,0,191, + 3410,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1090,8 +1090,8 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, 50,51,52,53,54,55,56,57,29,59, - 60,61,62,0,64,65,66,0,68,69, - 0,4,72,6,74,8,76,77,78,79, + 60,61,62,0,64,65,66,67,68,0, + 1,2,72,4,74,0,76,77,78,79, 80,81,82,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, @@ -1099,25 +1099,25 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, 52,53,54,55,56,57,0,59,60,61, - 62,0,64,65,66,4,68,69,88,89, - 72,0,74,0,76,77,78,79,80,81, + 62,76,64,65,66,67,68,0,0,0, + 72,3,74,6,76,77,78,79,80,81, 82,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,0,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, - 54,55,56,57,29,59,60,61,62,76, - 64,65,66,0,68,69,3,0,1,2, - 74,4,76,77,78,79,80,81,82,83, + 54,55,56,57,29,59,60,61,62,0, + 64,65,66,67,68,0,1,2,91,92, + 74,0,76,77,78,79,80,81,82,83, 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,88,89,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 56,57,0,59,60,61,62,0,64,65, - 66,0,68,69,0,1,2,6,74,5, + 56,57,71,59,60,61,62,0,64,65, + 66,67,68,0,1,2,0,4,74,3, 76,77,78,79,80,81,82,83,84,85, 86,87,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, @@ -1125,281 +1125,280 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 0,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,54,55,56,57, - 29,59,60,61,62,0,64,65,66,4, - 68,69,91,92,97,98,74,0,76,77, + 29,59,60,61,62,0,64,65,66,67, + 68,0,0,1,2,10,74,6,76,77, 78,79,80,81,82,83,84,85,86,87, 0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,88,89, 30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,56,57,71,59, - 60,61,62,0,64,65,66,0,68,69, - 3,0,1,2,74,4,76,77,78,79, + 50,51,52,53,54,55,56,57,0,59, + 60,61,62,0,64,65,66,67,68,0, + 0,8,91,92,74,6,76,77,78,79, 80,81,82,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,0,30,31, + 22,23,24,25,26,27,0,59,30,31, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, 52,53,54,55,56,57,0,59,60,61, - 62,5,64,65,66,0,68,69,0,1, - 2,6,74,100,76,77,78,79,80,81, + 62,5,64,65,66,67,68,0,1,2, + 91,92,74,0,76,77,78,79,80,81, 82,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,88,89,30,31,32,33, 34,35,36,37,38,39,40,41,42,43, 44,45,46,47,48,49,50,51,52,53, - 54,55,56,57,0,59,60,61,62,0, - 64,65,66,0,68,69,91,92,0,6, - 74,3,76,77,78,79,80,81,82,83, + 54,55,56,57,71,59,60,61,62,0, + 64,65,66,67,68,0,0,1,2,4, + 74,5,76,77,78,79,80,81,82,83, 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,58,0,30,31,32,33,34,35, + 26,27,0,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,54,55, 56,57,0,59,60,61,62,0,64,65, - 66,4,68,69,91,92,97,98,74,0, + 66,67,68,0,1,2,97,98,74,0, 76,77,78,79,80,81,82,83,84,85, 86,87,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, - 58,0,30,31,32,33,34,35,36,37, + 88,89,30,31,32,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, 48,49,50,51,52,53,54,55,56,57, - 0,59,60,61,62,0,64,65,66,0, - 68,69,0,1,2,10,74,5,76,77, + 0,59,60,61,62,0,64,65,66,67, + 68,0,0,1,2,4,74,5,76,77, 78,79,80,81,82,83,84,85,86,87, - 0,1,2,3,4,5,6,7,8,0, + 0,1,2,3,4,5,6,7,8,28, 10,29,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,58,0, 30,31,32,33,34,35,36,37,38,39, - 40,41,42,43,44,45,67,47,48,49, + 40,41,42,43,44,45,71,47,48,49, 50,51,52,53,54,55,56,28,0,59, - 0,61,0,3,64,65,66,0,1,2, + 0,61,0,0,64,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,1,2,32,33,29,30,7,32, 33,0,35,36,37,38,39,40,41,42, - 101,0,0,46,0,1,2,3,4,5, - 6,7,8,0,57,0,59,0,1,2, - 70,64,65,66,9,0,1,2,71,72, - 28,74,75,0,0,1,2,3,4,5, + 0,0,0,46,0,1,2,3,4,5, + 6,7,8,63,57,0,59,0,1,2, + 70,64,65,66,0,0,1,2,71,72, + 28,74,75,9,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,58, 103,104,105,29,30,63,32,33,10,35, - 36,37,38,39,40,41,42,62,0,62, + 36,37,38,39,40,41,42,77,0,62, 46,0,1,2,3,4,5,6,7,8, - 0,57,0,59,0,93,94,0,64,65, - 66,9,0,11,46,71,72,0,74,75, - 3,0,1,2,3,4,5,6,7,8, + 0,57,0,59,70,93,94,73,64,65, + 66,9,24,25,46,71,72,0,74,75, + 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,122,0,103,104,105, + 19,20,21,22,23,28,121,103,104,105, 29,30,0,32,33,0,35,36,37,38, - 39,40,41,42,9,0,11,46,3,67, - 70,67,0,0,9,58,3,31,57,6, - 59,8,9,0,11,64,65,66,0,1, - 2,0,71,72,0,74,75,24,25,26, - 27,28,102,0,1,2,99,107,108,109, + 39,40,41,42,62,0,0,46,3,69, + 0,1,2,0,9,5,3,7,57,6, + 59,8,9,31,11,64,65,66,0,1, + 2,71,71,72,28,74,75,24,25,26, + 27,28,102,0,1,2,0,107,108,109, 110,111,112,113,114,115,116,117,0,1, 2,0,4,58,103,104,105,0,63,0, - 58,58,67,0,1,2,63,4,73,6, - 67,8,9,70,71,72,73,29,0,1, - 2,3,4,5,6,7,8,9,31,11, + 3,58,29,4,28,70,63,71,73,0, + 1,2,69,70,71,72,73,29,0,1, + 2,3,4,5,6,7,8,9,0,11, 12,88,89,90,91,92,93,94,95,96, 97,98,99,100,101,102,28,29,0,106, 107,108,109,110,111,112,113,114,115,116, - 117,118,0,120,46,3,102,0,6,70, - 8,9,0,11,121,57,73,0,60,12, - 119,117,10,0,1,2,24,25,26,27, - 28,0,0,75,103,104,105,30,95,32, - 33,29,35,36,37,38,39,40,41,42, - 0,1,2,3,4,5,6,7,8,28, - 58,0,1,2,3,63,5,0,7,67, - 3,59,70,71,72,73,0,1,2,3, - 4,5,6,7,8,0,1,2,71,4, + 117,118,0,120,46,3,69,0,6,0, + 8,9,0,11,0,57,67,68,60,12, + 0,9,8,11,4,0,24,25,26,27, + 28,63,0,75,103,104,105,30,70,32, + 33,9,35,36,37,38,39,40,41,42, + 0,1,2,3,4,5,6,7,8,71, + 58,0,1,2,3,63,5,0,7,0, + 3,69,70,71,72,73,0,1,2,3, + 4,5,6,7,8,0,1,2,63,4, 88,89,90,91,92,93,94,95,96,97, - 98,99,100,101,102,0,1,2,106,107, + 98,99,100,101,102,73,97,98,106,107, 108,109,110,111,112,113,114,115,116,117, 118,71,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,62,0,0, - 1,2,29,30,0,32,33,3,35,36, + 1,2,29,30,0,32,33,0,35,36, 37,38,39,40,41,42,0,1,2,46, 0,1,2,3,0,5,28,7,29,9, 57,11,59,60,0,1,2,64,65,66, - 0,0,0,1,2,29,0,74,75,0, + 0,1,2,0,1,2,0,74,75,0, 1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17,18,19,20, - 21,22,23,0,28,0,1,2,29,30, - 0,32,33,0,35,36,37,38,39,40, - 41,42,9,0,121,46,0,1,2,0, + 21,22,23,69,28,0,1,2,29,30, + 0,32,33,3,35,36,37,38,39,40, + 41,42,0,0,121,46,0,1,2,0, 1,2,3,4,29,6,57,8,59,60, - 68,69,0,64,65,66,4,24,25,95, - 0,1,2,74,75,5,0,7,0,1, + 67,68,0,64,65,66,4,0,6,95, + 8,28,0,74,75,29,4,0,0,1, 2,3,4,5,6,7,8,0,10,0, - 28,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,73,58,0,31, - 119,3,34,90,68,69,0,1,2,96, - 121,43,44,45,0,47,48,49,50,51, + 0,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,0,58,31,31, + 0,0,34,0,0,0,0,4,28,9, + 121,43,44,45,9,47,48,49,50,51, 52,53,54,55,56,0,1,2,3,61, - 5,63,7,67,0,29,68,69,0,1, - 2,3,4,5,6,7,8,9,10,0, - 71,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,1,2,31, - 4,5,34,7,0,0,0,1,2,0, - 6,43,44,45,9,47,48,49,50,51, - 52,53,54,55,56,29,71,63,0,61, - 62,0,1,2,3,29,5,9,7,11, - 72,0,1,2,3,4,5,6,7,8, + 5,63,7,30,102,67,68,0,1,2, + 3,4,5,6,7,8,9,10,69,117, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,0,1,2,31,4, + 5,34,7,73,0,70,70,72,0,122, + 43,44,45,9,47,48,49,50,51,52, + 53,54,55,56,29,95,71,0,61,62, + 0,1,2,3,100,5,9,7,11,72, + 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,0,1, + 2,31,4,5,34,7,72,0,70,28, + 0,1,2,43,44,45,9,47,48,49, + 50,51,52,53,54,55,56,29,0,0, + 0,61,62,0,1,2,3,4,5,6, + 7,8,72,10,63,0,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,0,1,2,31,4,5,34,7,0, + 1,2,0,28,93,94,43,44,45,72, + 47,48,49,50,51,52,53,54,55,56, + 0,1,2,3,61,5,0,7,29,70, + 67,68,0,1,2,3,4,5,6,7, + 8,0,10,0,0,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 0,1,2,31,4,5,34,7,0,1, + 2,0,28,71,3,43,44,45,58,47, + 48,49,50,51,52,53,54,55,56,0, + 0,1,2,61,4,6,6,29,8,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,26,27,0, - 1,2,31,4,5,34,7,0,73,70, - 28,0,1,2,43,44,45,0,47,48, - 49,50,51,52,53,54,55,56,29,0, - 95,0,61,62,0,1,2,3,4,5, - 6,7,8,72,10,63,0,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,0,1,2,31,4,5,34,7, - 0,1,2,0,28,93,94,43,44,45, - 0,47,48,49,50,51,52,53,54,55, - 56,62,0,1,2,61,4,0,6,29, - 8,28,68,69,0,1,2,3,4,5, - 6,7,8,0,10,0,3,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,0,1,2,31,4,5,34,7, - 0,0,62,0,0,1,2,43,44,45, - 9,47,48,49,50,51,52,53,54,55, - 56,0,0,1,2,61,4,70,6,0, - 8,58,68,69,0,1,2,3,4,5, - 6,7,8,9,10,24,25,13,14,15, - 16,17,18,19,20,21,22,23,24,25, - 26,27,0,0,0,31,63,0,34,0, - 67,9,9,72,11,0,9,43,44,45, - 0,47,48,49,50,51,52,53,54,55, - 56,62,0,1,2,3,4,5,6,7, - 8,0,10,28,3,13,14,15,16,17, + 0,0,31,90,3,34,24,25,9,96, + 11,28,0,0,43,44,45,0,47,48, + 49,50,51,52,53,54,55,56,0,0, + 1,2,3,4,5,6,7,8,0,10, + 28,3,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,0,0,58, + 31,0,62,34,26,27,9,0,0,70, + 9,3,43,44,45,62,47,48,49,50, + 51,52,53,54,55,56,28,0,0,118, + 61,62,0,0,0,3,58,5,6,0, + 8,0,1,2,3,0,5,90,7,4, + 9,12,11,96,0,0,24,25,26,27, + 28,63,0,9,9,11,34,99,0,30, + 73,32,33,0,35,36,37,38,39,40, + 41,42,0,0,106,12,24,25,0,0, + 58,93,94,4,0,63,62,9,120,67, + 68,69,70,30,71,32,33,0,35,36, + 37,38,39,40,41,42,9,28,11,118, + 88,89,90,91,92,93,94,0,73,97, + 98,99,100,101,102,0,0,69,106,107, + 108,109,110,111,112,113,114,115,116,0, + 1,2,3,4,5,6,7,8,0,10, + 0,73,13,14,15,16,17,18,19,20, + 21,22,23,24,25,26,27,0,0,0, + 31,0,99,34,3,58,0,0,10,10, + 3,31,43,44,45,101,47,48,49,50, + 51,52,53,54,55,56,0,29,29,3, + 61,5,6,0,8,0,1,2,0,4, + 62,6,0,8,9,12,0,9,0,0, + 24,25,26,27,28,100,0,59,59,58, + 34,0,0,30,0,32,33,70,35,36, + 37,38,39,40,41,42,0,0,1,2, + 4,4,0,6,58,8,0,0,0,63, + 28,0,28,67,68,69,70,0,1,2, + 3,4,5,6,7,8,30,0,73,63, + 3,73,63,0,88,89,90,91,92,93, + 94,0,0,97,98,99,100,101,102,0, + 95,70,106,107,108,109,110,111,112,113, + 114,115,116,0,1,2,3,4,5,6, + 7,8,0,10,63,58,13,14,15,16, + 17,18,19,20,21,22,23,24,25,26, + 27,0,90,0,31,0,90,34,96,103, + 104,105,96,70,63,0,43,44,45,4, + 47,48,49,50,51,52,53,54,55,56, + 71,58,0,1,2,3,4,5,6,7, + 8,0,10,28,0,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, - 0,0,0,31,0,0,34,26,27,67, - 0,62,0,0,72,43,44,45,8,47, - 48,49,50,51,52,53,54,55,56,28, - 28,0,118,61,62,0,24,25,3,58, - 5,6,0,8,0,1,2,3,0,5, - 90,7,0,9,12,11,96,9,0,24, - 25,26,27,28,63,118,0,63,63,34, - 4,67,30,71,32,33,0,35,36,37, - 38,39,40,41,42,0,28,106,12,4, - 0,0,61,58,93,94,30,0,63,9, - 9,120,67,68,69,70,30,0,32,33, - 0,35,36,37,38,39,40,41,42,9, - 72,11,0,88,89,90,91,92,93,94, - 0,0,97,98,99,100,101,102,0,1, - 2,106,107,108,109,110,111,112,113,114, - 115,116,0,1,2,3,4,5,6,7, - 8,0,10,73,73,13,14,15,16,17, - 18,19,20,21,22,23,24,25,26,27, - 0,0,0,31,77,63,34,0,1,2, - 3,10,5,63,7,43,44,45,0,47, + 0,58,0,31,0,0,34,0,0,28, + 0,70,0,0,69,43,44,45,0,47, 48,49,50,51,52,53,54,55,56,0, - 29,0,3,61,5,6,0,8,0,1, - 2,90,4,0,6,0,8,96,12,0, - 0,70,9,24,25,26,27,28,0,28, - 59,0,0,34,0,58,30,0,32,33, - 9,35,36,37,38,39,40,41,42,0, - 0,1,2,4,4,0,6,58,8,0, - 28,0,63,4,3,28,67,68,69,70, - 0,1,2,3,4,5,6,7,8,30, - 67,0,67,95,0,0,73,88,89,90, - 91,92,93,94,9,67,97,98,99,100, - 101,102,0,0,73,106,107,108,109,110, - 111,112,113,114,115,116,0,1,2,3, - 4,5,6,7,8,0,10,0,58,13, - 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,63,90,0,31,67,0, - 34,96,103,104,105,28,0,0,73,43, - 44,45,0,47,48,49,50,51,52,53, - 54,55,56,70,58,0,1,2,3,4, - 5,6,7,8,28,10,0,0,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,0,0,0,31,0,4,34, - 0,4,0,67,28,0,67,0,43,44, - 45,0,47,48,49,50,51,52,53,54, - 55,56,28,71,0,28,61,0,1,2, - 3,4,5,6,7,8,0,10,0,3, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,0,0,0,31,0, - 0,34,0,70,0,70,59,3,63,0, - 43,44,45,71,47,48,49,50,51,52, - 53,54,55,56,0,1,2,3,4,5, - 6,7,8,0,10,95,3,13,14,15, + 0,0,3,61,0,1,2,3,4,5, + 6,7,8,0,10,0,3,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,101,0,0,31,0,3,34,63, - 63,8,63,99,0,0,71,43,44,45, - 70,47,48,49,50,51,52,53,54,55, + 26,27,0,0,0,31,3,3,34,69, + 63,69,0,69,0,63,63,43,44,45, + 0,47,48,49,50,51,52,53,54,55, 56,0,1,2,3,4,5,6,7,8, - 0,10,0,3,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,100, + 95,10,0,119,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,101, 0,0,31,3,3,34,0,0,0,3, - 9,3,58,0,43,44,45,71,47,48, + 3,3,58,61,43,44,45,0,47,48, 49,50,51,52,53,54,55,56,0,1, - 2,0,4,0,3,28,3,0,10,0, - 12,13,14,15,16,17,18,19,20,21, - 22,23,0,71,0,3,0,3,30,58, - 32,33,0,35,36,37,38,39,40,41, - 42,0,0,0,73,3,3,0,0,0, - 0,4,3,70,0,0,0,59,3,0, - 28,0,64,65,66,0,1,2,0,4, - 0,0,31,0,0,10,0,12,13,14, - 15,16,17,18,19,20,21,22,23,0, - 0,0,0,0,0,30,70,32,33,0, + 2,3,4,5,6,7,8,95,10,0, + 0,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,0,0,0,31, + 3,3,34,0,0,0,3,9,3,0, + 0,43,44,45,4,47,48,49,50,51, + 52,53,54,55,56,0,1,2,0,4, + 0,3,28,0,0,10,0,12,13,14, + 15,16,17,18,19,20,21,22,23,69, + 0,0,0,3,58,30,58,32,33,0, 35,36,37,38,39,40,41,42,0,1, - 2,3,4,5,6,7,8,9,0,11, - 12,0,0,0,59,0,119,0,0,64, - 65,66,0,0,0,0,28,0,30,0, - 32,33,0,35,36,37,38,39,40,41, - 42,0,0,1,2,3,4,5,6,7, - 8,9,0,11,12,0,58,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,73,30,0,32,33,0,35,36,37, - 38,39,40,41,42,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 58,12,13,14,15,16,17,18,19,20, - 21,22,23,0,0,73,0,0,0,30, - 0,32,33,0,35,36,37,38,39,40, - 41,42,0,1,2,3,4,5,6,7, - 8,9,0,11,12,0,1,2,3,4, + 2,73,4,0,6,0,8,0,1,2, + 28,4,0,6,59,8,0,0,0,64, + 65,66,0,1,2,0,4,0,119,69, + 3,0,10,69,12,13,14,15,16,17, + 18,19,20,21,22,23,0,0,0,0, + 0,0,30,0,32,33,0,35,36,37, + 38,39,40,41,42,0,1,2,3,4, 5,6,7,8,9,0,11,12,0,0, - 0,29,0,0,0,1,2,3,4,5, - 6,7,8,9,29,11,12,0,46,0, - 0,0,0,0,0,0,0,0,0,57, - 0,46,60,29,0,0,0,0,0,0, - 0,0,57,0,72,60,0,75,0,0, - 46,0,0,0,0,0,0,72,0,0, - 75,57,0,0,60,0,0,1,2,3, - 4,5,6,7,8,9,72,11,12,75, - 0,0,0,1,2,3,4,5,6,7, - 8,9,0,11,12,29,0,0,0,1, - 2,3,4,5,6,7,8,9,0,11, - 12,29,46,0,0,1,2,3,4,5, - 6,7,8,57,0,0,60,29,46,0, - 0,0,0,0,0,0,0,0,72,57, - 0,75,60,0,46,0,1,2,3,0, - 5,0,7,0,9,57,0,75,60,0, + 0,59,119,0,0,0,64,65,66,0, + 0,0,0,28,0,30,0,32,33,0, + 35,36,37,38,39,40,41,42,0,0, 1,2,3,4,5,6,7,8,9,0, - 11,12,58,75,0,0,0,0,0,0, - 0,0,0,0,70,0,0,0,29,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,58,0,46,0,0,0,0, - 0,0,0,0,0,0,57,0,73,60, + 11,12,0,58,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,73,30, + 0,32,33,0,35,36,37,38,39,40, + 41,42,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,58,12,13, + 14,15,16,17,18,19,20,21,22,23, + 0,0,73,0,0,0,30,0,32,33, + 0,35,36,37,38,39,40,41,42,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,29,0, + 0,0,1,2,3,4,5,6,7,8, + 9,29,11,12,0,46,0,0,0,0, + 0,0,0,0,0,0,57,0,46,60, + 29,0,0,0,0,0,0,0,0,57, + 0,72,60,0,75,0,0,46,0,0, + 0,0,0,0,72,0,0,75,57,0, + 0,60,0,0,1,2,3,4,5,6, + 7,8,9,72,11,12,75,0,0,0, + 1,2,3,4,5,6,7,8,9,0, + 11,12,29,0,0,0,1,2,3,4, + 5,6,7,8,9,0,11,12,29,46, + 0,0,1,2,3,4,5,6,7,8, + 57,0,0,60,29,46,0,0,0,0, + 0,0,0,0,0,72,57,0,75,60, + 0,46,0,1,2,3,0,5,0,7, + 0,9,57,0,75,60,0,1,2,3, + 4,5,6,7,8,9,0,11,12,58, + 75,0,0,0,0,0,0,0,0,0, + 69,0,0,0,0,29,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,75,0,0,0,0,0, + 58,0,46,0,0,0,0,0,0,0, + 0,0,0,57,0,73,60,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,0,0,0,0,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; @@ -1407,317 +1406,317 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface TermAction { public final static char termAction[] = {0, - 5336,5258,4947,4947,4947,4947,4947,4947,4947,5292, - 1,5265,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,127,5336, + 5332,5254,4946,4946,4946,4946,4946,4946,4946,5288, + 1,5261,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,127,5332, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1772,1,1,1, - 1,1,1,1,1,1,1,951,1031,1, - 564,1,1392,1,1,1,1,43,1,1, - 131,5378,5343,1683,5517,5667,1420,3333,3417,2073, - 3414,3220,3113,3309,1730,3280,2617,3262,8,5304, - 5304,5304,5304,5304,5304,5304,5304,5304,5304,5304, - 5304,5304,5304,5304,5304,5304,5304,5304,5304,5304, - 5304,5304,5304,5304,5304,5304,2677,2703,5304,5304, - 5304,5304,5304,5304,5304,5304,5304,5304,5304,5304, - 5304,5304,5304,5304,5304,5304,5304,5304,5304,5304, - 5304,5304,5304,5304,5304,5304,5336,5304,5304,5304, - 5304,43,5304,5304,5304,5378,5304,5304,2677,2703, - 5304,5336,5304,1,5304,5304,5304,5304,5304,5304, - 5304,5304,5304,5304,5304,5304,5336,5258,4947,4947, - 4947,4947,4947,4947,4947,5262,1,5265,1,1, + 1,1,1,1,1,1,1771,1,1,1, + 1,1,1,1,1,1,1,950,1030,1, + 563,1,1391,1,1,1,1,1,1,5332, + 4952,4949,5339,5374,5513,1,1419,3308,3416,2072, + 3413,3180,3112,3279,1729,3261,2616,3226,8,5300, + 5300,5300,5300,5300,5300,5300,5300,5300,5300,5300, + 5300,5300,5300,5300,5300,5300,5300,5300,5300,5300, + 5300,5300,5300,5300,5300,5300,2676,2702,5300,5300, + 5300,5300,5300,5300,5300,5300,5300,5300,5300,5300, + 5300,5300,5300,5300,5300,5300,5300,5300,5300,5300, + 5300,5300,5300,5300,5300,5300,5332,5300,5300,5300, + 5300,1514,5300,5300,5300,5300,5300,121,5332,5332, + 5300,610,5300,3741,5300,5300,5300,5300,5300,5300, + 5300,5300,5300,5300,5300,5300,5332,5254,4946,4946, + 4946,4946,4946,4946,4946,5258,1,5261,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,130,53,1,1,1,1, + 1,1,1,1,131,53,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1772,1,1,1,1,1,1,1, - 1,1,1,951,1119,1,564,1,1392,1515, - 1,1,1,5336,1,1,611,5336,4953,4950, - 5517,5378,1420,3333,3417,2073,3414,3220,3113,3309, - 1730,3280,2617,3262,5336,5258,4947,4947,4947,4947, - 4947,4947,4947,5262,1,5265,1,1,1,1, + 1,1,1771,1,1,1,1,1,1,1, + 1,1,1,950,1118,1,563,1,1391,5332, + 1,1,1,1,1,5332,5058,5055,3717,3680, + 5513,445,1419,3308,3416,2072,3413,3180,3112,3279, + 1729,3261,2616,3226,5332,5254,4946,4946,4946,4946, + 4946,4946,4946,5258,1,5261,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,2677,2703,1,1,1,1,1,1, + 1,1,2676,2702,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1772,1,1,1,1,1,1,1,1,1, - 1,951,5336,1,564,1,1392,135,1,1, - 1,121,1,1,5336,5353,5354,3742,5517,3068, - 1420,3333,3417,2073,3414,3220,3113,3309,1730,3280, - 2617,3262,5336,5258,4947,4947,4947,4947,4947,4947, - 4947,5262,1,5265,1,1,1,1,1,1, + 1771,1,1,1,1,1,1,1,1,1, + 1,950,624,1,563,1,1391,5332,1,1, + 1,1,1,5332,4952,4949,5332,5374,5513,1808, + 1419,3308,3416,2072,3413,3180,3112,3279,1729,3261, + 2616,3226,5332,5254,4946,4946,4946,4946,4946,4946, + 4946,5258,1,5261,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 129,41,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1772,1, - 1,1,1,1,1,1,1,1,1,951, - 5376,1,564,1,1392,5336,1,1,1,2454, - 1,1,3718,3681,2377,1042,5517,445,1420,3333, - 3417,2073,3414,3220,3113,3309,1730,3280,2617,3262, - 5336,5258,4947,4947,4947,4947,4947,4947,4947,5262, - 1,5265,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,2677,2703, + 130,41,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1771,1, + 1,1,1,1,1,1,1,1,1,950, + 5372,1,563,1,1391,304,1,1,1,1, + 1,123,5332,5349,5350,5635,5513,3741,1419,3308, + 3416,2072,3413,3180,3112,3279,1729,3261,2616,3226, + 5332,5254,4946,4946,4946,4946,4946,4946,4946,5258, + 1,5261,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,2676,2702, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1772,1,1,1, - 1,1,1,1,1,1,1,951,625,1, - 564,1,1392,141,1,1,1,5336,1,1, - 1809,5336,4953,4950,5517,5378,1420,3333,3417,2073, - 3414,3220,3113,3309,1730,3280,2617,3262,5336,5258, - 4947,4947,4947,4947,4947,4947,4947,5262,1,5265, + 1,1,1,1,1,1,1771,1,1,1, + 1,1,1,1,1,1,1,950,5332,1, + 563,1,1391,137,1,1,1,1,1,122, + 5332,2347,3717,3680,5513,3741,1419,3308,3416,2072, + 3413,3180,3112,3279,1729,3261,2616,3226,5332,5254, + 4946,4946,4946,4946,4946,4946,4946,5258,1,5261, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,128,5336,1,1, + 1,1,1,1,1,1,129,3205,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1772,1,1,1,1,1, - 1,1,1,1,1,951,5336,1,564,1, - 1392,3068,1,1,1,123,1,1,5336,5059, - 5056,3742,5517,2317,1420,3333,3417,2073,3414,3220, - 3113,3309,1730,3280,2617,3262,5336,5258,4947,4947, - 4947,4947,4947,4947,4947,5262,1,5265,1,1, + 1,1,1,1,1771,1,1,1,1,1, + 1,1,1,1,1,950,5332,1,563,1, + 1391,3067,1,1,1,1,1,5332,8209,7933, + 3717,3680,5513,425,1419,3308,3416,2072,3413,3180, + 3112,3279,1729,3261,2616,3226,5332,5254,4946,4946, + 4946,4946,4946,4946,4946,5258,1,5261,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2677,2703,1,1,1,1, + 1,1,1,1,2676,2702,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1772,1,1,1,1,1,1,1, - 1,1,1,951,322,1,564,1,1392,136, - 1,1,1,122,1,1,3718,3681,5336,3742, - 5517,3391,1420,3333,3417,2073,3414,3220,3113,3309, - 1730,3280,2617,3262,5336,5258,4947,4947,4947,4947, - 4947,4947,4947,5262,1,5265,1,1,1,1, + 1,1,1771,1,1,1,1,1,1,1, + 1,1,1,950,1208,1,563,1,1391,135, + 1,1,1,1,1,43,5332,5349,5350,5374, + 5513,3067,1419,3308,3416,2072,3413,3180,3112,3279, + 1729,3261,2616,3226,5332,5254,4946,4946,4946,4946, + 4946,4946,4946,5258,1,5261,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1311,5336,1,1,1,1,1,1, + 1,1,128,5332,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1772,1,1,1,1,1,1,1,1,1, - 1,951,455,1,564,1,1392,1,1,1, - 1,387,1,1,3718,3681,2377,1042,5517,5336, - 1420,3333,3417,2073,3414,3220,3113,3309,1730,3280, - 2617,3262,5336,5258,4947,4947,4947,4947,4947,4947, - 4947,5262,1,5265,1,1,1,1,1,1, + 1771,1,1,1,1,1,1,1,1,1, + 1,950,5332,1,563,1,1391,5332,1,1, + 1,1,1,54,5092,5089,2376,1041,5513,5332, + 1419,3308,3416,2072,3413,3180,3112,3279,1729,3261, + 2616,3226,5332,5254,4946,4946,4946,4946,4946,4946, + 4946,5258,1,5261,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5113,5336,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,1772,1, - 1,1,1,1,1,1,1,1,1,951, - 454,1,564,1,1392,304,1,1,1,311, - 1,1,41,5301,5301,5639,5517,5301,1420,3333, - 3417,2073,3414,3220,3113,3309,1730,3280,2617,3262, - 43,4953,4950,3273,637,3862,3928,2611,3950,143, - 855,3230,5598,5605,5603,5612,5611,5607,5608,5606, - 5609,5610,5613,5604,3906,3884,3994,3972,5116,386, - 5601,5359,5674,5675,3777,5595,5602,5574,5600,5599, - 5596,5597,5575,1780,1814,5361,4338,1798,655,1807, - 5362,5360,1738,5355,5357,5358,5356,5053,5336,5732, - 314,1350,337,3259,571,5733,5734,5336,5129,5129, - 233,5125,233,233,233,233,5133,1,233,1, + 2676,2702,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1771,1, + 1,1,1,1,1,1,1,1,1,950, + 322,1,563,1,1391,5332,1,1,1,1, + 1,394,41,5297,5297,386,5513,5297,1419,3308, + 3416,2072,3413,3180,3112,3279,1729,3261,2616,3226, + 43,4952,4949,3272,636,3861,3927,2610,3949,1343, + 854,3229,5594,5601,5599,5608,5607,5603,5604,5602, + 5605,5606,5609,5600,3905,3883,3993,3971,1310,386, + 5597,5355,5670,5671,3776,5591,5598,5570,5596,5595, + 5592,5593,5571,1779,1813,5357,5731,1797,654,1806, + 5358,5356,1737,5351,5353,5354,5352,5052,5332,5728, + 5332,1349,337,5332,570,5729,5730,5332,5128,5128, + 233,5124,233,233,233,233,5132,1,233,1, 1,1,1,1,1,1,1,1,1,1, - 1,42,5219,5216,5674,5675,5122,1,1395,1, - 1,5336,1,1,1,1,1,1,1,1, - 2284,349,132,2863,312,5067,5062,578,5072,862, - 5078,2611,5075,191,1291,5336,1,5336,5353,5354, - 1073,1,1,1,990,5336,5353,5354,233,414, - 2486,5746,5833,5336,5336,5129,5129,233,5125,233, - 233,233,233,5133,1,233,1,1,1,1, - 1,1,1,1,1,1,1,1,304,1311, - 5768,5769,5770,5122,1,5222,1,1,5639,1, - 1,1,1,1,1,1,1,991,5336,906, - 2863,5336,5103,5099,578,5378,862,1683,2611,5667, - 145,1291,5336,1,292,2432,2405,139,1,1, - 1,5346,5336,5345,642,233,414,320,5746,5833, - 5096,5336,5129,5129,233,5125,233,233,233,233, - 5210,1,233,1,1,1,1,1,1,1, - 1,1,1,1,1,5333,5336,5768,5769,5770, - 5122,1,5336,1,1,5336,1,1,1,1, - 1,1,1,1,5346,1,5345,2863,2575,4351, - 1818,1603,106,37,342,1311,5107,866,1291,5107, - 1,5107,5107,5336,5107,1,1,1,5336,8266, - 8263,5336,233,413,145,5746,5833,5107,5107,5107, - 5107,5107,2247,54,5093,5090,589,1776,1734,1692, - 1650,1608,1566,1524,1482,1440,1398,3390,395,4953, - 4950,436,5378,1311,5768,5769,5770,5336,342,39, - 3812,5107,342,1,5268,5268,5107,5072,342,1683, - 5107,5667,364,5107,5107,5107,5107,43,1,4947, - 4947,233,4947,233,233,233,233,233,777,233, - 8510,5107,5107,5107,5107,5107,5107,5107,5107,5107, - 5107,5107,5107,5107,5107,5107,1046,4944,5336,5107, - 5107,5107,5107,5107,5107,5107,5107,5107,5107,5107, - 5107,5107,5336,5107,1110,5252,2247,229,5252,2519, - 5252,5252,1,5252,4943,951,364,425,564,5598, - 3507,3390,5195,54,5059,5056,5252,5252,5252,5252, - 5252,33,5336,5833,5768,5769,5770,5601,364,5674, - 5675,2191,5595,5602,5574,5600,5599,5596,5597,5575, - 5336,5067,5062,578,5072,862,5078,2611,5075,5081, - 5252,1,4969,4965,4956,5252,4959,5336,4962,5252, - 3393,5198,5252,5252,5252,5252,5336,5103,5099,578, - 5378,862,1683,2611,5667,5336,4953,4950,1209,5378, - 5252,5252,5252,5252,5252,5252,5252,5252,5252,5252, - 5252,5252,5252,5252,5252,293,5353,5354,5252,5252, - 5252,5252,5252,5252,5252,5252,5252,5252,5252,5252, - 5252,2023,5252,5336,4947,4947,233,4947,233,233, - 233,233,233,1,233,8510,1,1,1,1, - 1,1,1,1,1,1,1,1302,437,5336, - 5139,5136,4944,1,5336,1,1,4135,1,1, - 1,1,1,1,1,1,49,5145,5145,1110, - 1,4969,4965,4956,359,4959,5084,4962,5376,5346, - 951,5345,1,564,5336,8266,8263,1,1,1, - 5336,376,5336,5353,5354,5142,451,5352,5833,5336, - 4947,4947,233,4947,233,233,233,233,233,1, - 233,8510,1,1,1,1,1,1,1,1, - 1,1,1,117,5087,51,5237,5237,4944,1, - 5336,1,1,5336,1,1,1,1,1,1, - 1,1,5342,124,12,1110,5336,5059,5056,346, - 43,43,2575,5378,5234,1683,951,5667,1,564, - 4016,867,394,1,1,1,386,3091,3017,5694, - 5336,5353,5354,5352,5833,862,512,2611,1,5188, - 5184,3273,5192,3862,3928,2611,3950,5336,5148,5336, - 1344,5175,5181,5154,5157,5169,5166,5172,5163,5160, - 5151,5178,3906,3884,3994,3972,5341,1311,97,5359, - 3507,5249,3777,4038,4016,867,5336,8501,8501,4060, - 11,1780,1814,5361,5336,1798,655,1807,5362,5360, - 1738,5355,5357,5358,5356,1,4969,4965,578,1350, - 862,513,2611,873,5336,5376,43,43,43,4953, - 4950,3273,637,3862,3928,2611,3950,5344,2538,5336, - 5735,5605,5603,5612,5611,5607,5608,5606,5609,5610, - 5613,5604,3906,3884,3994,3972,5336,4953,4950,5359, - 637,5255,3777,2611,5336,1,41,5295,5295,294, - 2636,1780,1814,5361,364,1798,655,1807,5362,5360, - 1738,5355,5357,5358,5356,2060,2023,4159,403,1350, - 2620,1,4969,4965,578,2940,862,5204,2611,5207, - 5343,43,4953,4950,3273,637,3862,3928,2611,3950, - 5344,2538,134,5336,5605,5603,5612,5611,5607,5608, - 5606,5609,5610,5613,5604,3906,3884,3994,3972,5336, - 4953,4950,5359,637,5255,3777,2611,5336,364,1986, - 2486,5336,5093,5090,1780,1814,5361,5336,1798,655, - 1807,5362,5360,1738,5355,5357,5358,5356,2147,1, - 364,5336,1350,2620,147,4953,4950,3273,637,3862, - 3928,2611,3950,5343,2538,5286,5336,5605,5603,5612, - 5611,5607,5608,5606,5609,5610,5613,5604,3906,3884, - 3994,3972,5336,4953,4950,5359,637,862,3777,2611, - 5336,5311,5307,5336,1851,2432,2405,1780,1814,5361, - 5336,1798,655,1807,5362,5360,1738,5355,5357,5358, - 5356,1893,441,1,1,1350,1,371,5110,5376, - 5110,1344,43,43,1,5188,5184,3273,5192,3862, - 3928,2611,3950,348,5148,5336,3239,5175,5181,5154, - 5157,5169,5166,5172,5163,5160,5151,5178,3906,3884, - 3994,3972,5336,4953,4950,5359,637,862,3777,2611, - 5336,5336,1935,30,395,5353,5354,1780,1814,5361, - 5344,1798,655,1807,5362,5360,1738,5355,5357,5358, - 5356,126,442,43,43,1350,5378,1218,5231,5336, - 5228,1311,43,43,43,4953,4950,3273,637,3862, - 3928,2611,3950,5340,2538,3091,3017,5605,5603,5612, - 5611,5607,5608,5606,5609,5610,5613,5604,3906,3884, - 3994,3972,5336,1,5336,5359,5213,5336,3777,5336, - 5213,5344,5346,5343,5345,1,5340,1780,1814,5361, - 120,1798,655,1807,5362,5360,1738,5355,5357,5358, - 5356,2593,43,4953,4950,3273,637,3862,3928,2611, - 3950,81,2538,1344,3814,5605,5603,5612,5611,5607, - 5608,5606,5609,5610,5613,5604,3906,3884,3994,3972, - 5336,133,33,5359,5336,5336,3777,5404,5405,1000, - 137,1392,125,5336,5343,1780,1814,5361,2348,1798, - 655,1807,5362,5360,1738,5355,5357,5358,5356,2486, - 1344,530,5339,1350,2620,1,3091,3017,1599,3150, - 5802,5796,230,5800,1,4969,4965,578,1,862, - 4038,2611,5336,312,5598,312,4060,5225,5336,5794, - 5795,5825,5826,5805,5289,5339,43,4260,5845,5803, - 5378,2854,5601,421,5674,5675,231,5595,5602,5574, - 5600,5599,5596,5597,5575,5336,1046,795,5598,2994, - 1,1,3656,737,2432,2405,2839,5336,5806,167, - 526,934,5827,1437,1471,5804,5601,5336,5674,5675, - 1,5595,5602,5574,5600,5599,5596,5597,5575,197, - 5343,197,5336,5816,5815,5828,5797,5798,5821,5822, - 5336,119,5819,5820,5799,5801,5823,5824,40,5318, - 5315,5829,5809,5810,5811,5807,5808,5817,5818,5813, - 5812,5814,43,4953,4950,3273,637,3862,3928,2611, - 3950,369,2538,167,526,5605,5603,5612,5611,5607, - 5608,5606,5609,5610,5613,5604,3906,3884,3994,3972, - 5336,1,5336,5359,3606,5774,3777,1,4969,4965, - 2785,5195,862,5788,2611,1780,1814,5361,1,1798, - 655,1807,5362,5360,1738,5355,5357,5358,5356,5336, - 2191,5336,1599,1350,5802,5796,232,5800,98,1, - 1,4038,1,5336,5298,446,5298,4060,5598,5336, - 5336,1269,5342,5794,5795,5825,5826,5805,363,3530, - 5198,1,5336,5803,5336,1311,5601,5336,5674,5675, - 169,5595,5602,5574,5600,5599,5596,5597,5575,43, - 101,43,43,5378,5378,118,5324,737,5321,5336, - 3533,242,5806,1983,5271,4158,5827,1437,1471,5804, - 346,5103,5099,2785,5378,862,1683,2611,5667,938, - 4788,5336,2831,5696,5336,1,5341,5816,5815,5828, - 5797,5798,5821,5822,5342,2925,5819,5820,5799,5801, - 5823,5824,5336,505,169,5829,5809,5810,5811,5807, - 5808,5817,5818,5813,5812,5814,43,4953,4950,3273, - 637,3862,3928,2611,3950,5336,2538,5336,1311,5605, - 5603,5612,5611,5607,5608,5606,5609,5610,5613,5604, - 3906,3884,3994,3972,3620,4038,423,5359,2854,163, - 3777,4060,5768,5769,5770,4744,5336,5336,5341,1780, - 1814,5361,5336,1798,655,1807,5362,5360,1738,5355, - 5357,5358,5356,4759,2228,43,4953,4950,3273,637, - 3862,3928,2611,3950,3238,2538,45,5336,5605,5603, - 5612,5611,5607,5608,5606,5609,5610,5613,5604,3906, - 3884,3994,3972,503,54,417,5359,54,5354,3777, - 1,5353,5336,624,5246,5336,1860,5336,1780,1814, - 5361,144,1798,655,1807,5362,5360,1738,5355,5357, - 5358,5356,5354,2110,140,5353,1350,43,4953,4950, - 3465,637,3862,3928,2611,3950,1,2538,5336,4774, - 5605,5603,5612,5611,5607,5608,5606,5609,5610,5613, - 5604,3906,3884,3994,3972,5336,5336,5336,5359,5336, - 5336,3777,5336,4764,5336,2160,3206,4713,3343,142, - 1780,1814,5361,1902,1798,655,1807,5362,5360,1738, - 5355,5357,5358,5356,43,4953,4950,3273,637,3862, - 3928,2611,3950,5336,2538,4218,4728,5605,5603,5612, - 5611,5607,5608,5606,5609,5610,5613,5604,3906,3884, - 3994,3972,2284,138,5336,5359,5336,3222,3777,3344, - 3467,2348,3501,589,105,5336,5520,1780,1814,5361, - 2519,1798,655,1807,5362,5360,1738,5355,5357,5358, - 5356,43,4953,4950,3273,637,3862,3928,2611,3950, - 5336,2538,5336,4736,5605,5603,5612,5611,5607,5608, - 5606,5609,5610,5613,5604,3906,3884,3994,3972,2317, - 5336,1,5359,3392,2575,3777,5336,79,5336,3585, - 5240,3605,2197,5336,1780,1814,5361,3166,1798,655, - 1807,5362,5360,1738,5355,5357,5358,5356,5336,4953, - 4950,5336,5378,5336,3811,5327,3484,519,783,5336, - 5598,5605,5603,5612,5611,5607,5608,5606,5609,5610, - 5613,5604,5336,5519,5336,4150,507,4280,5601,1311, - 5674,5675,2,5595,5602,5574,5600,5599,5596,5597, - 5575,1,5336,109,5243,4128,4281,5336,5336,5336, - 5336,3253,4751,1944,5336,283,5336,5732,5330,5336, - 41,5336,571,5733,5734,246,5046,5042,5336,5050, - 5336,5336,577,5336,5336,783,5336,4997,5033,5039, - 5012,5015,5027,5024,5030,5021,5018,5009,5036,5336, - 5336,5336,5336,5336,5336,4988,2734,4982,4979,5336, - 5006,4985,4976,4991,4994,5003,5000,4973,33,386, - 386,5280,386,386,5280,386,5280,5283,5336,5280, - 386,5336,5336,5336,5732,5336,3507,5336,5336,571, - 5733,5734,5336,5336,5336,5336,5081,5336,386,5336, - 386,386,5336,386,386,386,386,386,386,386, - 386,5336,36,387,387,5274,387,387,5274,387, - 5274,5277,5336,5274,387,5336,5283,5336,5336,5336, - 5336,5336,5336,5336,5336,5336,5336,5336,5336,5336, - 5336,5283,387,5336,387,387,5336,387,387,387, - 387,387,387,387,387,5336,5336,5336,5336,228, - 5336,5336,5336,5336,5336,5336,5336,5336,5336,5336, - 5277,5598,5605,5603,5612,5611,5607,5608,5606,5609, - 5610,5613,5604,5336,5336,5277,5336,5336,5336,5601, - 5336,5674,5675,5336,5595,5602,5574,5600,5599,5596, - 5597,5575,1,4947,4947,233,4947,233,233,233, - 233,5119,5336,233,8510,1,4947,4947,233,4947, - 233,233,233,233,5119,5336,233,8510,5336,5336, - 5336,4944,5336,5336,1,4947,4947,233,4947,233, - 233,233,233,5201,4944,233,8510,5336,1110,5336, - 5336,5336,5336,5336,5336,5336,5336,5336,5336,951, - 5336,1110,564,4944,5336,5336,5336,5336,5336,5336, - 5336,5336,951,5336,225,564,5336,5833,5336,5336, - 1110,5336,5336,5336,5336,5336,5336,225,5336,5336, - 5833,951,5336,5336,564,5336,1,4947,4947,233, - 4947,233,233,233,233,5119,224,233,8510,5833, - 5336,5336,1,4947,4947,233,4947,233,233,233, - 233,233,5336,233,8510,4944,5336,5336,1,4947, - 4947,233,4947,233,233,233,233,233,5336,233, - 8510,4944,1110,5336,368,4969,4965,2785,1,862, - 1,2611,1,951,5336,5336,564,4944,1110,5336, - 5336,5336,5336,5336,5336,5336,5336,5336,225,951, - 5336,5833,564,5336,1110,1,4969,4965,2785,5336, - 862,5336,2611,5336,5240,951,5336,5833,564,1, - 4947,4947,233,4947,233,233,233,233,233,5336, - 233,8510,1311,5833,5336,5336,5336,5336,5336,5336, - 5336,5336,5336,5336,1176,5336,5336,5336,4944,5336, - 5336,5336,5336,5336,5336,5336,5336,5336,5336,5336, - 5336,5336,5336,1311,5336,1110,5336,5336,5336,5336, - 5336,5336,5336,5336,5336,5336,951,5336,5243,564, - 5336,5336,5336,5336,5336,5336,5336,5336,5336,5336, - 5336,5336,5336,5336,5833 + 1,42,5215,5212,5670,5671,5121,1,1394,1, + 1,5332,1,1,1,1,1,1,1,1, + 5332,455,132,2862,312,5066,5061,577,5071,861, + 5077,2610,5074,4259,1290,5332,1,5332,5349,5350, + 2853,1,1,1,5332,54,5058,5055,233,414, + 2485,5742,5829,5338,5332,5128,5128,233,5124,233, + 233,233,233,5132,1,233,1,1,1,1, + 1,1,1,1,1,1,1,1,304,5112, + 5764,5765,5766,5121,1,5218,1,1,5635,1, + 1,1,1,1,1,1,1,3603,124,905, + 2862,5332,5102,5098,577,5374,861,1682,2610,5663, + 145,1290,5332,1,4787,2431,2404,5337,1,1, + 1,989,3090,3016,641,233,414,33,5742,5829, + 5332,5332,5128,5128,233,5124,233,233,233,233, + 5209,1,233,1,1,1,1,1,1,1, + 1,1,1,1,1,5080,4942,5764,5765,5766, + 5121,1,5332,1,1,5332,1,1,1,1, + 1,1,1,1,990,1,33,2862,2574,1817, + 5332,5349,5350,37,342,861,5106,2610,1290,5106, + 1,5106,5106,865,5106,1,1,1,293,5349, + 5350,2109,233,413,1343,5742,5829,5106,5106,5106, + 5106,5106,2246,5332,5138,5135,437,1775,1733,1691, + 1649,1607,1565,1523,1481,1439,1397,3389,395,4952, + 4949,436,5374,1310,5764,5765,5766,314,342,5332, + 3258,5106,5372,2453,5083,342,5106,421,342,5332, + 5349,5350,5106,5106,5106,5106,5106,43,1,4946, + 4946,233,4946,233,233,233,233,233,5332,233, + 8004,5106,5106,5106,5106,5106,5106,5106,5106,5106, + 5106,5106,5106,5106,5106,5106,1045,4943,5332,5106, + 5106,5106,5106,5106,5106,5106,5106,5106,5106,5106, + 5106,5106,5332,5106,1109,5248,1072,229,5248,136, + 5248,5248,5332,5248,138,950,4015,866,563,5594, + 1,5342,2347,5341,387,5332,5248,5248,5248,5248, + 5248,3605,5332,5829,5764,5765,5766,5597,2853,5670, + 5671,5338,5591,5598,5570,5596,5595,5592,5593,5571, + 5332,5066,5061,577,5071,861,5077,2610,5074,1901, + 5248,1,4968,4964,4955,5248,4958,5332,4961,5332, + 3390,5248,5248,5248,5248,5248,5332,5102,5098,577, + 5374,861,1682,2610,5663,5332,4952,4949,4158,5374, + 5248,5248,5248,5248,5248,5248,5248,5248,5248,5248, + 5248,5248,5248,5248,5248,5337,2376,1041,5248,5248, + 5248,5248,5248,5248,5248,5248,5248,5248,5248,5248, + 5248,2022,5248,5332,4946,4946,233,4946,233,233, + 233,233,233,1,233,8004,1,1,1,1, + 1,1,1,1,1,1,1,1301,451,49, + 5144,5144,4943,1,39,1,1,5332,1,1, + 1,1,1,1,1,1,5332,8209,7933,1109, + 1,4968,4964,4955,359,4958,5086,4961,5141,5342, + 950,5341,1,563,5332,5092,5089,1,1,1, + 395,5349,5350,5332,5058,5055,5332,5348,5829,5332, + 4946,4946,233,4946,233,233,233,233,233,1, + 233,8004,1,1,1,1,1,1,1,1, + 1,1,1,2518,1850,51,5233,5233,4943,1, + 5332,1,1,3392,1,1,1,1,1,1, + 1,1,145,5332,12,1109,5332,8486,8486,346, + 43,43,2574,5374,5230,1682,950,5663,1,563, + 4015,866,43,1,1,1,5374,191,1682,5690, + 5663,1343,5332,5348,5829,5372,2993,5332,1,5187, + 5183,3272,5191,3861,3927,2610,3949,5332,5147,294, + 1,5174,5180,5153,5156,5168,5165,5171,5162,5159, + 5150,5177,3905,3883,3993,3971,5332,1310,776,5355, + 1,5332,3776,43,141,5332,311,5374,1343,364, + 11,1779,1813,5357,5340,1797,654,1806,5358,5356, + 1737,5351,5353,5354,5352,1,4968,4964,577,1349, + 861,513,2610,2838,2246,43,43,43,4952,4949, + 3272,636,3861,3927,2610,3949,5340,2537,1985,3389, + 5601,5599,5608,5607,5603,5604,5602,5605,5606,5609, + 5600,3905,3883,3993,3971,5332,4952,4949,5355,636, + 5251,3776,2610,364,5332,999,4337,5339,292,5329, + 1779,1813,5357,5340,1797,654,1806,5358,5356,1737, + 5351,5353,5354,5352,2059,364,2022,403,1349,2619, + 1,4968,4964,577,2316,861,5203,2610,5206,5339, + 43,4952,4949,3272,636,3861,3927,2610,3949,5340, + 2537,134,5332,5601,5599,5608,5607,5603,5604,5602, + 5605,5606,5609,5600,3905,3883,3993,3971,5332,4952, + 4949,5355,636,5251,3776,2610,5339,1,1602,2485, + 40,5314,5311,1779,1813,5357,5221,1797,654,1806, + 5358,5356,1737,5351,5353,5354,5352,2146,5332,512, + 5332,1349,2619,147,4952,4949,3272,636,3861,3927, + 2610,3949,5339,2537,5282,5332,5601,5599,5608,5607, + 5603,5604,5602,5605,5606,5609,5600,3905,3883,3993, + 3971,5332,4952,4949,5355,636,861,3776,2610,41, + 5291,5291,5332,1045,2431,2404,1779,1813,5357,5339, + 1797,654,1806,5358,5356,1737,5351,5353,5354,5352, + 1,4968,4964,2784,1349,861,5332,2610,2939,872, + 43,43,1,5187,5183,3272,5191,3861,3927,2610, + 3949,5332,5147,117,5332,5174,5180,5153,5156,5168, + 5165,5171,5162,5159,5150,5177,3905,3883,3993,3971, + 5332,4952,4949,5355,636,861,3776,2610,5332,5307, + 5303,5332,3529,5516,4134,1779,1813,5357,1310,1797, + 654,1806,5358,5356,1737,5351,5353,5354,5352,5332, + 441,1,1,1349,1,2635,5109,5372,5109,43, + 43,43,4952,4949,3272,636,3861,3927,2610,3949, + 5336,2537,126,5332,5601,5599,5608,5607,5603,5604, + 5602,5605,5606,5609,5600,3905,3883,3993,3971,5332, + 1,320,5355,4037,5095,3776,3090,3016,5342,4059, + 5341,3532,5332,5332,1779,1813,5357,120,1797,654, + 1806,5358,5356,1737,5351,5353,5354,5352,139,43, + 4952,4949,3272,636,3861,3927,2610,3949,81,2537, + 4157,3813,5601,5599,5608,5607,5603,5604,5602,5605, + 5606,5609,5600,3905,3883,3993,3971,1,133,1310, + 5355,5332,1892,3776,5400,5401,167,5332,97,4350, + 5336,5245,1779,1813,5357,1934,1797,654,1806,5358, + 5356,1737,5351,5353,5354,5352,2485,5332,5332,5335, + 1349,2619,1,5332,5332,1598,3149,5798,5792,230, + 5796,1,4968,4964,577,5332,861,4037,2610,1982, + 312,5594,312,4059,1,1,5790,5791,5821,5822, + 5801,5285,125,5342,525,5341,5799,588,371,5597, + 167,5670,5671,231,5591,5598,5570,5596,5595,5592, + 5593,5571,5332,140,794,5594,3090,3016,1,54, + 736,2431,2404,5350,143,5802,2592,169,933,1436, + 1470,5800,5823,5597,3165,5670,5671,1,5591,5598, + 5570,5596,5595,5592,5593,5571,197,5350,197,5335, + 5812,5811,5824,5793,5794,5817,5818,454,525,5815, + 5816,5795,5797,5819,5820,142,5332,1217,5825,5805, + 5806,5807,5803,5804,5813,5814,5809,5808,5810,43, + 4952,4949,3272,636,3861,3927,2610,3949,5332,2537, + 1,169,5601,5599,5608,5607,5603,5604,5602,5605, + 5606,5609,5600,3905,3883,3993,3971,446,1,1, + 5355,348,588,3776,3238,5115,5332,242,5194,5194, + 5267,576,1779,1813,5357,2283,1797,654,1806,5358, + 5356,1737,5351,5353,5354,5352,5332,2142,2142,1598, + 1349,5798,5792,232,5796,1,5264,5264,1,5071, + 1391,1682,5332,5663,364,5594,5332,5338,5332,5332, + 5790,5791,5821,5822,5801,2316,5332,5197,5197,1310, + 5799,363,5332,5597,5332,5670,5671,2830,5591,5598, + 5570,5596,5595,5592,5593,5571,43,442,43,43, + 5374,5374,119,5227,736,5224,118,5332,5332,5802, + 4743,5332,3237,1436,1470,5800,5823,346,5102,5098, + 2784,5374,861,1682,2610,5663,937,1,364,5841, + 4773,5337,5770,423,5812,5811,5824,5793,5794,5817, + 5818,5332,5332,5815,5816,5795,5797,5819,5820,5332, + 364,2924,5825,5805,5806,5807,5803,5804,5813,5814, + 5809,5808,5810,43,4952,4949,3272,636,3861,3927, + 2610,3949,5332,2537,5784,1310,5601,5599,5608,5607, + 5603,5604,5602,5605,5606,5609,5600,3905,3883,3993, + 3971,163,4037,349,5355,369,4037,3776,4059,5764, + 5765,5766,4059,623,3332,54,1779,1813,5357,5349, + 1797,654,1806,5358,5356,1737,5351,5353,5354,5352, + 5515,2227,43,4952,4949,3272,636,3861,3927,2610, + 3949,45,2537,5349,5332,5601,5599,5608,5607,5603, + 5604,5602,5605,5606,5609,5600,3905,3883,3993,3971, + 505,1310,503,5355,417,1,3776,5332,5332,5242, + 5332,1859,5332,5332,1268,1779,1813,5357,144,1797, + 654,1806,5358,5356,1737,5351,5353,5354,5352,5332, + 5332,5332,4712,1349,43,4952,4949,3464,636,3861, + 3927,2610,3949,5332,2537,5332,4727,5601,5599,5608, + 5607,5603,5604,5602,5605,5606,5609,5600,3905,3883, + 3993,3971,1,5332,5332,5355,3221,4735,3776,4758, + 3342,4763,529,2159,106,3343,3466,1779,1813,5357, + 5332,1797,654,1806,5358,5356,1737,5351,5353,5354, + 5352,43,4952,4949,3272,636,3861,3927,2610,3949, + 5692,2537,5332,3500,5601,5599,5608,5607,5603,5604, + 5602,5605,5606,5609,5600,3905,3883,3993,3971,2283, + 5332,5332,5355,3391,3584,3776,5332,5332,5332,3604, + 3810,3483,3811,3638,1779,1813,5357,5332,1797,654, + 1806,5358,5356,1737,5351,5353,5354,5352,43,4952, + 4949,3272,636,3861,3927,2610,3949,4217,2537,376, + 5332,5601,5599,5608,5607,5603,5604,5602,5605,5606, + 5609,5600,3905,3883,3993,3971,105,5332,1,5355, + 4149,2574,3776,5332,79,5332,4279,5236,4127,5332, + 5332,1779,1813,5357,3252,1797,654,1806,5358,5356, + 1737,5351,5353,5354,5352,5332,4952,4949,109,5374, + 5332,4280,5323,518,507,782,5332,5594,5601,5599, + 5608,5607,5603,5604,5602,5605,5606,5609,5600,2518, + 5332,5332,2,4750,2196,5597,1310,5670,5671,5332, + 5591,5598,5570,5596,5595,5592,5593,5571,98,1, + 1,5239,1,5332,5294,5332,5294,101,43,43, + 41,5374,5332,5320,5728,5317,5332,5332,5332,570, + 5729,5730,246,5045,5041,5332,5049,283,3500,1943, + 5326,5332,782,2733,4996,5032,5038,5011,5014,5026, + 5023,5029,5020,5017,5008,5035,5332,5332,5332,5332, + 5332,5332,4987,5332,4981,4978,5332,5005,4984,4975, + 4990,4993,5002,4999,4972,33,386,386,5276,386, + 386,5276,386,5276,5279,5332,5276,386,5332,5332, + 5332,5728,3500,5332,5332,5332,570,5729,5730,5332, + 5332,5332,5332,5080,5332,386,5332,386,386,5332, + 386,386,386,386,386,386,386,386,5332,36, + 387,387,5270,387,387,5270,387,5270,5273,5332, + 5270,387,5332,5279,5332,5332,5332,5332,5332,5332, + 5332,5332,5332,5332,5332,5332,5332,5332,5279,387, + 5332,387,387,5332,387,387,387,387,387,387, + 387,387,5332,5332,5332,5332,228,5332,5332,5332, + 5332,5332,5332,5332,5332,5332,5332,5273,5594,5601, + 5599,5608,5607,5603,5604,5602,5605,5606,5609,5600, + 5332,5332,5273,5332,5332,5332,5597,5332,5670,5671, + 5332,5591,5598,5570,5596,5595,5592,5593,5571,1, + 4946,4946,233,4946,233,233,233,233,5118,5332, + 233,8004,1,4946,4946,233,4946,233,233,233, + 233,5118,5332,233,8004,5332,5332,5332,4943,5332, + 5332,1,4946,4946,233,4946,233,233,233,233, + 5200,4943,233,8004,5332,1109,5332,5332,5332,5332, + 5332,5332,5332,5332,5332,5332,950,5332,1109,563, + 4943,5332,5332,5332,5332,5332,5332,5332,5332,950, + 5332,225,563,5332,5829,5332,5332,1109,5332,5332, + 5332,5332,5332,5332,225,5332,5332,5829,950,5332, + 5332,563,5332,1,4946,4946,233,4946,233,233, + 233,233,5118,224,233,8004,5829,5332,5332,1, + 4946,4946,233,4946,233,233,233,233,233,5332, + 233,8004,4943,5332,5332,1,4946,4946,233,4946, + 233,233,233,233,233,5332,233,8004,4943,1109, + 5332,368,4968,4964,2784,1,861,1,2610,1, + 950,5332,5332,563,4943,1109,5332,5332,5332,5332, + 5332,5332,5332,5332,5332,225,950,5332,5829,563, + 5332,1109,1,4968,4964,2784,5332,861,5332,2610, + 5332,5236,950,5332,5829,563,1,4946,4946,233, + 4946,233,233,233,233,233,5332,233,8004,1310, + 5829,5332,5332,5332,5332,5332,5332,5332,5332,5332, + 1175,5332,5332,5332,5332,4943,5332,5332,5332,5332, + 5332,5332,5332,5332,5332,5332,5332,5332,5332,5332, + 1310,5332,1109,5332,5332,5332,5332,5332,5332,5332, + 5332,5332,5332,950,5332,5239,563,5332,5332,5332, + 5332,5332,5332,5332,5332,5332,5332,5332,5332,5332, + 5332,5829 }; }; public final static char termAction[] = TermAction.termAction; @@ -1725,59 +1724,59 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Asb { public final static char asb[] = {0, - 779,1,817,991,247,320,151,993,8,4, - 779,461,325,8,1043,1054,167,1054,503,1054, - 3,1054,1038,1054,461,462,10,320,456,462, - 571,571,620,571,462,991,501,1118,14,59, - 509,153,462,326,374,104,104,462,507,149, - 277,506,164,509,170,462,219,462,462,149, - 508,508,1035,459,470,470,477,479,456,462, - 564,374,501,571,219,568,216,374,571,571, - 219,98,744,120,781,781,59,59,59,461, - 462,326,1035,104,104,507,165,507,149,52, - 507,170,170,462,219,149,462,508,509,461, - 456,175,422,694,456,924,564,219,459,216, - 216,219,326,744,120,59,617,59,59,462, - 1035,1035,617,462,104,948,4,501,818,938, - 104,617,507,507,156,462,277,462,170,617, - 465,616,1118,365,991,501,501,501,501,461, - 991,1080,731,406,733,423,423,423,423,423, - 423,423,423,423,573,579,584,581,588,586, - 593,591,595,594,596,279,597,1117,462,509, - 386,484,462,991,216,611,374,422,692,564, - 563,1118,568,1118,374,559,547,558,1117,501, - 858,858,617,617,462,98,940,483,274,157, - 462,52,617,423,462,459,740,555,554,406, - 247,247,247,247,462,881,651,573,374,374, - 406,950,246,98,406,573,97,97,881,422, - 423,423,423,423,423,423,423,423,423,423, - 423,423,423,423,423,423,423,423,423,422, - 422,422,422,422,422,422,422,422,422,422, - 422,423,406,864,387,461,462,881,487,692, - 564,866,422,556,556,738,459,825,120,781, - 120,1116,1116,1035,326,479,494,423,948,478, - 156,462,461,461,462,365,374,742,744,374, - 374,1118,1118,1118,1118,149,374,423,511,1060, - 1060,461,733,216,246,422,326,374,325,327, - 325,374,216,581,581,579,579,579,586,586, - 586,586,584,584,591,588,588,594,593,595, - 948,596,864,386,948,423,948,1035,991,991, - 991,387,991,462,286,1035,1035,462,509,374, - 422,616,866,422,422,742,547,120,247,247, - 1035,940,423,423,462,462,462,374,744,991, - 991,991,991,462,462,462,98,423,247,577, - 331,374,462,327,98,422,377,991,377,948, - 387,406,406,404,926,406,1035,1035,879,864, - 692,868,1117,462,462,928,374,422,422,422, - 422,991,991,149,326,374,577,459,277,462, - 326,825,374,456,374,404,320,991,374,864, - 868,777,928,928,374,374,374,374,881,881, - 462,577,578,577,422,331,690,573,277,374, - 374,535,387,879,387,1035,320,422,387,384, - 991,858,873,928,374,374,522,577,881,423, - 216,690,509,509,983,422,385,881,1035,374, - 745,1116,873,873,578,374,216,387,374,1035, - 373,325,873,387,247 + 777,1,815,535,245,318,149,991,989,4, + 777,459,1112,989,1041,1052,165,1052,537,1052, + 3,1052,1036,1052,459,460,8,318,454,460, + 569,569,618,569,460,535,499,688,12,57, + 543,151,460,1113,372,102,102,460,541,147, + 275,540,162,543,168,460,217,460,460,147, + 542,542,326,457,468,468,475,477,454,460, + 562,372,499,569,217,566,214,372,569,569, + 217,96,742,118,779,779,57,57,57,459, + 460,1113,326,102,102,541,163,541,147,50, + 541,168,168,460,217,147,460,542,543,459, + 454,173,420,692,454,922,562,217,457,214, + 214,217,1113,742,118,57,615,57,57,460, + 326,326,615,460,102,946,4,499,816,936, + 102,615,541,541,154,460,275,460,168,615, + 463,614,688,363,535,499,499,499,499,459, + 535,729,404,731,421,421,421,421,421,421, + 421,421,421,571,577,582,579,586,584,591, + 589,593,592,594,277,595,687,460,543,384, + 482,460,535,214,609,372,420,690,562,561, + 688,566,688,372,557,545,556,687,499,856, + 856,615,615,460,96,938,481,272,155,460, + 50,615,421,460,457,738,553,552,404,245, + 245,245,245,460,879,649,571,372,372,404, + 948,244,96,404,571,95,95,879,420,421, + 421,421,421,421,421,421,421,421,421,421, + 421,421,421,421,421,421,421,421,420,420, + 420,420,420,420,420,420,420,420,420,420, + 421,404,862,385,459,460,879,485,690,562, + 864,420,554,554,736,457,823,118,779,118, + 686,686,326,1113,477,492,421,946,476,154, + 460,459,459,460,363,372,740,742,372,372, + 688,688,688,688,147,372,421,501,1058,1058, + 459,731,214,244,420,1113,372,1112,1114,1112, + 372,214,579,579,577,577,577,584,584,584, + 584,582,582,589,586,586,592,591,593,946, + 594,862,384,946,421,946,326,535,535,535, + 385,535,460,284,326,326,460,543,372,420, + 614,864,420,420,740,545,118,245,245,326, + 938,421,421,460,460,460,372,742,535,535, + 535,535,460,460,460,96,421,245,575,329, + 372,460,1114,96,420,375,535,375,946,385, + 404,404,402,924,404,326,326,877,862,690, + 866,687,460,460,926,372,420,420,420,420, + 535,535,147,1113,372,575,457,275,460,1113, + 823,372,454,372,402,318,535,372,862,866, + 1034,926,926,372,372,372,372,879,879,460, + 575,576,575,420,329,1116,571,275,372,372, + 1106,385,877,385,326,318,420,385,382,535, + 856,871,926,372,372,1093,575,879,421,214, + 1116,543,543,1108,420,383,879,326,372,743, + 686,871,871,576,372,214,385,372,326,371, + 1112,871,385,245 }; }; public final static char asb[] = Asb.asb; @@ -1785,118 +1784,118 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface Asr { public final static byte asr[] = {0, - 121,0,4,1,2,62,0,31,0,62, - 71,76,0,60,35,13,14,59,32,15, - 64,36,75,12,16,37,38,17,18,39, - 46,40,19,20,41,65,42,10,66,21, - 57,30,22,33,23,9,3,8,4,11, - 62,7,6,5,1,2,29,0,60,35, - 13,14,59,32,15,64,36,75,12,16, - 37,38,17,18,39,46,40,19,20,41, - 65,42,10,66,21,57,30,22,33,23, - 9,3,8,6,72,11,4,7,1,2, - 5,29,0,75,46,7,103,104,105,57, - 9,3,8,6,5,71,72,11,74,35, - 13,14,59,32,15,64,36,12,16,37, - 38,17,18,39,40,19,20,41,65,42, - 10,66,21,30,22,33,23,4,1,2, - 29,0,62,70,0,30,1,2,4,103, - 104,105,0,4,71,28,62,9,0,1, - 2,9,72,0,68,69,3,10,44,49, - 47,43,52,14,23,13,19,17,18,20, - 21,16,15,22,53,56,54,55,31,51, - 45,50,5,7,4,26,27,8,6,24, - 25,34,48,1,2,118,9,0,43,68, - 44,45,69,7,47,48,49,50,61,51, - 52,53,54,55,31,26,27,8,6,24, - 25,5,34,63,56,3,10,64,59,65, - 66,14,23,13,19,17,18,20,21,16, - 15,22,35,40,41,12,39,38,36,32, - 33,37,42,1,2,30,4,0,63,71, - 95,67,118,73,72,13,14,43,68,15, - 44,45,16,17,18,69,47,19,20,48, - 49,50,61,51,52,10,21,22,23,53, - 54,55,31,26,27,24,25,34,56,9, - 8,6,11,3,4,7,5,1,2,0, - 96,90,24,25,91,92,88,89,28,93, - 94,97,98,99,100,101,102,117,71,95, - 70,107,108,109,110,111,112,113,114,115, - 116,118,72,11,63,1,2,8,6,4, - 3,58,67,73,9,0,75,103,104,105, - 29,71,121,119,122,72,74,76,57,46, - 60,78,80,86,84,77,82,83,85,87, - 62,79,81,11,9,35,59,32,64,36, - 12,37,38,39,40,41,65,42,66,30, - 33,61,68,69,10,44,49,47,43,52, - 14,23,13,19,17,18,20,21,16,15, - 22,53,56,54,55,31,51,45,50,26, - 27,24,25,34,48,7,5,3,6,8, - 4,1,2,0,9,67,72,70,0,76, - 62,63,71,95,73,58,3,70,9,11, - 67,0,9,62,67,0,9,71,118,73, - 11,67,0,71,9,58,3,70,67,11, - 28,0,29,1,2,4,9,71,62,0, - 13,14,15,16,17,18,19,20,21,22, - 23,35,32,36,12,37,38,39,40,41, - 42,30,33,11,9,73,7,1,2,58, - 3,8,6,5,4,0,8,6,4,5, - 7,1,2,3,58,63,70,67,9,73, - 95,0,61,32,7,33,5,1,2,4, - 76,62,120,106,26,27,58,3,96,90, - 6,91,92,24,25,89,88,28,93,94, - 97,98,8,99,100,101,63,95,73,70, - 107,108,109,110,111,112,113,114,115,116, - 71,118,11,102,117,67,72,9,0,35, - 13,14,59,32,15,64,36,12,16,37, - 38,17,18,39,40,19,20,41,65,42, - 10,66,21,30,22,33,23,1,2,4, - 69,68,24,25,6,91,92,99,8,100, - 34,70,28,63,110,111,107,108,109,115, - 114,116,89,88,112,113,97,98,93,94, - 101,102,26,27,67,90,106,3,58,5, - 0,9,72,61,26,27,8,6,24,25, - 34,48,3,4,53,56,54,55,31,51, - 45,50,14,23,13,19,17,18,20,21, - 16,15,22,10,44,49,47,43,52,62, - 5,7,1,2,69,68,0,7,5,3, - 58,6,8,95,35,13,14,32,15,64, - 36,12,16,37,38,17,18,39,40,19, - 20,41,65,42,10,66,21,30,22,33, - 23,1,2,4,73,9,59,0,121,74, - 59,32,15,64,36,16,37,38,17,18, - 39,40,19,20,41,65,42,66,21,30, - 22,33,23,14,13,35,9,3,8,6, - 11,57,60,75,12,29,46,7,1,2, - 5,4,10,0,35,13,14,59,32,15, - 64,36,12,16,37,38,17,18,39,40, - 19,20,41,65,42,10,66,21,30,22, - 33,23,1,2,4,95,0,63,70,67, - 1,2,0,119,0,32,33,76,3,62, - 71,11,61,9,63,95,67,73,70,0, - 9,73,13,14,43,68,15,44,45,16, - 17,18,69,7,47,19,20,48,49,50, + 121,0,4,1,2,62,0,62,71,76, + 0,60,35,13,14,59,32,15,64,36, + 75,12,16,37,38,17,18,39,46,40, + 19,20,41,65,42,10,66,21,57,30, + 22,33,23,9,3,8,4,11,62,7, + 6,5,1,2,29,0,60,35,13,14, + 59,32,15,64,36,75,12,16,37,38, + 17,18,39,46,40,19,20,41,65,42, + 10,66,21,57,30,22,33,23,9,3, + 8,6,72,11,4,7,1,2,5,29, + 0,75,46,7,103,104,105,57,9,3, + 8,6,5,71,72,11,74,35,13,14, + 59,32,15,64,36,12,16,37,38,17, + 18,39,40,19,20,41,65,42,10,66, + 21,30,22,33,23,4,1,2,29,0, + 62,69,0,30,1,2,4,103,104,105, + 0,4,71,28,62,9,0,1,2,9, + 72,0,67,68,3,10,44,49,47,43, + 52,14,23,13,19,17,18,20,21,16, + 15,22,53,56,54,55,31,51,45,50, + 5,7,4,26,27,8,6,24,25,34, + 48,1,2,118,9,0,43,67,44,45, + 68,7,47,48,49,50,61,51,52,53, + 54,55,31,26,27,8,6,24,25,5, + 34,63,56,3,10,64,59,65,66,14, + 23,13,19,17,18,20,21,16,15,22, + 35,40,41,12,39,38,36,32,33,37, + 42,1,2,30,4,0,63,71,95,70, + 118,73,72,13,14,43,67,15,44,45, + 16,17,18,68,47,19,20,48,49,50, 61,51,52,10,21,22,23,53,54,55, - 31,1,2,3,26,27,8,24,25,5, - 34,4,56,6,0,77,0,32,61,33, - 9,63,95,70,67,73,0,11,9,7, - 5,3,1,2,6,8,4,71,0,68, - 69,26,27,24,25,34,48,53,56,54, - 55,31,51,45,50,14,23,13,19,17, - 18,20,21,16,15,22,10,44,49,47, - 43,52,8,6,4,58,7,5,1,2, - 3,0,59,32,15,64,36,16,37,38, - 17,18,39,40,19,20,41,65,42,10, - 66,21,30,22,33,23,14,13,35,7, - 3,8,6,5,57,46,60,75,12,28, - 1,2,4,29,11,9,0,10,64,59, - 65,66,14,23,13,19,17,18,20,21, - 16,15,22,76,62,71,95,118,72,7, - 40,41,42,30,33,1,2,39,38,37, - 12,36,5,4,32,35,9,73,11,58, - 3,120,96,106,90,26,27,8,6,24, - 25,91,92,88,89,28,93,94,97,98, - 99,100,101,102,117,107,108,109,110,111, - 112,113,114,115,116,70,67,63,0 + 31,26,27,24,25,34,56,8,6,4, + 1,2,7,5,3,11,9,0,96,90, + 24,25,91,92,88,89,28,93,94,97, + 98,99,100,101,102,117,71,95,69,107, + 108,109,110,111,112,113,114,115,116,118, + 72,11,63,1,2,8,6,4,3,58, + 70,73,9,0,75,103,104,105,29,71, + 121,119,122,72,74,76,57,46,60,78, + 80,86,84,77,82,83,85,87,62,79, + 81,11,9,35,59,32,64,36,12,37, + 38,39,40,41,65,42,66,30,33,61, + 67,68,10,44,49,47,43,52,14,23, + 13,19,17,18,20,21,16,15,22,53, + 56,54,55,31,51,45,50,26,27,24, + 25,34,48,7,5,3,6,8,4,1, + 2,0,9,70,72,69,0,76,62,63, + 71,95,73,58,3,69,9,11,70,0, + 9,62,70,0,9,71,118,73,11,70, + 0,71,9,58,3,69,70,11,28,0, + 35,13,14,32,15,36,12,16,37,38, + 17,18,39,7,40,19,20,41,42,21, + 30,22,33,23,1,2,9,58,8,6, + 5,4,73,11,3,0,29,1,2,4, + 9,71,62,0,8,6,4,5,7,1, + 2,3,58,63,69,70,9,73,95,0, + 61,32,7,33,5,1,2,4,76,62, + 120,106,26,27,58,3,96,90,6,91, + 92,24,25,89,88,28,93,94,97,98, + 8,99,100,101,63,95,73,69,107,108, + 109,110,111,112,113,114,115,116,71,118, + 11,102,117,70,72,9,0,35,13,14, + 59,32,15,64,36,12,16,37,38,17, + 18,39,40,19,20,41,65,42,10,66, + 21,30,22,33,23,1,2,4,68,67, + 24,25,6,91,92,99,8,100,5,34, + 28,110,111,107,108,109,115,114,116,89, + 88,112,113,97,98,93,94,101,102,26, + 27,90,106,3,58,69,70,63,0,9, + 72,61,26,27,8,6,24,25,34,48, + 3,4,53,56,54,55,31,51,45,50, + 14,23,13,19,17,18,20,21,16,15, + 22,10,44,49,47,43,52,62,5,7, + 1,2,68,67,0,7,5,3,58,6, + 8,95,35,13,14,59,32,15,64,36, + 12,16,37,38,17,18,39,40,19,20, + 41,65,42,10,66,21,30,22,33,23, + 1,2,4,73,9,0,121,74,59,32, + 15,64,36,16,37,38,17,18,39,40, + 19,20,41,65,42,66,21,30,22,33, + 23,14,13,35,9,3,8,6,11,57, + 60,75,12,29,46,7,1,2,5,4, + 10,0,35,13,14,59,32,15,64,36, + 12,16,37,38,17,18,39,40,19,20, + 41,65,42,10,66,21,30,22,33,23, + 1,2,4,95,0,63,69,70,1,2, + 0,119,0,32,33,76,3,62,71,11, + 61,9,63,95,70,73,69,0,9,73, + 13,14,43,67,15,44,45,16,17,18, + 68,7,47,19,20,48,49,50,61,51, + 52,10,21,22,23,53,54,55,31,1, + 2,3,26,27,8,24,25,5,34,4, + 56,6,0,77,0,32,61,33,9,63, + 95,69,70,73,0,11,9,7,5,3, + 1,2,6,8,4,71,0,67,68,26, + 27,8,6,24,25,5,34,48,3,4, + 7,53,56,54,55,51,45,50,14,23, + 13,19,17,18,20,21,16,15,22,10, + 44,49,47,43,52,58,1,2,31,0, + 32,15,64,36,16,37,38,17,18,39, + 40,19,20,41,65,42,10,66,21,30, + 22,33,23,14,13,35,7,9,3,8, + 6,5,11,57,46,60,75,12,28,1, + 2,4,29,59,0,10,64,59,65,66, + 14,23,13,19,17,18,20,21,16,15, + 22,76,62,71,95,118,72,120,96,106, + 90,26,27,24,25,91,92,88,89,28, + 63,93,94,97,98,99,100,101,102,117, + 69,107,108,109,110,111,112,113,114,115, + 116,70,35,32,36,12,37,38,39,40, + 41,42,30,33,11,9,73,8,6,3, + 58,4,7,1,2,5,0 }; }; public final static byte asr[] = Asr.asr; @@ -1920,43 +1919,43 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 140,140,72,197,140,12,163,12,65,225, 258,72,18,18,79,126,12,11,238,72, 12,12,12,130,12,12,12,12,12,122, - 12,12,28,187,197,34,34,233,34,34, - 34,34,34,34,12,12,12,12,12,12, - 12,12,12,12,12,34,12,12,126,61, - 96,12,265,12,91,12,49,34,155,155, - 57,12,42,12,49,12,148,12,12,12, - 175,175,72,72,163,47,115,12,122,63, - 265,111,72,34,238,121,129,107,107,187, - 273,273,273,273,197,194,136,12,49,49, - 1,34,59,47,187,12,51,51,194,160, - 34,34,34,34,34,34,34,34,34,34, + 12,28,187,197,34,34,233,34,34,34, + 34,34,34,12,12,12,12,12,12,12, + 12,12,12,12,34,12,12,126,61,96, + 12,265,12,91,12,49,34,155,155,57, + 12,42,12,49,12,148,12,12,12,175, + 175,72,72,163,47,115,12,122,63,265, + 111,72,34,238,121,129,107,107,187,273, + 273,273,273,197,194,136,12,49,49,1, + 34,59,47,187,12,51,51,194,160,34, 34,34,34,34,34,34,34,34,34,34, 34,34,34,34,34,34,34,34,34,34, - 160,34,32,155,142,24,11,194,12,67, - 57,155,34,12,12,147,121,181,181,240, - 155,12,12,140,221,140,12,34,12,101, - 20,265,122,122,11,40,49,207,155,49, - 49,12,12,12,12,46,49,34,12,12, - 12,10,197,91,273,184,221,49,220,197, - 220,49,91,12,12,12,12,12,12,12, + 34,34,34,34,34,34,34,34,34,160, + 34,32,155,142,24,11,194,12,67,57, + 155,34,12,12,147,121,181,181,240,155, + 12,12,140,221,140,12,34,12,101,20, + 265,122,122,11,40,49,207,155,49,49, + 12,12,12,12,46,49,34,12,12,12, + 10,197,91,273,184,221,49,220,197,220, + 49,91,12,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, - 12,12,105,157,12,34,12,140,12,12, - 12,158,12,238,138,140,140,238,99,49, - 34,72,57,34,34,207,215,181,273,273, - 140,150,34,34,11,265,265,49,181,12, - 12,12,12,126,11,197,47,34,273,155, - 93,49,197,191,47,34,103,12,12,12, - 158,268,268,179,12,268,140,140,12,155, - 67,155,12,11,11,155,49,160,160,160, - 160,12,12,45,126,49,200,42,12,237, - 126,273,49,150,49,245,155,12,49,105, - 177,12,57,155,49,49,49,49,194,194, - 126,155,109,12,160,42,192,12,12,49, - 49,155,158,12,158,140,150,160,158,103, - 12,175,155,57,49,49,12,200,194,34, - 91,192,99,99,148,34,12,212,140,49, - 272,12,177,155,109,49,91,158,49,140, - 49,220,177,158,273 + 12,105,157,12,34,12,140,12,12,12, + 158,12,238,138,140,140,238,99,49,34, + 72,57,34,34,207,215,181,273,273,140, + 150,34,34,11,265,265,49,181,12,12, + 12,12,126,11,197,47,34,273,155,93, + 49,197,191,47,34,103,12,12,12,158, + 268,268,179,12,268,140,140,12,155,67, + 155,12,11,11,155,49,160,160,160,160, + 12,12,45,126,49,200,42,12,237,126, + 273,49,150,49,245,155,12,49,105,177, + 12,57,155,49,49,49,49,194,194,126, + 155,109,12,160,42,192,12,12,49,49, + 155,158,12,158,140,150,160,158,103,12, + 175,155,57,49,49,12,200,194,34,91, + 192,99,99,148,34,12,212,140,49,272, + 12,177,155,109,49,91,158,49,140,49, + 220,177,158,273 }; }; public final static char nasb[] = Nasb.nasb; @@ -2005,7 +2004,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 114,56,108,16,49,66,72,75,78,85, 91,100,57,63,69,79,86,90,92,96, 99,101,111,112,113,123,105,2,55,48, - 97,4,22,65,93,103,46,60,80,35, + 97,4,22,65,93,103,60,80,35,46, 32,120,119,122,67,98,110,51,52,58, 59,61,71,73,74,87,94,19,20,8, 17,18,23,24,34,6,25,26,27,28, @@ -2109,10 +2108,10 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 1,1,1,1,4,63,11,1,1,63, 73,73,73,119,73,1,11,72,1,1, 1,1,11,11,72,118,73,73,73,73, - 73,118,1,73,1,67,73,73,73,71, + 73,118,1,73,1,70,73,73,73,71, 4,73,63,63,63,63,73,3,1,1, 73,73,3,118,73,1,1,1,11,71, - 73,118,73,5,73,1,29,70,73,1, + 73,118,73,5,73,1,29,69,73,1, 1,6,1,29,77,76,11,11,4,4, 4,4,3,1,9,62,1,1,3 }; @@ -2170,7 +2169,7 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 0,0,0,0,0,198,3,0,202,0, 237,127,62,31,12,0,184,128,46,57, 0,198,128,0,131,184,128,276,57,0, - 184,128,276,57,0,184,128,70,124,46, + 184,128,276,57,0,184,128,69,124,46, 0,237,127,62,46,0,237,127,62,226, 46,0,274,127,62,124,64,0,274,127, 62,64,0,184,128,64,0,137,0,194, @@ -2188,8 +2187,8 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 0,299,127,62,0,162,0,214,79,0, 32,0,162,117,158,0,32,172,0,177, 3,0,126,152,0,219,3,0,214,58, - 264,0,162,58,0,177,3,295,69,128, - 0,126,0,0,0,0,295,69,128,0, + 264,0,162,58,0,177,3,295,68,128, + 0,126,0,0,0,0,295,68,128,0, 3,148,126,0,0,0,0,177,3,48, 0,150,0,126,29,167,128,0,33,150, 0,95,139,33,150,0,223,184,128,0, @@ -2213,37 +2212,37 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public interface ScopeState { public final static char scopeState[] = {0, - 2757,2141,0,3402,3315,3077,0,3570,3499,0, - 4127,4736,4728,4713,0,1654,2409,1570,1906,0, - 3464,3411,3325,3272,3219,3166,3113,2823,2725,3222, - 0,934,795,0,867,0,624,1209,0,4555, - 2854,4327,0,2831,625,0,1756,1546,1420,3000, - 915,3464,3411,3325,3272,3219,3166,3113,2823,2725, - 0,2994,2454,0,1174,0,2826,2762,2436,1982, - 3766,717,3379,2785,2575,2551,3326,0,3477,2598, - 3766,3556,3553,717,1473,1431,2912,721,1260,3281, - 3118,1167,2527,0,4705,4697,4677,4659,4626,4614, - 4610,4689,4606,4594,4681,4142,4581,3633,3140,4561, - 4532,4507,4499,2848,3439,2544,0,3766,3799,3281, - 3118,4514,3379,3080,4379,4351,2785,2912,2551,4338, - 578,2527,0,3799,4514,0,3359,3230,3068,2940, - 2780,2539,3366,4705,4697,2811,4677,4659,1126,4626, - 4614,919,4610,733,4689,4606,4594,2766,4681,996, - 2749,4142,4581,1119,3633,1115,3140,4561,4532,923, - 4507,4499,2848,862,3439,4362,2544,2513,637,3379, - 3080,4379,4351,3766,3042,3004,2785,2912,2551,3799, - 2562,4338,3281,2234,3118,578,2527,4514,2734,2147, - 2060,934,795,655,4104,4082,2247,2284,589,2317, - 2377,1042,2348,2703,2677,2486,2459,2432,2405,3742, - 3718,3681,3091,3017,4060,4038,4016,3994,3972,3950, - 3928,3906,3884,3862,3777,1944,2197,1902,2160,2110, - 1269,1218,1860,2073,2023,1176,873,1818,1776,1734, - 1692,1650,1608,1566,1524,1482,1440,1398,533,1986, - 1130,1350,818,739,1311,684,1000,952,1073,0, - 533,4362,2513,0,2756,4429,4420,3464,3411,3325, - 3272,3219,3166,3113,2823,2725,4260,3603,4226,3550, - 3517,4193,4159,2926,4126,2887,0,4260,3603,4226, - 3550,3517,4193,4159,2926,4126,2887,2756,4429,4420, + 2756,2140,0,3401,3314,3076,0,3569,3498,0, + 4126,4735,4727,4712,0,1653,2408,1569,1905,0, + 3463,3410,3324,3271,3218,3165,3112,2822,2724,3221, + 0,933,794,0,866,0,623,1208,0,4554, + 2853,4326,0,2830,624,0,1755,1545,1419,2999, + 914,3463,3410,3324,3271,3218,3165,3112,2822,2724, + 0,2993,2453,0,1173,0,2825,2761,2435,1981, + 3765,716,3378,2784,2574,2550,3325,0,3476,2597, + 3765,3555,3552,716,1472,1430,2911,720,1259,3280, + 3117,1166,2526,0,4704,4696,4676,4658,4625,4613, + 4609,4688,4605,4593,4680,4141,4580,3632,3139,4560, + 4531,4506,4498,2847,3438,2543,0,3765,3798,3280, + 3117,4513,3378,3079,4378,4350,2784,2911,2550,4337, + 577,2526,0,3798,4513,0,3358,3229,3067,2939, + 2779,2538,3365,4704,4696,2810,4676,4658,1125,4625, + 4613,918,4609,732,4688,4605,4593,2765,4680,995, + 2748,4141,4580,1118,3632,1114,3139,4560,4531,922, + 4506,4498,2847,861,3438,4361,2543,2512,636,3378, + 3079,4378,4350,3765,3041,3003,2784,2911,2550,3798, + 2561,4337,3280,2233,3117,577,2526,4513,2733,2146, + 2059,933,794,654,4103,4081,2246,2283,588,2316, + 2376,1041,2347,2702,2676,2485,2458,2431,2404,3741, + 3717,3680,3090,3016,4059,4037,4015,3993,3971,3949, + 3927,3905,3883,3861,3776,1943,2196,1901,2159,2109, + 1268,1217,1859,2072,2022,1175,872,1817,1775,1733, + 1691,1649,1607,1565,1523,1481,1439,1397,532,1985, + 1129,1349,817,738,1310,683,999,951,1072,0, + 532,4361,2512,0,2755,4428,4419,3463,3410,3324, + 3271,3218,3165,3112,2822,2724,4259,3602,4225,3549, + 3516,4192,4158,2925,4125,2886,0,4259,3602,4225, + 3549,3516,4192,4158,2925,4125,2886,2755,4428,4419, 0 }; }; @@ -2259,52 +2258,52 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym 226,124,128,128,31,9,62,167,230,128, 165,126,125,124,62,128,28,128,184,167, 76,127,267,127,191,180,198,277,212,128, - 6,198,125,124,28,166,58,3,68,69, - 28,167,3,28,63,127,62,127,62,70, + 6,198,125,124,28,166,58,3,67,68, + 28,167,3,28,63,127,62,127,62,69, 184,184,154,127,127,126,125,127,184,4, 127,62,127,184,127,167,29,127,279,71, - 212,58,3,70,67,167,127,127,127,58, + 212,58,3,69,70,167,127,127,127,58, 58,127,194,127,127,127,237,236,127,128, 226,131,282,128,168,222,46,29,57,170, 283,282,127,127,71,194,259,194,127,274, 124,275,252,166,52,43,47,49,44,10, - 136,134,4,3,128,48,34,5,25,24, - 6,8,27,26,140,146,148,147,150,149, - 152,151,155,153,157,61,158,255,194,279, - 62,289,128,290,214,158,156,127,62,6, - 183,252,212,252,227,228,145,229,292,29, - 10,59,237,237,184,167,127,308,222,30, - 128,4,274,70,67,127,3,217,216,3, - 28,28,28,28,128,3,7,125,177,162, - 127,68,69,167,3,126,106,120,3,58, - 90,96,25,24,92,91,6,94,93,63, - 28,88,89,8,98,97,100,99,101,116, - 115,114,113,112,111,110,109,108,107,70, - 117,102,67,280,127,67,184,3,266,127, - 127,154,70,224,198,3,127,67,67,63, - 28,230,230,226,194,306,125,71,285,198, - 67,128,30,309,184,212,224,127,3,177, - 162,177,177,177,177,167,219,154,136,126, - 125,10,128,58,295,3,194,177,29,128, - 29,219,162,147,147,146,146,146,149,149, - 149,149,148,148,151,150,150,153,152,155, - 162,157,127,299,81,79,1,162,87,85, - 83,82,77,84,86,80,78,46,76,219, - 67,305,127,70,70,127,212,127,70,70, - 131,67,71,70,184,128,128,227,127,63, - 63,63,63,194,176,128,167,201,3,296, - 166,156,128,184,167,71,281,119,9,214, - 71,3,3,3,202,3,124,162,124,182, - 67,220,292,184,184,154,227,3,3,3, - 3,126,125,167,29,177,127,127,223,5, - 29,3,225,166,225,301,145,77,225,127, - 127,63,127,154,162,162,162,162,3,3, - 194,154,261,264,58,178,4,124,126,95, - 312,166,154,198,154,300,127,3,154,281, - 61,59,220,127,219,219,126,127,3,58, - 162,4,154,154,127,70,202,161,267,162, - 3,230,127,220,261,219,214,122,298,154, - 313,70,127,154,67 + 136,4,3,128,48,34,5,25,24,6, + 8,27,26,140,146,148,147,150,149,152, + 151,155,153,157,61,158,255,194,279,62, + 289,128,290,214,158,156,127,62,6,183, + 252,212,252,227,228,145,229,292,29,10, + 59,237,237,184,167,127,308,222,30,128, + 4,274,69,70,127,3,217,216,3,28, + 28,28,28,128,3,7,125,177,162,127, + 67,68,167,3,126,106,120,3,58,90, + 96,25,24,92,91,6,94,93,63,28, + 88,89,8,98,97,100,99,101,116,115, + 114,113,112,111,110,109,108,107,69,117, + 102,70,280,127,70,184,3,266,127,127, + 154,69,224,198,3,127,70,70,63,28, + 230,230,226,194,306,125,71,285,198,70, + 128,30,309,184,212,224,127,3,177,162, + 177,177,177,177,167,219,154,136,126,125, + 10,128,58,295,3,194,177,29,128,29, + 219,162,147,147,146,146,146,149,149,149, + 149,148,148,151,150,150,153,152,155,162, + 157,127,299,81,79,1,162,87,85,83, + 82,77,84,86,80,78,46,76,219,70, + 305,127,69,69,127,212,127,69,69,131, + 70,71,69,184,128,128,227,127,63,63, + 63,63,194,176,128,167,201,3,296,166, + 156,128,184,167,71,281,119,9,214,71, + 3,3,3,202,3,124,162,124,182,70, + 220,292,184,184,154,227,3,3,3,3, + 126,125,167,29,177,127,127,223,5,29, + 3,225,166,225,301,145,77,225,127,127, + 63,127,154,162,162,162,162,3,3,194, + 154,261,264,58,178,4,124,126,95,312, + 166,154,198,154,300,127,3,154,281,61, + 59,220,127,219,219,126,127,3,58,162, + 4,154,154,127,69,202,161,267,162,3, + 230,127,220,261,219,214,122,298,154,313, + 69,127,154,70 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2580,20 +2579,20 @@ public class CPPParserprs implements lpg.lpgjavaruntime.ParseTable, CPPParsersym public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 525, + NUM_STATES = 524, NT_OFFSET = 123, - LA_STATE_OFFSET = 5868, + LA_STATE_OFFSET = 5863, MAX_LA = 2147483647, - NUM_RULES = 532, + NUM_RULES = 531, NUM_NONTERMINALS = 193, NUM_SYMBOLS = 316, SEGMENT_SIZE = 8192, - START_STATE = 2887, + START_STATE = 2886, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4943, - ERROR_ACTION = 5336; + ACCEPT_ACTION = 4942, + ERROR_ACTION = 5332; 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 8264928be00..0e90bc442f5 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 @@ -27,7 +27,7 @@ public interface CPPParsersym { TK_const_cast = 43, TK_continue = 80, TK_default = 81, - TK_delete = 68, + TK_delete = 67, TK_do = 82, TK_double = 15, TK_dynamic_cast = 44, @@ -47,7 +47,7 @@ public interface CPPParsersym { TK_long = 18, TK_mutable = 39, TK_namespace = 46, - TK_new = 69, + TK_new = 68, TK_operator = 7, TK_private = 103, TK_protected = 104, @@ -119,7 +119,7 @@ public interface CPPParsersym { TK_Colon = 71, TK_ColonColon = 4, TK_DotDotDot = 95, - TK_Assign = 70, + TK_Assign = 69, TK_StarAssign = 107, TK_SlashAssign = 108, TK_PercentAssign = 109, @@ -130,7 +130,7 @@ public interface CPPParsersym { TK_AndAssign = 114, TK_CaretAssign = 115, TK_OrAssign = 116, - TK_Comma = 67, + TK_Comma = 70, TK_RightBracket = 118, TK_RightParen = 73, TK_RightBrace = 72, @@ -207,10 +207,10 @@ public interface CPPParsersym { "enum", "struct", "union", - "Comma", "delete", "new", "Assign", + "Comma", "Colon", "RightBrace", "RightParen", 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 ae07e5c494c..51271d9ff41 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 @@ -2184,65 +2184,72 @@ public CPPSizeofExpressionParser(String[] mapFrom) { // constructor } // - // Rule 515: explicit_instantiation ::= template declaration + // Rule 513: template_argument ::= type_id // - case 515: { action.builder. + case 513: { action.builder. + consumeTemplateArgumentTypeId(); break; + } + + // + // Rule 514: explicit_instantiation ::= template declaration + // + case 514: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 516: explicit_specialization ::= template < > declaration + // Rule 515: explicit_specialization ::= template < > declaration // - case 516: { action.builder. + case 515: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 517: try_block ::= try compound_statement handler_seq + // Rule 516: try_block ::= try compound_statement handler_seq // - case 517: { action.builder. + case 516: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 520: handler ::= catch ( exception_declaration ) compound_statement + // Rule 519: handler ::= catch ( exception_declaration ) compound_statement // - case 520: { action.builder. + case 519: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 521: handler ::= catch ( ... ) compound_statement + // Rule 520: handler ::= catch ( ... ) compound_statement // - case 521: { action.builder. + case 520: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 522: exception_declaration ::= type_specifier_seq declarator + // Rule 521: exception_declaration ::= type_specifier_seq declarator // - case 522: { action.builder. + case 521: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 523: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 522: exception_declaration ::= type_specifier_seq abstract_declarator // - case 523: { action.builder. + case 522: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq + // Rule 523: exception_declaration ::= type_specifier_seq // - case 524: { action.builder. + case 523: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 532: no_sizeof_type_name_start ::= ERROR_TOKEN + // Rule 531: no_sizeof_type_name_start ::= ERROR_TOKEN // - case 532: { action.builder. + case 531: { 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 008cc5e852b..0f63c43a00d 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 @@ -88,432 +88,431 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 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,1,2,4,4,1,2,5, - 5,3,3,1,4,3,1,0,1,3, - 1,1,-63,0,0,0,-53,0,0,0, + 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,-53,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,0,-2,0,0,-10,0,0,0, - -4,0,0,0,-330,0,0,0,-113,0, - 0,0,0,0,0,-178,0,0,-93,0, + 0,0,0,0,-65,0,0,0,0,0, + 0,0,-2,0,0,-10,0,0,0,-4, + 0,0,0,-329,0,0,0,-113,0,0, + 0,0,0,0,-178,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,0,0,0,0, - 0,-486,0,-292,-5,0,0,0,0,0, - 0,0,0,-238,0,0,0,0,-357,0, - 0,0,-6,0,0,0,0,0,0,0, - 0,0,-311,-146,0,0,0,0,0,0, - 0,0,0,0,-7,0,0,0,0,0, - -149,0,0,0,0,0,0,0,0,0, - 0,0,-115,0,0,0,0,0,0,0, + -485,0,-291,-5,0,0,0,0,0,0, + 0,0,-237,0,0,0,0,-356,0,0, + 0,-6,0,0,0,0,0,0,0,0, + 0,-310,-146,0,0,0,0,0,0,0, + 0,0,0,-7,0,0,0,0,0,-149, 0,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,-378,0,0,-127, - 0,0,0,0,0,0,0,-72,0,0, - 0,-249,0,0,0,0,0,0,0,0, - 0,-116,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-377,0,0,-127,0, + 0,0,0,0,0,0,-72,0,0,0, + -248,0,0,0,0,0,0,0,0,0, + -116,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-58,0,0,0,0,0,-141,0, - 0,0,0,0,-263,0,-8,-16,0,0, - 0,-147,0,0,0,-73,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-296, - -183,0,-51,-233,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,-124,0,0,0,0,0, - -9,0,-11,0,0,-246,0,0,0,-136, - 0,0,0,0,-12,0,-226,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-13,0,0, - -211,0,0,0,0,-49,0,0,-265,0, - 0,0,0,-119,-50,0,0,0,0,-57, - 0,0,-129,0,0,-338,0,0,0,0, - 0,0,0,0,0,0,0,0,-15,0, - 0,-28,-483,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-137,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-322, - 0,-29,0,0,-518,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-508,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,-31,0,0,0,0,0,-398, - 0,0,0,0,-20,0,0,0,-300,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,0, - 0,0,0,0,0,0,0,0,0,0, - 0,-287,0,0,0,0,0,0,0,0, - 0,0,-32,0,0,-267,0,0,0,0, - -360,0,0,0,-414,-352,0,0,0,0, - 0,-33,0,-284,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-58,0,0,0,0,0,-141,0,0, + 0,0,0,-262,0,-8,-16,0,0,0, + -147,0,0,0,-73,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-295,-182, + 0,-51,-232,0,0,0,-131,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-34,0,0,-42,0,0, - 0,0,0,0,0,-324,0,0,0,-270, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-317, - 0,0,-54,-318,0,0,0,-185,0,-345, - 0,0,-387,-325,0,0,0,-60,0,0, + 0,0,0,-124,0,0,0,0,0,-9, + 0,-11,0,0,-245,0,0,0,-136,0, + 0,0,0,-12,0,-225,0,0,0,0, 0,0,0,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, - -35,0,-108,0,0,-433,0,0,0,-114, + 0,0,0,0,0,0,-13,0,0,-210, + 0,0,0,0,-49,0,0,-264,0,0, + 0,0,-119,-50,0,0,0,0,-57,0, + 0,-129,0,0,-337,0,0,0,0,0, + 0,0,0,0,0,0,0,-15,0,0, + -28,-482,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-137,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-321,0, + -29,0,0,-517,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,0,0,0,0,0,0,0,0, - 0,0,0,0,-36,0,0,0,-39,0, + 0,0,0,0,-30,0,0,0,0,0, + 0,0,-31,0,0,0,0,0,-397,0, + 0,0,0,-20,0,0,0,-299,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,0,0, - 0,0,0,0,0,0,0,0,0,-37, - 0,0,-186,0,0,0,0,0,0,0, - -347,-41,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,-32,0,0,-266,0,0,0,0,-359, + 0,0,0,-413,-351,0,0,0,0,0, + -33,0,-283,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-515,0,0,0,0, - 0,0,0,-95,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-34,0,0,-42,0,0,0, + 0,0,0,0,-323,0,0,0,-269,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-48,0,0, - -38,0,-152,0,0,-96,0,0,0,-130, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-316,0, + 0,-54,-317,0,0,0,-184,0,-344,0, + 0,-386,-324,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,-69, - 0,0,-40,0,-55,0,0,-97,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,-61,0,0,0,0,0,-35, + 0,-108,0,0,-432,0,0,0,-114,0, 0,0,0,0,0,0,0,0,0,0, - 0,-74,0,0,0,0,-203,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,0,-36,0,0,0,-39,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-75,0,0,0,0,0,0, - 0,-99,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,-37,0, + 0,-185,0,0,0,0,0,0,0,-346, + -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,-106,0,0,-56,0, - -59,0,0,-100,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-514,0,0,0,0,0, + 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,-117,0,0, - 0,-67,0,0,0,-101,0,0,0,-201, 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,-70,0,0,-133, - 0,0,-452,0,0,0,0,-102,0,0, + 0,0,0,0,0,0,-48,0,0,-38, + 0,-152,0,0,-96,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, - -66,0,0,0,0,0,0,0,-71,0, - 0,-220,0,0,0,0,0,0,0,-103, + 0,0,0,0,0,0,0,0,-69,0, + 0,-40,0,-55,0,0,-97,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,0, + -74,0,0,0,0,-202,0,0,-98,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-221,0,0,-109,0,0,0, - 0,-104,0,0,0,0,0,0,0,0, 0,0,0,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,-410,0, - -110,0,0,-105,0,0,0,-337,0,0, + 0,0,-75,0,0,0,0,0,0,0, + -99,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,0,0,0,0,0,-223,0,0, - -111,0,-377,0,0,-134,0,0,0,-336, + 0,0,0,0,-106,0,0,-56,0,-59, + 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,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-112, - 0,0,-219,0,0,0,-120,0,0,0, + 0,0,0,0,0,0,-117,0,0,0, + -67,0,0,0,-101,0,0,0,-200,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-333,0,0,0,0, - 0,0,0,-207,0,0,-138,0,0,0, - 0,0,0,0,0,-355,-384,0,0,0, - 0,0,-513,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-68,0,0, + 0,0,0,0,0,-70,0,0,-133,0, + 0,-451,0,0,0,0,-102,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,0,-140,0,0,-234, - 0,0,0,0,-321,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-66, + 0,0,0,0,0,0,0,-71,0,0, + -219,0,0,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,0,0,0,0,0,0,0,-154,0, - 0,-335,0,0,0,-155,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-220,0,0,-109,0,0,0,0, + -104,0,0,0,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,-156,0,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,-157,0,0,0,0,0, - 0,0,-158,0,0,-212,0,0,-382,0, + 0,0,0,0,-221,0,0,-409,0,-110, + 0,0,-105,0,0,0,-336,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,0,0,0,0,0,0, - 0,0,-160,0,0,-151,0,0,0,-161, - 0,0,0,0,0,0,0,0,-383,0, + 0,0,0,0,0,0,-222,0,0,-111, + 0,-376,0,0,-134,0,0,0,-335,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,0,0,0,0,0,-163, - 0,0,-241,0,0,-444,0,0,0,0, + 0,0,0,0,0,0,0,0,-112,0, + 0,-218,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,0,-164,0, - 0,0,0,0,0,0,0,0,0,-165, - 0,0,-376,0,0,0,-456,0,0,0, - 0,0,0,-365,-364,-107,0,0,0,0, + 0,0,0,0,-332,0,0,0,0,0, + 0,0,-206,0,0,-138,0,0,0,0, + 0,0,0,0,-354,-383,0,0,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,0,-467,0, - 0,0,0,0,0,0,-187,0,0,-401, - 0,0,-94,0,0,0,0,0,0,0, + 0,0,0,0,-139,0,0,0,0,0, + 0,0,0,0,0,-140,0,0,-233,0, + 0,0,0,-320,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-273,0,0,0,0, - 0,0,0,-166,0,-92,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-154,0,0, + -334,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,-89,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,-90,0,0,0,0, + 0,0,0,0,0,0,0,-148,0,0, + 0,-156,0,0,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,-279,0, - 0,0,0,-91,0,0,0,-168,0,0, + 0,0,0,-157,0,0,0,0,0,0, + 0,-158,0,0,-211,0,0,-381,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-169,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,0,-170,0,0,0,-84,0, + -159,0,0,0,0,0,0,0,0,0, + 0,-160,0,0,-151,0,0,0,-161,0, + 0,0,0,0,0,0,0,-382,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-372,0,0,0,-85,0,0,0,-171, + -162,0,0,0,0,0,0,0,-163,0, + 0,-240,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,-172,0, - 0,0,-86,0,0,0,-457,0,0,0, + 0,0,0,0,0,0,0,-164,0,0, + 0,0,0,0,0,0,0,0,-165,0, + 0,-375,0,0,0,-455,0,0,0,0, + 0,0,-364,-363,-107,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-173,0,0,0,-52, - 0,0,0,-174,0,-399,0,0,-87,0, + 0,0,0,0,0,0,0,-466,0,0, + 0,0,0,0,0,-186,0,0,-400,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,-272,0,0,0,0,0, + 0,0,-166,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,-89,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,-90,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-278,0,0, + 0,0,-91,0,0,0,-168,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-169,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,0,-170,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, + -371,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,-456,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-173,0,0,0,-52,0, + 0,0,-174,0,-398,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, + -481,0,0,-361,0,0,-177,0,0,0, + -196,0,0,0,-217,-122,0,0,0,-175, + 0,-370,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,0,0,0, + -176,-179,0,-234,0,0,0,0,0,-247, + -180,-118,0,-242,0,0,0,0,0,0, + 0,0,0,0,0,-378,0,0,-145,0, + 0,0,0,0,0,0,0,0,-187,0, + 0,0,-62,0,0,-181,0,-289,0,0, + 0,0,-191,0,0,0,0,0,-192,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-239,0,0, + 0,0,-188,0,0,-197,0,0,-425,0, + 0,0,-190,0,0,0,0,0,0,0, + -198,-201,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-238,0,0,0,-236, + 0,0,-390,0,0,0,0,0,0,0, + 0,0,0,-319,0,0,0,0,-121,0, + 0,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,-193,0,-254, + 0,0,-18,0,0,0,0,0,0,0, + 0,-212,-424,-203,0,0,0,0,0,0, + 0,0,0,-495,0,0,0,0,0,-216, + 0,0,0,0,-273,0,0,-275,-215,0, + -223,0,0,0,0,0,-246,0,0,0, + 0,0,-287,-255,0,0,0,0,0,0, + -224,0,0,0,0,0,0,0,-204,0, + -256,0,0,0,0,-441,-209,-230,-257,0, + 0,0,0,0,0,0,-227,0,0,0, + 0,0,0,0,0,0,-226,-231,0,0, + 0,0,0,0,0,0,0,-47,0,0, + 0,-235,0,0,0,0,-241,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-277,0,-260,0,-352,0,0,-243,0, + 0,0,0,0,0,-251,0,-265,0,0, + 0,0,0,0,0,0,0,0,-79,0, + 0,0,-305,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,-431,0,0,0,0,0,-312,0,0, + 0,0,0,0,0,0,0,0,-135,0, + -297,-365,0,-292,0,-374,-282,-449,-199,0, + 0,0,0,0,-302,-368,0,0,0,0, + 0,0,0,0,0,0,-267,0,0,-294, + 0,0,0,0,0,0,-1,0,0,0, + 0,0,0,0,0,0,0,-509,0,0, + 0,0,0,0,0,-123,0,0,0,0, + 0,0,0,0,-306,0,0,0,0,0, + 0,0,0,-470,-504,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, + 0,0,0,0,0,0,0,-405,0,0, + 0,0,0,0,-268,0,-250,-244,0,0, + 0,0,0,0,0,0,0,-279,-213,0, + 0,0,0,-499,-355,0,0,0,-261,0, + 0,0,0,0,0,-280,0,0,0,0, + 0,0,0,0,0,0,0,-304,0,-128, + 0,0,0,-258,0,0,-303,0,0,0, + 0,0,0,0,-252,0,0,0,0,0, + 0,0,0,0,0,0,0,-284,-406,0, + 0,0,0,-501,0,-473,0,0,0,0, + 0,0,0,-285,-43,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-296, + 0,0,0,0,0,0,0,0,-300,-301, + -327,0,0,0,0,0,0,-14,0,0, + 0,0,0,0,0,0,0,-307,0,-308, + 0,0,0,-505,0,0,-362,0,-309,0, + 0,-314,0,-311,0,-274,0,0,0,0, + 0,0,0,0,0,0,0,-315,-228,-125, + -506,0,0,0,0,-183,0,0,0,-331, + 0,0,0,-253,0,0,0,-348,0,0, + 0,0,0,0,0,0,0,-511,0,0, + 0,0,0,0,0,0,0,0,-276,0, 0,0,0,0,0,0,0,0,0,0, - 0,-482,0,0,-362,0,0,-177,0,0, - 0,-197,0,0,0,-218,-122,0,0,0, - -175,0,-371,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,0,0, - 0,-176,-179,0,-235,0,0,0,0,0, - -248,-180,-118,0,-243,0,0,0,0,0, - 0,0,0,0,0,0,-379,0,0,-145, - 0,0,0,0,0,0,0,0,0,-188, - 0,0,0,-62,0,0,-181,0,-290,0, - 0,0,0,-182,0,0,0,0,0,-192, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-240,0, - 0,0,0,-189,0,0,-193,0,0,-426, - 0,0,0,-191,0,0,0,0,0,0, - 0,-198,-199,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-239,0,0,0, - -237,0,0,-391,0,0,0,0,0,0, - 0,0,0,0,-320,0,0,0,0,-121, - 0,0,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,-194,0, - -255,0,0,-18,0,0,0,0,0,0, - 0,0,-202,-425,-204,0,0,0,0,0, - 0,0,0,0,-496,0,0,0,0,0, - -217,0,0,0,0,-274,0,0,-276,-213, - 0,-216,0,0,0,0,0,-247,0,0, - 0,0,0,-288,-256,0,0,0,0,0, - 0,-224,0,0,0,0,0,0,0,-205, - 0,-257,0,0,0,0,-442,-210,-231,-258, - 0,0,0,0,0,0,0,-228,0,0, - 0,0,0,0,0,0,0,-225,-232,0, - 0,0,0,0,0,0,0,0,-47,0, - 0,0,-236,0,0,0,0,-227,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-278,0,-261,0,-353,0,0,-242, - 0,0,0,0,0,0,-244,0,-252,0, - 0,0,0,0,0,0,0,0,0,-79, - 0,0,0,-306,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,-432,0,0,0,0,0,-313,0, - 0,0,0,0,0,0,0,0,0,-135, - 0,-298,-366,0,-293,0,-375,-283,-450,-200, - 0,0,0,0,0,-303,-369,0,0,0, - 0,0,0,0,0,0,0,-266,0,0, - -295,0,0,0,0,0,0,-1,0,0, - 0,0,0,0,0,0,0,0,-510,0, - 0,0,0,0,0,0,-123,0,0,0, - 0,0,0,0,0,-307,0,0,0,0, - 0,0,0,0,-471,-505,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-402,0,0,0,0, - 0,0,0,0,0,0,0,0,-406,0, - 0,0,0,0,0,-268,0,-251,-245,0, - 0,0,0,0,0,0,0,0,-269,-214, - 0,0,0,0,-500,-356,0,0,0,-262, - 0,0,0,0,0,0,-280,0,0,0, - 0,0,0,0,0,0,0,0,-305,0, - -128,0,0,0,-259,0,0,-304,0,0, - 0,0,0,0,0,-253,0,0,0,0, - 0,0,0,0,0,0,0,0,-281,-407, - 0,0,0,0,-502,0,-474,0,0,0, - 0,0,0,0,-285,-43,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - -286,0,0,0,0,0,0,0,0,-297, - -301,-328,0,0,0,0,0,0,-14,0, - 0,0,0,0,0,0,0,0,-302,0, - -308,0,0,0,-506,0,0,-363,0,-309, - 0,0,-310,0,-312,0,-275,0,0,0, - 0,0,0,0,0,0,0,0,-315,-229, - -125,-507,0,0,0,0,-184,0,0,0, - -316,0,0,0,-254,0,0,0,-332,0, - 0,0,0,0,0,0,0,0,-512,0, - 0,0,0,0,0,0,0,0,0,-277, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-44,-519,-419, - 0,0,0,0,-349,0,0,0,0,0, - -323,0,-351,-367,-326,-453,0,-441,0,0, - 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-44,-518,-418,0, + 0,0,0,-350,0,0,0,0,0,-322, + 0,-366,-369,-325,-452,0,-440,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -370,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-327,0,-392,-393, - 0,0,0,0,-522,0,0,0,0,0, - 0,0,-388,-396,0,0,0,0,0,0, - 0,-17,-144,0,-331,0,0,0,0,0, - -142,0,0,0,-394,0,-340,0,0,0, - 0,-397,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-342,-417, + 0,0,0,0,0,0,0,0,0,-391, 0,0,0,0,0,0,0,0,0,0, - 0,-403,0,0,-437,0,0,0,-511,0, - 0,0,0,0,0,0,0,-80,0,0, + 0,0,0,0,0,-326,0,-392,-395,0, + 0,0,0,-521,0,0,0,0,0,0, + 0,-387,-396,0,0,0,0,0,0,0, + -17,-144,0,-330,0,0,0,0,0,-142, + 0,0,0,-393,0,-339,0,0,0,0, + -402,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-341,-416,0, 0,0,0,0,0,0,0,0,0,0, + -404,0,0,-436,0,0,0,-510,0,0, + 0,0,0,0,0,0,-80,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,-81, 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,-339,-344,-405,-250, - 0,0,-359,-408,0,-374,0,-329,-415,0, - -416,0,0,-282,0,0,0,0,-422,0, - -294,0,0,0,-423,0,-458,-358,0,-395, - 0,0,-494,0,-443,-459,-260,-464,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,-445, + 0,0,0,0,0,-338,-343,-407,-249,0, + 0,-358,-414,0,-373,0,-328,-421,0,-415, + 0,0,-281,0,0,0,0,-422,0,-293, + 0,0,0,-442,0,-457,-357,0,-394,0, + 0,-493,0,-444,-458,-259,-463,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -461,0,0,0,0,0,-447,0,-431,0, - 0,0,0,-427,0,0,0,-389,0,0, - 0,0,0,0,-448,-400,0,0,-291,-348, - -449,0,-462,0,0,-451,0,0,0,0, - 0,0,0,0,-196,0,0,0,0,0, - 0,-413,-390,0,0,0,0,0,0,0, - 0,0,0,0,0,-409,0,-412,0,0, - 0,0,-466,0,0,0,0,0,0,-468, - 0,0,0,0,-421,-495,0,0,0,0, - -469,0,0,0,-21,0,0,0,-470,0, + 0,0,0,0,0,0,0,0,-446,0, + 0,0,0,0,0,0,0,0,0,-460, + 0,0,0,0,0,-447,0,-430,0,0, + 0,0,-426,0,0,0,-388,0,0,0, + 0,0,0,-448,-399,0,0,-290,-347,-450, + 0,-461,0,0,-465,0,0,0,0,0, + 0,0,0,-195,0,0,0,0,0,0, + -412,-389,0,0,0,0,0,0,0,0, + 0,0,0,0,-408,0,-411,0,0,0, + 0,-467,0,0,0,0,0,0,-468,0, + 0,0,0,-420,-494,0,0,0,0,-469, + 0,0,0,-21,0,0,0,-474,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-424,0,0,0, - 0,0,0,-22,0,0,0,-475,0,0, + 0,0,0,0,0,-423,0,0,0,0, + 0,0,-22,0,0,0,-478,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,-23,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-24,0,0, - 0,-479,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-25, - 0,0,0,-485,0,0,0,0,0,0, + 0,0,0,0,0,0,-24,0,0,0, + -484,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-25,0, + 0,0,-491,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-26,0,0,0,-492,0,0,0,0, + -26,0,0,0,-500,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-27,0,0,0,-501,0,0, + 0,0,-27,0,0,0,-508,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-64,0,0,0,-509, + 0,0,0,0,-64,0,0,0,-513,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-76,0,0, - 0,-514,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-77, + 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,-132,0,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, + -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,-504,0,0,0,0, - -435,0,0,0,0,0,-19,0,0,0, - -446,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-460,-487,-454, - -341,0,-455,-334,0,-361,-465,0,0,0, - -368,-428,-463,0,0,0,0,0,0,0, - 0,0,0,0,0,-480,-491,0,0,0, - 0,-45,0,0,0,0,-299,0,0,0, - 0,0,0,-477,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-478,0, - 0,0,0,0,-430,0,0,0,0,0, - 0,-484,0,0,-503,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-373,0, - 0,-489,0,0,0,0,0,-411,-493,0, - -499,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-516,0,0,-497,0,-498, - 0,-521,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,0,-517,0,0,0,0, + 0,0,0,0,-503,0,0,0,0,-434, + 0,0,0,0,0,-19,0,0,0,-445, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-459,-486,-453,-340, + 0,-454,-333,0,-360,-464,0,0,0,-367, + -427,-462,0,0,0,0,0,0,0,0, + 0,0,0,0,-479,-490,0,0,0,0, + -45,0,0,0,0,-298,0,0,0,0, + 0,0,-476,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-477,0,0, + 0,0,0,-429,0,0,0,0,0,0, + -483,0,0,-502,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-372,0,0, + -488,0,0,0,0,0,-410,-492,0,-498, 0,0,0,0,0,0,0,0,0,0, - -420,0,0,0,0,0,-520,0,0,0, + 0,0,0,-515,0,0,-496,0,-497,0, + -520,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-380,0,0,0,0, + 0,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,0,0,0,-419, + 0,0,0,0,0,-519,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-434,0,0,0,0,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,-433,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-126,0,0,0,-230,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,0,0,0,0,0,0,0,0, - 0,0,0,-46,0,0,0,0,0,0, - 0,0,0,0,0,-206,0,0,0,0, + 0,-126,0,0,0,-229,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,0,0,0,0,0,0,0,0,0, + 0,0,-46,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,0,0,0, - 0,0,0,0,0,0,-314,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-429,0,0,0,0,0,-215, - 0,0,0,0,0,-346,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-438,0,0,0,0,0,0,0, + 0,0,0,0,0,-313,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-428,0,0,0,0,0,-214,0, + 0,0,0,0,-345,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,-437,0,0,0,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,0,0,0,0,0,0,0, - -488,0,0,0,0,0,0,0,0,0, - 0,-271,0,0,0,0,0,0,0,0, - 0,0,0,0,-272,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-190,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,-487, 0,0,0,0,0,0,0,0,0,0, + -270,0,0,0,0,0,0,0,0,0, + 0,0,0,-271,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,-195,0,0,0, - 0,0,0,-319,0,0,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,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-354, - 0,0,0,-385,0,0,0,0,0,0, + 0,0,0,0,0,-194,0,0,0,0, + 0,0,-318,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-386,0,0,0,-404,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,0,0,0,0,-418, - 0,0,0,-436,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-353,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,-490,0,0,0,0,-264, - 0,0,0,0,-472,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-289,0, - 0,0,-209,0,0,0,0,0,-473,0, + 0,0,0,-385,0,0,0,-403,0,0, 0,0,0,0,0,0,0,0,0,0, - -476,0,0,0,0,0,-439,0,0,0, - 0,0,0,-440,-481,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-417,0, + 0,0,-435,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,-263,0, + 0,0,0,-471,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-288,0,0, + 0,-208,0,0,0,0,0,-472,0,0, + 0,0,0,0,0,0,0,0,0,-475, + 0,0,0,0,0,-438,0,0,0,0, + 0,0,-439,-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,0,0, 0,0,0,0,0,0,0,0,0,0, @@ -524,7 +523,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 }; }; public final static short baseCheck[] = BaseCheck.baseCheck; @@ -585,482 +584,482 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 167,167,167,167,167,167,167,167,167,167, 167,167,167,167,66,72,72,168,168,130, 130,131,131,131,131,131,131,3,132,132, - 129,129,110,110,110,84,67,82,157,157, - 111,111,187,187,187,133,133,123,123,188, - 188,169,169,881,39,1977,1966,1084,3421,34, - 949,31,35,908,30,32,1927,29,27,56, - 952,110,81,82,112,992,865,1044,1036,1132, - 1113,1261,1165,1340,29,1305,1431,160,1473,147, - 276,824,2899,162,148,984,39,875,36,979, - 3277,34,949,338,35,908,600,39,2888,2360, - 39,875,36,235,2794,34,949,31,35,908, - 30,32,863,29,27,56,952,110,81,82, - 112,992,493,1044,1036,1132,1113,1261,2427,238, - 233,234,2591,4719,2027,117,2540,586,2540,332, - 319,2844,321,277,600,39,285,315,1102,600, - 39,1669,385,293,2578,342,351,2635,245,248, - 251,254,2587,160,2037,39,875,36,4594,1897, - 34,949,44,35,908,381,4121,345,976,870, - 348,600,1677,2832,38,571,426,2633,924,2760, - 3047,3271,4283,1493,39,875,36,2540,2794,34, - 949,31,35,908,2632,32,863,29,27,56, - 952,110,81,82,112,992,342,1044,1036,1132, - 1113,1261,1165,1340,360,1305,1431,2355,1473,147, - 248,39,282,512,148,3665,3413,2664,1210,39, - 875,36,1736,4303,34,949,31,35,908,63, - 32,513,1493,39,875,36,2540,2794,34,949, - 31,35,908,2632,32,863,29,27,56,952, - 110,81,82,112,992,342,1044,1036,1132,1113, - 1261,1165,1340,2101,1305,1431,375,1473,147,248, - 39,282,512,148,4336,1914,2664,469,2123,39, - 1601,47,1541,508,46,949,1743,39,875,36, - 513,4303,34,949,31,35,908,62,32,4140, - 1998,1473,2623,940,1623,2667,3277,1638,1493,39, - 875,36,2540,2794,34,949,31,35,908,2632, - 32,863,29,27,56,952,110,81,82,112, - 992,342,1044,1036,1132,1113,1261,1165,1340,387, - 1305,1431,508,1473,147,2114,2707,3120,512,148, - 4567,557,2664,205,67,332,2463,39,280,810, - 1553,2674,3220,373,2667,645,513,1761,39,875, - 36,2540,2794,34,949,31,35,908,2632,32, - 863,29,27,56,952,110,81,82,112,992, - 342,1044,1036,1132,1113,1261,1165,1340,733,1305, - 1431,1620,1473,147,586,3550,32,512,148,1370, - 683,2664,388,422,2801,32,48,2830,508,742, - 32,3571,66,1084,818,513,2037,39,875,36, - 451,352,34,949,2244,35,908,2723,92,821, - 2667,106,1999,1559,39,875,36,400,2794,34, - 949,31,35,908,30,32,863,29,27,56, - 952,110,81,82,112,992,1091,1044,1036,1132, - 1113,1261,1165,1340,235,1305,1431,509,1473,147, - 600,3137,1242,378,148,2029,39,875,36,438, - 4410,34,949,31,35,908,30,32,455,506, - 247,233,234,1632,39,875,36,381,2794,34, - 949,31,35,908,30,32,863,29,27,56, - 952,110,81,82,112,992,502,1044,1036,1132, - 1113,1261,1165,1340,2052,1305,1431,353,1473,147, - 2646,39,392,378,148,2360,39,875,36,1246, - 2794,34,949,31,35,908,30,32,863,29, - 27,56,952,110,81,82,90,379,382,1936, - 39,875,36,97,2794,34,949,31,35,908, - 30,32,863,29,27,56,952,110,81,82, - 112,992,2102,1044,1036,1132,1113,1261,1165,1340, - 289,1305,1431,2059,1473,147,994,39,294,162, - 148,2037,39,875,36,1334,2487,34,949,339, - 35,908,67,3706,1936,39,875,36,383,2794, - 34,949,31,35,908,30,32,863,29,27, - 56,952,110,81,82,112,992,3569,1044,1036, - 1132,1113,1261,1165,1340,596,1305,1431,32,1473, - 147,75,1079,324,372,148,1936,39,875,36, - 854,2794,34,949,31,35,908,30,32,863, - 29,27,56,952,110,81,82,112,992,160, - 1044,1036,1132,1113,1261,1165,1340,1263,1305,1431, - 1645,1473,147,1684,233,4620,372,148,32,3241, - 2419,571,2878,238,1936,39,875,36,1684,2794, - 34,949,31,35,908,30,32,863,29,27, - 56,952,110,81,82,112,992,492,1044,1036, - 1132,1113,1261,1165,1340,1684,1305,1431,371,1473, - 147,866,3942,1684,372,148,1873,39,875,36, - 1684,2794,34,949,31,35,908,30,32,863, - 29,27,56,952,110,81,82,112,992,28, - 1044,1036,1132,1113,1261,1165,1340,74,1305,1431, - 370,1473,147,313,59,62,378,148,416,1695, - 39,875,36,433,2794,34,949,31,35,908, - 30,32,863,29,27,56,952,110,81,82, - 112,992,653,1044,1036,1132,1113,1261,1165,1340, - 145,1305,1431,32,1473,147,355,3270,368,146, - 148,1616,1936,39,875,36,527,2794,34,949, - 31,35,908,30,32,863,29,27,56,952, - 110,81,82,112,992,717,1044,1036,1132,1113, - 1261,1165,1340,442,1305,1431,2750,1473,147,398, - 1079,376,163,148,1936,39,875,36,3126,2794, - 34,949,31,35,908,30,32,863,29,27, - 56,952,110,81,82,112,992,160,1044,1036, - 1132,1113,1261,1165,1340,166,1305,1431,1540,1473, - 147,1015,1079,1684,159,148,1936,39,875,36, - 1084,2794,34,949,31,35,908,30,32,863, - 29,27,56,952,110,81,82,112,992,164, - 1044,1036,1132,1113,1261,1165,1340,58,1305,1431, - 32,1473,147,1234,1079,1160,158,148,1936,39, - 875,36,1084,2794,34,949,31,35,908,30, - 32,863,29,27,56,952,110,81,82,112, - 992,160,1044,1036,1132,1113,1261,1165,1340,1255, - 1305,1431,1540,1473,147,454,1079,1684,157,148, - 1936,39,875,36,1270,2794,34,949,31,35, - 908,30,32,863,29,27,56,952,110,81, - 82,112,992,164,1044,1036,1132,1113,1261,1165, - 1340,349,1305,1431,32,1473,147,3964,1079,4197, - 156,148,1936,39,875,36,1084,2794,34,949, - 31,35,908,30,32,863,29,27,56,952, - 110,81,82,112,992,160,1044,1036,1132,1113, - 1261,1165,1340,1566,1305,1431,32,1473,147,1162, - 1079,909,155,148,1936,39,875,36,1433,2794, - 34,949,31,35,908,30,32,863,29,27, - 56,952,110,81,82,112,992,160,1044,1036, - 1132,1113,1261,1165,1340,2490,1305,1431,68,1473, - 147,57,512,3277,154,148,1936,39,875,36, - 1084,2794,34,949,31,35,908,30,32,863, - 29,27,56,952,110,81,82,112,992,1058, - 1044,1036,1132,1113,1261,1165,1340,1177,1305,1431, - 68,1473,147,600,4064,3277,153,148,1936,39, - 875,36,331,2794,34,949,31,35,908,30, - 32,863,29,27,56,952,110,81,82,112, - 992,947,1044,1036,1132,1113,1261,1165,1340,1296, - 1305,1431,32,1473,147,326,1079,811,152,148, - 1936,39,875,36,331,2794,34,949,31,35, - 908,30,32,863,29,27,56,952,110,81, - 82,112,992,160,1044,1036,1132,1113,1261,1165, - 1340,2791,1305,1431,32,1473,147,1184,1079,3000, - 151,148,1936,39,875,36,654,2794,34,949, - 31,35,908,30,32,863,29,27,56,952, - 110,81,82,112,992,160,1044,1036,1132,1113, - 1261,1165,1340,2845,1305,1431,32,1473,147,238, - 1079,1239,150,148,1936,39,875,36,1246,2794, - 34,949,31,35,908,30,32,863,29,27, - 56,952,110,81,82,112,992,160,1044,1036, - 1132,1113,1261,1165,1340,2862,1305,1431,32,1473, - 147,1319,1079,2419,149,148,1827,39,875,36, - 1084,2794,34,949,31,35,908,30,32,863, - 29,27,56,952,110,81,82,112,992,160, - 1044,1036,1132,1113,1261,1165,1340,2870,1305,1431, - 1339,2803,168,1936,39,875,36,1321,2794,34, - 949,31,35,908,30,32,863,29,27,56, - 952,110,81,82,112,992,1736,1044,1036,1132, - 1113,1261,1165,1340,2311,1305,1431,1164,1473,147, - 76,327,354,144,148,101,160,600,39,1669, - 385,4624,527,2265,39,875,36,1650,2794,34, - 949,31,35,908,30,32,863,29,27,56, - 952,110,81,82,112,992,2132,1044,1036,1132, - 1113,1261,1165,1340,429,1305,1431,2015,1473,147, - 2457,39,283,193,148,2360,39,875,36,654, - 2794,34,949,31,35,908,30,32,863,29, - 27,56,952,110,81,82,112,992,2280,1044, - 1036,1132,1113,1261,1165,1340,442,1305,1431,2512, - 2803,168,2360,39,875,36,2590,2794,34,949, - 31,35,908,30,32,863,29,27,56,952, - 110,81,82,112,992,3310,1044,1036,1132,1113, - 1261,1165,1340,2575,1305,1431,3220,2803,168,1354, - 39,875,36,2079,4410,34,949,31,35,908, - 65,32,2360,39,875,36,293,2794,34,949, - 31,35,908,30,32,863,29,27,56,952, - 110,81,82,112,992,2080,1044,1036,1132,1113, - 1261,1165,1340,2401,1305,1431,1684,2803,168,2360, - 39,875,36,2245,2794,34,949,31,35,908, - 30,32,863,29,27,56,952,110,81,82, - 112,992,243,1044,1036,1132,1113,1261,1165,1340, - 94,1305,1431,419,2803,168,1354,39,875,36, - 595,4410,34,949,31,35,908,64,32,2360, - 39,875,36,418,2794,34,949,31,35,908, - 30,32,863,29,27,56,952,110,81,82, - 112,992,771,1044,1036,1132,1113,1261,1165,1340, - 1170,1305,1431,1684,2803,168,2406,39,875,36, - 417,2794,34,949,31,35,908,30,32,863, - 29,27,56,952,110,81,82,112,992,1353, - 1044,1036,1132,1113,1261,1165,1340,2998,1305,1431, - 1071,2803,168,2037,39,875,36,600,3792,34, - 949,3646,35,908,2632,1084,2360,39,875,36, - 420,2794,34,949,31,35,908,30,32,863, - 29,27,56,952,110,81,82,112,992,2434, - 1044,1036,1132,1113,1261,1165,1340,32,1305,2509, - 2355,4287,402,2360,39,875,36,3719,2794,34, - 949,31,35,908,30,32,863,29,27,56, - 952,110,81,82,112,992,1914,1044,1036,1132, - 1113,1261,1165,1340,2573,2455,2360,39,875,36, - 102,2794,34,949,31,35,908,30,32,863, - 29,27,56,952,110,81,82,112,992,375, - 1044,1036,1132,1113,1261,1165,2408,2360,39,875, - 36,2649,2794,34,949,31,35,908,30,32, - 863,29,27,56,952,110,81,82,112,992, - 386,1044,1036,1132,1113,2230,2360,39,875,36, - 519,2794,34,949,31,35,908,30,32,863, - 29,27,56,952,110,81,82,112,992,1914, - 1044,1036,1132,2314,2360,39,875,36,1488,2794, - 34,949,31,35,908,30,32,863,29,27, - 56,952,110,81,82,112,992,772,1044,1036, - 1132,2351,2360,39,875,36,3737,2794,34,949, - 31,35,908,30,32,863,29,27,56,952, - 110,81,82,112,992,912,1044,1036,2132,2360, - 39,875,36,286,2794,34,949,31,35,908, - 30,32,863,29,27,56,952,110,81,82, - 112,992,1925,1044,1036,2143,2360,39,875,36, - 1017,2794,34,949,31,35,908,30,32,863, - 29,27,56,952,110,81,82,112,992,1219, - 1044,1036,2150,2360,39,875,36,2355,2794,34, - 949,31,35,908,30,32,863,29,27,56, - 952,110,81,82,112,992,1521,1044,1036,2182, - 2452,39,1669,385,1627,3151,2646,39,392,2360, - 39,875,36,240,2794,34,949,31,35,908, - 30,32,863,29,27,56,952,110,81,82, - 112,992,238,1044,2190,1998,4046,276,600,39, - 2832,2852,600,39,1669,385,2146,2004,39,2680, - 2714,1660,4529,994,3390,294,2360,39,875,36, - 235,2794,34,949,31,35,908,30,32,863, - 29,27,56,952,110,81,82,112,992,276, - 1044,2219,1723,1478,55,1623,238,233,234,1642, - 2660,1684,1073,1206,653,1310,39,875,36,3649, - 277,34,949,338,35,908,242,248,39,448, - 32,654,4649,3575,1079,245,248,251,254,2587, - 600,39,2889,2869,2567,3021,1897,1490,1680,1326, - 39,875,36,3558,1741,34,949,338,35,908, - 1236,2106,278,4719,2633,924,2760,3047,3271,4283, - 319,2844,321,235,2704,323,3241,314,1102,600, - 39,2832,279,350,32,527,351,1844,814,3211, - 424,39,448,93,1611,4649,106,4719,2625,243, - 233,234,1758,1821,319,2844,321,343,976,870, - 348,314,1102,389,422,351,3195,2457,39,280, - 351,1754,3137,3222,1464,39,875,36,3650,3277, - 34,949,338,35,908,1914,343,976,870,348, - 2827,343,976,870,348,341,2360,39,875,36, - 1517,2794,34,949,31,35,908,30,32,863, - 29,27,56,952,110,81,82,112,992,32, - 2019,1684,4719,2741,1136,39,1669,385,331,319, - 2844,321,3564,1013,177,1140,314,1102,533,2540, - 3277,441,3462,3549,365,2646,39,392,1125,287, - 235,2154,39,1669,385,73,1623,232,2635,1708, - 1742,55,1840,4416,4574,160,1642,1711,1807,39, - 2832,279,184,4001,1446,1684,250,233,234,207, - 218,3007,1855,206,215,216,217,219,276,331, - 32,288,1684,173,3109,307,311,1,32,32, - 1684,533,732,2826,445,3462,3549,172,2000,72, - 187,171,174,175,176,177,178,3672,1964,1949, - 232,2399,3179,3257,3000,359,71,3559,160,600, - 39,1669,385,32,70,184,4001,2923,414,2193, - 2930,2937,207,218,3007,325,206,215,216,217, - 219,2939,3880,1754,3137,32,173,1708,1210,3149, - 1890,185,4574,77,391,422,55,1751,3130,2003, - 172,1642,579,188,171,174,175,176,177,178, - 2360,39,875,36,947,2794,34,949,31,35, - 908,30,32,863,29,27,56,952,110,81, - 82,112,992,32,2026,328,334,1079,2867,1191, - 39,3335,36,3650,3277,34,949,338,35,908, - 1016,424,32,1914,2805,1684,1079,1008,32,265, - 1544,2540,3341,533,3653,3277,1684,1927,39,875, - 36,2744,3281,34,949,338,35,908,1752,936, - 2635,32,232,160,350,1916,1210,4719,1418,3415, - 160,1860,1079,331,319,2844,321,184,4001,2355, - 61,314,1102,288,207,218,3007,2843,206,215, - 216,217,219,1126,332,4719,32,298,173,160, - 3547,351,316,3269,321,353,32,531,4416,533, - 1079,351,172,2755,3179,3748,171,174,175,176, - 177,178,343,976,870,348,2163,500,232,425, - 2804,1517,345,976,870,348,160,160,521,600, - 39,1669,385,184,4001,4166,2013,235,2484,1092, - 207,218,3007,2540,206,215,216,217,219,2111, - 600,39,1669,385,173,441,160,497,499,533, - 2000,4645,2635,253,233,234,428,1886,172,413, - 3343,180,171,174,175,176,177,178,232,2000, - 186,688,39,1669,385,1540,160,55,1684,1079, - 1351,3255,52,184,4001,3404,600,3221,2832,79, - 207,218,3007,3120,206,215,216,217,219,1991, - 600,39,1669,385,173,529,164,2671,55,533, - 3130,533,60,1642,2722,2164,32,564,172,359, - 2540,191,171,174,175,176,177,178,232,3130, - 4047,2197,2582,2995,2930,2937,160,427,160,342, - 2150,2278,1684,184,4001,184,4001,333,334,1984, - 207,218,3007,2540,206,215,216,217,219,2327, - 2664,1993,50,2830,173,617,330,334,1684,533, - 2110,3006,342,2345,1767,2293,322,1623,172,1220, - 199,3902,171,174,175,176,177,178,232,2246, - 952,2869,2625,813,2540,4700,160,600,39,1669, - 385,2161,105,184,4001,1807,39,2832,3239,2388, - 207,218,3007,232,206,215,216,217,219,1371, - 39,875,36,3649,173,34,949,338,35,908, - 600,39,2832,284,55,919,403,4502,172,1642, - 2908,196,171,174,175,176,177,178,32,705, - 1008,235,2540,533,2540,2089,404,405,406,295, - 296,2000,3119,2437,2460,32,2671,4719,2377,3553, - 1079,342,232,2635,319,2844,321,256,233,234, - 160,314,1102,4695,200,390,422,184,4001,3018, - 351,2492,2664,522,207,218,3007,160,206,215, - 216,217,219,519,204,4079,1811,947,173,2595, - 2568,343,976,870,348,793,451,407,409,533, - 523,3130,172,1684,1171,190,171,174,175,176, - 177,178,32,1303,437,32,533,2540,232,4026, - 500,2481,39,1669,385,160,160,32,785,4515, - 4670,3556,2547,184,4001,342,342,3686,3578,334, - 207,218,3007,160,206,215,216,217,219,32, - 160,1255,1121,2997,173,4674,2664,911,55,518, - 498,499,2711,1642,1924,600,39,294,172,2355, - 1228,198,171,174,175,176,177,178,2360,39, - 875,36,2582,2794,34,949,31,35,908,30, - 32,863,29,27,56,952,110,81,82,112, - 2063,2360,39,875,36,2269,2794,34,949,31, - 35,908,30,32,863,29,27,56,952,110, - 81,82,112,2095,2360,39,875,36,520,2794, - 34,949,31,35,908,30,32,863,29,27, - 56,952,110,81,82,112,2103,2535,32,2569, - 68,2540,1853,1092,2599,3277,2656,2540,1140,2718, - 2540,1684,2540,3277,600,39,2832,281,4027,2612, - 232,600,39,2832,3289,2642,2635,1684,32,232, - 1914,2635,1223,2377,2868,2653,2565,1540,600,39, - 294,1079,209,218,3007,3991,208,215,216,217, - 219,209,218,3007,4057,208,215,216,217,219, - 2654,446,331,210,212,214,295,296,164,3119, - 525,1914,210,212,214,295,296,2723,3119,2689, - 220,211,213,2540,600,39,1669,385,32,220, - 211,213,1809,359,297,2751,2632,575,359,68, - 68,2753,232,1684,3277,3277,2755,3403,2930,2937, - 4109,2993,2193,2930,2937,600,39,1669,385,4109, - 3580,447,2632,2549,209,218,3007,4118,208,215, - 216,217,219,3158,300,305,32,377,32,98, - 4085,4092,3629,2714,518,210,212,214,295,296, - 2757,3119,55,331,331,32,1988,1642,2737,4433, - 224,89,220,211,213,2360,1677,875,1719,2712, - 2794,34,949,31,35,908,30,32,863,29, - 27,56,952,110,81,82,89,32,575,4480, - 3272,3348,4109,3621,2360,39,875,36,1263,2794, - 34,949,31,35,908,30,32,863,29,27, - 56,952,110,81,82,88,2360,39,875,36, - 380,2794,34,949,31,35,908,30,32,863, - 29,27,56,952,110,81,82,87,2360,39, - 875,36,2727,2794,34,949,31,35,908,30, - 32,863,29,27,56,952,110,81,82,86, - 2360,39,875,36,2455,2794,34,949,31,35, - 908,30,32,863,29,27,56,952,110,81, - 82,85,2360,39,875,36,2776,2794,34,949, - 31,35,908,30,32,863,29,27,56,952, - 110,81,82,84,2360,39,875,36,2762,2794, - 34,949,31,35,908,30,32,863,29,27, - 56,952,110,81,82,83,2218,39,875,36, - 2790,2794,34,949,31,35,908,30,32,863, - 29,27,56,952,110,81,82,108,2360,39, - 875,36,1688,2794,34,949,31,35,908,30, - 32,863,29,27,56,952,110,81,82,114, - 2360,39,875,36,5265,2794,34,949,31,35, - 908,30,32,863,29,27,56,952,110,81, - 82,113,2360,39,875,36,5265,2794,34,949, - 31,35,908,30,32,863,29,27,56,952, - 110,81,82,111,2360,39,875,36,5265,2794, - 34,949,31,35,908,30,32,863,29,27, - 56,952,110,81,82,109,1678,39,875,36, - 3650,2632,34,949,338,35,908,2314,39,875, - 36,2632,2794,34,949,31,35,908,30,32, - 863,29,27,56,952,91,81,82,32,1684, - 2632,2732,2572,2632,1540,2540,2000,2632,1079,304, - 5265,2580,1540,32,4719,2540,1079,953,5265,183, - 5265,319,2844,321,232,5265,32,32,314,1102, - 3583,3986,32,3125,232,164,2540,1814,202,5265, - 1125,201,3277,164,2632,303,209,218,3007,5265, - 208,215,216,217,219,342,209,218,3007,2632, - 208,215,216,217,219,2000,3130,210,212,214, - 295,296,2632,3119,5265,2632,2664,210,212,214, - 295,296,205,3119,516,211,213,307,311,2613, - 1851,4057,1684,2540,515,211,213,203,2765,1684, - 3248,2674,2540,3638,334,3299,5265,5265,3577,4135, - 299,5265,232,1386,5265,2632,5265,5265,1684,3559, - 1684,232,2632,5265,5265,3130,3185,5265,5265,5265, - 5265,5265,5265,3245,209,218,3007,5265,208,215, - 216,217,219,209,218,3007,1684,208,215,216, - 217,219,3039,225,3469,210,212,214,295,296, - 197,3119,4018,334,210,212,214,295,296,5265, - 3119,2808,221,211,213,2540,100,1684,5265,5265, - 4142,306,211,213,5265,5265,5265,5265,5265,5265, - 5265,5265,5265,5265,232,5265,1484,39,3335,36, - 3650,5265,34,949,338,35,908,5265,5265,5265, - 5265,3395,5265,5265,5265,5265,209,218,3007,5265, - 208,215,216,217,219,1919,39,875,36,3650, - 5265,34,949,338,35,908,5265,210,212,214, - 295,296,5265,3119,4719,5265,5265,5265,5265,5265, - 5265,319,2844,321,494,211,213,5265,314,1102, - 5265,5265,5265,2509,39,1669,385,1028,3151,5265, - 1126,2540,4700,4719,5265,5265,241,5265,5265,5265, - 319,2844,321,776,39,1669,385,314,1102,5265, - 232,5265,5265,5265,5265,5265,5265,5265,5265,1125, - 276,5265,5265,5265,32,5265,5265,5265,2540,5265, - 5265,5265,919,403,4502,5265,600,39,1669,385, - 55,5265,5265,235,5265,1642,2586,342,5265,5265, - 5265,5265,5265,404,405,406,295,296,5265,3119, - 5265,5265,5265,5265,2821,5265,308,311,2664,239, - 233,234,5265,55,5265,5265,414,3343,1642,866, - 5265,5265,1890,277,5265,5265,3018,1919,39,875, - 36,3650,5265,34,949,338,35,908,246,249, - 252,255,2587,5265,2627,5265,5265,5265,2540,1897, - 600,39,1669,385,407,409,1060,39,875,36, - 5265,3277,34,949,338,35,908,342,5265,5265, - 5265,5265,5265,2668,5265,4719,5265,2540,526,5265, - 5265,5265,319,2844,321,2306,4515,55,2664,314, - 1102,5265,1642,1711,5265,5265,2635,5265,5265,5265, - 5265,3222,529,5265,4719,5265,5265,5265,5265,5265, - 332,319,2844,321,5265,5265,5265,5265,317,1102, - 1060,39,875,36,5265,3277,34,949,338,35, - 908,1919,39,875,36,3650,5265,34,949,338, - 35,908,1605,39,875,36,2979,5265,34,949, - 338,35,908,5265,5265,1104,5265,5265,5265,2540, - 4700,5265,5265,500,5265,5265,5265,5265,4719,1280, - 39,1669,385,5265,332,319,2844,321,232,4719, - 399,5265,315,1102,5265,5265,319,2844,321,5265, - 4719,5265,5265,314,1102,5265,5265,316,3269,321, - 919,403,4502,497,499,3858,55,688,39,1669, - 385,1642,53,5265,2478,39,1669,385,5265,5265, - 5265,404,405,406,295,296,5265,3119,5265,5265, - 1980,5265,3586,5265,776,39,1669,385,5265,5265, - 5265,3693,5265,5265,55,5265,5265,5265,5265,1642, - 53,55,5265,5265,3018,5265,1642,53,5265,5265, - 2478,39,1669,385,2478,39,1669,385,634,5265, - 5265,55,5265,5265,5265,639,1642,53,5265,5265, - 5265,5265,407,410,5265,2478,39,1669,385,2478, - 39,1669,385,5265,5265,2233,3255,55,5265,5265, - 5265,55,1642,53,5265,5265,1642,53,5265,5265, - 2650,39,1669,385,2703,39,1669,385,5265,5265, - 5265,1937,55,5265,5265,3099,55,1642,53,5265, - 5265,1642,53,5265,5265,2708,5265,5265,5265,533, - 600,39,1669,385,5265,32,3180,55,5265,533, - 3634,55,1642,53,5265,5265,1642,53,342,600, - 39,1669,385,32,5265,5265,160,2540,342,32, - 5265,3465,5265,533,192,3588,160,55,5265,4491, - 5265,32,1642,2954,192,533,342,32,5265,4491, - 5265,2540,342,5265,32,32,55,5265,2540,2540, - 160,1642,3387,5265,342,5265,5265,2664,192,5265, - 342,5265,160,4491,5265,5265,5265,342,342,5265, - 192,2631,5265,5265,5265,4491,5265,5265,5265,5265, - 5265,2664,5265,5265,5265,5265,5265,194,2664,2664, - 5265,5265,5265,5265,5265,504,5265,4019,5265,5265, - 5265,5265,502,530,5265,5265,5265,5265,5265,5265, - 5265,5265,5265,5265,5265,5265,5265,5265,5265,5265, - 5265,4112,5265,5265,5265,5265,5265,5265,5265,5265, - 5265,5265,5265,4119,5265,5265,5265,5265,5265,5265, - 5265,5265,5265,5265,5265,5265,5265,5265,5265,5265, - 5265,5265,5265,5265,5265,5265,5265,5265,5265,5265, - 4095,5265,0,43,5283,0,43,5282,0,916, - 33,0,435,925,0,449,930,0,42,5283, - 0,42,5282,0,2486,130,0,1,439,0, - 453,933,0,452,1440,0,916,45,0,2650, - 95,0,916,384,0,39,37,0,36,38, - 0,43,671,0,1,567,0,1,5540,0, - 1,5539,0,1,5538,0,1,5537,0,1, - 5536,0,1,5535,0,1,5534,0,1,5533, - 0,1,5532,0,1,5531,0,1,5530,0, - 43,1,5283,0,43,1,5282,0,788,1, - 0,5502,244,0,5501,244,0,5602,244,0, - 5601,244,0,5529,244,0,5528,244,0,5527, - 244,0,5526,244,0,5525,244,0,5524,244, - 0,5523,244,0,5522,244,0,5540,244,0, - 5539,244,0,5538,244,0,5537,244,0,5536, - 244,0,5535,244,0,5534,244,0,5533,244, - 0,5532,244,0,5531,244,0,5530,244,0, - 43,244,5283,0,43,244,5282,0,5307,244, - 0,54,5283,0,54,5282,0,5271,1,0, - 5270,1,0,240,1428,0,385,36,0,36, - 385,0,384,33,0,33,384,0,49,5305, - 0,49,41,0,5283,54,0,5282,54,0, - 2486,132,0,2486,131,0,30,514,0,5594, - 440,0,1218,440,0,5307,1,0,43,1, - 0,53,41,0,1,96,0,41,53,0, - 496,3106,0,5307,231,1,0,43,231,1, - 0,231,412,0,41,5283,0,41,5282,0, - 1,5283,2,0,1,5282,2,0,41,5283, - 2,0,41,5282,2,0,5283,40,0,5282, - 40,0,5305,51,0,51,41,0,5275,401, - 0,5274,401,0,1,4387,0,1,671,0, - 1,3229,0,231,411,0,3345,318,0,5594, - 99,0,1218,99,0,39,78,0,1,5594, - 0,1,1218,0,43,1,5283,2,0,43, - 1,5282,2,0,43,5283,2,0,43,5282, - 2,0,281,3155,0,496,4031,0,231,1, - 0,231,223,0,231,222,0,1,1050,0, - 1,2546,0,5273,1,0,231,1,3610,0, - 5275,231,0,5274,231,0,3711,231,0,8, - 10,0,189,3329,0 + 129,129,110,110,84,67,82,157,157,111, + 111,187,187,187,133,133,123,123,188,188, + 169,169,881,39,1976,1965,1356,3420,34,948, + 31,35,907,30,32,1926,29,27,56,951, + 110,81,82,112,991,821,1043,1035,1131,1112, + 1260,1164,1339,963,1304,1430,890,1472,147,276, + 1115,2898,162,148,984,39,874,36,979,3276, + 34,948,338,35,907,600,39,2851,2360,39, + 874,36,235,2793,34,948,31,35,907,30, + 32,862,29,27,56,951,110,81,82,112, + 991,493,1043,1035,1131,1112,1260,2426,238,233, + 234,2634,4718,2282,29,2539,585,2539,332,319, + 2843,321,277,600,39,285,315,1101,600,39, + 1668,385,117,2577,342,351,2634,245,248,251, + 254,2586,890,2052,39,874,36,4593,1896,34, + 948,44,35,907,293,4120,345,975,869,348, + 600,1676,2829,38,570,426,2632,923,2759,3046, + 3270,4282,1493,39,874,36,2539,2793,34,948, + 31,35,907,30,32,862,29,27,56,951, + 110,81,82,112,991,342,1043,1035,1131,1112, + 1260,1164,1339,360,1304,1430,2496,1472,147,248, + 39,282,512,148,3664,3412,2663,1809,39,874, + 36,1935,4302,34,948,31,35,907,63,32, + 513,1493,39,874,36,2539,2793,34,948,31, + 35,907,30,32,862,29,27,56,951,110, + 81,82,112,991,342,1043,1035,1131,1112,1260, + 1164,1339,2101,1304,1430,375,1472,147,248,39, + 282,512,148,4335,1160,2663,381,2006,39,1600, + 47,994,508,46,948,1922,39,874,36,513, + 4302,34,948,31,35,907,62,32,4139,2042, + 1614,2622,1353,2156,2631,3276,1637,1493,39,874, + 36,2539,2793,34,948,31,35,907,30,32, + 862,29,27,56,951,110,81,82,112,991, + 342,1043,1035,1131,1112,1260,1164,1339,387,1304, + 1430,508,1472,147,2146,2679,3119,512,148,4566, + 469,2663,205,67,332,2124,39,280,809,1693, + 2666,3210,373,2631,557,513,1761,39,874,36, + 2539,2793,34,948,31,35,907,30,32,862, + 29,27,56,951,110,81,82,112,991,342, + 1043,1035,1131,1112,1260,1164,1339,645,1304,1430, + 1678,1472,147,585,3549,57,512,148,151,682, + 2663,388,422,2806,57,48,2802,508,741,57, + 3570,66,1356,817,513,2052,39,874,36,451, + 352,34,948,2243,35,907,2721,92,733,2631, + 106,1999,1559,39,874,36,400,2793,34,948, + 31,35,907,30,32,862,29,27,56,951, + 110,81,82,112,991,1090,1043,1035,1131,1112, + 1260,1164,1339,235,1304,1430,509,1472,147,600, + 3118,1091,378,148,2116,39,874,36,438,4409, + 34,948,31,35,907,30,32,455,506,247, + 233,234,1632,39,874,36,381,2793,34,948, + 31,35,907,30,32,862,29,27,56,951, + 110,81,82,112,991,1251,1043,1035,1131,1112, + 1260,1164,1339,849,1304,1430,353,1472,147,1755, + 39,392,378,148,2360,39,874,36,1817,2793, + 34,948,31,35,907,30,32,862,29,27, + 56,951,110,81,82,90,379,382,1936,39, + 874,36,97,2793,34,948,31,35,907,30, + 32,862,29,27,56,951,110,81,82,112, + 991,2391,1043,1035,1131,1112,1260,1164,1339,289, + 1304,1430,2457,1472,147,1280,39,294,162,148, + 2052,39,874,36,1660,2639,34,948,339,35, + 907,67,3705,1936,39,874,36,383,2793,34, + 948,31,35,907,30,32,862,29,27,56, + 951,110,81,82,112,991,3558,1043,1035,1131, + 1112,1260,1164,1339,596,1304,1430,57,1472,147, + 75,1078,324,372,148,1936,39,874,36,2144, + 2793,34,948,31,35,907,30,32,862,29, + 27,56,951,110,81,82,112,991,160,1043, + 1035,1131,1112,1260,1164,1339,1262,1304,1430,1054, + 1472,147,2038,233,4619,372,148,57,3238,2423, + 570,2877,2596,1936,39,874,36,2038,2793,34, + 948,31,35,907,30,32,862,29,27,56, + 951,110,81,82,112,991,492,1043,1035,1131, + 1112,1260,1164,1339,2038,1304,1430,371,1472,147, + 415,3941,2038,372,148,1873,39,874,36,2038, + 2793,34,948,31,35,907,30,32,862,29, + 27,56,951,110,81,82,112,991,28,1043, + 1035,1131,1112,1260,1164,1339,74,1304,1430,370, + 1472,147,313,59,912,378,148,416,1695,39, + 874,36,433,2793,34,948,31,35,907,30, + 32,862,29,27,56,951,110,81,82,112, + 991,652,1043,1035,1131,1112,1260,1164,1339,63, + 1304,1430,57,1472,147,355,3269,368,146,148, + 1919,1936,39,874,36,526,2793,34,948,31, + 35,907,30,32,862,29,27,56,951,110, + 81,82,112,991,716,1043,1035,1131,1112,1260, + 1164,1339,442,1304,1430,2570,1472,147,398,1078, + 376,163,148,1936,39,874,36,3125,2793,34, + 948,31,35,907,30,32,862,29,27,56, + 951,110,81,82,112,991,160,1043,1035,1131, + 1112,1260,1164,1339,166,1304,1430,1925,1472,147, + 239,1078,2038,159,148,1936,39,874,36,1356, + 2793,34,948,31,35,907,30,32,862,29, + 27,56,951,110,81,82,112,991,164,1043, + 1035,1131,1112,1260,1164,1339,58,1304,1430,57, + 1472,147,1234,1078,1245,158,148,1936,39,874, + 36,1356,2793,34,948,31,35,907,30,32, + 862,29,27,56,951,110,81,82,112,991, + 160,1043,1035,1131,1112,1260,1164,1339,1254,1304, + 1430,1925,1472,147,454,1078,2038,157,148,1936, + 39,874,36,1269,2793,34,948,31,35,907, + 30,32,862,29,27,56,951,110,81,82, + 112,991,164,1043,1035,1131,1112,1260,1164,1339, + 349,1304,1430,57,1472,147,3963,1078,4196,156, + 148,1936,39,874,36,1356,2793,34,948,31, + 35,907,30,32,862,29,27,56,951,110, + 81,82,112,991,160,1043,1035,1131,1112,1260, + 1164,1339,1565,1304,1430,57,1472,147,1627,1078, + 1134,155,148,1936,39,874,36,1432,2793,34, + 948,31,35,907,30,32,862,29,27,56, + 951,110,81,82,112,991,160,1043,1035,1131, + 1112,1260,1164,1339,2489,1304,1430,68,1472,147, + 57,978,3276,154,148,1936,39,874,36,1356, + 2793,34,948,31,35,907,30,32,862,29, + 27,56,951,110,81,82,112,991,1191,1043, + 1035,1131,1112,1260,1164,1339,1177,1304,1430,68, + 1472,147,600,4063,3276,153,148,1936,39,874, + 36,331,2793,34,948,31,35,907,30,32, + 862,29,27,56,951,110,81,82,112,991, + 296,1043,1035,1131,1112,1260,1164,1339,1296,1304, + 1430,57,1472,147,326,1078,810,152,148,1936, + 39,874,36,331,2793,34,948,31,35,907, + 30,32,862,29,27,56,951,110,81,82, + 112,991,160,1043,1035,1131,1112,1260,1164,1339, + 2790,1304,1430,57,1472,147,1184,1078,2999,151, + 148,1936,39,874,36,653,2793,34,948,31, + 35,907,30,32,862,29,27,56,951,110, + 81,82,112,991,160,1043,1035,1131,1112,1260, + 1164,1339,2844,1304,1430,57,1472,147,2596,1078, + 1314,150,148,1936,39,874,36,1817,2793,34, + 948,31,35,907,30,32,862,29,27,56, + 951,110,81,82,112,991,160,1043,1035,1131, + 1112,1260,1164,1339,2861,1304,1430,57,1472,147, + 1316,1078,2423,149,148,1827,39,874,36,1356, + 2793,34,948,31,35,907,30,32,862,29, + 27,56,951,110,81,82,112,991,160,1043, + 1035,1131,1112,1260,1164,1339,2869,1304,1430,1318, + 2722,168,1936,39,874,36,937,2793,34,948, + 31,35,907,30,32,862,29,27,56,951, + 110,81,82,112,991,1935,1043,1035,1131,1112, + 1260,1164,1339,1070,1304,1430,1521,1472,147,76, + 327,354,144,148,101,890,600,39,1668,385, + 4623,526,2265,39,874,36,1649,2793,34,948, + 31,35,907,30,32,862,29,27,56,951, + 110,81,82,112,991,2132,1043,1035,1131,1112, + 1260,1164,1339,429,1304,1430,2015,1472,147,1370, + 39,283,193,148,2360,39,874,36,653,2793, + 34,948,31,35,907,30,32,862,29,27, + 56,951,110,81,82,112,991,2279,1043,1035, + 1131,1112,1260,1164,1339,442,1304,1430,2517,2722, + 168,2360,39,874,36,2630,2793,34,948,31, + 35,907,30,32,862,29,27,56,951,110, + 81,82,112,991,3309,1043,1035,1131,1112,1260, + 1164,1339,2574,1304,1430,3210,2722,168,1605,39, + 874,36,1241,4409,34,948,31,35,907,65, + 32,2360,39,874,36,293,2793,34,948,31, + 35,907,30,32,862,29,27,56,951,110, + 81,82,112,991,1712,1043,1035,1131,1112,1260, + 1164,1339,1824,1304,1430,2038,2722,168,2360,39, + 874,36,2244,2793,34,948,31,35,907,30, + 32,862,29,27,56,951,110,81,82,112, + 991,243,1043,1035,1131,1112,1260,1164,1339,94, + 1304,1430,419,2722,168,1605,39,874,36,595, + 4409,34,948,31,35,907,64,32,2360,39, + 874,36,418,2793,34,948,31,35,907,30, + 32,862,29,27,56,951,110,81,82,112, + 991,771,1043,1035,1131,1112,1260,1164,1339,2103, + 1304,1430,2038,2722,168,2406,39,874,36,417, + 2793,34,948,31,35,907,30,32,862,29, + 27,56,951,110,81,82,112,991,2158,1043, + 1035,1131,1112,1260,1164,1339,2997,1304,1430,767, + 2722,168,2052,39,874,36,600,3747,34,948, + 3645,35,907,1320,1356,2360,39,874,36,420, + 2793,34,948,31,35,907,30,32,862,29, + 27,56,951,110,81,82,112,991,2633,1043, + 1035,1131,1112,1260,1164,1339,57,1304,2508,2496, + 4286,402,2360,39,874,36,3710,2793,34,948, + 31,35,907,30,32,862,29,27,56,951, + 110,81,82,112,991,1160,1043,1035,1131,1112, + 1260,1164,1339,2552,2454,2360,39,874,36,102, + 2793,34,948,31,35,907,30,32,862,29, + 27,56,951,110,81,82,112,991,375,1043, + 1035,1131,1112,1260,1164,2407,2360,39,874,36, + 2578,2793,34,948,31,35,907,30,32,862, + 29,27,56,951,110,81,82,112,991,386, + 1043,1035,1131,1112,2229,2360,39,874,36,518, + 2793,34,948,31,35,907,30,32,862,29, + 27,56,951,110,81,82,112,991,1160,1043, + 1035,1131,2313,2360,39,874,36,909,2793,34, + 948,31,35,907,30,32,862,29,27,56, + 951,110,81,82,112,991,772,1043,1035,1131, + 2350,2360,39,874,36,3736,2793,34,948,31, + 35,907,30,32,862,29,27,56,951,110, + 81,82,112,991,1335,1043,1035,2131,2360,39, + 874,36,286,2793,34,948,31,35,907,30, + 32,862,29,27,56,951,110,81,82,112, + 991,2249,1043,1035,2142,2360,39,874,36,1736, + 2793,34,948,31,35,907,30,32,862,29, + 27,56,951,110,81,82,112,991,591,1043, + 1035,2149,2360,39,874,36,2496,2793,34,948, + 31,35,907,30,32,862,29,27,56,951, + 110,81,82,112,991,1608,1043,1035,2181,2452, + 39,1668,385,1789,3150,1755,39,392,2360,39, + 874,36,240,2793,34,948,31,35,907,30, + 32,862,29,27,56,951,110,81,82,112, + 991,2596,1043,2189,2042,4045,276,600,39,2829, + 2831,600,39,1668,385,2458,2029,39,2673,2713, + 1855,4528,1280,3388,294,2360,39,874,36,235, + 2793,34,948,31,35,907,30,32,862,29, + 27,56,951,110,81,82,112,991,276,1043, + 2218,1901,1629,55,2156,238,233,234,1641,2659, + 2038,1360,1206,652,1136,39,874,36,3648,277, + 34,948,338,35,907,242,248,39,448,57, + 653,4648,3568,1078,245,248,251,254,2586,600, + 39,2888,2868,1685,3020,1896,1689,1679,1310,39, + 874,36,3557,1088,34,948,338,35,907,1339, + 2105,278,4718,2632,923,2759,3046,3270,4282,319, + 2843,321,235,2703,323,3238,314,1101,600,39, + 2829,279,350,57,526,351,472,813,3194,424, + 39,448,93,1506,4648,106,4718,2624,243,233, + 234,1708,1470,319,2843,321,343,975,869,348, + 314,1101,389,422,351,3178,1370,39,280,351, + 1017,3118,3221,1210,39,874,36,3649,3276,34, + 948,338,35,907,1160,343,975,869,348,2832, + 343,975,869,348,341,2360,39,874,36,1516, + 2793,34,948,31,35,907,30,32,862,29, + 27,56,951,110,81,82,112,991,57,2018, + 2038,4718,2740,1478,39,1668,385,331,319,2843, + 321,3563,1882,177,1373,314,1101,532,2539,3276, + 441,3431,3461,365,1755,39,392,1124,287,235, + 943,39,1668,385,73,2156,232,2634,2554,1949, + 55,1964,4415,4573,160,1641,1710,1147,39,2829, + 279,184,4000,2434,2038,250,233,234,207,218, + 3006,1982,206,215,216,217,219,276,331,57, + 288,2038,173,3108,307,311,1,57,57,2038, + 532,731,2825,445,3431,3461,172,1774,72,187, + 171,174,175,176,177,178,3671,1164,2102,232, + 2398,3136,3256,2999,359,71,3553,160,600,39, + 1668,385,57,70,184,4000,2922,2027,2192,2907, + 2929,207,218,3006,325,206,215,216,217,219, + 2936,3857,1017,3118,57,173,2554,1209,3148,1823, + 185,4573,77,391,422,55,1997,3129,2175,172, + 1641,578,188,171,174,175,176,177,178,2360, + 39,874,36,296,2793,34,948,31,35,907, + 30,32,862,29,27,56,951,110,81,82, + 112,991,57,2025,328,334,1078,2866,1193,39, + 3288,36,3649,3276,34,948,338,35,907,2676, + 424,57,1160,2804,2038,1078,2143,57,265,1544, + 2539,3340,532,3652,3276,2038,2034,39,874,36, + 2743,3268,34,948,338,35,907,2345,935,2634, + 57,232,160,350,1915,1209,4718,1418,3414,160, + 1859,1078,331,319,2843,321,184,4000,2496,61, + 314,1101,288,207,218,3006,2848,206,215,216, + 217,219,1125,332,4718,57,298,173,160,3546, + 351,316,3252,321,353,57,530,4415,532,1078, + 351,172,2754,3136,3718,171,174,175,176,177, + 178,343,975,869,348,2080,500,232,425,2803, + 1516,345,975,869,348,160,160,520,600,39, + 1668,385,184,4000,4165,648,235,2311,1481,207, + 218,3006,2539,206,215,216,217,219,1475,600, + 39,1668,385,173,441,890,497,499,532,1774, + 4644,2634,253,233,234,428,2164,172,413,3334, + 180,171,174,175,176,177,178,232,1774,186, + 688,39,1668,385,1925,160,55,2038,1078,1350, + 3254,52,184,4000,3389,600,3219,2829,79,207, + 218,3006,3119,206,215,216,217,219,1621,600, + 39,1668,385,173,529,164,2478,55,532,3129, + 532,60,1641,2706,1778,57,563,172,359,2539, + 191,171,174,175,176,177,178,232,3129,4046, + 2455,2581,2994,2907,2929,160,427,160,342,2484, + 2415,2038,184,4000,184,4000,333,334,1984,207, + 218,3006,2539,206,215,216,217,219,2401,2663, + 2464,50,2802,173,617,330,334,2038,532,2497, + 3005,342,2480,1766,2293,322,2156,172,1219,199, + 3879,171,174,175,176,177,178,232,2197,952, + 2874,2680,812,2539,4699,160,600,39,1668,385, + 2574,105,184,4000,1147,39,2829,3220,1431,207, + 218,3006,232,206,215,216,217,219,1484,39, + 874,36,3648,173,34,948,338,35,907,600, + 39,2829,284,55,918,403,4501,172,1641,2887, + 196,171,174,175,176,177,178,57,705,2143, + 235,2539,532,2539,2576,404,405,406,295,296, + 1774,3105,2058,2601,57,2478,4718,2611,3552,1078, + 342,232,2634,319,2843,321,256,233,234,160, + 314,1101,4694,200,390,422,184,4000,2938,351, + 2079,2663,521,207,218,3006,160,206,215,216, + 217,219,518,204,4078,1810,296,173,2650,1472, + 343,975,869,348,793,451,407,409,532,522, + 3129,172,2038,2600,190,171,174,175,176,177, + 178,57,1553,437,57,532,2539,232,4025,500, + 2508,39,1668,385,890,160,57,784,4514,4669, + 3555,2617,184,4000,342,342,3685,3577,334,207, + 218,3006,160,206,215,216,217,219,57,890, + 1254,1120,2996,173,4673,2663,910,55,517,498, + 499,2607,1641,1923,600,39,294,172,2496,1227, + 198,171,174,175,176,177,178,2360,39,874, + 36,2581,2793,34,948,31,35,907,30,32, + 862,29,27,56,951,110,81,82,112,2062, + 2360,39,874,36,2268,2793,34,948,31,35, + 907,30,32,862,29,27,56,951,110,81, + 82,112,2094,2360,39,874,36,519,2793,34, + 948,31,35,907,30,32,862,29,27,56, + 951,110,81,82,112,2102,2540,57,2629,68, + 2539,1852,1481,2652,3276,2661,2539,1373,2651,2539, + 2038,2539,3276,600,39,2829,281,4026,2682,232, + 600,39,2829,3280,2637,2634,2038,57,232,1160, + 2634,1222,2611,2867,2638,1745,1925,600,39,294, + 1078,209,218,3006,3990,208,215,216,217,219, + 209,218,3006,4056,208,215,216,217,219,2653, + 446,331,210,212,214,295,296,164,3105,524, + 1160,210,212,214,295,296,2686,3105,2694,220, + 211,213,2539,600,39,1668,385,57,220,211, + 213,1808,359,297,2688,1320,574,359,68,68, + 2710,232,2038,3276,3276,2110,3402,2907,2929,4108, + 2992,2192,2907,2929,600,39,1668,385,4108,3579, + 447,1320,2581,209,218,3006,4117,208,215,216, + 217,219,3157,300,305,57,377,57,98,4084, + 4091,3628,2712,517,210,212,214,295,296,89, + 3105,55,331,331,57,1921,1641,2736,4432,224, + 2655,220,211,213,2360,1676,874,1718,1094,2793, + 34,948,31,35,907,30,32,862,29,27, + 56,951,110,81,82,89,57,574,4479,3271, + 3347,4108,3620,2360,39,874,36,2714,2793,34, + 948,31,35,907,30,32,862,29,27,56, + 951,110,81,82,88,2360,39,874,36,380, + 2793,34,948,31,35,907,30,32,862,29, + 27,56,951,110,81,82,87,2360,39,874, + 36,1303,2793,34,948,31,35,907,30,32, + 862,29,27,56,951,110,81,82,86,2360, + 39,874,36,2728,2793,34,948,31,35,907, + 30,32,862,29,27,56,951,110,81,82, + 85,2360,39,874,36,2723,2793,34,948,31, + 35,907,30,32,862,29,27,56,951,110, + 81,82,84,2360,39,874,36,2727,2793,34, + 948,31,35,907,30,32,862,29,27,56, + 951,110,81,82,83,2218,39,874,36,964, + 2793,34,948,31,35,907,30,32,862,29, + 27,56,951,110,81,82,108,2360,39,874, + 36,5261,2793,34,948,31,35,907,30,32, + 862,29,27,56,951,110,81,82,114,2360, + 39,874,36,5261,2793,34,948,31,35,907, + 30,32,862,29,27,56,951,110,81,82, + 113,2360,39,874,36,5261,2793,34,948,31, + 35,907,30,32,862,29,27,56,951,110, + 81,82,111,2360,39,874,36,5261,2793,34, + 948,31,35,907,30,32,862,29,27,56, + 951,110,81,82,109,1464,39,874,36,3649, + 1320,34,948,338,35,907,2314,39,874,36, + 1320,2793,34,948,31,35,907,30,32,862, + 29,27,56,951,91,81,82,57,2038,1320, + 2737,2571,1320,1925,2539,1774,1320,1078,304,5261, + 2585,1925,57,4718,2539,1078,952,5261,183,5261, + 319,2843,321,232,5261,57,57,314,1101,3582, + 3985,57,3124,232,164,2539,1742,202,5261,1124, + 201,3276,164,1320,303,209,218,3006,5261,208, + 215,216,217,219,342,209,218,3006,1320,208, + 215,216,217,219,1774,3129,210,212,214,295, + 296,1320,3105,5261,1320,2663,210,212,214,295, + 296,205,3105,515,211,213,307,311,2618,1850, + 4056,2038,2539,514,211,213,203,2770,2038,3247, + 2486,2539,3637,334,3298,5261,5261,3576,4134,299, + 5261,232,1385,5261,1320,5261,5261,2038,3553,2038, + 232,1320,5261,5261,3129,3184,5261,5261,5261,5261, + 5261,5261,3244,209,218,3006,5261,208,215,216, + 217,219,209,218,3006,2038,208,215,216,217, + 219,3038,225,3468,210,212,214,295,296,197, + 3105,4017,334,210,212,214,295,296,5261,3105, + 2813,221,211,213,2539,100,2038,5261,5261,4141, + 306,211,213,5261,5261,5261,5261,5261,5261,5261, + 5261,5261,5261,232,5261,1235,39,3288,36,3649, + 5261,34,948,338,35,907,5261,5261,5261,5261, + 3394,5261,5261,5261,5261,209,218,3006,5261,208, + 215,216,217,219,1623,39,874,36,3649,5261, + 34,948,338,35,907,5261,210,212,214,295, + 296,5261,3105,4718,5261,5261,5261,5261,5261,5261, + 319,2843,321,494,211,213,5261,314,1101,5261, + 5261,5261,2514,39,1668,385,1028,3150,5261,1125, + 2539,4699,4718,5261,5261,241,5261,5261,5261,319, + 2843,321,776,39,1668,385,314,1101,5261,232, + 5261,5261,5261,5261,5261,5261,5261,5261,1124,276, + 5261,5261,5261,57,5261,5261,5261,2539,5261,5261, + 5261,918,403,4501,5261,600,39,1668,385,55, + 5261,5261,235,5261,1641,2585,342,5261,5261,5261, + 5261,5261,404,405,406,295,296,5261,3105,5261, + 5261,5261,5261,2820,5261,308,311,2663,239,233, + 234,5261,55,5261,5261,414,3334,1641,865,5261, + 5261,1889,277,5261,5261,2938,1623,39,874,36, + 3649,5261,34,948,338,35,907,246,249,252, + 255,2586,5261,2162,5261,5261,5261,2539,1896,600, + 39,1668,385,407,409,1060,39,874,36,5261, + 3276,34,948,338,35,907,342,5261,5261,5261, + 5261,5261,2673,5261,4718,5261,2539,525,5261,5261, + 5261,319,2843,321,2305,4514,55,2663,314,1101, + 5261,1641,1710,5261,5261,2634,5261,5261,5261,5261, + 3221,528,5261,4718,5261,5261,5261,5261,5261,332, + 319,2843,321,5261,5261,5261,5261,317,1101,1060, + 39,874,36,5261,3276,34,948,338,35,907, + 1623,39,874,36,3649,5261,34,948,338,35, + 907,1325,39,874,36,2978,5261,34,948,338, + 35,907,5261,5261,1104,5261,5261,5261,2539,4699, + 5261,5261,500,5261,5261,5261,5261,4718,1014,39, + 1668,385,5261,332,319,2843,321,232,4718,399, + 5261,315,1101,5261,5261,319,2843,321,5261,4718, + 5261,5261,314,1101,5261,5261,316,3252,321,918, + 403,4501,497,499,3835,55,688,39,1668,385, + 1641,53,5261,1166,39,1668,385,5261,5261,5261, + 404,405,406,295,296,5261,3105,5261,5261,1979, + 5261,3585,5261,776,39,1668,385,5261,5261,5261, + 3655,5261,5261,55,5261,5261,5261,5261,1641,53, + 55,5261,5261,2938,5261,1641,53,5261,5261,1166, + 39,1668,385,1166,39,1668,385,633,5261,5261, + 55,5261,5261,5261,638,1641,53,5261,5261,5261, + 5261,407,410,5261,1166,39,1668,385,1166,39, + 1668,385,5261,5261,2232,3254,55,5261,5261,5261, + 55,1641,53,5261,5261,1641,53,5261,5261,2003, + 39,1668,385,2159,39,1668,385,5261,5261,5261, + 1936,55,5261,5261,3098,55,1641,53,5261,5261, + 1641,53,5261,5261,2479,5261,5261,5261,532,600, + 39,1668,385,5261,57,3179,55,5261,532,3633, + 55,1641,53,5261,5261,1641,53,342,600,39, + 1668,385,57,5261,5261,160,2539,342,57,5261, + 3464,5261,532,192,3587,160,55,5261,4490,5261, + 57,1641,2953,192,532,342,57,5261,4490,5261, + 2539,342,5261,57,57,55,5261,2539,2539,160, + 1641,3386,5261,342,5261,5261,2663,192,5261,342, + 5261,160,4490,5261,5261,5261,342,342,5261,192, + 2630,5261,5261,5261,4490,5261,5261,5261,5261,5261, + 2663,5261,5261,5261,5261,5261,194,2663,2663,5261, + 5261,5261,5261,5261,504,5261,4018,5261,5261,5261, + 5261,502,529,5261,5261,5261,5261,5261,5261,5261, + 5261,5261,5261,5261,5261,5261,5261,5261,5261,5261, + 4111,5261,5261,5261,5261,5261,5261,5261,5261,5261, + 5261,5261,4118,5261,5261,5261,5261,5261,5261,5261, + 5261,5261,5261,5261,5261,5261,5261,5261,5261,5261, + 5261,5261,5261,5261,5261,5261,5261,5261,5261,4094, + 5261,0,43,5279,0,43,5278,0,915,33, + 0,435,924,0,449,929,0,42,5279,0, + 42,5278,0,2485,130,0,1,439,0,453, + 932,0,452,1439,0,915,45,0,2649,95, + 0,915,384,0,39,37,0,36,38,0, + 43,670,0,1,566,0,1,5536,0,1, + 5535,0,1,5534,0,1,5533,0,1,5532, + 0,1,5531,0,1,5530,0,1,5529,0, + 1,5528,0,1,5527,0,1,5526,0,43, + 1,5279,0,43,1,5278,0,787,1,0, + 5498,244,0,5497,244,0,5598,244,0,5597, + 244,0,5525,244,0,5524,244,0,5523,244, + 0,5522,244,0,5521,244,0,5520,244,0, + 5519,244,0,5518,244,0,5536,244,0,5535, + 244,0,5534,244,0,5533,244,0,5532,244, + 0,5531,244,0,5530,244,0,5529,244,0, + 5528,244,0,5527,244,0,5526,244,0,43, + 244,5279,0,43,244,5278,0,5303,244,0, + 54,5279,0,54,5278,0,5267,1,0,5266, + 1,0,240,1427,0,385,36,0,36,385, + 0,384,33,0,33,384,0,49,5301,0, + 49,41,0,5279,54,0,5278,54,0,2485, + 132,0,2485,131,0,5590,440,0,1217,440, + 0,5303,1,0,43,1,0,53,41,0, + 1,96,0,41,53,0,496,3017,0,5303, + 231,1,0,43,231,1,0,231,412,0, + 41,5279,0,41,5278,0,1,5279,2,0, + 1,5278,2,0,41,5279,2,0,41,5278, + 2,0,5279,40,0,5278,40,0,5301,51, + 0,51,41,0,5271,401,0,5270,401,0, + 1,4386,0,1,670,0,1,3228,0,231, + 411,0,3344,318,0,5590,99,0,1217,99, + 0,39,78,0,1,5590,0,1,1217,0, + 43,1,5279,2,0,43,1,5278,2,0, + 43,5279,2,0,43,5278,2,0,281,3154, + 0,496,4030,0,231,1,0,231,223,0, + 231,222,0,1,1049,0,1,2545,0,5269, + 1,0,231,1,3584,0,5271,231,0,5270, + 231,0,3699,231,0,8,10,0,189,3328, + 0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1073,37 +1072,37 @@ 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,0,29, - 30,0,32,33,34,35,36,37,38,39, + 30,3,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, 50,51,52,53,54,55,0,57,58,59, - 60,0,62,63,64,65,0,0,68,69, + 60,61,0,63,64,65,0,0,68,69, 70,4,72,6,74,8,76,77,78,79, 80,81,82,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,29,30,3, + 22,23,24,25,26,27,0,29,30,0, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,0,57,58,59,60,121, - 62,63,64,65,88,89,68,69,70,0, - 72,100,74,4,76,77,78,79,80,81, + 52,53,54,55,28,57,58,59,60,61, + 0,63,64,65,88,89,68,69,70,9, + 72,99,74,13,76,77,78,79,80,81, 82,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, 24,25,26,27,0,29,30,3,32,33, 34,35,36,37,38,39,40,41,42,43, 44,45,46,47,48,49,50,51,52,53, - 54,55,0,57,58,59,60,0,62,63, - 64,65,0,99,68,69,70,0,1,2, + 54,55,0,57,58,59,60,61,0,63, + 64,65,0,0,68,69,70,0,1,2, 74,4,76,77,78,79,80,81,82,83, 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, - 26,27,0,29,30,58,32,33,34,35, + 26,27,0,29,30,0,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 28,57,58,59,60,0,62,63,64,65, - 88,89,68,69,70,103,104,105,74,0, + 28,57,58,59,60,61,31,63,64,65, + 88,89,68,69,70,103,104,105,74,101, 76,77,78,79,80,81,82,83,84,85, 86,87,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, @@ -1111,7 +1110,7 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,29,30,0,32,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, 48,49,50,51,52,53,54,55,28,57, - 58,59,60,0,62,63,64,65,0,6, + 58,59,60,61,0,63,64,65,0,0, 68,69,70,0,1,2,74,4,76,77, 78,79,80,81,82,83,84,85,86,87, 0,1,2,3,4,5,6,7,8,9, @@ -1120,16 +1119,16 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 30,0,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, 50,51,52,53,54,55,28,57,58,59, - 60,0,62,63,64,65,88,89,68,69, - 70,0,11,12,74,4,76,77,78,79, + 60,61,31,63,64,65,88,89,68,69, + 70,97,98,0,74,0,76,77,78,79, 80,81,82,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,0,29,30,0, 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,28,57,58,59,60,0, - 62,63,64,65,0,0,68,69,70,0, + 52,53,54,55,28,57,58,59,60,61, + 0,63,64,65,0,0,68,69,70,0, 1,2,74,8,76,77,78,79,80,81, 82,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, @@ -1137,239 +1136,239 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 24,25,26,27,0,29,30,0,32,33, 34,35,36,37,38,39,40,41,42,43, 44,45,46,47,48,49,50,51,52,53, - 54,55,28,57,58,59,60,0,62,63, + 54,55,28,57,58,59,60,61,31,63, 64,65,88,89,68,69,70,0,1,2, - 74,0,76,77,78,79,80,81,82,83, + 74,101,76,77,78,79,80,81,82,83, 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,0,29,30,0,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 28,57,58,59,60,0,62,63,64,65, + 28,57,58,59,60,61,0,63,64,65, 0,0,68,69,70,0,1,2,74,8, 76,77,78,79,80,81,82,83,84,85, 86,87,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, - 0,29,30,0,32,33,34,35,36,37, + 0,29,30,3,32,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, - 48,49,50,51,52,53,54,55,28,57, - 58,59,60,0,62,63,64,65,88,89, - 68,69,70,10,0,0,74,3,76,77, + 48,49,50,51,52,53,54,55,0,57, + 58,59,60,61,6,63,64,65,88,89, + 68,69,70,97,98,0,74,0,76,77, 78,79,80,81,82,83,84,85,86,87, - 0,1,2,3,4,5,6,7,8,66, - 10,11,12,0,14,15,16,17,18,19, + 0,1,2,3,4,5,6,7,8,0, + 10,11,12,4,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,0,29, 30,0,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, - 50,51,52,53,54,55,28,0,58,0, - 1,2,62,4,0,6,0,8,68,69, + 50,51,52,53,54,55,0,0,58,91, + 92,61,0,1,2,9,0,5,68,69, 70,0,1,2,3,4,5,6,7,8, - 9,10,97,98,13,14,15,16,17,18, - 19,20,21,22,23,24,25,31,0,1, - 2,0,31,0,1,2,3,4,5,6, - 7,8,41,0,1,2,0,46,47,48, - 49,50,51,52,53,54,55,0,57,31, - 59,100,0,62,0,0,0,10,3,68, - 69,70,71,72,9,74,75,0,1,2, - 3,4,5,6,7,8,9,10,31,56, + 9,10,0,0,13,14,15,16,17,18, + 19,20,21,22,23,24,25,0,0,1, + 2,4,31,0,1,2,3,4,5,6, + 7,8,41,0,1,2,60,46,47,48, + 49,50,51,52,53,54,55,99,57,31, + 59,100,61,0,1,2,0,1,2,68, + 69,70,71,72,31,74,75,0,1,2, + 3,4,5,6,7,8,9,10,0,56, 13,14,15,16,17,18,19,20,21,22, - 23,24,25,60,103,104,105,0,31,0, - 1,2,3,4,5,6,7,8,41,62, - 0,56,0,46,47,48,49,50,51,52, - 53,54,55,0,57,28,59,71,73,62, - 0,0,9,3,0,68,69,70,71,72, - 9,74,75,0,1,2,3,4,5,6, - 7,8,9,10,102,101,13,14,15,16, - 17,18,19,20,21,22,23,24,25,117, - 103,104,105,61,31,0,1,2,66,0, - 1,2,0,4,41,6,56,8,9,46, + 23,24,25,0,103,104,105,4,31,0, + 1,2,3,4,5,6,7,8,41,0, + 1,2,0,46,47,48,49,50,51,52, + 53,54,55,121,57,122,59,0,61,0, + 0,4,3,0,41,68,69,70,71,72, + 31,74,75,0,1,2,3,4,5,6, + 7,8,9,10,0,28,13,14,15,16, + 17,18,19,20,21,22,23,24,25,0, + 103,104,105,0,31,0,1,2,3,4, + 5,6,7,8,41,56,0,1,2,46, 47,48,49,50,51,52,53,54,55,0, - 57,0,59,0,73,62,3,97,98,0, - 0,68,69,70,71,72,0,74,75,3, - 11,12,6,0,8,9,95,11,12,13, - 0,1,2,3,4,5,6,7,8,64, - 65,118,26,27,28,0,103,104,105,0, - 1,2,73,4,5,56,7,56,0,14, + 57,28,59,0,61,0,1,2,9,6, + 77,68,69,70,71,72,0,74,75,3, + 90,67,6,0,8,9,96,11,12,13, + 0,56,0,1,2,3,4,5,6,7, + 8,66,26,27,28,0,103,104,105,0, + 1,2,3,4,5,6,7,8,28,14, 15,16,17,18,19,20,21,22,23,24, - 25,61,56,0,95,0,66,61,0,4, - 31,0,66,67,61,0,41,71,72,73, - 5,46,47,48,49,50,51,52,53,54, - 55,71,0,28,88,89,90,91,92,93, + 25,72,56,0,0,1,2,3,62,5, + 0,7,66,67,0,62,41,71,72,73, + 0,46,47,48,49,50,51,52,53,54, + 55,11,12,71,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,61, - 67,6,0,8,9,3,11,12,13,0, - 1,2,3,4,5,6,7,8,0,101, - 0,26,27,28,0,0,1,2,3,9, - 5,90,7,0,9,102,3,96,0,77, + 114,115,116,117,118,0,120,121,3,66, + 56,6,0,8,9,71,11,12,13,0, + 1,2,3,0,5,0,7,0,9,0, + 0,26,27,28,0,1,2,3,9,5, + 90,7,13,9,0,102,96,13,0,60, 107,108,109,110,111,112,113,114,115,116, - 117,56,0,0,1,2,61,4,5,0, - 7,66,67,11,12,56,71,72,73,0, - 0,1,2,3,0,5,67,7,9,61, - 60,56,13,88,89,90,91,92,93,94, - 95,96,97,98,99,100,101,102,73,61, - 67,106,107,108,109,110,111,112,113,114, + 117,56,0,1,2,0,4,62,6,0, + 8,66,67,61,9,56,71,72,73,0, + 1,2,0,1,2,62,4,62,6,62, + 8,9,73,88,89,90,91,92,93,94, + 95,96,97,98,99,100,101,102,60,0, + 31,106,107,108,109,110,111,112,113,114, 115,116,117,118,0,120,121,0,1,2, - 3,4,5,6,7,8,56,10,11,12, - 0,14,15,16,4,18,19,20,21,22, - 23,24,25,26,27,0,29,30,3,32, + 3,4,5,6,7,8,67,10,11,12, + 0,14,15,16,100,18,19,20,21,22, + 23,24,25,26,27,73,29,30,0,32, 33,34,35,36,37,38,39,40,28,42, - 43,44,45,0,1,2,3,4,5,6, - 7,8,0,1,2,58,4,0,6,0, - 8,64,65,0,1,2,3,0,5,0, + 43,44,45,0,1,2,3,95,5,0, + 7,0,9,118,0,58,13,0,1,2, + 0,64,65,0,1,2,3,0,5,9, 7,74,0,1,2,3,4,5,6,7, - 8,56,10,11,12,0,14,15,16,4, + 8,71,10,11,12,0,14,15,16,4, 18,19,20,21,22,23,24,25,26,27, 0,29,30,3,32,33,34,35,36,37, - 38,39,40,28,42,43,44,45,61,0, - 0,1,2,0,1,2,3,4,9,6, - 58,8,0,61,71,66,64,65,0,1, + 38,39,40,62,42,43,44,45,67,56, + 66,64,65,0,1,2,3,4,0,6, + 58,8,0,73,62,3,64,65,0,1, 2,3,4,5,6,7,8,9,10,11, - 12,31,14,15,16,0,18,19,20,21, - 22,23,24,25,26,27,99,29,30,0, + 12,102,14,15,16,95,18,19,20,21, + 22,23,24,25,26,27,117,29,30,0, 32,33,34,35,36,37,38,39,40,56, - 42,43,44,45,0,1,2,3,56,5, - 0,7,73,9,4,0,58,13,60,0, - 1,2,0,4,9,6,0,8,13,3, + 42,43,44,45,0,1,2,0,4,5, + 3,7,0,0,1,2,58,4,60,6, + 0,8,0,1,2,3,0,5,0,7, 72,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,0, 29,30,3,32,33,34,35,36,37,38, - 39,40,0,42,43,44,45,0,1,2, - 3,66,5,0,7,41,9,0,0,58, - 13,60,9,71,0,1,2,3,4,5, + 39,40,28,42,43,44,45,0,1,2, + 0,4,56,6,0,8,66,3,0,58, + 62,60,0,9,0,1,2,3,4,5, 6,7,8,72,10,11,12,0,14,15, - 16,4,18,19,20,21,22,23,24,25, - 26,27,0,29,30,3,32,33,34,35, + 16,0,18,19,20,21,22,23,24,25, + 26,27,0,29,30,66,32,33,34,35, 36,37,38,39,40,0,42,43,44,45, - 0,0,0,1,2,4,4,5,41,7, - 0,0,58,0,1,2,73,0,64,65, - 0,1,2,3,4,5,6,7,8,0, - 10,11,12,31,14,15,16,0,18,19, - 20,21,22,23,24,25,26,27,31,29, - 30,56,32,33,34,35,36,37,38,39, - 40,61,42,43,44,45,0,1,2,122, - 103,104,105,0,1,2,66,4,58,6, - 0,8,71,0,64,65,0,1,2,3, - 4,5,6,7,8,9,10,11,12,0, - 14,15,16,0,18,19,20,21,22,23, + 56,0,1,2,0,4,62,6,56,8, + 62,67,58,9,0,1,2,73,64,65, + 0,1,2,3,4,5,6,7,8,62, + 10,11,12,0,14,15,16,0,18,19, + 20,21,22,23,24,25,26,27,0,29, + 30,3,32,33,34,35,36,37,38,39, + 40,90,42,43,44,45,71,96,0,1, + 2,67,4,5,0,7,0,73,58,46, + 47,5,0,0,64,65,0,1,2,3, + 4,5,6,7,8,9,10,11,12,31, + 14,15,16,66,18,19,20,21,22,23, 24,25,26,27,0,29,30,3,32,33, - 34,35,36,37,38,39,40,28,42,43, + 34,35,36,37,38,39,40,0,42,43, 44,45,0,1,2,3,4,5,6,7, - 8,61,10,11,12,0,14,15,16,0, + 8,0,10,11,12,4,14,15,16,67, 18,19,20,21,22,23,24,25,26,27, - 0,29,30,60,32,33,34,35,36,37, - 38,39,40,0,42,43,44,45,0,1, - 2,3,9,5,0,7,0,1,2,3, - 58,5,60,7,10,0,1,2,3,4, + 0,29,30,3,32,33,34,35,36,37, + 38,39,40,90,42,43,44,45,0,96, + 0,0,1,2,0,4,5,9,7,9, + 58,13,60,9,0,0,1,2,3,4, 5,6,7,8,118,10,11,12,0,14, - 15,16,67,18,19,20,21,22,23,24, + 15,16,31,18,19,20,21,22,23,24, 25,26,27,0,29,30,3,32,33,34, 35,36,37,38,39,40,28,42,43,44, - 45,57,0,0,95,72,3,0,5,6, - 0,8,0,58,11,12,9,0,0,0, - 3,3,0,0,1,2,4,4,0,26, - 27,28,0,30,0,1,2,3,4,5, + 45,0,0,0,3,67,3,67,5,6, + 56,8,72,58,11,12,0,73,0,0, + 4,3,0,1,2,0,1,2,0,26, + 27,28,7,30,0,1,2,3,4,5, 6,7,8,9,26,27,0,13,0,1, - 2,17,4,5,31,7,0,1,2,56, - 28,5,28,7,61,46,47,64,65,66, - 67,0,60,66,56,41,66,6,0,72, + 2,17,4,0,1,2,3,0,5,56, + 7,0,28,0,3,62,9,64,65,66, + 67,0,1,2,56,41,5,0,7,31, 46,47,48,49,50,51,52,53,54,55, 56,88,89,90,91,92,93,94,0,0, - 97,98,99,100,101,102,28,73,0,106, + 97,98,99,100,101,102,29,73,9,106, 107,108,109,110,111,112,113,114,115,116, - 0,0,0,3,106,5,6,0,8,0, - 0,11,12,0,1,2,28,4,120,61, - 0,95,0,1,2,0,26,27,28,7, + 0,0,0,3,106,5,6,29,8,0, + 73,11,12,11,12,0,1,2,120,4, + 5,95,7,0,1,2,26,27,28,28, 30,0,1,2,3,4,5,6,7,8, - 9,31,91,92,13,0,1,2,17,0, - 5,93,94,0,1,2,56,56,5,71, - 0,61,0,0,64,65,66,67,90,90, - 61,9,41,60,96,96,31,46,47,48, + 9,0,0,0,13,0,1,2,17,4, + 0,72,10,10,31,0,56,0,0,1, + 2,0,62,0,64,65,66,67,11,12, + 9,62,41,31,0,0,67,46,47,48, 49,50,51,52,53,54,55,56,88,89, 90,91,92,93,94,0,0,97,98,99, - 100,101,102,0,73,56,106,107,108,109, + 100,101,102,61,73,60,106,107,108,109, 110,111,112,113,114,115,116,0,1,2, - 3,4,5,6,7,8,66,10,11,12, - 67,14,15,16,72,18,19,20,21,22, - 23,24,25,26,27,0,29,30,3,32, - 33,34,35,36,37,38,39,40,0,42, + 3,4,5,6,7,8,71,10,11,12, + 67,14,15,16,73,18,19,20,21,22, + 23,24,25,26,27,71,29,30,0,32, + 33,34,35,36,37,38,39,40,10,42, 43,44,45,67,0,1,2,3,4,5, 6,7,8,56,10,11,12,0,14,15, 16,0,18,19,20,21,22,23,24,25, 26,27,0,29,30,0,32,33,34,35, - 36,37,38,39,40,28,42,43,44,45, + 36,37,38,39,40,57,42,43,44,45, 0,1,2,0,1,2,3,4,5,6, 7,8,58,10,11,12,0,14,15,16, 4,18,19,20,21,22,23,24,25,26, 27,31,29,30,0,32,33,34,35,36, - 37,38,39,40,0,42,43,44,45,0, + 37,38,39,40,28,42,43,44,45,0, 1,2,3,4,5,6,7,8,76,10, - 11,12,28,14,15,16,0,18,19,20, + 11,12,28,14,15,16,95,18,19,20, 21,22,23,24,25,26,27,0,29,30, - 3,32,33,34,35,36,37,38,39,40, + 0,32,33,34,35,36,37,38,39,40, 0,42,43,44,45,0,1,2,3,4, - 5,6,7,8,60,10,11,12,0,14, + 5,6,7,8,0,10,11,12,4,14, 15,16,0,18,19,20,21,22,23,24, - 25,26,27,0,29,30,0,32,33,34, - 35,36,37,38,39,40,0,42,43,44, - 45,0,1,2,0,4,0,1,2,0, - 0,10,0,1,2,14,15,16,17,18, - 19,20,21,22,23,24,25,0,1,2, - 0,1,2,0,1,2,0,31,29,71, - 90,0,41,31,3,119,96,46,47,48, - 49,50,51,52,53,54,55,71,0,1, - 2,0,4,62,31,0,62,6,10,68, - 69,70,14,15,16,17,18,19,20,21, - 22,23,24,25,0,1,2,3,4,5, - 6,7,8,9,64,65,0,13,0,41, - 0,17,119,67,46,47,48,49,50,51, - 52,53,54,55,0,31,0,0,0,3, - 62,3,0,9,28,9,68,69,70,0, - 1,2,3,4,5,6,7,8,9,0, - 0,57,13,59,0,6,17,63,0,0, - 28,3,91,92,0,0,72,28,60,75, - 31,0,0,1,2,3,4,5,6,7, - 8,9,56,29,0,13,0,61,29,17, - 66,0,66,61,67,9,57,73,59,73, - 9,0,63,31,13,0,1,2,0,0, - 1,2,0,0,75,0,1,2,3,4, - 5,6,7,8,9,93,94,0,13,57, - 0,59,17,0,0,63,28,10,67,9, - 91,92,9,13,72,95,31,75,0,1, - 2,3,4,5,6,7,8,9,31,73, - 0,13,0,1,2,17,0,0,67,61, - 0,0,57,0,59,0,9,0,63,31, - 13,0,0,71,71,3,0,72,28,62, - 75,0,1,2,3,4,5,6,7,8, - 9,93,94,119,13,57,73,59,17,0, - 0,63,0,3,0,3,0,3,9,3, - 72,0,31,75,0,1,2,3,4,5, - 6,7,8,9,61,0,66,13,3,66, - 0,17,71,66,0,0,0,0,57,0, - 59,0,0,67,63,31,0,0,0,0, - 0,0,0,0,0,0,75,0,1,2, - 3,4,5,6,7,8,9,17,0,0, - 13,57,73,59,17,0,0,63,67,0, - 0,0,0,0,0,0,0,0,31,75, - 0,41,0,17,0,0,46,47,48,49, - 50,51,52,53,54,55,67,0,0,17, - 0,0,0,0,57,0,59,41,0,0, - 63,0,46,47,48,49,50,51,52,53, - 54,55,75,41,0,17,0,0,46,47, - 48,49,50,51,52,53,54,55,0,0, - 0,0,0,0,0,0,0,0,0,41, - 0,0,0,0,46,47,48,49,50,51, - 52,53,54,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,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0 + 25,26,27,0,29,30,3,32,33,34, + 35,36,37,38,39,40,56,42,43,44, + 45,0,1,2,0,4,0,0,1,2, + 60,10,5,0,0,14,15,16,17,18, + 19,20,21,22,23,24,25,0,0,0, + 0,0,3,0,28,0,9,9,31,56, + 13,13,41,71,9,0,0,46,47,48, + 49,50,51,52,53,54,55,0,1,2, + 56,28,61,0,1,2,0,4,62,68, + 69,70,6,10,28,62,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,41,60,17,4,73,46, + 47,48,49,50,51,52,53,54,55,0, + 31,64,65,0,61,0,3,0,9,28, + 0,68,69,70,0,1,2,3,4,5, + 6,7,8,9,41,0,57,13,59,0, + 0,17,63,3,0,28,0,91,92,3, + 0,72,28,62,75,31,0,0,1,2, + 3,4,5,6,7,8,9,28,0,0, + 13,3,0,0,17,6,0,0,0,62, + 60,57,73,59,93,94,71,63,31,0, + 0,0,0,58,0,3,103,104,105,75, + 0,1,2,3,4,5,6,7,8,9, + 93,94,0,13,57,0,59,17,3,0, + 63,0,10,67,9,0,0,0,3,72, + 3,31,75,0,1,2,3,4,5,6, + 7,8,9,31,66,0,13,71,71,0, + 17,0,3,0,3,66,66,57,67,59, + 91,92,0,63,31,71,0,0,95,119, + 3,56,72,61,0,75,0,1,2,3, + 4,5,6,7,8,9,0,66,73,13, + 57,119,59,17,0,0,63,0,0,0, + 0,0,28,0,0,72,0,31,75,0, + 1,2,3,4,5,6,7,8,9,66, + 0,0,13,29,0,0,17,0,66,0, + 0,0,66,57,0,59,0,0,119,63, + 31,0,0,0,0,0,0,0,0,0, + 0,75,0,1,2,3,4,5,6,7, + 8,9,17,0,0,13,57,0,59,17, + 0,0,63,0,0,0,0,0,0,0, + 0,0,0,31,75,0,41,0,17,0, + 0,46,47,48,49,50,51,52,53,54, + 55,0,0,0,17,0,0,0,0,57, + 0,59,41,0,0,63,0,46,47,48, + 49,50,51,52,53,54,55,75,41,0, + 17,0,0,46,47,48,49,50,51,52, + 53,54,55,0,0,0,0,0,0,0, + 0,0,0,0,41,0,0,0,0,46, + 47,48,49,50,51,52,53,54,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,0,0, + 0,0,0,0,0,0,0,0,0,0, + 0,0,0,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; @@ -1377,299 +1376,299 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface TermAction { public final static char termAction[] = {0, - 5265,5246,5228,5228,5228,5228,5228,5228,5228,5256, - 1,1,1,5253,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5265,1, - 1,1,1,1,1,1,1,1,1,1, + 5261,5242,5224,5224,5224,5224,5224,5224,5224,5252, + 1,1,1,5249,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5261,1, + 1,1167,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5265,2237,1,2482, - 3086,139,1,3371,1,1,125,43,1,1, - 1,5307,5272,1218,5444,5594,2517,3656,4023,2196, - 4020,3585,2999,3651,1683,3645,3346,3627,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,5265,5259,5259,1168, - 5259,5259,5259,5259,5259,5259,5259,5259,5259,5259, - 5259,5259,5259,5259,5259,5259,5259,5259,5259,5259, - 5259,5259,5259,5259,137,5259,5259,5259,5259,4872, - 5259,5259,5259,5259,2549,2596,5259,5259,5259,43, - 5259,2316,5259,5307,5259,5259,5259,5259,5259,5259, - 5259,5259,5259,5259,5259,5259,5265,5246,5228,5228, - 5228,5228,5228,5228,5228,5250,1,1,1,5253, + 1,1,1,1,1,1,1,2236,1,2481, + 3085,1,137,3343,1,1,125,43,1,1, + 1,5303,5268,1217,5440,5590,2516,3650,4022,2195, + 4019,3574,2998,3644,1682,3626,3345,3609,8,5255, + 5255,5255,5255,5255,5255,5255,5255,5255,5255,5255, + 5255,5255,5255,5255,5255,5255,5255,5255,5255,5255, + 5255,5255,5255,5255,5255,5255,5261,5255,5255,5261, + 5255,5255,5255,5255,5255,5255,5255,5255,5255,5255, + 5255,5255,5255,5255,5255,5255,5255,5255,5255,5255, + 5255,5255,5255,5255,3195,5255,5255,5255,5255,5255, + 401,5255,5255,5255,2548,2595,5255,5255,5255,5164, + 5255,588,5255,5167,5255,5255,5255,5255,5255,5255, + 5255,5255,5255,5255,5255,5255,5261,5242,5224,5224, + 5224,5224,5224,5224,5224,5246,1,1,1,5249, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5265,1,1,1428,1,1, + 1,1,1,1,5261,1,1,1427,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,434,2237,1,2482,3086,528,1,3371, - 1,1,129,589,1,1,1,5265,4876,4873, - 5444,5307,2517,3656,4023,2196,4020,3585,2999,3651, - 1683,3645,3346,3627,5265,5246,5228,5228,5228,5228, - 5228,5228,5228,5250,1,1,1,5253,1,1, + 1,1,434,2236,1,2481,3085,1,141,3343, + 1,1,129,5261,1,1,1,5261,4875,4872, + 5440,5303,2516,3650,4022,2195,4019,3574,2998,3644, + 1682,3626,3345,3609,5261,5242,5224,5224,5224,5224, + 5224,5224,5224,5246,1,1,1,5249,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,5265,1,1,3554,1,1,1,1, + 1,1,5261,1,1,41,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 3196,2237,1,2482,3086,5265,1,3371,1,1, - 2549,2596,1,1,1,5695,5696,5697,5444,5265, - 2517,3656,4023,2196,4020,3585,2999,3651,1683,3645, - 3346,3627,5265,5246,5228,5228,5228,5228,5228,5228, - 5228,5250,1,1,1,5253,1,1,1,1, + 3327,2236,1,2481,3085,1,5301,3343,1,1, + 2548,2595,1,1,1,5691,5692,5693,5440,2282, + 2516,3650,4022,2195,4019,3574,2998,3644,1682,3626, + 3345,3609,5261,5242,5224,5224,5224,5224,5224,5224, + 5224,5246,1,1,1,5249,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 5265,1,1,5265,1,1,1,1,1,1, + 5261,1,1,5261,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,3328,2237, - 1,2482,3086,5265,1,3371,1,1,128,2925, - 1,1,1,5265,4876,4873,5444,5307,2517,3656, - 4023,2196,4020,3585,2999,3651,1683,3645,3346,3627, - 5265,5246,5228,5228,5228,5228,5228,5228,5228,5250, - 1,1,1,5253,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5265,1, - 1,5265,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,4051,2236, + 1,2481,3085,1,133,3343,1,1,128,5261, + 1,1,1,5261,4875,4872,5440,5303,2516,3650, + 4022,2195,4019,3574,2998,3644,1682,3626,3345,3609, + 5261,5242,5224,5224,5224,5224,5224,5224,5224,5246, + 1,1,1,5249,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,5261,1, + 1,53,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,4052,2237,1,2482, - 3086,122,1,3371,1,1,2549,2596,1,1, - 1,5265,2950,2766,5444,792,2517,3656,4023,2196, - 4020,3585,2999,3651,1683,3645,3346,3627,5265,5246, - 5228,5228,5228,5228,5228,5228,5228,5250,1,1, - 1,5253,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5265,1,1,5265, + 1,1,1,1,1,1,4323,2236,1,2481, + 3085,1,2698,3343,1,1,2548,2595,1,1, + 1,2403,2375,5261,5440,5261,2516,3650,4022,2195, + 4019,3574,2998,3644,1682,3626,3345,3609,5261,5242, + 5224,5224,5224,5224,5224,5224,5224,5246,1,1, + 1,5249,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,33,1,1,5261, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,4324,2237,1,2482,3086,5265, - 1,3371,1,1,127,135,1,1,1,5265, - 5282,5283,5444,2347,2517,3656,4023,2196,4020,3585, - 2999,3651,1683,3645,3346,3627,5265,5246,5228,5228, - 5228,5228,5228,5228,5228,5250,1,1,1,5253, + 1,1,1,1,4878,2236,1,2481,3085,1, + 142,3343,1,1,127,135,1,1,1,5261, + 5278,5279,5440,2346,2516,3650,4022,2195,4019,3574, + 2998,3644,1682,3626,3345,3609,5261,5242,5224,5224, + 5224,5224,5224,5224,5224,5246,1,1,1,5249, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,33,1,1,5265,1,1, + 1,1,1,1,435,1,1,5261,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,4879,2237,1,2482,3086,5265,1,3371, - 1,1,2549,2596,1,1,1,5265,5054,5051, - 5444,5265,2517,3656,4023,2196,4020,3585,2999,3651, - 1683,3645,3346,3627,5265,5246,5228,5228,5228,5228, - 5228,5228,5228,5250,1,1,1,5253,1,1, + 1,1,4881,2236,1,2481,3085,1,3249,3343, + 1,1,2548,2595,1,1,1,5261,5053,5050, + 5440,2282,2516,3650,4022,2195,4019,3574,2998,3644, + 1682,3626,3345,3609,5261,5242,5224,5224,5224,5224, + 5224,5224,5224,5246,1,1,1,5249,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,435,1,1,5265,1,1,1,1, + 1,1,449,1,1,5261,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 4882,2237,1,2482,3086,5265,1,3371,1,1, - 126,136,1,1,1,54,5087,5084,5444,2347, - 2517,3656,4023,2196,4020,3585,2999,3651,1683,3645, - 3346,3627,5265,3610,1,1,1,1,1,1, - 1,5275,1,1,1,5274,1,1,1,1, + 4884,2236,1,2481,3085,1,134,3343,1,1, + 126,136,1,1,1,54,5086,5083,5440,2346, + 2516,3650,4022,2195,4019,3574,2998,3644,1682,3626, + 3345,3609,5261,3584,1,1,1,1,1,1, + 1,5271,1,1,1,5270,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 449,1,1,161,1,1,1,1,1,1, + 95,1,1,4908,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,4885,2237, - 1,2482,3086,302,1,3371,1,1,2549,2596, - 1,1,1,5566,95,133,5444,4909,2517,3656, - 4023,2196,4020,3585,2999,3651,1683,3645,3346,3627, - 43,4876,4873,3412,788,3715,3788,3229,3810,1352, - 779,3766,3744,5265,5532,5530,5539,5525,5538,5534, - 5535,5533,5536,5537,5540,5531,3854,3832,45,5288, - 1055,140,643,861,5290,665,3997,787,5291,5289, - 625,5528,5284,5286,5287,5285,5601,5602,5522,5529, - 5501,5527,5526,5523,5524,5502,4906,5265,1309,439, - 1,1,5659,1,5265,4897,41,4897,855,5660, - 5661,5265,5127,5127,231,5123,231,231,231,231, - 5131,1,2404,2376,231,1,1,1,1,1, - 1,1,1,1,1,1,1,5305,5265,8498, - 8498,5265,5120,344,5218,5214,2669,5307,671,1218, - 3229,5594,1,5265,5282,5283,5265,1,1,1, - 1,1,1,1,1,1,1,1,1116,5305, - 1180,2316,143,1,141,1,5265,5237,2990,1, - 1,1,231,412,5057,5673,5760,5265,5127,5127, - 231,5123,231,231,231,231,5131,1,3432,1856, + 1,1,1,1,1,1,1,1,119,2236, + 1,2481,3085,1,3523,3343,1,1,2548,2595, + 1,1,1,2403,2375,5261,5440,5261,2516,3650, + 4022,2195,4019,3574,2998,3644,1682,3626,3345,3609, + 43,4875,4872,3411,787,3714,3787,3228,3809,43, + 778,3765,3743,5303,5528,5526,5535,5521,5534,5530, + 5531,5529,5532,5533,5536,5527,3853,3831,138,5284, + 1054,139,642,860,5286,664,3996,786,5287,5285, + 624,5524,5280,5282,5283,5281,5597,5598,5518,5525, + 5497,5523,5522,5519,5520,5498,5261,5261,1308,3500, + 3477,5655,5261,5278,5279,1342,5261,3165,854,5656, + 5657,5261,5123,5123,231,5119,231,231,231,231, + 5127,1,5261,189,231,1,1,1,1,1, + 1,1,1,1,1,1,1,5261,5261,8527, + 8527,791,5116,344,5214,5210,2668,5303,670,1217, + 3228,5590,1,49,5080,5080,2276,1,1,1, + 1,1,1,1,1,1,1,588,1115,5301, + 1179,2315,1,54,5053,5050,291,5278,5279,1, + 1,1,231,412,5077,5669,5756,5261,5123,5123, + 231,5119,231,231,231,231,5127,1,5261,1855, 231,1,1,1,1,1,1,1,1,1, - 1,1,1,3056,5695,5696,5697,384,5120,5265, - 5218,5214,4387,5307,671,1218,3229,5594,1,5240, - 134,1856,30,1,1,1,1,1,1,1, - 1,1,1,5265,1116,4912,1180,1893,5060,1, - 346,1,5269,2860,5265,1,1,1,231,412, - 362,5673,5760,5265,5127,5127,231,5123,231,231, - 231,231,5183,1,2246,2283,231,1,1,1, - 1,1,1,1,1,1,1,1,1,1596, - 5695,5696,5697,5096,5120,5265,5282,5283,5096,1, - 5108,5108,5265,5105,1,1218,1856,5594,362,1, - 1,1,1,1,1,1,1,1,1,453, - 1116,452,1180,240,362,1,5063,2404,2376,124, - 5265,1,1,1,231,411,37,5673,5760,4915, - 2950,2766,4915,5265,4915,4915,362,4915,4915,4915, - 5265,5209,5204,4387,5105,671,5201,3229,5198,3876, - 556,5268,4915,4915,4915,226,5695,5696,5697,5265, - 4876,4873,362,788,4921,4900,3229,4903,142,5532, - 5530,5539,5525,5538,5534,5535,5533,5536,5537,5540, - 5531,4191,4915,143,362,392,3330,4915,5265,384, - 2059,115,4915,4915,2536,5265,5528,4915,4915,4915, - 3166,5601,5602,5522,5529,5501,5527,5526,5523,5524, - 5502,2072,5265,916,4915,4915,4915,4915,4915,4915, - 4915,4915,4915,4915,4915,4915,4915,4915,4915,54, - 5054,5051,4915,4915,4915,4915,4915,4915,4915,4915, - 4915,4915,4915,4915,4915,5265,4915,4915,4918,2544, - 1814,4918,1,4918,4918,4723,4918,4918,4918,366, - 5144,5140,2669,1,671,1,3229,1,5265,2283, - 5265,4918,4918,4918,5265,1,5144,5140,2669,1343, - 671,3898,3229,312,5057,2246,2973,3920,5265,3836, - 1772,1730,1688,1646,1604,1562,1520,1478,1436,1394, - 1596,4918,123,5265,4876,4873,4918,788,671,5265, - 3229,4918,4918,2950,2766,1856,4918,4918,4918,401, - 1,5144,5140,2669,5265,671,1134,3229,5168,2591, - 2277,1856,5171,4918,4918,4918,4918,4918,4918,4918, - 4918,4918,4918,4918,4918,4918,4918,4918,5060,2622, - 1266,4918,4918,4918,4918,4918,4918,4918,4918,4918, - 4918,4918,4918,4918,5265,4918,4918,5265,1,1, - 1,1,1,1,1,1,1856,1,1,1, - 54,1,1,1,5283,1,1,1,1,1, - 1,1,1,1,1,318,1,1,5186,1, - 1,1,1,1,1,1,1,1,5283,1, - 1,1,1,310,5209,5204,4387,5105,671,5201, - 3229,5198,440,43,43,1,5307,5265,5102,5265, - 5099,1,1,1,5144,5140,4387,138,671,510, - 3229,5797,1,4964,4960,3412,4968,3715,3788,3229, - 3810,1856,4924,3766,3744,54,4951,4957,4930,5282, - 4933,4945,4942,4948,4939,4936,4927,4954,3854,3832, - 5265,5288,1055,1722,643,861,5290,665,3997,787, - 5291,5289,625,5282,5284,5286,5287,5285,5772,1, - 49,5081,5081,344,43,43,2990,5307,165,1218, - 1309,5594,347,511,2072,877,43,43,43,4876, - 4873,3412,788,3715,3788,3229,3810,5273,567,3766, - 3744,5078,5532,5530,5539,5265,5538,5534,5535,5533, - 5536,5537,5540,5531,3854,3832,589,5288,1055,5265, - 643,861,5290,665,3997,787,5291,5289,625,1856, - 5284,5286,5287,5285,1,5144,5140,5174,1856,5177, - 1,5180,165,5275,385,5265,1309,5274,4033,96, - 1,1,423,1,5275,5114,5265,5114,5274,1764, - 5272,43,4876,4873,3412,788,3715,3788,3229,3810, - 5273,567,3766,3744,43,5532,5530,5539,5307,5538, - 5534,5535,5533,5536,5537,5540,5531,3854,3832,5265, - 5288,1055,1806,643,861,5290,665,3997,787,5291, - 5289,625,5265,5284,5286,5287,5285,1,5144,5140, - 4387,4216,671,5265,3229,1936,310,189,5265,1309, - 310,4033,5271,2829,145,4876,4873,3412,788,3715, - 3788,3229,3810,5272,567,3766,3744,43,5532,5530, - 5539,5307,5538,5534,5535,5533,5536,5537,5540,5531, - 3854,3832,5265,5288,1055,1848,643,861,5290,665, - 3997,787,5291,5289,625,104,5284,5286,5287,5285, - 5265,5265,5265,4876,4873,3108,788,4921,1214,3229, - 361,5265,1309,291,5282,5283,5270,53,43,43, - 1,4964,4960,3412,4968,3715,3788,3229,3810,5265, - 4924,3766,3744,2146,4951,4957,4930,5265,4933,4945, - 4942,4948,4939,4936,4927,4954,3854,3832,2699,5288, - 1055,2992,643,861,5290,665,3997,787,5291,5289, - 625,5701,5284,5286,5287,5285,40,5159,5156,5262, - 5695,5696,5697,99,43,43,624,5307,1309,5192, - 5265,5189,5662,5265,43,43,43,4876,4873,3412, - 788,3715,3788,3229,3810,5269,567,3766,3744,5265, - 5532,5530,5539,5265,5538,5534,5535,5533,5536,5537, - 5540,5531,3854,3832,5265,5288,1055,3155,643,861, - 5290,665,3997,787,5291,5289,625,916,5284,5286, - 5287,5285,43,4876,4873,3412,788,3715,3788,3229, - 3810,5715,567,3766,3744,292,5532,5530,5539,357, - 5538,5534,5535,5533,5536,5537,5540,5531,3854,3832, - 5265,5288,1055,2903,643,861,5290,665,3997,787, - 5291,5289,625,5265,5284,5286,5287,5285,1,5144, - 5140,4387,5273,671,302,3229,1,5144,5140,5174, - 1309,5177,4033,5180,5566,43,4876,4873,3412,788, - 3715,3788,3229,3810,5268,567,3766,3744,1,5532, - 5530,5539,1985,5538,5534,5535,5533,5536,5537,5540, - 5531,3854,3832,5265,5288,1055,3587,643,861,5290, - 665,3997,787,5291,5289,625,916,5284,5286,5287, - 5285,3425,5265,1,5621,5272,1213,5265,5729,5723, - 290,5727,5265,1309,5721,5722,5273,107,80,335, - 4024,1512,5265,393,4876,4873,1059,5307,5265,5752, - 5753,5732,5265,5730,33,384,384,5072,384,384, - 5072,384,5072,5075,5333,5334,1,5072,5265,4876, - 4873,384,788,671,43,3229,5265,5282,5283,537, - 3250,671,4879,3229,5733,5601,5602,1475,1599,5754, - 5731,119,3427,1013,1554,384,990,3524,130,5272, + 1,1,1,43,5691,5692,5693,5303,5116,5261, + 5214,5210,4386,5303,670,1217,3228,5590,1,41, + 5107,5107,5261,1,1,1,1,1,1,1, + 1,1,1,4871,1115,5258,1179,392,1,346, + 115,384,2859,5261,1935,1,1,1,231,412, + 2837,5669,5756,5261,5123,5123,231,5119,231,231, + 231,231,5179,1,161,915,231,1,1,1, + 1,1,1,1,1,1,1,1,1,5261, + 5691,5692,5693,45,5116,366,5140,5136,2668,1, + 670,1,3228,1,1,1855,40,5155,5152,1, + 1,1,1,1,1,1,1,1,1,5261, + 1115,4905,1179,5261,1,5261,5086,5083,5269,2924, + 3813,1,1,1,231,411,37,5669,5756,4914, + 3897,1351,4914,5261,4914,4914,3919,4914,4914,4914, + 384,1855,5261,5205,5200,4386,5101,670,5197,3228, + 5194,1133,4914,4914,4914,226,5691,5692,5693,310, + 5205,5200,4386,5101,670,5197,3228,5194,4911,5528, + 5526,5535,5521,5534,5530,5531,5529,5532,5533,5536, + 5527,5268,4914,143,1,5140,5136,4386,4914,670, + 118,3228,4914,4914,453,2535,5524,4914,4914,4914, + 122,5597,5598,5518,5525,5497,5523,5522,5519,5520, + 5498,2949,2765,2071,4914,4914,4914,4914,4914,4914, + 4914,4914,4914,4914,4914,4914,4914,4914,4914,5261, + 5278,5279,4914,4914,4914,4914,4914,4914,4914,4914, + 4914,4914,4914,4914,4914,5261,4914,4914,4917,1813, + 4899,4917,5261,4917,4917,2071,4917,4917,4917,1, + 5140,5136,2668,5261,670,5261,3228,5261,5056,5261, + 5261,4917,4917,4917,1,5140,5136,5170,5271,5173, + 3897,5176,5270,5271,140,2245,3919,5270,5261,3055, + 1771,1729,1687,1645,1603,1561,1519,1477,1435,1393, + 1595,4917,439,1,1,5261,1,4917,4896,510, + 4896,4917,4917,2814,5265,1855,4917,4917,4917,5261, + 5133,5130,1,5104,5104,2543,5101,2590,1217,2621, + 5590,362,5059,4917,4917,4917,4917,4917,4917,4917, + 4917,4917,4917,4917,4917,4917,4917,4917,2902,5261, + 5301,4917,4917,4917,4917,4917,4917,4917,4917,4917, + 4917,4917,4917,4917,5261,4917,4917,5261,1,1, + 1,1,1,1,1,1,876,1,1,1, + 33,1,1,1,2315,1,1,1,1,1, + 1,1,1,1,1,362,1,1,5261,1, + 1,1,1,1,1,1,1,1,915,1, + 1,1,1,1,5140,5136,4386,362,670,143, + 3228,5261,310,5264,292,1,310,5261,5278,5279, + 1,1,1,1,5140,5136,2668,5261,670,362, + 3228,5792,1,4963,4959,3411,4967,3714,3787,3228, + 3809,419,4923,3765,3743,1,4950,4956,4929,385, + 4932,4944,4941,4947,4938,4935,4926,4953,3853,3831, + 240,5284,1054,5062,642,860,5286,664,3996,786, + 5287,5285,624,4190,5280,5282,5283,5281,3329,1855, + 1984,3875,555,344,43,43,2989,5303,5261,1217, + 1308,5590,1,362,511,4722,43,43,43,4875, + 4872,3411,787,3714,3787,3228,3809,5269,566,3765, + 3743,2245,5528,5526,5535,362,5534,5530,5531,5529, + 5532,5533,5536,5527,3853,3831,1595,5284,1054,5261, + 642,860,5286,664,3996,786,5287,5285,624,1855, + 5280,5282,5283,5281,5261,4875,4872,5261,787,670, + 1721,3228,5261,440,43,43,1308,5303,4032,5098, + 369,5095,1,5140,5136,4386,452,670,5261,3228, + 5268,43,4875,4872,3411,787,3714,3787,3228,3809, + 5269,566,3765,3743,54,5528,5526,5535,5279,5534, + 5530,5531,5529,5532,5533,5536,5527,3853,3831,312, + 5284,1054,2972,642,860,5286,664,3996,786,5287, + 5285,624,5279,5280,5282,5283,5281,96,1,1, + 5261,1,4902,5110,1,5110,1175,2989,5261,1308, + 5768,4032,347,340,145,4875,4872,3411,787,3714, + 3787,3228,3809,5268,566,3765,3743,5261,5528,5526, + 5535,117,5534,5530,5531,5529,5532,5533,5536,5527, + 3853,3831,5261,5284,1054,1265,642,860,5286,664, + 3996,786,5287,5285,624,5261,5280,5282,5283,5281, + 1855,99,43,43,5261,5303,340,5188,1855,5185, + 5697,340,1308,5267,393,5278,5279,340,43,43, + 1,4963,4959,3411,4967,3714,3787,3228,3809,5711, + 4923,3765,3743,335,4950,4956,4929,367,4932,4944, + 4941,4947,4938,4935,4926,4953,3853,3831,5261,5284, + 1054,1763,642,860,5286,664,3996,786,5287,5285, + 624,3897,5280,5282,5283,5281,1892,3919,5261,4875, + 4872,4754,787,4920,5261,3228,5261,5266,1308,5597, + 5598,3165,361,116,43,43,43,4875,4872,3411, + 787,3714,3787,3228,3809,5265,566,3765,3743,2058, + 5528,5526,5535,1223,5534,5530,5531,5529,5532,5533, + 5536,5527,3853,3831,5261,5284,1054,1805,642,860, + 5286,664,3996,786,5287,5285,624,5261,5280,5282, + 5283,5281,43,4875,4872,3411,787,3714,3787,3228, + 3809,5261,566,3765,3743,3107,5528,5526,5535,623, + 5534,5530,5531,5529,5532,5533,5536,5527,3853,3831, + 5261,5284,1054,1847,642,860,5286,664,3996,786, + 5287,5285,624,3897,5280,5282,5283,5281,5261,3919, + 5261,5261,4875,4872,1,787,4920,5271,3228,5269, + 1308,5270,4032,165,104,43,4875,4872,3411,787, + 3714,3787,3228,3809,5264,566,3765,3743,5261,5528, + 5526,5535,2145,5534,5530,5531,5529,5532,5533,5536, + 5527,3853,3831,5261,5284,1054,3154,642,860,5286, + 664,3996,786,5287,5285,624,915,5280,5282,5283, + 5281,5261,5261,1,3586,4215,1212,1012,5725,5719, + 2991,5723,5268,1308,5717,5718,5261,165,80,5261, + 1058,1511,5261,8119,7437,42,4890,4887,5261,5748, + 5749,5728,772,5726,33,384,384,5071,384,384, + 5071,384,5071,5074,5329,5330,357,5071,393,4875, + 4872,384,5303,1,5140,5136,5170,5261,5173,536, + 5176,107,4878,5261,4023,5729,5267,1474,1598,5727, + 5750,5261,5278,5279,1553,384,670,5261,3228,43, 384,384,384,384,384,384,384,384,384,384, - 5075,5743,5742,5755,5724,5725,5748,5749,118,117, - 5746,5747,5726,5728,5750,5751,2513,5075,33,5756, - 5736,5737,5738,5734,5735,5744,5745,5740,5739,5741, - 5265,320,5265,1213,728,5729,5723,5265,5727,5265, - 5265,5721,5722,5265,4876,4873,916,5307,796,4894, - 5265,5623,42,4891,4888,5265,5752,5753,5732,773, - 5730,36,385,385,5066,385,385,5066,385,5066, - 5069,3253,3501,3478,5066,41,5117,5117,385,103, - 5117,2459,2432,5265,5282,5283,537,1856,3166,419, - 421,5733,1,369,1475,1599,5754,5731,3898,3898, - 4021,5243,385,2789,3920,3920,3285,385,385,385, - 385,385,385,385,385,385,385,5069,5743,5742, - 5755,5724,5725,5748,5749,5265,367,5746,5747,5726, - 5728,5750,5751,5265,5069,2022,5756,5736,5737,5738, - 5734,5735,5744,5745,5740,5739,5741,43,4876,4873, - 3412,788,3715,3788,3229,3810,2927,567,3766,3744, - 1176,5532,5530,5539,5272,5538,5534,5535,5533,5536, - 5537,5540,5531,3854,3832,5265,5288,1055,3345,643, - 861,5290,665,3997,787,5291,5289,625,5265,5284, - 5286,5287,5285,1224,43,4876,4873,3412,788,3715, - 3788,3229,3810,1482,567,3766,3744,78,5532,5530, - 5539,5265,5538,5534,5535,5533,5536,5537,5540,5531, - 3854,3832,1,5288,1055,5265,643,861,5290,665, - 3997,787,5291,5289,625,5195,5284,5286,5287,5285, - 41,5111,5111,43,4876,4873,1470,788,3715,3788, - 3229,3810,1309,567,3766,3744,5265,5532,5530,5539, - 1818,5538,5534,5535,5533,5536,5537,5540,5531,3854, - 3832,2838,5288,1055,5265,643,861,5290,665,3997, - 787,5291,5289,625,5265,5284,5286,5287,5285,43, - 4876,4873,3412,788,3715,3788,3229,3810,3548,567, - 3766,3744,3449,5532,5530,5539,5265,5538,5534,5535, - 5533,5536,5537,5540,5531,3854,3832,281,5288,1055, - 5222,643,861,5290,665,3997,787,5291,5289,625, - 116,5284,5286,5287,5285,43,4876,4873,3412,788, - 3715,3788,3229,3810,3086,567,3766,3744,443,5532, - 5530,5539,5265,5538,5534,5535,5533,5536,5537,5540, - 5531,3854,3832,374,5288,1055,5265,643,861,5290, - 665,3997,787,5291,5289,625,5265,5284,5286,5287, - 5285,5265,4876,4873,5265,5307,5265,5137,5134,5265, - 5265,720,5265,5152,5148,5532,5530,5539,5525,5538, - 5534,5535,5533,5536,5537,5540,5531,5265,5087,5084, - 5265,5054,5051,51,5165,5165,415,5305,3673,2647, - 3898,5265,5528,5305,3389,3700,3920,5601,5602,5522, - 5529,5501,5527,5526,5523,5524,5502,2109,244,5044, - 5040,121,5048,5659,5162,5265,2815,3524,720,855, - 5660,5661,5031,5037,5010,4995,5013,5025,5022,5028, - 5019,5016,5007,5034,1,5228,5228,231,5228,231, - 231,231,231,5231,3876,556,5265,231,1,4986, - 5265,8397,3700,2159,4980,4977,5004,4983,4974,4989, - 4992,5001,4998,4971,5265,5225,1,39,5265,2990, - 5659,4032,132,5271,3705,340,855,5660,5661,1, - 5228,5228,231,5228,231,231,231,231,231,120, - 1,2593,231,2482,5265,3524,8397,3371,5265,1, - 2513,4404,3501,3478,5265,5265,223,3250,3688,5760, - 5225,503,1,5228,5228,231,5228,231,231,231, - 231,5234,1856,3561,517,231,1,340,3344,8397, - 4755,5265,340,5090,3450,5271,2593,5270,2482,340, - 5275,501,3371,5225,5274,393,5282,5283,131,5265, - 7303,7228,5265,5265,5760,1,5228,5228,231,5228, - 231,231,231,231,5231,2459,2432,1,231,2593, - 1,2482,8397,1,5265,3371,2513,5237,4747,5275, - 3501,3478,524,5274,222,4138,5225,5760,1,5228, - 5228,231,5228,231,231,231,231,5231,3432,5270, - 2,231,5265,7303,7228,8397,5265,1,4754,5093, - 444,5265,2593,5265,2482,5265,195,309,3371,5225, - 195,5265,5265,5447,3065,4705,5265,223,41,5240, - 5760,1,5228,5228,231,5228,231,231,231,231, - 231,2459,2432,3700,231,2593,524,2482,8397,1, - 5265,3371,5265,4729,5265,3187,5265,4741,167,622, - 223,5265,5225,5760,1,5228,5228,231,5228,231, - 231,231,231,231,3814,5265,2710,231,3066,3330, - 5265,8397,5446,4245,5265,5265,5265,5265,2593,505, - 2482,5265,5265,3450,3371,5225,5265,5265,5265,5265, - 227,5265,5265,5265,5265,5265,5760,1,5228,5228, - 231,5228,231,231,231,231,231,5525,5265,5265, - 231,2593,167,2482,8397,5265,228,3371,1943,5265, - 5265,5265,5265,5265,5265,5265,5265,5265,5225,5760, - 5265,5528,229,5525,5265,5265,5601,5602,5522,5529, - 5501,5527,5526,5523,5524,5502,995,5265,5265,5525, - 5265,5265,5265,5265,2593,5265,2482,5528,230,5265, - 3371,5265,5601,5602,5522,5529,5501,5527,5526,5523, - 5524,5502,5760,5528,5265,5525,5265,5265,5601,5602, - 5522,5529,5501,5527,5526,5523,5524,5502,5265,5265, - 5265,5265,5265,5265,5265,5265,5265,5265,5265,5528, - 5265,5265,5265,5265,5601,5602,5522,5529,5501,5527, - 5526,5523,5524,5502 + 5074,5739,5738,5751,5720,5721,5744,5745,5261,1, + 5742,5743,5722,5724,5746,5747,3672,5074,5239,5752, + 5732,5733,5734,5730,5731,5740,5741,5736,5735,5737, + 5261,1,124,1212,727,5725,5719,3560,5723,5261, + 5266,5717,5718,2949,2765,5261,4875,4872,795,787, + 670,5617,3228,5261,5148,5144,5748,5749,5728,915, + 5726,36,385,385,5065,385,385,5065,385,5065, + 5068,5261,1,302,5065,5261,4875,4872,385,5303, + 5261,5268,5233,5562,5301,423,536,123,5261,8119, + 7437,1,5729,290,1474,1598,5727,5750,2949,2765, + 5267,3791,385,3403,5261,5261,3329,385,385,385, + 385,385,385,385,385,385,385,5068,5739,5738, + 5751,5720,5721,5744,5745,5261,421,5742,5743,5722, + 5724,5746,5747,5236,5068,2788,5752,5732,5733,5734, + 5730,5731,5740,5741,5736,5735,5737,43,4875,4872, + 3411,787,3714,3787,3228,3809,2828,566,3765,3743, + 989,5528,5526,5535,5266,5534,5530,5531,5529,5532, + 5533,5536,5527,3853,3831,5658,5284,1054,302,642, + 860,5286,664,3996,786,5287,5285,624,5562,5280, + 5282,5283,5281,2926,43,4875,4872,3411,787,3714, + 3787,3228,3809,1481,566,3765,3743,5261,5528,5526, + 5535,1,5534,5530,5531,5529,5532,5533,5536,5527, + 3853,3831,1,5284,1054,5261,642,860,5286,664, + 3996,786,5287,5285,624,3424,5280,5282,5283,5281, + 51,5161,5161,43,4875,4872,1469,787,3714,3787, + 3228,3809,1308,566,3765,3743,54,5528,5526,5535, + 5278,5534,5530,5531,5529,5532,5533,5536,5527,3853, + 3831,5158,5284,1054,5261,642,860,5286,664,3996, + 786,5287,5285,624,5278,5280,5282,5283,5281,43, + 4875,4872,3411,787,3714,3787,3228,3809,3547,566, + 3765,3743,3240,5528,5526,5535,5619,5534,5530,5531, + 5529,5532,5533,5536,5527,3853,3831,5261,5284,1054, + 320,642,860,5286,664,3996,786,5287,5285,624, + 5261,5280,5282,5283,5281,43,4875,4872,3411,787, + 3714,3787,3228,3809,5261,566,3765,3743,1817,5528, + 5526,5535,443,5534,5530,5531,5529,5532,5533,5536, + 5527,3853,3831,318,5284,1054,5182,642,860,5286, + 664,3996,786,5287,5285,624,1855,5280,5282,5283, + 5281,5261,4875,4872,103,5303,130,41,5113,5113, + 3426,719,5113,5261,5261,5528,5526,5535,5521,5534, + 5530,5531,5529,5532,5533,5536,5527,1,1,5261, + 5261,5261,3344,78,2512,1,5271,195,3284,1855, + 5270,195,5524,2646,523,5261,5261,5597,5598,5518, + 5525,5497,5523,5522,5519,5520,5498,5261,5053,5050, + 2021,5191,5655,244,5043,5039,121,5047,4893,854, + 5656,5657,3523,719,3448,4020,5261,5030,5036,5009, + 4994,5012,5024,5021,5027,5018,5015,5006,5033,1, + 5224,5224,231,5224,231,231,231,231,5227,2458, + 2431,132,231,43,4985,3085,8547,5303,523,4979, + 4976,5003,4982,4973,4988,4991,5000,4997,4970,1, + 5221,3875,555,281,5655,5261,5218,131,167,2512, + 1,854,5656,5657,1,5224,5224,231,5224,231, + 231,231,231,231,1213,527,2592,231,2481,5261, + 5261,8547,3343,3370,5261,2512,5261,3500,3477,4031, + 5261,223,3240,5089,5756,5221,444,1,5224,5224, + 231,5224,231,231,231,231,5230,3704,5261,120, + 231,4403,374,1,8547,3523,5261,5261,415,5092, + 3687,2592,167,2481,2458,2431,2108,3343,5221,39, + 503,309,5261,3548,5261,4704,5691,5692,5693,5756, + 1,5224,5224,231,5224,231,231,231,231,5227, + 2458,2431,1,231,2592,1,2481,8547,2989,516, + 3343,501,5233,2709,5056,5261,5261,5261,4728,222, + 3186,5221,5756,1,5224,5224,231,5224,231,231, + 231,231,5227,3403,2158,5261,231,5443,3064,5261, + 8547,5261,4740,5261,621,3449,4746,2592,4244,2481, + 3500,3477,5261,3343,5221,5442,505,5261,4137,3692, + 3065,1855,223,5236,2,5756,1,5224,5224,231, + 5224,231,231,231,231,231,5261,4753,5059,231, + 2592,3692,2481,8547,1,5261,3343,5261,5261,5261, + 5261,5261,41,5261,5261,223,5261,5221,5756,1, + 5224,5224,231,5224,231,231,231,231,231,3449, + 5261,5261,231,3342,5261,5261,8547,5261,1942,5261, + 5261,5261,994,2592,5261,2481,5261,5261,3692,3343, + 5221,5261,5261,5261,5261,227,5261,5261,5261,5261, + 5261,5756,1,5224,5224,231,5224,231,231,231, + 231,231,5521,5261,5261,231,2592,5261,2481,8547, + 5261,228,3343,5261,5261,5261,5261,5261,5261,5261, + 5261,5261,5261,5221,5756,5261,5524,229,5521,5261, + 5261,5597,5598,5518,5525,5497,5523,5522,5519,5520, + 5498,5261,5261,5261,5521,5261,5261,5261,5261,2592, + 5261,2481,5524,230,5261,3343,5261,5597,5598,5518, + 5525,5497,5523,5522,5519,5520,5498,5756,5524,5261, + 5521,5261,5261,5597,5598,5518,5525,5497,5523,5522, + 5519,5520,5498,5261,5261,5261,5261,5261,5261,5261, + 5261,5261,5261,5261,5524,5261,5261,5261,5261,5597, + 5598,5518,5525,5497,5523,5522,5519,5520,5498 }; }; public final static char termAction[] = TermAction.termAction; @@ -1677,59 +1676,59 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asb { public final static char asb[] = {0, - 581,7,444,1,930,820,820,820,820,150, - 930,678,678,733,678,313,428,315,445,445, - 445,445,445,445,445,445,445,680,686,691, - 688,695,693,700,698,702,701,703,173,704, + 581,7,444,1,398,820,820,820,820,1102, + 398,683,683,733,683,313,428,315,445,445, + 445,445,445,445,445,445,445,685,691,696, + 693,700,698,705,703,707,706,708,173,709, 444,444,122,122,122,122,484,275,94,94, - 675,122,361,91,678,678,94,764,680,91, - 91,82,428,889,121,971,152,1039,444,678, - 680,663,663,275,444,445,445,445,445,445, + 680,122,361,91,683,683,94,764,685,91, + 91,82,428,889,121,971,1104,1039,444,683, + 685,663,663,275,444,445,445,445,445,445, 445,445,445,445,445,445,445,445,445,445, 445,445,445,445,444,444,444,444,444,444, - 444,444,444,444,444,444,445,91,1104,1104, - 1104,1104,271,91,94,94,220,1028,1039,555, - 1039,487,1039,42,1039,1023,150,484,361,361, - 94,445,220,320,513,503,502,364,1046,1046, - 150,315,361,121,444,482,970,481,484,483, - 481,91,361,688,688,686,686,686,693,693, - 693,693,691,691,698,695,695,701,700,702, - 1116,703,930,930,930,930,484,484,1104,1066, - 1103,1104,675,484,671,226,226,484,491,271, - 490,552,493,558,484,484,484,271,1104,82, - 361,719,91,515,517,484,971,445,122,684, - 47,91,152,484,484,820,483,971,444,444, - 444,444,444,930,930,428,224,671,226,226, - 491,553,491,271,491,558,558,484,271,484, - 91,507,495,506,517,271,482,91,684,220, - 970,152,484,482,91,91,91,91,275,275, - 671,670,730,484,226,1116,43,820,273,1016, - 1106,226,730,491,491,563,484,558,730,728, - 729,484,571,444,504,504,160,160,484,511, - 220,9,91,484,684,685,684,444,47,1021, - 680,152,91,91,671,971,625,493,1104,820, - 481,805,1108,478,930,809,149,564,484,730, - 445,484,571,444,444,517,971,91,515,495, - 571,375,684,275,445,361,1021,482,625,625, - 826,242,482,492,492,478,724,220,813,445, - 1116,168,563,484,150,150,484,877,517,482, - 571,685,91,361,725,730,623,932,215,930, - 43,862,625,625,242,482,492,493,150,1108, - 478,445,445,484,484,484,877,91,877,825, - 215,623,822,150,730,1103,820,154,154,725, - 493,408,810,484,930,484,484,930,870,877, - 826,625,725,167,724,91,150,484,242,826, - 242,1102,1102,885,409,150,484,275,518,870, - 625,444,979,478,725,484,484,242,122,122, - 885,408,1116,445,1116,725,930,930,930,409, - 930,484,181,725,725,484,493,91,90,872, - 730,91,977,484,725,1103,400,930,400,1116, - 409,428,428,426,887,428,725,725,803,885, - 122,872,977,725,550,9,91,478,91,426, - 215,930,91,885,729,154,91,91,388,409, - 803,409,725,215,444,409,406,977,1102,493, - 493,922,444,407,275,725,91,481,409,91, - 725,409 + 444,444,444,444,444,444,445,91,803,803, + 803,803,271,91,94,94,1100,1028,1039,555, + 1039,487,1039,42,1039,1023,1102,484,361,361, + 94,445,1100,320,513,503,502,364,1046,1046, + 1102,315,361,121,444,482,970,481,484,483, + 481,91,361,693,693,691,691,691,698,698, + 698,698,696,696,703,700,700,706,705,707, + 1116,708,398,398,398,398,484,484,803,802, + 803,680,484,676,226,226,484,491,271,490, + 552,493,558,484,484,484,271,803,82,361, + 724,91,515,517,484,971,445,122,689,47, + 91,1104,484,484,820,483,971,444,444,444, + 444,444,398,398,428,930,676,226,226,491, + 553,491,271,491,558,558,484,271,484,91, + 507,495,506,517,271,482,91,689,1100,970, + 1104,484,482,91,91,91,91,275,275,676, + 675,672,484,226,1116,43,820,273,1016,1106, + 226,672,491,491,563,484,558,672,670,671, + 484,571,444,504,504,160,160,484,511,1100, + 9,91,484,689,690,689,444,47,224,685, + 1104,91,91,676,971,625,493,803,820,481, + 805,1108,478,398,809,149,564,484,672,445, + 484,571,444,444,517,971,91,515,495,571, + 1081,689,275,445,361,224,482,625,625,826, + 242,482,492,492,478,729,1100,813,445,1116, + 168,563,484,1102,1102,484,877,517,482,571, + 690,91,361,730,672,623,932,215,398,43, + 862,625,625,242,482,492,493,1102,1108,478, + 445,445,484,484,484,877,91,877,825,215, + 623,822,1102,672,802,820,154,154,730,493, + 408,810,484,398,484,484,398,870,877,826, + 625,730,167,729,91,1102,484,242,826,242, + 801,801,887,409,1102,484,275,518,870,625, + 444,979,478,730,484,484,242,122,122,887, + 408,1116,445,1116,730,398,398,398,409,398, + 484,181,730,730,484,493,91,90,872,672, + 91,977,484,730,802,400,398,400,1116,409, + 428,428,426,885,428,730,730,883,887,122, + 872,977,730,550,9,91,478,91,426,215, + 398,91,887,671,154,91,91,1094,409,883, + 409,730,215,444,409,406,977,801,493,493, + 1096,444,407,275,730,91,481,409,91,730, + 409 }; }; public final static char asb[] = Asb.asb; @@ -1737,31 +1736,31 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface Asr { public final static byte asr[] = {0, - 9,71,118,73,13,66,121,0,48,14, - 15,62,46,16,68,49,17,18,50,51, + 9,71,118,73,13,67,121,0,48,14, + 15,61,46,16,68,49,17,18,50,51, 19,20,52,53,21,22,54,69,55,10, 70,23,41,24,47,25,1,2,4,95, 0,4,1,2,60,0,96,90,11,12, 91,92,88,89,28,93,94,97,98,99, - 100,101,102,117,71,95,67,107,108,109, + 100,101,102,117,71,95,66,107,108,109, 110,111,112,113,114,115,116,118,72,13, - 121,61,1,2,8,6,4,3,56,66, + 121,62,1,2,8,6,4,3,56,67, 73,9,0,32,64,33,34,65,7,35, 36,37,38,58,39,40,42,43,44,29, - 26,27,8,6,11,12,5,30,61,45, - 3,48,14,15,62,46,16,68,49,17, + 26,27,8,6,11,12,5,30,62,45, + 3,48,14,15,61,46,16,68,49,17, 18,50,51,19,20,52,53,21,22,54, - 69,55,10,70,23,24,47,25,41,1, - 2,4,0,61,67,66,1,2,0,76, - 60,61,71,95,73,56,3,9,66,13, - 67,0,61,71,95,66,118,73,72,121, + 69,55,10,70,23,24,47,25,1,2, + 4,41,0,62,66,67,1,2,0,76, + 60,62,71,95,73,56,3,9,67,13, + 66,0,62,71,95,67,118,73,72,121, 14,15,32,64,16,33,34,18,19,20, 65,35,21,22,36,37,38,58,39,40, 10,23,24,25,42,43,44,29,26,27, - 11,12,30,45,9,13,7,5,3,1, - 2,8,4,6,0,75,57,7,103,104, + 11,12,30,45,9,8,6,4,13,1, + 2,7,3,5,0,75,57,7,103,104, 105,59,9,3,8,6,5,71,72,13, - 74,48,14,15,62,46,16,68,49,17, + 74,48,14,15,61,46,16,68,49,17, 18,50,51,19,20,52,53,21,22,54, 69,55,10,70,23,41,24,47,25,4, 1,2,31,0,9,73,14,15,32,16, @@ -1773,13 +1772,13 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 14,21,19,20,22,23,18,16,24,42, 45,43,44,29,39,34,38,5,7,4, 26,27,8,6,11,12,30,36,1,2, - 118,9,0,14,15,16,18,19,20,21, - 22,23,24,25,48,46,49,17,50,51, - 52,53,54,55,41,47,13,9,73,7, - 1,2,56,3,8,6,5,4,0,75, + 118,9,0,48,14,15,46,16,49,17, + 18,50,51,19,20,52,7,53,21,22, + 54,55,23,41,24,47,25,1,2,9, + 56,8,6,5,4,73,13,3,0,75, 103,104,105,31,71,119,122,72,74,76, 59,57,63,78,80,86,84,77,82,83, - 85,87,60,79,81,13,9,48,62,46, + 85,87,60,79,81,13,9,48,61,46, 68,49,17,50,51,52,53,54,69,55, 70,41,47,58,64,65,10,33,37,35, 32,40,15,25,14,21,19,20,22,23, @@ -1787,50 +1786,50 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 38,26,27,11,12,30,36,8,6,3, 4,7,5,1,2,0,31,1,2,4, 9,71,60,0,8,6,4,5,7,1, - 2,3,56,61,67,66,9,73,95,0, + 2,3,56,62,66,67,9,73,95,0, 7,5,3,56,6,8,95,48,14,15, 46,16,68,49,17,18,50,51,19,20, 52,53,21,22,54,69,55,10,70,23, - 41,24,47,25,1,2,4,73,9,62, + 41,24,47,25,1,2,4,73,9,61, 0,4,71,28,60,9,0,1,2,9, 72,0,41,1,2,4,103,104,105,0, - 46,58,47,9,61,95,67,66,73,0, + 46,58,47,9,62,95,66,67,73,0, 14,15,32,64,16,33,34,18,19,20, 65,7,35,21,22,36,37,38,58,39, 40,10,23,24,25,42,43,44,1,2, 3,26,27,8,6,11,12,5,30,4, - 45,74,29,0,63,48,14,15,62,46, + 45,74,29,0,63,48,14,15,61,46, 16,68,49,75,17,18,50,51,19,20, 52,57,53,21,22,54,69,55,10,70, 23,59,41,24,47,25,9,3,8,6, - 72,13,7,4,31,5,1,2,0,58, - 46,7,47,5,1,2,4,76,60,120, - 106,26,27,56,3,96,90,6,91,92, - 11,12,89,88,28,93,94,97,98,8, - 99,100,101,61,95,73,121,67,107,108, - 109,110,111,112,113,114,115,116,71,118, - 72,102,117,66,13,9,0,67,66,72, - 9,0,48,14,15,62,46,16,68,49, + 72,13,7,4,31,5,1,2,0,66, + 67,72,9,0,58,46,7,47,5,1, + 2,4,76,60,120,106,26,27,56,3, + 96,90,6,91,92,11,12,89,88,28, + 93,94,97,98,8,99,100,101,62,95, + 73,121,66,107,108,109,110,111,112,113, + 114,115,116,71,118,72,102,117,67,13, + 9,0,48,14,15,61,46,16,68,49, 17,18,50,51,19,20,52,53,21,22, 54,69,55,10,70,23,41,24,47,25, 1,2,4,65,64,11,12,6,91,92, - 99,8,100,5,30,28,61,110,111,107, - 108,109,115,114,116,89,88,112,113,97, - 98,93,94,101,102,26,27,66,90,106, - 3,56,67,0,60,71,76,0,9,60, - 66,0,71,9,56,3,67,66,13,28, - 0,60,67,0,60,62,46,16,68,49, + 99,8,100,5,30,28,110,111,107,108, + 109,115,114,116,89,88,112,113,97,98, + 93,94,101,102,26,27,90,106,3,56, + 66,67,62,0,60,71,76,0,9,60, + 67,0,71,9,56,3,66,67,13,28, + 0,60,66,0,60,61,46,16,68,49, 18,50,51,19,20,52,53,21,22,54, 69,55,70,23,41,24,47,25,15,14, 48,9,3,8,6,13,59,63,75,17, 31,7,1,2,5,4,10,57,0,46, - 47,76,3,60,71,13,58,9,61,95, - 67,66,73,0,119,0,77,0,64,65, - 26,27,11,12,30,36,42,45,43,44, - 29,39,34,38,15,25,14,21,19,20, - 22,23,18,16,24,10,33,37,35,32, - 40,8,6,4,56,7,5,1,2,3, - 0,62,46,16,68,49,18,50,51,19, + 47,76,3,60,71,13,58,9,62,95, + 67,73,66,0,77,0,119,0,64,65, + 26,27,8,11,12,5,30,36,3,4, + 7,42,45,43,44,29,39,34,38,15, + 25,14,21,19,20,22,23,18,16,24, + 10,33,37,35,32,40,56,1,2,6, + 0,61,46,16,68,49,18,50,51,19, 20,52,53,21,22,54,69,55,10,70, 23,41,24,47,25,15,14,48,9,3, 8,13,59,57,63,75,17,28,4,6, @@ -1838,16 +1837,16 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 58,26,27,8,6,11,12,30,36,3, 42,45,43,44,29,39,34,38,15,25, 14,21,19,20,22,23,18,16,24,33, - 37,35,32,40,60,7,1,2,4,10, - 5,0,10,68,62,69,70,15,25,14, + 37,35,32,40,60,7,1,2,5,4, + 10,0,10,68,61,69,70,15,25,14, 21,19,20,22,23,18,16,24,76,60, - 71,95,118,72,121,7,53,54,55,41, - 47,1,2,52,51,50,17,49,5,4, - 46,48,9,73,13,56,3,120,96,106, - 90,26,27,8,6,11,12,91,92,88, - 89,28,93,94,97,98,99,100,101,102, - 117,107,108,109,110,111,112,113,114,115, - 116,67,66,61,0,13,9,7,5,3, + 71,95,118,72,121,120,96,106,90,26, + 27,11,12,91,92,88,89,28,62,93, + 94,97,98,99,100,101,102,117,66,107, + 108,109,110,111,112,113,114,115,116,67, + 48,46,49,17,50,51,52,53,54,55, + 41,47,13,9,73,3,56,7,5,6, + 8,1,2,4,0,13,9,7,5,3, 1,2,6,8,4,71,0 }; }; @@ -1874,41 +1873,41 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 20,246,107,12,12,12,12,12,12,12, 12,12,12,12,12,12,12,12,12,12, 12,12,12,12,12,12,115,11,12,12, - 12,12,183,135,133,133,133,115,133,256, - 133,12,12,133,256,135,11,12,12,181, - 107,12,246,143,133,135,66,30,260,133, - 70,246,12,11,135,12,148,66,30,158, - 158,158,158,12,12,28,12,161,201,201, - 133,133,59,65,59,133,228,11,65,115, - 246,12,126,12,194,64,115,246,44,183, - 50,12,227,115,246,246,246,246,99,99, - 133,161,78,135,210,12,82,12,12,88, - 248,201,78,59,59,151,115,228,78,12, - 12,115,133,30,12,12,68,68,135,125, - 173,194,246,115,133,54,12,158,183,149, - 12,12,246,246,161,66,133,12,12,12, - 174,133,167,128,12,12,174,90,256,78, - 30,228,161,30,30,133,66,246,143,15, - 133,12,44,99,30,107,149,21,218,133, - 230,133,256,133,92,17,210,173,12,30, - 12,86,163,256,174,174,11,133,194,21, - 161,54,246,107,210,78,12,230,249,12, - 228,88,230,218,194,21,92,36,118,128, - 17,30,30,11,256,256,94,246,133,133, - 167,12,12,174,78,12,12,80,80,210, - 36,189,12,256,12,11,11,12,133,94, - 230,133,210,84,12,246,174,256,194,230, - 133,12,12,133,138,118,11,99,244,161, - 218,122,30,128,210,256,82,194,260,260, - 212,155,12,30,12,210,12,12,12,156, - 12,228,208,210,210,228,111,246,246,133, - 78,246,133,82,210,12,109,12,12,12, - 156,263,263,192,12,263,210,210,12,133, - 260,94,73,210,12,260,246,128,246,259, - 133,12,246,212,78,80,246,246,133,156, - 12,156,210,128,158,156,109,73,12,111, - 111,126,30,12,96,210,246,20,156,246, - 210,156 + 12,183,135,133,133,133,115,133,256,133, + 12,12,133,256,135,11,12,12,181,107, + 12,246,143,133,135,66,30,260,133,70, + 246,12,11,135,12,148,66,30,158,158, + 158,158,12,12,28,12,161,201,201,133, + 133,59,65,59,133,228,11,65,115,246, + 12,126,12,194,64,115,246,44,183,50, + 12,227,115,246,246,246,246,99,99,133, + 161,78,135,210,12,82,12,12,88,248, + 201,78,59,59,151,115,228,78,12,12, + 115,133,30,12,12,68,68,135,125,173, + 194,246,115,133,54,12,158,183,149,12, + 12,246,246,161,66,133,12,12,12,174, + 133,167,128,12,12,174,90,256,78,30, + 228,161,30,30,133,66,246,143,15,133, + 12,44,99,30,107,149,21,218,133,230, + 133,256,133,92,17,210,173,12,30,12, + 86,163,256,174,174,11,133,194,21,161, + 54,246,107,210,78,12,230,249,12,228, + 88,230,218,194,21,92,36,118,128,17, + 30,30,11,256,256,94,246,133,133,167, + 12,12,174,78,12,12,80,80,210,36, + 189,12,256,12,11,11,12,133,94,230, + 133,210,84,12,246,174,256,194,230,133, + 12,12,133,138,118,11,99,244,161,218, + 122,30,128,210,256,82,194,260,260,212, + 155,12,30,12,210,12,12,12,156,12, + 228,208,210,210,228,111,246,246,133,78, + 246,133,82,210,12,109,12,12,12,156, + 263,263,192,12,263,210,210,12,133,260, + 94,73,210,12,260,246,128,246,259,133, + 12,246,212,78,80,246,246,133,156,12, + 156,210,128,158,156,109,73,12,111,111, + 126,30,12,96,210,246,20,156,246,210, + 156 }; }; public final static char nasb[] = Nasb.nasb; @@ -1956,7 +1955,7 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 95,57,63,69,86,90,92,96,99,101, 106,111,112,113,123,56,108,49,66,72, 75,78,85,91,100,2,79,97,105,4, - 22,55,48,60,80,46,35,65,93,103, + 55,22,48,60,80,35,46,65,93,103, 32,120,119,122,67,98,110,51,52,58, 59,61,71,73,74,87,94,19,20,8, 17,18,23,24,34,6,25,26,27,28, @@ -2055,15 +2054,15 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeLa { public final static byte scopeLa[] = { 119,73,73,73,73,73,73,73,72,13, - 72,72,61,1,73,122,60,3,73,61, - 61,61,1,1,13,72,72,60,72,72, - 1,1,1,1,4,61,13,1,1,61, + 72,72,62,1,73,122,60,3,73,62, + 62,62,1,1,13,72,72,60,72,72, + 1,1,1,1,4,62,13,1,1,62, 73,73,73,119,73,1,13,72,1,1, 1,1,13,13,72,118,73,73,73,118, - 1,73,1,66,73,73,73,71,4,73, - 61,61,61,61,73,3,1,1,73,73, + 1,73,1,67,73,73,73,71,4,73, + 62,62,62,62,73,3,1,1,73,73, 3,118,73,1,1,1,13,71,73,118, - 73,5,73,1,31,67,73,1,1,6, + 73,5,73,1,31,66,73,1,1,6, 1,31,77,76,13,13,4,4,4,4, 3,1,9,60,1,1,3 }; @@ -2121,7 +2120,7 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 0,0,0,0,0,197,3,0,201,0, 237,127,60,29,17,0,184,128,57,59, 0,197,129,0,131,184,128,275,59,0, - 184,128,275,59,0,184,128,67,124,57, + 184,128,275,59,0,184,128,66,124,57, 0,237,127,60,57,0,237,127,60,226, 57,0,273,127,60,124,68,0,273,127, 60,68,0,184,128,68,0,136,0,188, @@ -2144,11 +2143,11 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 3,147,127,0,0,0,0,149,0,126, 31,166,128,0,33,149,0,95,138,33, 149,0,223,184,128,0,148,33,149,0, - 162,3,40,0,162,3,61,181,28,32, + 162,3,40,0,162,3,62,181,28,32, 0,181,28,32,0,22,3,132,127,0, - 162,3,61,181,28,35,0,181,28,35, - 0,162,3,61,181,28,37,0,181,28, - 37,0,162,3,61,181,28,33,0,181, + 162,3,62,181,28,35,0,181,28,35, + 0,162,3,62,181,28,37,0,181,28, + 37,0,162,3,62,181,28,33,0,181, 28,33,0,219,3,126,188,166,128,10, 0,126,188,166,128,10,0,138,3,0, 127,0,219,3,125,171,166,128,10,0, @@ -2163,37 +2162,37 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public interface ScopeState { public final static char scopeState[] = {0, - 4695,4741,4729,4705,0,3272,3583,2269,3348,0, - 3395,3329,3245,3185,3125,3065,2999,2867,2804,3187, - 0,1125,0,2572,1809,1223,0,2710,2647,0, - 3395,3329,3469,3039,3245,3185,3125,3065,2517,2999, - 2867,2804,2280,717,0,4433,3330,2997,0,2575, - 810,0,2927,2829,0,3007,4502,0,1916,732, - 0,4480,3007,4416,575,4502,3299,3986,4491,4245, - 2744,4216,4387,2979,2669,2635,0,4515,4287,3270, - 0,4515,4287,3270,3629,4191,4118,3556,4109,4031, - 4021,3547,0,4515,4287,3270,3629,4191,4118,3556, - 4109,4031,4021,3547,3395,3329,3245,3185,3125,3065, - 2999,2867,2804,0,3108,792,0,2744,4480,3650, - 4416,575,3558,2979,4057,3649,3550,2805,3000,811, - 1680,1638,0,796,728,0,556,0,2844,1102, - 976,870,575,3000,3299,2669,2635,2990,2664,0, - 4283,533,2540,0,4674,4670,4649,4645,4624,4620, - 4594,4574,4719,4700,4410,4336,3665,4567,4529,3277, - 4303,3421,3151,2587,2899,2794,0,4674,3634,4670, - 3180,3099,4649,4645,4624,1937,639,4620,4594,4574, - 3571,4719,3564,3310,4700,3285,3166,2838,2699,2821, - 4410,3120,4336,2582,3665,4567,4529,2660,3277,2578, - 4303,671,3421,3151,4283,2587,2540,2899,2794,788, - 3299,3986,4491,4245,2744,4480,4216,2233,3007,1121, - 4416,936,575,4387,2979,2669,4502,2635,654,995, - 2146,2059,796,728,3997,3964,3942,2246,2283,589, - 2316,2404,2376,2347,2596,2549,2513,2486,2459,2432, - 3524,3501,3478,2950,2766,3920,3898,3876,3854,3832, - 3810,3788,3766,3744,3715,1055,1943,2196,2159,2109, - 2072,2022,1224,1176,1985,1134,877,1893,1856,818, - 742,683,1814,1772,1730,1688,1646,1604,1562,1520, - 1478,1436,1394,533,1352,1309,1079,1013,953,1266, + 4694,4740,4728,4704,0,3271,3582,2268,3347,0, + 3394,3328,3244,3184,3124,3064,2998,2866,2803,3186, + 0,1124,0,2571,1808,1222,0,2709,2646,0, + 3394,3328,3468,3038,3244,3184,3124,3064,2516,2998, + 2866,2803,2279,716,0,4432,3329,2996,0,2574, + 809,0,2926,2828,0,3006,4501,0,1915,731, + 0,4479,3006,4415,574,4501,3298,3985,4490,4244, + 2743,4215,4386,2978,2668,2634,0,4514,4286,3269, + 0,4514,4286,3269,3628,4190,4117,3555,4108,4030, + 4020,3546,0,4514,4286,3269,3628,4190,4117,3555, + 4108,4030,4020,3546,3394,3328,3244,3184,3124,3064, + 2998,2866,2803,0,3107,791,0,2743,4479,3649, + 4415,574,3557,2978,4056,3648,3549,2804,2999,810, + 1679,1637,0,795,727,0,555,0,2843,1101, + 975,869,574,2999,3298,2668,2634,2989,2663,0, + 4282,532,2539,0,4673,4669,4648,4644,4623,4619, + 4593,4573,4718,4699,4409,4335,3664,4566,4528,3276, + 4302,3420,3150,2586,2898,2793,0,4673,3633,4669, + 3179,3098,4648,4644,4623,1936,638,4619,4593,4573, + 3570,4718,3563,3309,4699,3284,3165,2837,2698,2820, + 4409,3119,4335,2581,3664,4566,4528,2659,3276,2577, + 4302,670,3420,3150,4282,2586,2539,2898,2793,787, + 3298,3985,4490,4244,2743,4479,4215,2232,3006,1120, + 4415,935,574,4386,2978,2668,4501,2634,653,994, + 2145,2058,795,727,3996,3963,3941,2245,2282,588, + 2315,2403,2375,2346,2595,2548,2512,2485,2458,2431, + 3523,3500,3477,2949,2765,3919,3897,3875,3853,3831, + 3809,3787,3765,3743,3714,1054,1942,2195,2158,2108, + 2071,2021,1223,1175,1984,1133,876,1892,1855,817, + 741,682,1813,1771,1729,1687,1645,1603,1561,1519, + 1477,1435,1393,532,1351,1308,1078,1012,952,1265, 0 }; }; @@ -2206,55 +2205,55 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab 136,125,133,7,130,4,3,128,36,30, 5,12,11,6,8,27,26,140,145,148, 147,150,149,152,151,155,153,156,58,158, - 66,3,28,28,28,28,128,3,28,28, + 67,3,28,28,28,28,128,3,28,28, 167,127,56,3,64,65,28,7,125,181, 162,167,127,64,65,166,165,125,3,124, 126,106,120,3,56,90,96,12,11,92, - 91,6,94,93,61,28,88,89,8,98, + 91,6,94,93,62,28,88,89,8,98, 97,100,99,101,116,115,114,113,112,111, - 110,109,108,107,67,117,102,162,181,181, + 110,109,108,107,66,117,102,162,181,181, 181,181,166,219,127,127,127,267,268,249, 269,242,270,68,271,272,10,128,56,56, 127,157,127,56,3,217,216,136,126,125, 10,128,56,293,3,188,4,31,5,128, 31,219,162,147,147,145,145,145,149,149, 149,149,148,148,151,150,150,153,152,155, - 162,156,61,61,61,61,188,171,252,134, - 255,252,212,128,6,9,60,166,230,128, - 126,125,124,60,128,128,184,166,252,212, - 214,158,224,127,3,128,166,198,3,294, - 167,154,258,188,128,125,184,166,71,3, - 3,3,3,126,125,66,166,127,127,127, - 126,125,127,184,127,60,127,184,166,31, - 227,228,146,229,127,166,31,181,127,127, - 4,223,5,31,162,162,162,162,3,3, - 6,183,281,128,168,222,57,31,195,59, - 170,282,281,127,127,71,188,127,273,124, - 274,188,157,67,224,197,186,179,171,3, - 127,66,227,188,157,260,263,56,177,4, - 124,126,219,219,127,166,60,226,28,31, - 275,277,127,3,179,306,222,41,128,273, - 67,66,127,67,67,3,166,197,127,212, - 157,126,127,3,56,162,4,188,127,60, - 61,28,128,76,127,212,304,127,125,71, - 284,197,66,128,41,307,184,220,127,188, - 127,260,219,214,131,237,17,31,170,63, - 57,59,236,127,127,184,127,278,71,66, - 212,71,67,184,128,128,127,227,220,29, - 127,3,124,57,237,291,31,10,62,131, - 278,60,288,128,289,184,184,58,157,127, - 127,60,266,197,276,29,67,128,66,61, - 28,230,230,279,127,66,184,3,3,127, - 127,3,67,66,157,128,184,127,67,67, - 127,297,81,79,1,162,87,85,83,82, - 77,84,86,80,78,57,76,219,311,220, - 237,154,60,184,226,291,280,119,9,214, - 71,3,3,3,199,3,124,162,124,182, - 66,127,127,226,61,3,225,167,225,299, - 146,77,225,127,303,62,95,310,167,157, - 197,157,298,127,3,157,280,66,230,157, - 157,127,67,199,161,266,162,67,122,296, - 157,157 + 162,156,62,62,62,62,188,171,252,255, + 252,212,128,6,9,60,166,230,128,126, + 125,124,60,128,128,184,166,252,212,214, + 158,224,127,3,128,166,198,3,294,167, + 154,258,188,128,125,184,166,71,3,3, + 3,3,126,125,67,166,127,127,127,126, + 125,127,184,127,60,127,184,166,31,227, + 228,146,229,127,166,31,181,127,127,4, + 223,5,31,162,162,162,162,3,3,6, + 183,281,128,168,222,57,31,195,59,170, + 282,281,127,127,71,188,127,273,124,274, + 188,157,66,224,197,186,179,171,3,127, + 67,227,188,157,260,263,56,177,4,124, + 126,219,219,127,166,60,226,28,31,275, + 277,127,3,179,306,222,41,128,273,66, + 67,127,66,66,3,166,197,127,212,157, + 126,127,3,56,162,4,188,127,60,62, + 28,128,76,127,212,304,127,125,71,284, + 197,67,128,41,307,184,220,127,188,127, + 260,219,214,131,237,17,31,170,63,57, + 59,236,127,127,184,127,278,71,67,212, + 71,66,184,128,128,127,227,220,29,127, + 3,124,57,237,291,31,10,61,131,278, + 60,288,128,289,184,184,58,157,127,127, + 60,266,197,276,29,66,128,67,62,28, + 230,230,279,127,67,184,3,3,127,127, + 3,66,67,157,128,184,127,66,66,127, + 297,81,79,1,162,87,85,83,82,77, + 84,86,80,78,57,76,219,311,220,237, + 154,60,184,226,291,280,119,9,214,71, + 3,3,3,199,3,124,162,124,182,67, + 127,127,226,62,3,225,167,225,299,146, + 77,225,127,303,61,95,310,167,157,197, + 157,298,127,3,157,280,67,230,157,157, + 127,66,199,161,266,162,66,122,296,157, + 157 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2529,20 +2528,20 @@ public class CPPSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTab public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 522, + NUM_STATES = 521, NT_OFFSET = 123, - LA_STATE_OFFSET = 5797, + LA_STATE_OFFSET = 5792, MAX_LA = 2147483647, - NUM_RULES = 532, + NUM_RULES = 531, NUM_NONTERMINALS = 194, NUM_SYMBOLS = 317, SEGMENT_SIZE = 8192, - START_STATE = 3028, + START_STATE = 3027, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4872, - ERROR_ACTION = 5265; + ACCEPT_ACTION = 4871, + ERROR_ACTION = 5261; 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 c2556c7d4f0..606371a8fe0 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 @@ -22,7 +22,7 @@ public interface CPPSizeofExpressionParsersym { TK_case = 79, TK_catch = 119, TK_char = 15, - TK_class = 62, + TK_class = 61, TK_const = 46, TK_const_cast = 32, TK_continue = 80, @@ -106,7 +106,7 @@ public interface CPPSizeofExpressionParsersym { TK_RightShift = 88, TK_LeftShift = 89, TK_LT = 28, - TK_GT = 61, + TK_GT = 62, TK_LE = 93, TK_GE = 94, TK_EQ = 97, @@ -119,7 +119,7 @@ public interface CPPSizeofExpressionParsersym { TK_Colon = 71, TK_ColonColon = 4, TK_DotDotDot = 95, - TK_Assign = 67, + TK_Assign = 66, TK_StarAssign = 107, TK_SlashAssign = 108, TK_PercentAssign = 109, @@ -130,7 +130,7 @@ public interface CPPSizeofExpressionParsersym { TK_AndAssign = 114, TK_CaretAssign = 115, TK_OrAssign = 116, - TK_Comma = 66, + TK_Comma = 67, TK_RightBracket = 118, TK_RightParen = 73, TK_RightBrace = 72, @@ -201,13 +201,13 @@ public interface CPPSizeofExpressionParsersym { "throw", "using", "LeftBrace", - "GT", "class", + "GT", "asm", "delete", "new", - "Comma", "Assign", + "Comma", "enum", "struct", "union", 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 c4e4df6ef80..8f133de8686 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 @@ -2198,65 +2198,72 @@ public CPPTemplateTypeParameterParser(String[] mapFrom) { // constructor } // - // Rule 517: explicit_instantiation ::= template declaration + // Rule 515: template_argument ::= type_id // - case 517: { action.builder. + case 515: { action.builder. + consumeTemplateArgumentTypeId(); break; + } + + // + // Rule 516: explicit_instantiation ::= template declaration + // + case 516: { action.builder. consumeTemplateExplicitInstantiation(); break; } // - // Rule 518: explicit_specialization ::= template < > declaration + // Rule 517: explicit_specialization ::= template < > declaration // - case 518: { action.builder. + case 517: { action.builder. consumeTemplateExplicitSpecialization(); break; } // - // Rule 519: try_block ::= try compound_statement handler_seq + // Rule 518: try_block ::= try compound_statement handler_seq // - case 519: { action.builder. + case 518: { action.builder. consumeStatementTryBlock(); break; } // - // Rule 522: handler ::= catch ( exception_declaration ) compound_statement + // Rule 521: handler ::= catch ( exception_declaration ) compound_statement // - case 522: { action.builder. + case 521: { action.builder. consumeStatementCatchHandler(false); break; } // - // Rule 523: handler ::= catch ( ... ) compound_statement + // Rule 522: handler ::= catch ( ... ) compound_statement // - case 523: { action.builder. + case 522: { action.builder. consumeStatementCatchHandler(true); break; } // - // Rule 524: exception_declaration ::= type_specifier_seq declarator + // Rule 523: exception_declaration ::= type_specifier_seq declarator // - case 524: { action.builder. + case 523: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 525: exception_declaration ::= type_specifier_seq abstract_declarator + // Rule 524: exception_declaration ::= type_specifier_seq abstract_declarator // - case 525: { action.builder. + case 524: { action.builder. consumeDeclarationSimple(true); break; } // - // Rule 526: exception_declaration ::= type_specifier_seq + // Rule 525: exception_declaration ::= type_specifier_seq // - case 526: { action.builder. + case 525: { action.builder. consumeDeclarationSimple(false); break; } // - // Rule 534: type_parameter_start ::= ERROR_TOKEN + // Rule 533: type_parameter_start ::= ERROR_TOKEN // - case 534: { action.builder. + case 533: { 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 568ebc1b987..3df6ea1f71f 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 @@ -88,440 +88,440 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 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,1,2,4,4,1, - 2,5,5,3,3,1,4,3,1,0, - 1,3,1,1,-132,0,0,0,-83,0, + 3,1,0,1,1,2,4,4,1,2, + 5,5,3,3,1,4,3,1,0,1, + 3,1,1,-132,0,0,0,-83,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,-2,0,-1,0,0, - 0,0,-40,0,0,0,-3,0,-23,-381, - 0,0,0,0,-92,0,0,0,0,0, - -159,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-22,0,0,0, + 0,0,0,0,-2,0,-1,0,0,0, + 0,-40,0,0,0,-3,0,-23,-380,0, + 0,0,0,-92,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,-176,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-221,0, - 0,0,-181,-7,0,0,0,0,0,0, - 0,0,0,0,0,-30,0,0,0,0, - -475,0,-138,0,0,0,-24,0,0,0, - 0,0,0,0,0,-8,0,0,0,0, - 0,0,0,0,-178,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, + 0,0,0,0,0,0,0,-221,0,0, + 0,-181,-7,0,0,0,0,0,0,0, + 0,0,0,0,-30,0,0,0,0,-474, + 0,-138,0,0,0,-24,0,0,0,0, + 0,0,0,0,-8,0,0,0,0,0, + 0,0,0,-178,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,-44,0,0,0,0,0,0,-56,0, - 0,0,-25,0,0,0,0,0,0,-179, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-182,0,0,0,0,0, + -44,0,0,0,0,0,0,-56,0,0, + 0,-25,0,0,0,0,0,0,-179,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -12,0,0,0,0,0,-216,0,0,0, - 0,0,0,-107,0,0,0,-194,0,0, - 0,-177,-6,0,-376,0,0,-432,0,-139, + 0,0,0,0,0,0,0,0,0,-12, + 0,0,0,0,0,-216,0,0,0,0, + 0,0,-107,0,0,0,-194,0,0,0, + -177,-6,0,-375,0,0,-431,0,-139,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-255,-54,0,-193,0,0,0,-183, + 0,-254,-54,0,-193,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, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-91,-33,0, - 0,0,0,0,-328,0,0,0,-85,0, - -16,0,0,0,-302,0,0,0,0,0, + 0,0,0,0,0,0,-91,-33,0,0, + 0,0,0,-327,0,0,0,-85,0,-16, + 0,0,0,-301,0,0,0,0,0,0, 0,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,-86,0,0, - 0,0,0,0,0,0,-128,0,0,-358, + 0,0,0,0,-19,0,-86,0,0,0, + 0,0,0,0,0,-128,0,0,-357,0, 0,0,0,0,0,0,0,0,0,0, - 0,-201,0,0,0,0,0,0,0,0, - 0,0,0,0,-89,0,-294,0,0,0, - 0,0,-489,0,0,0,0,0,0,0, + -201,0,0,0,0,0,0,0,0,0, + 0,0,0,-89,0,-293,0,0,0,0, + 0,-488,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-218,0,0,0,0,0,-198, - 0,0,0,0,-223,0,0,0,-20,0, - 0,0,0,0,0,0,0,-27,-250,0, - 0,0,-512,0,0,0,0,0,0,0, + 0,0,-218,0,0,0,0,0,-198,0, + 0,0,0,-223,0,0,0,-20,0,0, + 0,0,0,0,0,0,-27,-250,0,0, + 0,-511,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,0,0,0,0,0,0,0,0,-28, - 0,-31,0,0,-60,0,0,0,0,0, + 0,0,0,0,-227,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-28,0, + -31,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,-36,0,-18, + 0,0,0,0,0,0,-36,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,-346,0,0,0,0,0,0,0, - 0,0,-261,0,0,0,-195,-353,0,0, - 0,-339,0,0,0,-43,-93,0,0,0, - 0,0,0,-49,-81,0,0,0,0,0, + 0,-345,0,0,0,0,0,0,0,0, + 0,-260,0,0,0,-195,-352,0,0,0, + -338,0,0,0,-43,-93,0,0,0,0, + 0,0,-49,-81,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-87,0,-50,0,0, - 0,-287,0,0,0,0,0,-396,0,0, - 0,-82,0,0,0,-51,0,0,0,0, + 0,0,0,0,-87,0,-50,0,0,0, + -286,0,0,0,0,0,-395,0,0,0, + -82,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,-52,0,0,0,0,0,-391,0, - 0,0,0,0,0,0,-210,0,0,0, + 0,-52,0,0,0,0,0,-390,0,0, + 0,0,0,0,0,-210,0,0,0,0, 0,0,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,-135,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-407,-134,0,0,0,-446,0, - 0,0,-53,0,0,0,0,0,0,0, + 0,0,-406,-134,0,0,0,-445,0,0, + 0,-53,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,-90,0,0,0,0,0,-389,0,0, - -21,0,0,0,0,0,0,0,0,0, + -55,0,0,0,0,0,0,0,0,0, + -90,0,0,0,0,0,-388,0,0,-21, 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,-59,0,0, - 0,-71,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-225, - 0,0,0,-72,0,0,0,0,0,0, - 0,0,0,0,0,0,-73,0,-46,-200, - 0,0,0,0,0,-74,0,-79,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,-59,0,0,0, + -71,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,-225,0, + 0,0,-72,0,0,0,0,0,0,0, + 0,0,0,0,0,-73,0,-46,-200,0, + 0,0,0,0,-74,0,-79,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -75,0,0,0,0,0,0,0,-76,0, - -180,0,0,0,0,0,-408,0,0,-161, + 0,0,0,0,0,0,0,0,0,-75, + 0,0,0,0,0,0,0,-76,0,-180, + 0,0,0,0,0,-407,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, - 0,0,-98,0,0,0,0,0,-268,0, - 0,-162,0,0,0,0,0,0,0,0, + 0,-98,0,0,0,0,0,-267,0,0, + -162,0,0,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,-78,0,-104,0,0,0,0,0, - -80,0,0,-163,0,0,0,-405,0,0, + 0,0,0,-77,0,0,0,0,0,0, + 0,-78,0,-104,0,0,0,0,0,-80, + 0,0,-163,0,0,0,-404,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,0,0,-84,0,-332,0,0,0, - 0,0,-384,0,0,-164,0,0,0,0, + 0,0,0,0,0,-316,0,0,0,0, + 0,0,0,-84,0,-331,0,0,0,0, + 0,-383,0,0,-164,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,0,0,0,0,-94,0,-349,0, - 0,0,0,0,-95,0,0,-165,0,0, + 0,0,0,0,0,0,0,-88,0,0, + 0,0,0,0,0,-94,0,-348,0,0, + 0,0,0,-95,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,0, - 0,0,0,0,0,0,0,0,-96,0, - -105,0,0,0,0,0,-97,0,0,-166, + 0,0,0,0,0,0,0,-96,0,-105, + 0,0,0,0,0,-97,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,-290,0,0,0,0,0,0,0, - -111,0,-106,0,0,0,0,0,-112,0, - 0,-167,0,0,0,0,0,0,0,0, + 0,-289,0,0,0,0,0,0,0,-111, + 0,-106,0,0,0,0,0,-112,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, - 0,0,-117,0,-370,0,0,0,-120,0, - 0,0,0,-168,0,0,0,0,0,0, + 0,-117,0,-369,0,0,0,-120,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,0,0,-297,0,0,0, - 0,0,0,0,-129,0,-108,0,0,0, - 0,-321,0,0,0,-169,0,0,0,0, + 0,0,0,0,0,-296,0,0,0,0, + 0,0,0,-129,0,-108,0,0,0,0, + -320,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,0,0,-137,0, - 0,0,0,0,0,0,-185,0,-110,0, - 0,0,0,-462,0,0,0,-170,0,0, + 0,0,0,0,0,0,0,-137,0,0, + 0,0,0,0,0,-185,0,-110,0,0, + 0,0,-461,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,0,-304, + 0,0,0,0,0,0,0,-186,0,-113, + 0,0,0,0,-465,0,0,0,-171,0, 0,0,0,0,0,0,0,0,0,0, - -305,0,0,0,0,0,0,0,-186,0, - -113,0,0,0,0,-466,0,0,0,-171, 0,0,0,0,0,0,0,0,0,0, + 0,-187,0,0,0,0,0,0,0,-204, + 0,0,0,0,0,-262,-205,-206,0,0, + -287,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, - -204,0,0,0,0,0,-263,-205,-206,0, - 0,-288,0,0,0,0,0,0,0,0, + 0,0,0,-207,0,0,0,0,0,0, + 0,-212,0,0,0,0,0,-450,-213,-214, + 0,0,-297,0,0,0,-370,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,-212,0,0,0,0,0,-451,-213, - -214,0,0,-298,0,0,0,-371,0,0, + 0,0,0,0,0,-215,0,0,0,0, + 0,0,0,-228,0,-229,0,0,0,-4, + 0,0,0,0,-515,0,0,0,-230,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,-228,0,-229,0,0,0, - -4,0,0,0,0,-516,0,0,0,-230, + 0,0,0,0,0,0,0,-188,0,0, + 0,0,0,0,0,-231,0,-191,0,0, + 0,0,-232,-405,0,0,-319,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,0,0,-188,0, - 0,0,0,0,0,0,-231,0,-191,0, - 0,0,0,-232,-406,0,0,-320,0,0, - 0,-233,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-234,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,-234,0, - 0,0,0,0,-351,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-235,0,0,0, + -387,0,0,0,0,0,0,0,0,0, + 0,-498,-236,-393,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-235,0,0, - 0,-388,0,0,0,0,0,0,0,0, - 0,0,-499,-236,-394,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,-237,0,-238,0,0,0, + -394,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-237,0,-238,0,0, - 0,-395,0,0,0,0,0,0,0,0, + 0,0,0,-510,0,0,0,0,0,0, + 0,-239,0,-330,0,0,0,-274,0,0, + 0,-240,-241,-309,-422,0,0,0,0,-242, + -403,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-511,0,0,0,0,0, - 0,0,-239,0,-331,0,0,0,-275,0, - 0,0,-240,-241,-310,-423,0,0,0,0, - -242,-404,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,-453,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-243,0,0,0,-454,0, 0,0,0,0,0,0,0,0,0,0, + -244,0,0,0,0,0,0,0,0,0, + -192,0,0,0,0,-245,-196,-264,0,0, + 0,-423,0,0,0,0,-246,-173,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-244,0,0,0,0,0,0,0,0, - 0,-192,0,0,0,0,-245,-196,-265,0, - 0,0,-424,0,0,0,0,-246,-173,0, 0,0,0,0,0,0,0,0,0,0, + -249,0,0,0,0,0,0,0,0,0, + 0,0,-251,0,-160,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,-251,0,-160,0,0,0,0, + 0,0,0,0,0,0,0,-270,0,0, + 0,0,0,0,0,-252,0,-158,0,0, + 0,-99,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-271,0, - 0,0,0,0,0,0,-252,0,-158,0, - 0,0,-99,0,0,0,0,0,0,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,-155, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-156,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,0,0,0,-156,0, - 0,0,-427,0,0,0,0,0,0,0, + -276,0,0,0,0,-157,0,0,0,-253, 0,0,0,0,0,0,0,0,0,0, - 0,-277,0,0,0,0,-157,0,0,0, - -253,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-254, - 0,0,0,0,-149,0,0,0,-256,0, + 0,0,0,0,0,0,0,0,-255,0, + 0,0,0,-149,0,0,0,-263,0,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, + -150,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-264,0,0,0,-151,0, - 0,0,-266,0,0,0,0,0,0,0, + 0,0,0,-265,0,0,0,-151,0,0, + 0,-266,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-267,0,0,0,-152,0,0,0,-278, + -277,0,0,0,-152,0,0,0,-278,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-279,0, - 0,0,-13,0,0,0,0,-282,0,0, - 0,0,0,-467,-14,0,0,0,-100,0, - -35,-130,-319,-153,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-281,0,0, + 0,-13,0,0,0,0,-282,0,0,0, + 0,0,-466,-14,0,0,0,-100,0,-35, + -130,-318,-153,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-513,0,0,0, - 0,0,0,-15,-383,0,0,0,0,0, - 0,-131,-184,-37,0,0,-274,-45,0,0, - 0,0,0,0,0,-348,0,-199,0,0, - 0,-32,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-283,-284, + 0,0,0,0,0,-512,0,0,0,0, + 0,0,-15,-382,0,0,0,0,0,0, + -131,-184,-37,0,0,-273,-45,0,0,0, + 0,0,0,0,-347,0,-199,0,0,0, + -32,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-283,-284,0, + 0,0,0,0,0,0,0,0,0,-366, + 0,0,0,0,-306,-440,0,0,0,-5, + 0,0,0,0,-202,-197,0,0,0,0, + 0,0,0,0,-315,-271,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -367,0,0,0,0,-285,-441,0,0,0, - -5,0,0,0,0,-202,-197,0,0,0, - 0,0,0,0,0,-316,-272,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-307,0,-34,-118,-279,0,0, + 0,0,0,0,0,0,-377,-414,0,-308, + 0,0,-154,0,0,0,-313,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-307,0,-34,-118,-280,0, - 0,0,0,0,0,0,0,-378,-415,0, - -308,0,0,-154,0,0,0,-309,0,0, + 0,0,0,0,0,-469,0,0,-410,0, + 0,0,0,0,0,0,0,0,0,-101, + -314,0,-401,0,0,0,0,0,-355,-48, + 0,0,-9,0,-438,-256,0,0,0,0, + 0,0,0,0,0,-10,0,0,0,0, + 0,0,0,0,-499,0,0,0,0,0, + 0,0,-513,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-325,-39,0, + 0,0,0,0,0,0,0,0,0,-285, + 0,0,0,0,-451,-203,-481,0,0,0, + 0,-328,0,0,0,-326,-209,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-470,0,0,-411, + -332,0,0,0,0,0,0,0,-349,0, 0,0,0,0,0,0,0,0,0,0, - -101,-314,0,-402,0,0,0,0,0,-356, - -48,0,0,-9,0,-439,-257,0,0,0, - 0,0,0,0,0,0,-10,0,0,0, - 0,0,0,0,0,-500,0,0,0,0, - 0,0,0,-514,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-315,-39, + 0,0,0,0,0,0,0,0,-275,0, + -222,0,-272,0,-333,0,0,0,0,0, + -351,0,0,0,0,0,0,0,-367,0, + 0,0,0,0,0,0,0,-144,0,0, 0,0,0,0,0,0,0,0,0,0, - -286,0,0,0,0,-452,-203,-482,0,0, - 0,0,-329,0,0,0,-326,-209,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-327,0,0,0,0,0,0,0,-333, + 0,0,-371,-208,-145,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-276, - 0,-222,0,-273,0,-334,0,0,0,0, - 0,-350,0,0,0,0,0,0,0,-352, - 0,0,0,0,0,0,0,0,-144,0, + 0,0,0,0,0,0,0,-226,0,-311, 0,0,0,0,0,0,0,0,0,0, + -258,-439,0,0,0,-372,0,-334,0,0, + 0,0,-29,-17,-378,-459,0,0,0,0, + 0,0,-381,-127,-400,-408,-119,0,0,0, + 0,0,0,0,-356,0,0,0,0,0, + -109,0,0,0,0,0,0,0,0,0, + -41,0,0,0,0,0,0,-411,0,0, + 0,0,0,0,0,0,0,0,0,-364, + 0,0,0,-376,0,-478,-412,0,0,0, + -259,0,0,-292,0,-220,-298,0,0,0, + 0,0,0,0,0,0,0,0,0,-415, + -419,0,-247,0,-42,0,0,0,0,0, + 0,0,-302,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-303, + 0,0,0,0,0,-503,0,0,0,0, + 0,0,-140,-362,0,-421,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-26, + 0,0,0,-432,0,0,0,0,0,-335, + 0,-389,0,0,0,0,0,0,0,0, + 0,0,0,-336,0,0,0,0,0,0, + 0,0,0,-413,0,-505,0,0,0,0, + -434,0,-257,0,0,0,0,-452,0,0, + 0,0,0,0,0,0,0,0,0,-454, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-368,-208,-145,0,0,0,0, + 0,0,-456,0,0,-449,0,0,0,0, + 0,0,0,0,0,0,0,0,0,-295, + 0,0,0,-47,0,-509,-494,0,-416,0, + 0,-116,0,0,0,-353,0,0,0,-457, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-226,0, - -312,0,0,0,0,0,0,0,0,0, - 0,-259,-440,0,0,0,-372,0,-335,0, - 0,0,0,-29,-17,-373,-460,0,0,0, - 0,0,0,-379,-127,-382,-401,-119,0,0, - 0,0,0,0,0,-357,0,0,0,0, - 0,-109,0,0,0,0,0,0,0,0, - 0,-41,0,0,0,0,0,0,-409,0, + 0,0,-458,-460,0,-424,0,-462,0,0, + -300,0,0,0,0,0,0,-475,0,0, + 0,0,0,-430,0,0,0,0,0,-514, 0,0,0,0,0,0,0,0,0,0, - -365,0,0,0,-377,0,-479,-412,0,0, - 0,-260,0,0,-293,0,-220,-299,0,0, + 0,-248,-294,-476,0,0,0,0,0,-477, + -447,0,0,0,0,0,0,0,0,-299, + -520,0,-482,0,0,0,0,0,0,0, + -486,-329,0,0,0,0,-305,0,0,-496, + 0,0,0,0,0,0,0,0,0,-504, + -417,0,0,0,-516,-358,0,-310,0,0, + 0,0,0,0,-174,0,0,0,0,0, + 0,0,0,0,0,-38,0,0,0,0, + 0,0,0,0,0,-523,0,0,-141,0, + 0,-337,0,0,-359,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -413,-416,0,-247,0,-42,0,0,0,0, - 0,0,0,-303,0,0,0,0,0,0, + -340,0,0,0,0,0,-490,0,0,0, + 0,0,-342,0,0,0,0,0,0,-427, 0,0,0,0,0,0,0,0,0,0, - -304,0,0,0,0,0,-504,0,0,0, - 0,0,0,-140,-363,0,-420,0,0,0, + -102,0,0,0,0,0,0,0,0,0, + 0,-57,0,-172,0,0,-360,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -26,0,0,0,-422,0,0,0,0,0, - -336,0,-390,0,0,0,0,0,0,0, - 0,0,0,0,-337,0,0,0,0,0, - 0,0,0,0,-414,0,-506,0,0,0, - 0,-435,0,-258,0,0,0,0,-433,0, + 0,-444,0,-344,0,0,-418,0,0,0, + 0,-365,0,0,0,0,0,0,0,-373, + 0,0,0,0,0,0,0,0,0,-472, + 0,0,0,0,0,0,0,-146,0,0, 0,0,0,0,0,0,0,0,0,0, - -453,0,0,0,0,0,0,0,0,0, - 0,0,0,-455,0,0,-450,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -296,0,0,0,-47,0,-510,-495,0,-417, - 0,0,-116,0,0,0,-354,0,0,0, - -457,0,0,0,0,0,0,0,0,0, - 0,0,0,-458,-459,0,-425,0,-463,0, - 0,-301,0,0,0,0,0,0,-461,0, - 0,0,0,0,-431,0,0,0,0,0, - -515,0,0,0,0,0,0,0,0,0, - 0,0,-248,-295,-476,0,0,0,0,0, - -477,-448,0,0,0,0,0,0,0,0, - -300,-521,0,-478,0,0,0,0,0,0, - 0,-483,-330,0,0,0,0,-306,0,0, - -487,0,0,0,0,0,0,0,0,0, - -497,-418,0,0,0,-505,-359,-517,-311,0, - 0,0,0,0,0,-174,0,0,0,0, - 0,0,0,0,0,0,-38,0,0,0, - 0,0,0,0,0,0,-524,0,0,-141, - 0,0,-338,0,0,-360,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,-341,0,0,0,0,0,-491,0,0, - 0,0,0,-343,0,0,0,0,0,0, - -428,0,0,0,0,0,0,0,0,0, - 0,-102,0,0,0,0,0,0,0,0, - 0,0,-57,0,-172,0,0,-361,0,0, + 0,0,0,0,0,0,0,0,0,-148, + 0,0,0,-455,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-445,0,-345,0,0,-419,0,0, - 0,0,-366,0,0,0,0,0,0,0, - -374,0,0,0,0,0,0,0,0,0, - -473,0,0,0,0,0,0,0,-146,0, + 0,0,-339,-479,-361,-321,0,0,-175,0, + -363,-385,0,-374,0,0,-409,0,0,-398, + 0,0,0,0,0,0,0,-463,-399,-429, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,-425,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,-433,0,0,0, + 0,0,0,-464,0,0,0,0,0,0, + 0,0,-473,0,-443,0,0,0,0,-437, + -484,0,0,0,0,0,0,0,0,0, + 0,-114,0,0,0,0,0,0,-442,-467, + -470,0,0,0,0,-471,0,0,-491,0, + 0,-58,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,-487,0,-495,0,0,0,0,0, + 0,0,0,0,0,-485,0,-489,0,0, + -502,-493,0,0,0,0,-497,0,0,0, + -61,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - -148,0,0,0,-456,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-340,-480,-362,-322,0,0,-175, - 0,-364,-386,0,-375,0,0,-410,0,0, - -399,0,0,0,0,0,0,0,-464,-400, - -430,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,-426,0,0,0, + -62,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-434,0,0, - 0,0,0,0,-465,0,0,0,0,0, - 0,0,0,-474,0,-444,0,0,0,0, - -438,-485,0,0,0,0,0,0,0,0, - 0,0,-114,0,0,0,0,0,0,-443, - -468,-471,0,0,0,0,-472,0,0,-492, - 0,0,-58,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,-488,0,-496,0,0,0,0, - 0,0,0,0,0,0,-486,0,-490,0, - 0,-503,-494,0,0,0,0,-498,0,0, - 0,-61,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,-65,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,-66,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,-64,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,0,0,0,0,0,-65,0,0, + 0,0,-133,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-66, + 0,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,-143,0,0,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,-211,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,-142,0,0,0,0, + -290,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,-143,0,0, + 0,0,-507,0,0,0,0,-506,0,0, + 0,0,0,-480,-483,0,-517,0,0,0, + 0,-341,0,0,-518,0,0,0,0,0, + -322,-386,0,0,0,0,0,0,-217,0, + 0,0,0,-522,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-211, + 0,-501,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-519,-521,-121, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,-323,-379,0,0, + 0,0,0,0,0,0,0,-384,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,-291,0,0,0,-501,0,0,0,0, + 0,0,0,0,0,0,0,0,-402,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,-508,0,0,0,0,-507,0, - 0,0,0,0,-481,-484,0,-518,0,0, - 0,0,-342,0,0,-519,0,0,0,0, - 0,-323,-387,0,0,0,0,0,0,-217, - 0,0,0,0,-523,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,-502,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-520,-522, - -121,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,-324,-380,0, - 0,0,0,0,0,0,0,0,-385,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,-324,0, 0,0,0,0,0,0,0,0,0,0, + 0,0,0,-428,0,0,0,0,0,0, + 0,0,0,-436,-11,0,0,0,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,0,0,0,0, - 0,0,0,0,0,0,0,0,0,-325, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,-429,0,0,0,0,0, - 0,0,0,0,-437,-11,0,0,0,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,0,0,0, + 0,0,0,0,0,0,0,0,0,-224, + 0,0,0,0,0,0,0,0,0,-391, 0,0,0,0,0,0,0,0,0,0, + 0,0,-446,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, + 0,0,-123,0,-189,0,0,0,0,0, + 0,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,0, - -224,0,0,0,0,0,0,0,0,0, - -392,0,0,0,0,0,0,0,0,0, - 0,0,0,-447,0,0,0,0,0,0, + 0,0,0,0,-441,0,0,0,0,0, + 0,0,0,0,-368,0,0,0,0,0, + 0,0,-219,-508,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-318,0,0,0,0, - 0,0,0,-123,0,-189,0,0,0,0, - 0,0,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,-343,0,0, + 0,0,0,0,0,0,0,0,-312,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-442,0,0,0,0, - 0,0,0,0,0,-369,0,0,0,0, - 0,0,0,-219,-509,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,-392,0,0,0,0,0, 0,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,0,-313, 0,0,0,0,0,0,0,0,0,0, - 0,0,-347,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-393,0,0,0,0, + 0,0,0,0,0,0,0,-492,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, + 0,0,0,0,-269,0,0,0,0,0, + 0,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,0,-493,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,0,-270,0,0,0,0, - 0,0,0,0,0,0,0,-355,0,0, + 0,0,0,0,-396,0,0,0,0,0, + 0,0,-397,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, + -420,0,0,0,-435,0,0,0,0,0, + 0,0,-448,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,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,-397,0,0,0,0, - 0,0,0,-398,0,0,0,0,0,0, + 0,0,0,0,0,0,0,-115,0,0, + 0,0,0,-136,0,0,0,0,0,0, + 0,0,0,0,-126,0,0,0,-261,0, + 0,0,-280,0,0,0,0,0,-288,0, 0,0,0,0,0,0,0,0,0,0, - 0,-421,0,0,0,-436,0,0,0,0, - 0,0,0,-449,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,-103,0, + -124,0,0,0,0,-125,0,0,-291,0, + -468,0,0,0,0,0,0,0,0,0, 0,0,0,0,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,-136,0,0,0,0,0, - 0,0,0,0,0,-126,0,0,0,-262, - 0,0,0,-281,0,0,0,0,0,-289, 0,0,0,0,0,0,0,0,0,0, - 0,-124,0,0,0,0,-125,0,0,-292, - 0,-469,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,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; @@ -582,480 +582,479 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 167,167,167,167,167,167,167,167,167,167, 167,167,167,167,167,167,66,72,72,168, 168,131,131,110,110,110,110,110,110,3, - 132,132,130,130,111,111,111,84,67,82, - 157,157,112,112,187,187,187,133,133,124, - 124,188,188,169,169,881,39,1967,1941,1670, - 4100,34,1008,31,35,1050,30,32,1940,29, - 27,56,1334,112,82,83,114,1342,943,1352, - 1344,1387,1374,1421,1396,1505,206,1429,2434,1513, - 1521,149,278,1166,1689,164,150,1184,3723,892, - 1866,39,1052,36,2790,1670,34,1008,340,35, - 1050,2310,39,1052,36,237,3743,34,1008,31, - 35,1050,30,32,1292,29,27,56,1334,112, - 82,83,114,1342,328,1352,1344,1387,1374,1421, - 2235,240,235,236,937,39,1052,36,3181,355, - 34,1008,341,35,1050,279,318,2802,323,937, - 39,1052,36,1670,1018,34,1008,44,35,1050, - 354,247,250,253,256,3417,600,1647,1639,38, - 495,1833,1078,1140,39,1052,36,1162,4331,34, - 1008,31,35,1050,63,32,1105,1933,533,2747, - 2601,2644,2860,3072,3126,1419,39,1052,36,2595, - 3743,34,1008,31,35,1050,2357,32,1292,29, - 27,56,1334,112,82,83,114,1342,344,1352, - 1344,1387,1374,1421,1396,1505,1670,1429,457,1513, - 1521,149,248,39,284,514,150,4739,2634,1366, - 39,1765,47,1092,3399,46,1008,566,326,515, - 1419,39,1052,36,2595,3743,34,1008,31,35, - 1050,2357,32,1292,29,27,56,1334,112,82, - 83,114,1342,344,1352,1344,1387,1374,1421,1396, - 1505,1282,1429,521,1513,1521,149,248,39,284, - 514,150,4770,2634,600,39,2272,2019,1401,39, - 285,456,996,30,515,1303,510,2814,1361,67, - 1671,39,1052,36,327,4331,34,1008,31,35, - 1050,62,32,1607,1059,2324,945,2451,4709,4756, - 1419,39,1052,36,2595,3743,34,1008,31,35, - 1050,2357,32,1292,29,27,56,1334,112,82, - 83,114,1342,344,1352,1344,1387,1374,1421,1396, - 1505,510,1429,2189,1513,1521,149,1009,1470,68, - 514,150,1431,2634,4709,2435,39,282,334,30, - 2470,1043,2451,3406,515,1689,39,1052,36,2595, - 3743,34,1008,31,35,1050,2357,32,1292,29, - 27,56,1334,112,82,83,114,1342,344,1352, - 1344,1387,1374,1421,1396,1505,1119,1429,30,1513, - 1521,149,3630,1172,333,514,150,2040,2634,357, - 600,39,1126,387,390,424,48,2312,529,515, - 3091,510,1089,39,1052,36,66,4764,34,1008, - 31,35,1050,30,32,30,508,1737,3482,685, - 2479,1557,2451,1486,39,1052,36,428,3743,34, - 1008,31,35,1050,30,32,1292,29,27,56, - 1334,112,82,83,114,1342,315,1352,1344,1387, - 1374,1421,1396,1505,1670,1429,511,1513,1521,149, - 600,39,287,380,150,1089,39,1052,36,1233, - 4764,34,1008,31,35,1050,65,32,1189,600, - 39,1126,387,1559,39,1052,36,383,3743,34, - 1008,31,35,1050,30,32,1292,29,27,56, - 1334,112,82,83,114,1342,1670,1352,1344,1387, - 1374,1421,1396,1505,440,1429,55,1513,1521,149, - 1452,52,2069,380,150,2310,39,1052,36,4042, - 3743,34,1008,31,35,1050,30,32,1292,29, - 27,56,1334,112,82,83,91,381,1468,384, - 1875,39,1052,36,453,3743,34,1008,31,35, - 1050,30,32,1292,29,27,56,1334,112,82, - 83,114,1342,2135,1352,1344,1387,1374,1421,1396, - 1505,57,1429,1932,1513,1521,149,945,2386,99, - 374,150,937,39,1052,36,2095,1612,34,1008, - 3095,35,1050,2836,153,1875,39,1052,36,385, - 3743,34,1008,31,35,1050,30,32,1292,29, - 27,56,1334,112,82,83,114,1342,494,1352, - 1344,1387,1374,1421,1396,1505,1515,1429,2294,1513, - 1521,149,600,39,2902,374,150,389,600,39, - 1126,387,1875,39,1052,36,2342,3743,34,1008, - 31,35,1050,30,32,1292,29,27,56,1334, - 112,82,83,114,1342,373,1352,1344,1387,1374, - 1421,1396,1505,2391,1429,431,1513,1521,149,248, - 39,450,374,150,4682,391,424,1875,39,1052, - 36,624,3743,34,1008,31,35,1050,30,32, - 1292,29,27,56,1334,112,82,83,114,1342, - 1515,1352,1344,1387,1374,1421,1396,1505,3193,1429, - 372,1513,1521,149,1303,329,444,164,150,1804, - 39,1052,36,2420,3743,34,1008,31,35,1050, - 30,32,1292,29,27,56,1334,112,82,83, - 114,1342,241,1352,1344,1387,1374,1421,1396,1505, - 418,1429,30,1513,1521,149,740,370,2135,380, - 150,1756,39,1052,36,639,3743,34,1008,31, - 35,1050,30,32,1292,29,27,56,1334,112, - 82,83,114,1342,1945,1352,1344,1387,1374,1421, - 1396,1505,1377,1429,1557,1513,1555,170,2262,39, - 1052,36,2116,3743,34,1008,31,35,1050,30, - 32,1292,29,27,56,1334,92,82,83,1933, - 1548,39,1052,36,1722,4764,34,1008,31,35, - 1050,64,32,443,3167,3185,329,29,356,68, - 600,39,1639,281,4709,378,57,529,1622,39, - 1052,36,539,3743,34,1008,31,35,1050,30, - 32,1292,29,27,56,1334,112,82,83,114, - 1342,679,1352,1344,1387,1374,1421,1396,1505,1451, - 1429,68,1513,1521,149,4444,4709,1303,148,150, - 1875,39,1052,36,333,3743,34,1008,31,35, - 1050,30,32,1292,29,27,56,1334,112,82, - 83,114,1342,3392,1352,1344,1387,1374,1421,1396, - 1505,444,1429,30,1513,1521,149,820,2748,1143, - 161,150,1875,39,1052,36,333,3743,34,1008, - 31,35,1050,30,32,1292,29,27,56,1334, - 112,82,83,114,1342,321,1352,1344,1387,1374, - 1421,1396,1505,63,1429,30,1513,1521,149,2009, - 813,1146,160,150,1875,39,1052,36,1670,3743, - 34,1008,31,35,1050,30,32,1292,29,27, - 56,1334,112,82,83,114,1342,233,1352,1344, - 1387,1374,1421,1396,1505,1381,1429,68,1513,1521, - 149,325,4709,1732,159,150,1875,39,1052,36, - 529,3743,34,1008,31,35,1050,30,32,1292, - 29,27,56,1334,112,82,83,114,1342,1245, - 1352,1344,1387,1374,1421,1396,1505,1191,1429,68, - 1513,1521,149,103,4709,1208,158,150,1875,39, - 1052,36,1725,3743,34,1008,31,35,1050,30, - 32,1292,29,27,56,1334,112,82,83,114, - 1342,2195,1352,1344,1387,1374,1421,1396,1505,2450, - 1429,30,1513,1521,149,4386,435,1179,157,150, - 1875,39,1052,36,333,3743,34,1008,31,35, - 1050,30,32,1292,29,27,56,1334,112,82, - 83,114,1342,2098,1352,1344,1387,1374,1421,1396, - 1505,1740,1429,30,1513,1521,149,4396,4526,497, - 156,150,1875,39,1052,36,100,3743,34,1008, - 31,35,1050,30,32,1292,29,27,56,1334, - 112,82,83,114,1342,2195,1352,1344,1387,1374, - 1421,1396,1505,1651,1429,1938,1513,1521,149,1305, - 4709,3056,155,150,1875,39,1052,36,639,3743, - 34,1008,31,35,1050,30,32,1292,29,27, - 56,1334,112,82,83,114,1342,2089,1352,1344, - 1387,1374,1421,1396,1505,2466,1429,30,1513,1521, - 149,816,600,2560,154,150,1875,39,1052,36, - 1725,3743,34,1008,31,35,1050,30,32,1292, - 29,27,56,1334,112,82,83,114,1342,1298, - 1352,1344,1387,1374,1421,1396,1505,1322,1429,1514, - 1513,1521,149,1117,600,3712,153,150,1875,39, - 1052,36,639,3743,34,1008,31,35,1050,30, - 32,1292,29,27,56,1334,112,82,83,114, - 1342,1515,1352,1344,1387,1374,1421,1396,1505,1634, - 1429,30,1513,1521,149,2707,600,3381,152,150, - 1875,39,1052,36,102,3743,34,1008,31,35, - 1050,30,32,1292,29,27,56,1334,112,82, - 83,114,1342,409,1352,1344,1387,1374,1421,1396, - 1505,1008,1429,291,1513,1521,149,151,1323,1588, - 151,150,1875,39,1052,36,1122,3743,34,1008, - 31,35,1050,30,32,1292,29,27,56,1334, - 112,82,83,114,1342,1592,1352,1344,1387,1374, - 1421,1396,1505,1799,1429,402,1513,1521,149,909, - 505,2552,165,150,1875,39,1052,36,767,3743, - 34,1008,31,35,1050,30,32,1292,29,27, - 56,1334,112,82,83,114,1342,2538,1352,1344, - 1387,1374,1421,1396,1505,2119,1429,2411,1513,1521, - 149,512,39,394,146,150,2214,39,1052,36, - 1837,3743,34,1008,31,35,1050,30,32,1292, - 29,27,56,1334,112,82,83,114,1342,2042, - 1352,1344,1387,1374,1421,1396,1505,1884,1429,30, - 1513,1521,149,2717,2319,767,195,150,2310,39, - 1052,36,205,3743,34,1008,31,35,1050,30, - 32,1292,29,27,56,1334,112,82,83,114, - 1342,520,1352,1344,1387,1374,1421,1396,1505,381, - 1429,76,1513,1555,170,2310,39,1052,36,3102, - 3743,34,1008,31,35,1050,30,32,1292,29, - 27,56,1334,112,82,83,114,1342,644,1352, - 1344,1387,1374,1421,1396,1505,661,1429,557,1513, - 1555,170,937,39,1052,36,330,336,34,1008, - 3280,35,1050,909,733,2310,39,1052,36,295, - 3743,34,1008,31,35,1050,30,32,1292,29, - 27,56,1334,112,82,83,114,1342,77,1352, - 1344,1387,1374,1421,1396,1505,2562,1429,2565,1513, - 1555,170,2310,39,1052,36,420,3743,34,1008, - 31,35,1050,30,32,1292,29,27,56,1334, - 112,82,83,114,1342,2666,1352,1344,1387,1374, - 1421,1396,1505,868,1429,1302,1513,1555,170,600, - 39,1639,286,1956,2339,1059,600,39,1126,387, - 4479,417,2310,39,1052,36,419,3743,34,1008, - 31,35,1050,30,32,1292,29,27,56,1334, - 112,82,83,114,1342,520,1352,1344,1387,1374, - 1421,1396,1505,430,1429,673,1513,1555,170,2358, - 39,1052,36,422,3743,34,1008,31,35,1050, - 30,32,1292,29,27,56,1334,112,82,83, - 114,1342,1847,1352,1344,1387,1374,1421,1396,1505, - 2175,1429,2473,1513,1555,170,2934,1448,30,1616, - 39,296,2930,600,39,1126,387,521,239,2310, - 39,1052,36,2423,3743,34,1008,31,35,1050, - 30,32,1292,29,27,56,1334,112,82,83, - 114,1342,1610,1352,1344,1387,1374,1421,1396,1505, - 429,1429,2691,2288,1655,2984,2310,39,1052,36, - 3364,3743,34,1008,31,35,1050,30,32,1292, - 29,27,56,1334,112,82,83,114,1342,1932, - 1352,1344,1387,1374,1421,1396,1505,1684,2262,2310, - 39,1052,36,1612,3743,34,1008,31,35,1050, - 30,32,1292,29,27,56,1334,112,82,83, - 114,1342,2745,1352,1344,1387,1374,1421,1396,2201, - 2310,39,1052,36,351,3743,34,1008,31,35, - 1050,30,32,1292,29,27,56,1334,112,82, - 83,114,1342,388,1352,1344,1387,1374,2183,2310, - 39,1052,36,1670,3743,34,1008,31,35,1050, - 30,32,1292,29,27,56,1334,112,82,83, - 114,1342,1932,1352,1344,1387,2193,2310,39,1052, - 36,1918,3743,34,1008,31,35,1050,30,32, - 1292,29,27,56,1334,112,82,83,114,1342, - 1908,1352,1344,1387,2194,2310,39,1052,36,2124, - 3743,34,1008,31,35,1050,30,32,1292,29, - 27,56,1334,112,82,83,114,1342,104,1352, - 1344,2032,2310,39,1052,36,288,3743,34,1008, - 31,35,1050,30,32,1292,29,27,56,1334, - 112,82,83,114,1342,1981,1352,1344,2059,2310, - 39,1052,36,2582,3743,34,1008,31,35,1050, - 30,32,1292,29,27,56,1334,112,82,83, - 114,1342,2443,1352,1344,2098,2310,39,1052,36, - 2101,3743,34,1008,31,35,1050,30,32,1292, - 29,27,56,1334,112,82,83,114,1342,2136, - 1352,1344,2114,1535,39,1052,36,859,857,34, - 1008,340,35,1050,2002,2406,39,1126,387,1612, - 2648,1171,1612,1932,2310,39,1052,36,242,3743, - 34,1008,31,35,1050,30,32,1292,29,27, - 56,1334,112,82,83,114,1342,2002,1352,2146, - 324,3181,278,4020,2000,1616,3121,296,1389,321, - 733,323,1612,1612,2060,316,667,1973,688,39, - 1126,387,4376,3764,353,237,1861,999,1401,39, - 282,237,1064,39,1052,36,2801,289,34,1008, - 340,35,1050,28,2817,345,558,579,350,1718, - 2044,240,235,236,906,55,523,249,235,236, - 1589,2509,1723,352,400,279,2084,600,39,1126, - 387,512,39,394,237,353,1612,1074,2560,3283, - 3181,247,250,253,256,3417,1352,945,321,733, - 323,4618,1078,2749,316,667,345,558,579,350, - 252,235,236,353,449,343,2599,75,2745,2747, - 2601,2644,2860,3072,3126,849,2716,1943,1228,600, - 39,1639,283,4709,345,558,579,350,1932,1932, - 244,2143,367,2363,2310,39,1052,36,2598,3743, - 34,1008,31,35,1050,30,32,1292,29,27, - 56,1334,112,82,83,114,1342,1932,1352,2148, - 1327,39,1052,36,1599,4709,34,1008,340,35, - 1050,1374,2166,334,1302,2595,4709,237,676,426, - 1059,512,39,394,1924,4656,177,30,2595,353, - 535,3134,300,299,2583,393,424,30,290,94, - 2859,2595,108,245,235,236,2442,2583,3181,234, - 347,558,579,350,2002,333,321,733,323,162, - 344,307,316,667,186,3605,333,2442,2579,2226, - 2856,209,220,580,798,208,217,218,219,221, - 2634,600,39,1639,2887,175,1,1612,1545,4503, - 535,506,535,2445,39,1639,281,2243,1612,174, - 3482,361,189,173,176,177,178,179,180,234, - 382,3766,2387,522,502,2643,1807,1849,74,162, - 1903,162,309,313,186,3605,186,3605,1729,59, - 237,209,220,580,501,208,217,218,219,221, - 1074,2560,1612,3325,945,175,600,3027,1639,80, - 187,3307,1785,3229,2984,499,255,235,236,174, - 2369,201,190,173,176,177,178,179,180,2310, - 39,1052,36,93,3743,34,1008,31,35,1050, - 30,32,1292,29,27,56,1334,112,82,83, - 114,1342,771,1975,2609,2026,2310,39,1052,36, - 2876,3743,34,1008,31,35,1050,30,32,1292, - 29,27,56,1334,112,82,83,114,1342,1612, - 1977,1194,39,2942,36,1599,4709,34,1008,340, - 35,1050,30,424,39,450,3151,2599,4682,2445, - 39,1639,3036,1172,1923,1924,2185,265,2595,2595, - 58,535,392,424,1310,1674,2530,2531,1374,1227, - 2871,290,2595,4709,3278,202,1059,344,2583,3181, - 234,4664,864,39,1126,387,333,321,733,323, - 162,2583,2869,316,667,186,3605,858,166,2574, - 2603,2579,209,220,580,1118,208,217,218,219, - 221,600,39,1639,3047,769,175,353,2291,55, - 4503,535,2042,333,1589,30,53,30,30,2185, - 174,1227,3191,3372,173,176,177,178,179,180, - 234,2513,2209,788,1612,502,2467,39,1126,387, - 162,2648,237,404,2042,186,3605,2748,361,243, - 3344,2888,209,220,580,501,208,217,218,219, - 221,2042,2643,1807,1849,3108,175,441,258,235, - 236,535,3102,278,1674,1674,500,2532,1227,1227, - 174,415,2950,182,173,176,177,178,179,180, - 234,600,39,1126,387,2659,237,447,3167,3185, - 162,2042,2656,2002,3102,186,3605,166,166,335, - 336,453,209,220,580,2042,208,217,218,219, - 221,3102,241,235,236,1059,175,529,55,439, - 4686,535,1059,1589,1904,1166,279,4694,2595,2638, - 174,3433,336,193,173,176,177,178,179,180, - 234,2622,248,251,254,257,3417,2583,332,336, - 162,3102,377,1078,2673,186,3605,600,39,296, - 3009,3641,209,220,580,3102,208,217,218,219, - 221,978,39,1126,387,2495,175,617,2652,3048, - 769,535,535,600,39,1126,387,1973,3531,336, - 174,2676,4376,3398,173,176,177,178,179,180, - 234,344,3635,336,2678,2680,352,2509,278,1545, - 162,162,2412,1227,362,186,3605,194,302,2689, - 278,4569,209,220,580,769,208,217,218,219, - 221,1012,39,1052,36,859,175,34,1008,340, - 35,1050,162,1612,1612,2694,353,206,3777,375, - 174,89,769,198,173,176,177,178,179,180, - 3704,30,705,226,2674,3205,535,345,558,579, - 350,2910,684,1612,3361,96,2363,1009,30,3181, - 196,2682,3624,280,78,234,2716,321,733,323, - 306,2695,2002,316,667,162,2696,1612,2120,1060, - 186,3605,353,1103,3523,524,2117,209,220,580, - 2595,208,217,218,219,221,5241,2057,39,1681, - 1809,175,3062,345,558,579,350,793,73,2583, - 30,535,525,30,1227,174,1612,795,192,173, - 176,177,178,179,180,95,50,2312,108,427, - 234,377,30,4069,55,5241,3633,5241,2572,1589, - 162,784,2595,162,30,186,3605,72,4093,1036, - 5241,2496,209,220,580,2595,208,217,218,219, - 221,344,986,39,1052,36,175,4709,34,1008, - 340,35,1050,30,344,30,361,535,1612,1227, - 174,3782,528,200,173,176,177,178,179,180, - 3124,1807,1849,30,2634,30,344,1227,1969,1308, - 5241,5241,2816,30,1767,531,162,2804,162,71, - 3181,30,2642,5241,2277,1264,2634,334,321,733, - 323,600,39,296,317,667,3732,2602,3711,2310, - 39,1052,36,353,3743,34,1008,31,35,1050, - 30,32,1292,29,27,56,1334,112,82,83, - 114,1990,5241,5241,347,558,579,350,2310,39, - 1052,36,188,3743,34,1008,31,35,1050,30, - 32,1292,29,27,56,1334,112,82,83,114, - 2017,2310,39,1052,36,769,3743,34,1008,31, - 35,1050,30,32,1292,29,27,56,1334,112, - 82,83,114,2024,2612,30,1612,30,2595,535, - 2117,1227,1674,2718,2595,30,1227,2595,2597,1437, - 5241,1612,4245,185,3779,4123,5241,234,344,769, - 1612,30,5241,2583,5241,3706,234,70,162,3730, - 162,5241,5241,5241,194,166,3397,1612,4569,211, - 220,580,61,210,217,218,219,221,211,220, - 580,60,210,217,218,219,221,204,1612,5241, - 212,214,216,297,298,769,2552,5241,107,212, - 214,216,297,298,769,2552,2731,222,213,215, - 2595,30,769,5241,5241,1939,222,213,215,3352, - 361,5241,5241,688,39,1126,387,3740,3650,234, - 2010,1612,1612,203,3343,1807,1849,30,4169,2758, - 1612,953,305,1150,39,1126,387,4169,2759,5241, - 207,211,220,580,5241,210,217,218,219,221, - 55,527,448,379,30,1589,30,53,2113,5241, - 4064,3157,212,214,216,297,298,769,2552,769, - 55,5241,2655,1612,990,1589,3331,1250,1612,222, - 213,215,2310,1647,1052,1799,5241,3743,34,1008, - 31,35,1050,30,32,1292,29,27,56,1334, - 112,82,83,90,3217,205,5241,301,5241,3277, - 4169,2787,2310,39,1052,36,5241,3743,34,1008, - 31,35,1050,30,32,1292,29,27,56,1334, - 112,82,83,89,2310,39,1052,36,5241,3743, - 34,1008,31,35,1050,30,32,1292,29,27, - 56,1334,112,82,83,88,2310,39,1052,36, - 5241,3743,34,1008,31,35,1050,30,32,1292, - 29,27,56,1334,112,82,83,87,2310,39, - 1052,36,5241,3743,34,1008,31,35,1050,30, - 32,1292,29,27,56,1334,112,82,83,86, - 2310,39,1052,36,5241,3743,34,1008,31,35, - 1050,30,32,1292,29,27,56,1334,112,82, - 83,85,2310,39,1052,36,5241,3743,34,1008, - 31,35,1050,30,32,1292,29,27,56,1334, - 112,82,83,84,2157,39,1052,36,5241,3743, - 34,1008,31,35,1050,30,32,1292,29,27, - 56,1334,112,82,83,110,2310,39,1052,36, - 5241,3743,34,1008,31,35,1050,30,32,1292, - 29,27,56,1334,112,82,83,116,2310,39, - 1052,36,5241,3743,34,1008,31,35,1050,30, - 32,1292,29,27,56,1334,112,82,83,115, - 2310,39,1052,36,5241,3743,34,1008,31,35, - 1050,30,32,1292,29,27,56,1334,112,82, - 83,113,2310,39,1052,36,1612,3743,34,1008, - 31,35,1050,30,32,1292,29,27,56,1334, - 112,82,83,111,1348,39,1052,36,1599,769, - 34,1008,340,35,1050,30,30,2627,2668,535, - 535,5241,1227,2750,5241,5241,769,2595,5241,5241, - 5241,5241,30,2452,5241,5241,1227,2595,344,344, - 2079,39,1126,387,5241,769,234,4078,162,162, - 5241,162,3181,5241,194,194,2583,168,4569,4569, - 321,733,323,1612,227,162,316,667,211,220, - 580,3436,210,217,218,219,221,55,798,1612, - 1612,30,1589,199,1673,535,5241,5241,5241,212, - 214,216,297,298,2844,2552,5241,5241,30,2628, - 5241,3283,1227,2595,344,5241,518,213,215,2642, - 4105,3427,5241,2595,162,5241,5241,3783,3788,5241, - 2877,5241,234,502,2634,5241,309,313,5241,5241, - 1674,162,234,5241,1227,2706,5241,3498,5241,5241, - 5241,5241,5241,501,211,220,580,4086,210,217, - 218,219,221,5241,211,220,580,3229,210,217, - 218,219,221,166,499,212,214,216,297,298, - 30,2552,5241,5241,1227,212,214,216,297,298, - 5241,2552,517,213,215,2815,5241,5241,5241,2595, - 5241,4140,223,213,215,2828,30,5241,5241,2595, - 2595,3122,5241,162,5241,5241,30,5241,234,3626, - 2595,5241,5241,5241,5241,5241,5241,5241,234,344, - 5241,5241,5241,5241,5241,5241,3667,5241,5241,344, - 211,220,580,5241,210,217,218,219,221,2634, - 211,220,580,5241,210,217,218,219,221,2634, - 504,212,214,216,297,298,5241,2552,5241,5241, - 1891,212,214,216,297,298,5241,2552,308,213, - 215,1751,39,1126,387,5241,5241,5241,496,213, - 215,1237,39,2942,36,1599,5241,34,1008,340, - 35,1050,5241,5241,1852,39,1052,36,1599,5241, - 34,1008,340,35,1050,5241,5241,5241,55,5241, - 5241,5241,5241,1589,5241,1757,2006,39,1126,387, - 5241,5241,5241,5241,30,5241,952,5241,2595,3181, - 2595,4760,3271,5241,5241,5241,1029,321,733,323, - 2595,4760,3181,316,667,5241,5241,344,5241,234, - 321,733,323,55,5241,1118,316,667,1589,234, - 53,5241,5241,5241,5241,5241,1674,2634,798,5241, - 1227,1897,405,4590,5241,5241,30,920,1898,5241, - 1227,1897,405,4590,593,30,5241,5241,2595,1227, - 5241,5241,406,407,408,297,298,5241,2552,166, - 5241,5241,406,407,408,297,298,344,2552,162, - 5241,5241,5241,5241,5241,1528,310,313,162,1751, - 39,1126,387,5241,4139,2525,5241,947,5241,5241, - 1852,39,1052,36,1599,2525,34,1008,340,35, - 1050,416,2950,1313,39,1052,36,5241,4709,34, - 1008,340,35,1050,409,411,55,5241,5241,5241, - 5241,1589,3731,53,409,411,1313,39,1052,36, - 5241,4709,34,1008,340,35,1050,5241,3181,5241, - 2102,5241,5241,5241,1113,4606,321,733,323,5241, - 5241,3181,316,667,2349,4606,5241,5241,334,321, - 733,323,5241,5241,2599,319,667,5241,5241,1852, - 39,1052,36,1599,3181,34,1008,340,35,1050, - 5241,334,321,733,323,5241,5241,5241,317,667, - 1336,39,1052,36,3011,5241,34,1008,340,35, - 1050,5241,5241,5241,5241,5241,1106,5241,5241,5241, - 2595,4760,5241,5241,5241,3105,5241,3181,2006,39, - 1126,387,5241,5241,5241,321,733,323,401,234, - 5241,316,667,5241,5241,5241,5241,5241,3181,5241, - 5241,5241,5241,3396,5241,5241,318,2802,323,5241, - 5241,1897,405,4590,5241,55,2006,39,1126,387, - 1589,5241,53,5241,2006,39,1126,387,5241,5241, - 5241,5241,406,407,408,297,298,5241,2552,1178, - 5241,5241,2006,39,1126,387,2523,39,1126,387, - 5241,5241,5241,55,2527,39,1126,387,1589,5241, - 53,55,5241,5241,5241,2525,1589,5241,53,600, - 39,1126,387,5241,5241,5241,5241,2196,5241,55, - 5241,5241,5241,55,1589,2283,53,5241,1589,5241, - 53,55,5241,5241,409,412,1589,5241,53,600, - 39,1126,387,2697,3399,30,55,3257,5241,535, - 5241,1589,5241,1883,5241,3541,600,39,1126,387, - 600,39,1126,387,600,39,1126,387,344,5241, - 600,39,1126,387,5241,5241,55,5241,162,5241, - 5241,1589,30,2658,2642,5241,2595,30,2634,5241, - 30,2595,30,55,2595,5241,2595,55,1589,2932, - 2985,55,1589,5241,1841,344,1589,55,1250,5241, - 344,5241,1589,344,865,344,5241,5241,5241,5241, - 5241,5241,5241,5241,5241,2634,5241,5241,5241,5241, - 2634,5241,5241,2634,5241,2634,1899,5241,5241,5241, - 5241,1925,5241,5241,3373,5241,532,5241,0,1981, - 1,0,2701,1,0,1,2,5259,0,1, - 2,5258,0,43,5259,0,43,5258,0,908, - 320,0,451,945,0,437,1302,0,1473,33, - 0,5247,1,0,5246,1,0,5480,246,0, - 5479,246,0,5580,246,0,5579,246,0,5507, - 246,0,5506,246,0,5505,246,0,5504,246, - 0,5503,246,0,5502,246,0,5501,246,0, - 5500,246,0,5518,246,0,5517,246,0,5516, - 246,0,5515,246,0,5514,246,0,5513,246, - 0,5512,246,0,5511,246,0,5510,246,0, - 5509,246,0,5508,246,0,43,246,5259,0, - 43,246,5258,0,5283,246,0,1473,386,0, - 54,5259,0,54,5258,0,42,5259,0,42, - 5258,0,2529,132,0,1,441,0,455,643, - 0,454,716,0,39,37,0,5283,1,0, - 43,1,0,43,2,5259,0,43,2,5258, - 0,1473,45,0,3107,97,0,36,38,0, - 43,656,0,49,5281,0,49,41,0,1, - 814,0,1,5518,0,1,5517,0,1,5516, - 0,1,5515,0,1,5514,0,1,5513,0, - 1,5512,0,1,5511,0,1,5510,0,1, - 5509,0,1,5508,0,43,1,5259,0,43, - 1,5258,0,729,1,0,498,2533,0,5283, - 233,1,0,43,233,1,0,233,414,0, - 41,5259,0,41,5258,0,242,3045,0,387, - 36,0,36,387,0,386,33,0,33,386, - 0,5259,54,0,5258,54,0,2529,134,0, - 2529,133,0,30,516,0,5572,442,0,1515, - 442,0,5251,403,0,5250,403,0,1,4490, - 0,1,656,0,1,3034,0,233,413,0, - 53,41,0,1,98,0,41,53,0,5281, - 51,0,51,41,0,1,5572,0,1,1515, - 0,43,1,2,5259,0,43,1,2,5258, - 0,41,5259,2,0,41,5258,2,0,5259, - 40,0,5258,40,0,498,4159,0,233,1, - 0,233,225,0,5572,101,0,1515,101,0, - 39,79,0,233,224,0,283,3165,0,5249, - 1,0,233,1,3254,0,5251,233,0,5250, - 233,0,3351,233,0,8,10,0,191,3362, - 0 + 132,132,130,130,111,111,84,67,82,157, + 157,112,112,187,187,187,133,133,124,124, + 188,188,169,169,881,39,1966,1940,2491,4099, + 34,1007,31,35,1049,30,32,1939,29,27, + 56,1333,112,82,83,114,1341,943,1351,1343, + 1386,1373,1420,1395,1504,206,1428,2431,1512,1520, + 149,278,1166,1688,164,150,557,3722,1018,2079, + 39,1051,36,2789,2491,34,1007,340,35,1049, + 2307,39,1051,36,237,3742,34,1007,31,35, + 1049,30,32,1291,29,27,56,1333,112,82, + 83,114,1341,328,1351,1343,1386,1373,1420,2234, + 240,235,236,937,39,1051,36,3180,355,34, + 1007,341,35,1049,279,318,2767,323,937,39, + 1051,36,2491,1217,34,1007,44,35,1049,354, + 247,250,253,256,3416,600,1646,1638,38,495, + 2443,1077,1140,39,1051,36,1162,4330,34,1007, + 31,35,1049,63,32,1448,1932,532,2746,2600, + 2643,2859,3071,3125,1419,39,1051,36,2594,3742, + 34,1007,31,35,1049,30,32,1291,29,27, + 56,1333,112,82,83,114,1341,344,1351,1343, + 1386,1373,1420,1395,1504,2491,1428,457,1512,1520, + 149,248,39,284,514,150,4738,2633,2113,39, + 1764,47,1477,3398,46,1007,565,326,515,1419, + 39,1051,36,2594,3742,34,1007,31,35,1049, + 30,32,1291,29,27,56,1333,112,82,83, + 114,1341,344,1351,1343,1386,1373,1420,1395,1504, + 1008,1428,520,1512,1520,149,248,39,284,514, + 150,4769,2633,600,39,2271,2018,1374,39,285, + 456,996,30,515,2602,510,2813,1587,67,1736, + 39,1051,36,327,4330,34,1007,31,35,1049, + 62,32,1849,415,2323,1796,2356,4708,4755,1419, + 39,1051,36,2594,3742,34,1007,31,35,1049, + 30,32,1291,29,27,56,1333,112,82,83, + 114,1341,344,1351,1343,1386,1373,1420,1395,1504, + 510,1428,2188,1512,1520,149,1008,1547,68,514, + 150,1430,2633,4708,2448,39,282,334,30,2450, + 1060,2356,3405,515,1687,39,1051,36,2594,3742, + 34,1007,31,35,1049,30,32,1291,29,27, + 56,1333,112,82,83,114,1341,344,1351,1343, + 1386,1373,1420,1395,1504,1452,1428,30,1512,1520, + 149,3629,1171,333,514,150,2037,2633,357,600, + 39,1125,387,390,424,48,2311,528,515,3090, + 510,1089,39,1051,36,66,4763,34,1007,31, + 35,1049,30,32,30,508,1998,3481,684,2469, + 1556,2356,1485,39,1051,36,428,3742,34,1007, + 31,35,1049,30,32,1291,29,27,56,1333, + 112,82,83,114,1341,315,1351,1343,1386,1373, + 1420,1395,1504,2491,1428,511,1512,1520,149,600, + 39,287,380,150,1089,39,1051,36,1462,4763, + 34,1007,31,35,1049,65,32,645,600,39, + 1125,387,1558,39,1051,36,383,3742,34,1007, + 31,35,1049,30,32,1291,29,27,56,1333, + 112,82,83,114,1341,2491,1351,1343,1386,1373, + 1420,1395,1504,440,1428,55,1512,1520,149,733, + 52,1300,380,150,2307,39,1051,36,4041,3742, + 34,1007,31,35,1049,30,32,1291,29,27, + 56,1333,112,82,83,91,381,1473,384,1872, + 39,1051,36,453,3742,34,1007,31,35,1049, + 30,32,1291,29,27,56,1333,112,82,83, + 114,1341,2498,1351,1343,1386,1373,1420,1395,1504, + 57,1428,2502,1512,1520,149,1796,2575,99,374, + 150,937,39,1051,36,1373,2197,34,1007,3094, + 35,1049,2835,945,1872,39,1051,36,385,3742, + 34,1007,31,35,1049,30,32,1291,29,27, + 56,1333,112,82,83,114,1341,494,1351,1343, + 1386,1373,1420,1395,1504,1184,1428,1856,1512,1520, + 149,600,39,2886,374,150,389,600,39,1125, + 387,1872,39,1051,36,1915,3742,34,1007,31, + 35,1049,30,32,1291,29,27,56,1333,112, + 82,83,114,1341,373,1351,1343,1386,1373,1420, + 1395,1504,1975,1428,431,1512,1520,149,248,39, + 450,374,150,4681,391,424,1872,39,1051,36, + 623,3742,34,1007,31,35,1049,30,32,1291, + 29,27,56,1333,112,82,83,114,1341,1184, + 1351,1343,1386,1373,1420,1395,1504,3192,1428,372, + 1512,1520,149,2602,1680,444,164,150,1801,39, + 1051,36,2039,3742,34,1007,31,35,1049,30, + 32,1291,29,27,56,1333,112,82,83,114, + 1341,1186,1351,1343,1386,1373,1420,1395,1504,418, + 1428,30,1512,1520,149,739,370,2498,380,150, + 1753,39,1051,36,638,3742,34,1007,31,35, + 1049,30,32,1291,29,27,56,1333,112,82, + 83,114,1341,1941,1351,1343,1386,1373,1420,1395, + 1504,1586,1428,1556,1512,1554,170,2259,39,1051, + 36,1924,3742,34,1007,31,35,1049,30,32, + 1291,29,27,56,1333,92,82,83,1932,1351, + 39,1051,36,2336,4763,34,1007,31,35,1049, + 64,32,443,3121,3166,329,29,356,68,600, + 39,1638,281,4708,378,508,528,1621,39,1051, + 36,538,3742,34,1007,31,35,1049,30,32, + 1291,29,27,56,1333,112,82,83,114,1341, + 679,1351,1343,1386,1373,1420,1395,1504,1417,1428, + 68,1512,1520,149,4443,4708,2602,148,150,1872, + 39,1051,36,333,3742,34,1007,31,35,1049, + 30,32,1291,29,27,56,1333,112,82,83, + 114,1341,3391,1351,1343,1386,1373,1420,1395,1504, + 444,1428,30,1512,1520,149,819,2747,1664,161, + 150,1872,39,1051,36,333,3742,34,1007,31, + 35,1049,30,32,1291,29,27,56,1333,112, + 82,83,114,1341,145,1351,1343,1386,1373,1420, + 1395,1504,63,1428,30,1512,1520,149,2008,812, + 1146,160,150,1872,39,1051,36,2491,3742,34, + 1007,31,35,1049,30,32,1291,29,27,56, + 1333,112,82,83,114,1341,233,1351,1343,1386, + 1373,1420,1395,1504,1633,1428,68,1512,1520,149, + 325,4708,1844,159,150,1872,39,1051,36,528, + 3742,34,1007,31,35,1049,30,32,1291,29, + 27,56,1333,112,82,83,114,1341,503,1351, + 1343,1386,1373,1420,1395,1504,1191,1428,68,1512, + 1520,149,103,4708,1208,158,150,1872,39,1051, + 36,1724,3742,34,1007,31,35,1049,30,32, + 1291,29,27,56,1333,112,82,83,114,1341, + 2194,1351,1343,1386,1373,1420,1395,1504,2291,1428, + 30,1512,1520,149,4385,435,1179,157,150,1872, + 39,1051,36,333,3742,34,1007,31,35,1049, + 30,32,1291,29,27,56,1333,112,82,83, + 114,1341,2408,1351,1343,1386,1373,1420,1395,1504, + 1447,1428,30,1512,1520,149,4395,4525,321,156, + 150,1872,39,1051,36,100,3742,34,1007,31, + 35,1049,30,32,1291,29,27,56,1333,112, + 82,83,114,1341,2194,1351,1343,1386,1373,1420, + 1395,1504,1620,1428,2070,1512,1520,149,1544,4708, + 3055,155,150,1872,39,1051,36,638,3742,34, + 1007,31,35,1049,30,32,1291,29,27,56, + 1333,112,82,83,114,1341,1937,1351,1343,1386, + 1373,1420,1395,1504,2339,1428,30,1512,1520,149, + 815,600,2551,154,150,1872,39,1051,36,1724, + 3742,34,1007,31,35,1049,30,32,1291,29, + 27,56,1333,112,82,83,114,1341,1298,1351, + 1343,1386,1373,1420,1395,1504,683,1428,591,1512, + 1520,149,1116,600,3711,153,150,1872,39,1051, + 36,638,3742,34,1007,31,35,1049,30,32, + 1291,29,27,56,1333,112,82,83,114,1341, + 1184,1351,1343,1386,1373,1420,1395,1504,1028,1428, + 30,1512,1520,149,2706,600,3371,152,150,1872, + 39,1051,36,102,3742,34,1007,31,35,1049, + 30,32,1291,29,27,56,1333,112,82,83, + 114,1341,2092,1351,1343,1386,1373,1420,1395,1504, + 1043,1428,291,1512,1520,149,151,1550,1552,151, + 150,1872,39,1051,36,1121,3742,34,1007,31, + 35,1049,30,32,1291,29,27,56,1333,112, + 82,83,114,1341,1554,1351,1343,1386,1373,1420, + 1395,1504,1632,1428,402,1512,1520,149,1927,1716, + 2535,165,150,1872,39,1051,36,1715,3742,34, + 1007,31,35,1049,30,32,1291,29,27,56, + 1333,112,82,83,114,1341,1329,1351,1343,1386, + 1373,1420,1395,1504,2049,1428,2091,1512,1520,149, + 512,39,394,146,150,2211,39,1051,36,2316, + 3742,34,1007,31,35,1049,30,32,1291,29, + 27,56,1333,112,82,83,114,1341,1059,1351, + 1343,1386,1373,1420,1395,1504,2432,1428,30,1512, + 1520,149,2716,2434,1715,195,150,2307,39,1051, + 36,67,3742,34,1007,31,35,1049,30,32, + 1291,29,27,56,1333,112,82,83,114,1341, + 519,1351,1343,1386,1373,1420,1395,1504,205,1428, + 76,1512,1554,170,2307,39,1051,36,3101,3742, + 34,1007,31,35,1049,30,32,1291,29,27, + 56,1333,112,82,83,114,1341,643,1351,1343, + 1386,1373,1420,1395,1504,660,1428,243,1512,1554, + 170,937,39,1051,36,330,336,34,1007,3279, + 35,1049,1927,381,2307,39,1051,36,295,3742, + 34,1007,31,35,1049,30,32,1291,29,27, + 56,1333,112,82,83,114,1341,77,1351,1343, + 1386,1373,1420,1395,1504,1922,1428,2209,1512,1554, + 170,2307,39,1051,36,420,3742,34,1007,31, + 35,1049,30,32,1291,29,27,56,1333,112, + 82,83,114,1341,2713,1351,1343,1386,1373,1420, + 1395,1504,868,1428,1266,1512,1554,170,600,39, + 1638,286,2416,2433,415,600,39,1125,387,4478, + 497,2307,39,1051,36,419,3742,34,1007,31, + 35,1049,30,32,1291,29,27,56,1333,112, + 82,83,114,1341,519,1351,1343,1386,1373,1420, + 1395,1504,430,1428,684,1512,1554,170,2355,39, + 1051,36,422,3742,34,1007,31,35,1049,30, + 32,1291,29,27,56,1333,112,82,83,114, + 1341,1829,1351,1343,1386,1373,1420,1395,1504,2174, + 1428,2383,1512,1554,170,2933,1883,30,1977,39, + 296,2929,600,39,1125,387,520,239,2307,39, + 1051,36,2422,3742,34,1007,31,35,1049,30, + 32,1291,29,27,56,1333,112,82,83,114, + 1341,767,1351,1343,1386,1373,1420,1395,1504,429, + 1428,2690,2287,2124,2949,2307,39,1051,36,3350, + 3742,34,1007,31,35,1049,30,32,1291,29, + 27,56,1333,112,82,83,114,1341,2502,1351, + 1343,1386,1373,1420,1395,1504,1974,2261,2307,39, + 1051,36,2197,3742,34,1007,31,35,1049,30, + 32,1291,29,27,56,1333,112,82,83,114, + 1341,2695,1351,1343,1386,1373,1420,1395,2200,2307, + 39,1051,36,351,3742,34,1007,31,35,1049, + 30,32,1291,29,27,56,1333,112,82,83, + 114,1341,388,1351,1343,1386,1373,2182,2307,39, + 1051,36,2491,3742,34,1007,31,35,1049,30, + 32,1291,29,27,56,1333,112,82,83,114, + 1341,2502,1351,1343,1386,2192,2307,39,1051,36, + 2288,3742,34,1007,31,35,1049,30,32,1291, + 29,27,56,1333,112,82,83,114,1341,2442, + 1351,1343,1386,2193,2307,39,1051,36,2048,3742, + 34,1007,31,35,1049,30,32,1291,29,27, + 56,1333,112,82,83,114,1341,104,1351,1343, + 2031,2307,39,1051,36,288,3742,34,1007,31, + 35,1049,30,32,1291,29,27,56,1333,112, + 82,83,114,1341,2417,1351,1343,2058,2307,39, + 1051,36,1650,3742,34,1007,31,35,1049,30, + 32,1291,29,27,56,1333,112,82,83,114, + 1341,2056,1351,1343,2097,2307,39,1051,36,2187, + 3742,34,1007,31,35,1049,30,32,1291,29, + 27,56,1333,112,82,83,114,1341,2085,1351, + 1343,2113,1535,39,1051,36,858,2163,34,1007, + 340,35,1049,1302,2403,39,1125,387,2197,2647, + 1171,2197,2502,2307,39,1051,36,242,3742,34, + 1007,31,35,1049,30,32,1291,29,27,56, + 1333,112,82,83,114,1341,1302,1351,2145,324, + 3180,278,4019,2797,1977,3097,296,1388,321,732, + 323,2197,2197,2057,316,666,1949,688,39,1125, + 387,4375,3763,353,237,2066,998,1374,39,282, + 237,1064,39,1051,36,2800,289,34,1007,340, + 35,1049,28,2816,345,557,578,350,2205,2384, + 240,235,236,905,55,522,249,235,236,1588, + 2637,1722,352,400,279,1172,600,39,1125,387, + 512,39,394,237,353,2197,1744,2551,3282,3180, + 247,250,253,256,3416,1781,1796,321,732,323, + 4617,1077,2748,316,666,345,557,578,350,252, + 235,236,353,449,343,2598,75,2695,2746,2600, + 2643,2859,3071,3125,2459,2715,1940,1228,600,39, + 1638,283,4708,345,557,578,350,2502,2502,244, + 2447,367,2362,2307,39,1051,36,2503,3742,34, + 1007,31,35,1049,30,32,1291,29,27,56, + 1333,112,82,83,114,1341,2502,1351,2147,1342, + 39,1051,36,1598,4708,34,1007,340,35,1049, + 1669,2220,334,1266,2594,4708,237,675,426,415, + 512,39,394,1921,4655,177,30,2594,353,534, + 3133,300,299,2582,393,424,30,290,94,2801, + 2594,108,245,235,236,1076,2582,3180,234,347, + 557,578,350,1302,333,321,732,323,162,344, + 307,316,666,186,3604,333,2441,2559,2576,2684, + 209,220,579,797,208,217,218,219,221,2633, + 600,39,1638,2858,175,1,2197,2520,4502,534, + 506,534,2023,39,1638,281,2612,2197,174,3481, + 361,189,173,176,177,178,179,180,234,382, + 3765,855,521,502,2642,1806,1848,74,162,821, + 162,309,313,186,3604,186,3604,1728,59,237, + 209,220,579,501,208,217,218,219,221,1744, + 2551,2197,3324,1796,175,600,2983,1638,80,187, + 3306,2639,3184,2949,499,255,235,236,174,1303, + 201,190,173,176,177,178,179,180,2307,39, + 1051,36,93,3742,34,1007,31,35,1049,30, + 32,1291,29,27,56,1333,112,82,83,114, + 1341,770,1974,2614,2094,2307,39,1051,36,2875, + 3742,34,1007,31,35,1049,30,32,1291,29, + 27,56,1333,112,82,83,114,1341,2197,1976, + 1194,39,2909,36,1598,4708,34,1007,340,35, + 1049,30,424,39,450,3150,1323,4681,2023,39, + 1638,3026,1171,1920,1921,860,265,2594,2594,58, + 534,392,424,2644,2492,2645,2651,1669,1226,2870, + 290,2594,4708,3277,202,415,344,2582,3180,234, + 4663,864,39,1125,387,333,321,732,323,162, + 2582,2792,316,666,186,3604,857,166,2463,2602, + 2559,209,220,579,1117,208,217,218,219,221, + 600,39,1638,3045,1996,175,353,2658,55,4502, + 534,1059,333,1588,30,53,30,30,2184,174, + 1226,3190,3363,173,176,177,178,179,180,234, + 1243,2661,787,2197,502,2464,39,1125,387,162, + 2647,237,404,1059,186,3604,2747,361,243,3343, + 2887,209,220,579,501,208,217,218,219,221, + 1059,2642,1806,1848,3107,175,441,258,235,236, + 534,3101,278,2492,2492,500,2660,1226,1226,174, + 415,2941,182,173,176,177,178,179,180,234, + 600,39,1125,387,2692,237,447,3121,3166,162, + 1059,2655,1302,3101,186,3604,166,166,335,336, + 453,209,220,579,1059,208,217,218,219,221, + 3101,241,235,236,415,175,529,55,439,4685, + 534,415,1588,1654,1165,279,4693,2594,2659,174, + 3432,336,193,173,176,177,178,179,180,234, + 2689,248,251,254,257,3416,2582,332,336,162, + 3101,377,1077,2688,186,3604,600,39,296,3008, + 3640,209,220,579,3101,208,217,218,219,221, + 978,39,1125,387,2561,175,617,2607,3047,1996, + 534,534,600,39,1125,387,1949,3530,336,174, + 2690,4375,3395,173,176,177,178,179,180,234, + 344,3634,336,2695,2719,352,2637,278,2520,162, + 162,2438,1226,362,186,3604,194,302,2720,278, + 4568,209,220,579,1996,208,217,218,219,221, + 1012,39,1051,36,858,175,34,1007,340,35, + 1049,162,2197,2197,89,353,206,3776,375,174, + 2694,1996,198,173,176,177,178,179,180,3703, + 30,705,226,2044,3204,534,345,557,578,350, + 2901,2742,2197,3360,96,2362,1008,30,3180,196, + 2761,3623,280,78,234,2715,321,732,323,306, + 2762,1302,316,666,162,1730,2197,5237,1173,186, + 3604,353,1102,3522,523,1739,209,220,579,2594, + 208,217,218,219,221,5237,2058,39,1680,1808, + 175,3061,345,557,578,350,793,73,2582,30, + 534,524,30,1226,174,2197,794,192,173,176, + 177,178,179,180,95,50,2311,108,427,234, + 377,30,4068,55,5237,3632,5237,2207,1588,162, + 783,2594,162,30,186,3604,72,4092,1035,5237, + 2573,209,220,579,2594,208,217,218,219,221, + 344,986,39,1051,36,175,4708,34,1007,340, + 35,1049,30,344,30,361,534,2197,1226,174, + 3781,527,200,173,176,177,178,179,180,3123, + 1806,1848,30,2633,30,344,1226,2571,1307,5237, + 5237,2815,30,1766,530,162,2803,162,71,3180, + 30,2641,5237,2276,1263,2633,334,321,732,323, + 600,39,296,317,666,3731,2601,3710,2307,39, + 1051,36,353,3742,34,1007,31,35,1049,30, + 32,1291,29,27,56,1333,112,82,83,114, + 1989,5237,5237,347,557,578,350,2307,39,1051, + 36,188,3742,34,1007,31,35,1049,30,32, + 1291,29,27,56,1333,112,82,83,114,2016, + 2307,39,1051,36,1996,3742,34,1007,31,35, + 1049,30,32,1291,29,27,56,1333,112,82, + 83,114,2023,2548,30,2197,30,2594,534,1739, + 1226,2492,2668,2594,30,1226,2594,2657,1436,5237, + 2197,4244,185,3778,4122,5237,234,344,1996,2197, + 30,5237,2582,5237,3705,234,70,162,3729,162, + 5237,5237,5237,194,166,3396,2197,4568,211,220, + 579,61,210,217,218,219,221,211,220,579, + 60,210,217,218,219,221,204,2197,5237,212, + 214,216,297,298,1996,2532,5237,107,212,214, + 216,297,298,1996,2532,2700,222,213,215,2594, + 30,1996,5237,5237,1938,222,213,215,3351,361, + 5237,5237,688,39,1125,387,3739,3649,234,2499, + 2197,2197,203,3342,1806,1848,30,4168,2757,2197, + 952,305,1151,39,1125,387,4168,2758,5237,207, + 211,220,579,5237,210,217,218,219,221,55, + 526,448,379,30,1588,30,53,2112,5237,4063, + 3156,212,214,216,297,298,1996,2532,1996,55, + 5237,2610,2197,989,1588,3330,1249,2197,222,213, + 215,2307,1646,1051,1798,5237,3742,34,1007,31, + 35,1049,30,32,1291,29,27,56,1333,112, + 82,83,90,3216,205,5237,301,5237,3276,4168, + 2786,2307,39,1051,36,5237,3742,34,1007,31, + 35,1049,30,32,1291,29,27,56,1333,112, + 82,83,89,2307,39,1051,36,5237,3742,34, + 1007,31,35,1049,30,32,1291,29,27,56, + 1333,112,82,83,88,2307,39,1051,36,5237, + 3742,34,1007,31,35,1049,30,32,1291,29, + 27,56,1333,112,82,83,87,2307,39,1051, + 36,5237,3742,34,1007,31,35,1049,30,32, + 1291,29,27,56,1333,112,82,83,86,2307, + 39,1051,36,5237,3742,34,1007,31,35,1049, + 30,32,1291,29,27,56,1333,112,82,83, + 85,2307,39,1051,36,5237,3742,34,1007,31, + 35,1049,30,32,1291,29,27,56,1333,112, + 82,83,84,2154,39,1051,36,5237,3742,34, + 1007,31,35,1049,30,32,1291,29,27,56, + 1333,112,82,83,110,2307,39,1051,36,5237, + 3742,34,1007,31,35,1049,30,32,1291,29, + 27,56,1333,112,82,83,116,2307,39,1051, + 36,5237,3742,34,1007,31,35,1049,30,32, + 1291,29,27,56,1333,112,82,83,115,2307, + 39,1051,36,5237,3742,34,1007,31,35,1049, + 30,32,1291,29,27,56,1333,112,82,83, + 113,2307,39,1051,36,2197,3742,34,1007,31, + 35,1049,30,32,1291,29,27,56,1333,112, + 82,83,111,1606,39,1051,36,1598,1996,34, + 1007,340,35,1049,30,30,2626,2613,534,534, + 5237,1226,2744,5237,5237,1996,2594,5237,5237,5237, + 5237,30,2656,5237,5237,1226,2594,344,344,1366, + 39,1125,387,5237,1996,234,4077,162,162,5237, + 162,3180,5237,194,194,2582,168,4568,4568,321, + 732,323,2197,227,162,316,666,211,220,579, + 3435,210,217,218,219,221,55,797,2197,2197, + 30,1588,199,1672,534,5237,5237,5237,212,214, + 216,297,298,2843,2532,5237,5237,30,2624,5237, + 3282,1226,2594,344,5237,517,213,215,2592,4104, + 3426,5237,2594,162,5237,5237,3782,3787,5237,2876, + 5237,234,502,2633,5237,309,313,5237,5237,2492, + 162,234,5237,1226,2705,5237,3497,5237,5237,5237, + 5237,5237,501,211,220,579,4085,210,217,218, + 219,221,5237,211,220,579,3184,210,217,218, + 219,221,166,499,212,214,216,297,298,30, + 2532,5237,5237,1226,212,214,216,297,298,5237, + 2532,516,213,215,2776,5237,5237,5237,2594,5237, + 4139,223,213,215,2809,30,5237,5237,2594,2594, + 3120,5237,162,5237,5237,30,5237,234,3625,2594, + 5237,5237,5237,5237,5237,5237,5237,234,344,5237, + 5237,5237,5237,5237,5237,3666,5237,5237,344,211, + 220,579,5237,210,217,218,219,221,2633,211, + 220,579,5237,210,217,218,219,221,2633,504, + 212,214,216,297,298,5237,2532,5237,5237,1890, + 212,214,216,297,298,5237,2532,308,213,215, + 1858,39,1125,387,5237,5237,5237,496,213,215, + 1237,39,2909,36,1598,5237,34,1007,340,35, + 1049,5237,5237,1863,39,1051,36,1598,5237,34, + 1007,340,35,1049,5237,5237,5237,55,5237,5237, + 5237,5237,1588,5237,1756,1969,39,1125,387,5237, + 5237,5237,5237,30,5237,952,5237,2594,3180,2594, + 4759,3270,5237,5237,5237,1029,321,732,323,2594, + 4759,3180,316,666,5237,5237,344,5237,234,321, + 732,323,55,5237,1117,316,666,1588,234,53, + 5237,5237,5237,5237,5237,2492,2633,797,5237,1226, + 1896,405,4589,5237,5237,30,919,1897,5237,1226, + 1896,405,4589,1830,30,5237,5237,2594,1226,5237, + 5237,406,407,408,297,298,5237,2532,166,5237, + 5237,406,407,408,297,298,344,2532,162,5237, + 5237,5237,5237,5237,1527,310,313,162,1858,39, + 1125,387,5237,4138,2478,5237,946,5237,5237,1863, + 39,1051,36,1598,2478,34,1007,340,35,1049, + 416,2941,1313,39,1051,36,5237,4708,34,1007, + 340,35,1049,409,411,55,5237,5237,5237,5237, + 1588,3730,53,409,411,1313,39,1051,36,5237, + 4708,34,1007,340,35,1049,5237,3180,5237,2101, + 5237,5237,5237,1112,4605,321,732,323,5237,5237, + 3180,316,666,2348,4605,5237,5237,334,321,732, + 323,5237,5237,2598,319,666,5237,5237,1863,39, + 1051,36,1598,3180,34,1007,340,35,1049,5237, + 334,321,732,323,5237,5237,5237,317,666,1467, + 39,1051,36,3010,5237,34,1007,340,35,1049, + 5237,5237,5237,5237,5237,1106,5237,5237,5237,2594, + 4759,5237,5237,5237,3104,5237,3180,1969,39,1125, + 387,5237,5237,5237,321,732,323,401,234,5237, + 316,666,5237,5237,5237,5237,5237,3180,5237,5237, + 5237,5237,3390,5237,5237,318,2767,323,5237,5237, + 1896,405,4589,5237,55,1969,39,1125,387,1588, + 5237,53,5237,1969,39,1125,387,5237,5237,5237, + 5237,406,407,408,297,298,5237,2532,1177,5237, + 5237,1969,39,1125,387,2116,39,1125,387,5237, + 5237,5237,55,2202,39,1125,387,1588,5237,53, + 55,5237,5237,5237,2478,1588,5237,53,600,39, + 1125,387,5237,5237,5237,5237,2195,5237,55,5237, + 5237,5237,55,1588,2282,53,5237,1588,5237,53, + 55,5237,5237,409,412,1588,5237,53,600,39, + 1125,387,2696,3398,30,55,3256,5237,534,5237, + 1588,5237,1882,5237,3540,600,39,1125,387,600, + 39,1125,387,600,39,1125,387,344,5237,600, + 39,1125,387,5237,5237,55,5237,162,5237,5237, + 1588,30,2657,2641,5237,2594,30,2633,5237,30, + 2594,30,55,2594,5237,2594,55,1588,2931,2984, + 55,1588,5237,1840,344,1588,55,1249,5237,344, + 5237,1588,344,864,344,5237,5237,5237,5237,5237, + 5237,5237,5237,5237,2633,5237,5237,5237,5237,2633, + 5237,5237,2633,5237,2633,1898,5237,5237,5237,5237, + 1924,5237,5237,3372,5237,531,5237,0,1980,1, + 0,2700,1,0,1,2,5255,0,1,2, + 5254,0,43,5255,0,43,5254,0,907,320, + 0,451,944,0,437,1301,0,1472,33,0, + 5243,1,0,5242,1,0,5476,246,0,5475, + 246,0,5576,246,0,5575,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,5514,246,0,5513,246,0,5512,246, + 0,5511,246,0,5510,246,0,5509,246,0, + 5508,246,0,5507,246,0,5506,246,0,5505, + 246,0,5504,246,0,43,246,5255,0,43, + 246,5254,0,5279,246,0,1472,386,0,54, + 5255,0,54,5254,0,42,5255,0,42,5254, + 0,2528,132,0,1,441,0,455,642,0, + 454,715,0,39,37,0,5279,1,0,43, + 1,0,43,2,5255,0,43,2,5254,0, + 1472,45,0,3106,97,0,36,38,0,43, + 655,0,49,5277,0,49,41,0,1,813, + 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,43,1,5255,0,43,1, + 5254,0,728,1,0,498,2524,0,5279,233, + 1,0,43,233,1,0,233,414,0,41, + 5255,0,41,5254,0,242,3044,0,387,36, + 0,36,387,0,386,33,0,33,386,0, + 5255,54,0,5254,54,0,2528,134,0,2528, + 133,0,5568,442,0,1514,442,0,5247,403, + 0,5246,403,0,1,4489,0,1,655,0, + 1,3033,0,233,413,0,53,41,0,1, + 98,0,41,53,0,5277,51,0,51,41, + 0,1,5568,0,1,1514,0,43,1,2, + 5255,0,43,1,2,5254,0,41,5255,2, + 0,41,5254,2,0,5255,40,0,5254,40, + 0,498,4158,0,233,1,0,233,225,0, + 5568,101,0,1514,101,0,39,79,0,233, + 224,0,283,3164,0,5245,1,0,233,1, + 3240,0,5247,233,0,5246,233,0,3344,233, + 0,8,10,0,191,3361,0 }; }; public final static char baseAction[] = BaseAction.baseAction; @@ -1071,7 +1070,7 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, 50,51,52,53,54,55,0,57,58,59, - 60,61,0,63,8,65,66,0,68,69, + 60,61,0,63,64,65,0,0,68,69, 70,4,72,6,74,8,76,77,78,79, 80,81,82,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, @@ -1080,7 +1079,7 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 32,33,34,35,36,37,38,39,40,41, 42,43,44,45,46,47,48,49,50,51, 52,53,54,55,0,57,58,59,60,61, - 0,63,0,65,66,3,68,69,70,9, + 0,63,64,65,88,89,68,69,70,9, 72,11,74,101,76,77,78,79,80,81, 82,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, @@ -1089,7 +1088,7 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 34,35,36,37,38,39,40,41,42,43, 44,45,46,47,48,49,50,51,52,53, 54,55,0,57,58,59,60,61,0,63, - 0,65,66,3,68,69,70,0,1,2, + 64,65,0,99,68,69,70,0,1,2, 74,4,76,77,78,79,80,81,82,83, 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, @@ -1097,16 +1096,16 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 26,27,88,89,30,31,32,33,34,35, 36,37,38,39,40,41,42,43,44,45, 46,47,48,49,50,51,52,53,54,55, - 0,57,58,59,60,61,121,63,0,65, - 66,3,68,69,70,103,104,105,74,101, + 0,57,58,59,60,61,121,63,64,65, + 88,89,68,69,70,103,104,105,74,101, 76,77,78,79,80,81,82,83,84,85, 86,87,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, - 0,0,30,31,32,33,34,35,36,37, + 0,61,30,31,32,33,34,35,36,37, 38,39,40,41,42,43,44,45,46,47, 48,49,50,51,52,53,54,55,0,57, - 58,59,60,61,6,63,0,65,66,99, + 58,59,60,61,0,63,64,65,4,0, 68,69,70,0,1,2,74,4,76,77, 78,79,80,81,82,83,84,85,86,87, 0,1,2,3,4,5,6,7,8,9, @@ -1115,254 +1114,248 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, 50,51,52,53,54,55,0,57,58,59, - 60,61,0,63,0,65,66,3,68,69, - 70,0,1,2,74,99,76,77,78,79, + 60,61,0,63,64,65,4,0,68,69, + 70,0,1,2,74,8,76,77,78,79, 80,81,82,83,84,85,86,87,0,1, 2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,0,61,30,31, + 22,23,24,25,26,27,0,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,54,55,0,57,58,59,60,61, - 0,63,0,65,66,3,68,69,70,0, + 52,53,54,55,28,57,58,59,60,61, + 0,63,64,65,4,99,68,69,70,0, 1,2,74,0,76,77,78,79,80,81, 82,83,84,85,86,87,0,1,2,3, 4,5,6,7,8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,88,89,30,31,32,33, + 24,25,26,27,0,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, - 54,55,0,57,58,59,60,61,0,63, - 8,65,66,0,68,69,70,0,1,2, - 74,0,76,77,78,79,80,81,82,83, + 54,55,28,57,58,59,60,61,0,63, + 64,65,0,0,68,69,70,0,1,2, + 74,8,76,77,78,79,80,81,82,83, 84,85,86,87,0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25, 26,27,0,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,54,55, - 77,57,58,59,60,61,0,63,0,65, - 66,5,68,69,70,97,98,9,74,11, + 28,57,58,59,60,61,0,63,64,65, + 4,0,68,69,70,97,98,95,74,0, 76,77,78,79,80,81,82,83,84,85, 86,87,0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16,17, 18,19,20,21,22,23,24,25,26,27, - 88,89,30,31,32,33,34,35,36,37, + 0,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,54,55,0,57, - 58,59,60,61,0,63,0,65,66,3, + 48,49,50,51,52,53,54,55,28,57, + 58,59,60,61,0,63,64,65,4,0, 68,69,70,0,1,2,74,0,76,77, 78,79,80,81,82,83,84,85,86,87, - 0,1,2,3,4,5,6,7,8,0, - 10,0,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,0,61, + 0,1,2,3,4,5,6,7,8,30, + 10,71,12,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,0,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,54,55,0,1,2,59, - 60,5,0,7,0,3,0,56,68,69, + 60,5,0,7,0,3,0,3,68,69, 70,0,1,2,3,4,5,6,7,8, 9,10,11,12,97,98,15,16,17,18, 19,20,21,22,23,24,25,0,1,2, 29,0,5,32,33,0,1,2,3,4, 5,6,7,8,43,0,1,2,56,48, 49,50,51,52,53,54,55,0,57,58, - 59,0,1,2,3,71,5,0,7,68, - 69,70,71,72,29,74,75,119,0,1, + 59,0,1,2,3,0,5,0,7,68, + 69,70,71,72,29,74,75,0,0,1, 2,3,4,5,6,7,8,9,10,11, 12,56,0,15,16,17,18,19,20,21, 22,23,24,25,103,104,105,29,0,0, - 32,33,4,0,1,2,3,56,5,62, - 7,43,9,0,1,2,48,49,50,51, - 52,53,54,55,67,57,58,59,0,1, - 2,0,4,5,3,7,68,69,70,71, - 72,59,74,75,0,0,1,2,3,4, - 5,6,7,8,9,10,11,12,0,56, + 32,33,0,0,1,2,3,56,5,62, + 7,43,9,56,67,0,48,49,50,51, + 52,53,54,55,9,57,58,59,0,1, + 2,33,4,5,67,7,68,69,70,71, + 72,43,74,75,62,0,1,2,3,4, + 5,6,7,8,9,10,11,12,59,56, 15,16,17,18,19,20,21,22,23,24, - 25,103,104,105,29,76,73,32,33,0, - 1,2,0,4,5,0,7,56,43,0, - 1,2,10,48,49,50,51,52,53,54, + 25,103,104,105,29,0,73,32,33,0, + 1,2,67,4,5,0,7,72,43,0, + 0,1,2,48,49,50,51,52,53,54, 55,0,57,58,59,0,1,2,29,4, - 0,67,0,68,69,70,71,72,0,74, - 75,3,12,0,6,67,8,9,0,11, + 0,0,0,68,69,70,71,72,0,74, + 75,3,12,0,6,0,8,9,3,11, 0,13,14,0,1,2,3,4,5,6, 7,8,32,33,26,27,28,0,103,104, - 105,28,67,43,65,66,28,56,48,49, + 105,66,29,43,64,65,0,56,48,49, 50,51,52,53,54,55,61,0,1,2, - 3,4,0,6,56,8,0,1,2,3, - 62,5,64,7,0,67,56,102,4,71, + 3,4,61,6,56,8,0,1,2,3, + 62,5,0,7,66,67,56,102,76,71, 72,73,107,108,109,110,111,112,113,114, 115,116,117,56,71,0,88,89,90,91, 92,93,94,95,96,97,98,99,100,101, - 102,0,0,56,106,107,108,109,110,111, - 112,113,114,115,116,117,118,0,120,67, - 3,0,0,6,0,8,9,71,11,0, + 102,0,66,56,106,107,108,109,110,111, + 112,113,114,115,116,117,118,0,120,0, + 3,0,0,6,62,8,9,71,11,67, 13,14,0,1,2,3,4,5,6,7, - 8,0,0,26,27,28,0,1,2,3, - 4,5,6,7,8,0,1,2,3,30, - 5,0,7,62,9,64,11,0,1,2, - 3,0,5,56,7,4,9,56,11,62, - 0,64,60,3,67,0,1,2,71,72, - 73,67,7,0,1,2,0,4,0,6, - 0,8,9,32,62,88,89,90,91,92, + 8,56,0,26,27,28,4,28,0,1, + 2,3,4,5,6,7,8,9,0,11, + 12,0,1,2,3,4,5,6,7,8, + 0,1,2,56,4,5,28,7,56,62, + 32,33,61,66,67,0,1,2,71,72, + 73,43,0,0,1,2,48,49,50,51, + 52,53,54,55,56,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,95,120,0,1, - 2,3,4,5,6,7,8,67,10,29, - 0,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,73,0,30,31, - 0,0,34,35,36,37,38,39,40,41, - 42,0,44,45,46,47,90,0,95,0, - 1,2,96,4,0,6,9,8,60,28, - 62,0,102,65,66,0,1,2,3,4, - 5,6,7,8,9,10,0,117,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,0,0,30,31,4,71,34, - 35,36,37,38,39,40,41,42,61,44, - 45,46,47,0,0,1,2,3,4,5, - 6,7,8,29,0,60,61,0,1,2, - 100,4,5,9,7,11,0,72,0,1, - 2,3,4,5,6,7,8,9,10,13, - 14,13,14,15,16,17,18,19,20,21, + 28,73,29,106,107,108,109,110,111,112, + 113,114,115,116,117,118,0,120,0,1, + 2,3,4,5,6,7,8,0,10,64, + 65,13,14,15,16,17,18,19,20,21, 22,23,24,25,26,27,0,0,30,31, - 56,0,34,35,36,37,38,39,40,41, - 42,67,44,45,46,47,0,1,2,0, - 4,0,6,4,8,0,1,2,60,61, - 9,0,1,2,3,4,5,6,7,8, - 72,10,0,0,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,62, - 0,30,31,62,0,34,35,36,37,38, - 39,40,41,42,0,44,45,46,47,0, - 0,1,2,0,4,5,61,7,9,29, - 0,60,9,0,73,0,65,66,0,1, - 2,3,4,5,6,7,8,64,10,29, - 0,13,14,15,16,17,18,19,20,21, - 22,23,24,25,26,27,62,0,30,31, - 3,0,34,35,36,37,38,39,40,41, - 42,0,44,45,46,47,0,1,2,0, - 4,10,6,4,8,62,73,64,60,28, - 0,1,2,65,66,0,1,2,3,4, - 5,6,7,8,9,10,0,28,13,14, - 15,16,17,18,19,20,21,22,23,24, - 25,26,27,62,0,30,31,118,57,34, - 35,36,37,38,39,40,41,42,0,44, - 45,46,47,0,1,2,3,4,5,6, - 7,8,28,10,93,94,13,14,15,16, - 17,18,19,20,21,22,23,24,25,26, - 27,0,0,30,31,4,0,34,35,36, - 37,38,39,40,41,42,0,44,45,46, - 47,0,1,2,3,71,5,0,7,28, - 0,4,64,60,61,0,1,2,3,9, - 5,11,7,118,0,1,2,3,4,5, - 6,7,8,0,10,28,0,13,14,15, + 4,0,34,35,36,37,38,39,40,41, + 42,0,44,45,46,47,0,1,2,3, + 0,5,0,7,28,9,0,11,60,3, + 62,9,64,65,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,0,0,30,31,4,0,34,35, - 36,37,38,39,40,41,42,0,44,45, - 46,47,0,0,64,3,90,5,6,0, - 8,0,96,10,60,13,14,0,1,2, - 9,4,0,6,0,8,100,3,26,27, - 28,119,29,31,12,0,0,15,16,17, - 18,19,20,21,22,23,24,25,0,62, - 26,27,0,90,32,33,4,9,56,96, - 0,64,59,28,62,43,64,65,66,67, - 48,49,50,51,52,53,54,55,95,0, - 56,0,3,72,32,0,1,2,9,0, - 88,89,90,91,92,93,94,62,9,97, - 98,99,100,101,102,0,1,2,106,107, - 108,109,110,111,112,113,114,115,116,0, - 72,0,3,0,5,6,3,8,93,94, - 106,71,13,14,29,56,0,1,2,0, - 4,62,61,64,120,26,27,28,0,0, - 31,12,73,64,33,103,104,105,0,1, - 2,0,73,0,43,29,3,0,0,1, - 2,32,33,5,0,56,28,0,1,2, - 0,62,43,64,65,66,67,48,49,50, - 51,52,53,54,55,0,0,29,0,0, - 121,6,28,0,6,9,29,88,89,90, - 91,92,93,94,0,0,97,98,99,100, - 101,102,0,65,66,106,107,108,109,110, - 111,112,113,114,115,116,0,1,2,3, - 4,5,6,7,8,0,10,67,3,13, + 26,27,0,66,30,31,100,66,34,35, + 36,37,38,39,40,41,42,66,44,45, + 46,47,56,61,0,1,2,3,4,5, + 6,7,8,0,60,61,0,1,2,0, + 4,0,6,0,8,0,72,0,1,2, + 3,4,5,6,7,8,9,10,13,14, + 13,14,15,16,17,18,19,20,21,22, + 23,24,25,26,27,0,0,30,31,3, + 56,34,35,36,37,38,39,40,41,42, + 66,44,45,46,47,0,1,2,3,66, + 5,62,7,62,9,62,11,60,61,0, + 0,1,2,3,4,5,6,7,8,72, + 10,0,0,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,29,0, + 30,31,66,0,34,35,36,37,38,39, + 40,41,42,0,44,45,46,47,0,1, + 2,0,4,10,6,90,8,9,29,0, + 60,96,3,0,64,65,0,1,2,3, + 4,5,6,7,8,0,10,0,67,13, 14,15,16,17,18,19,20,21,22,23, - 24,25,26,27,0,62,30,31,4,73, - 34,35,36,37,38,39,40,41,42,64, - 44,45,46,47,62,71,91,92,0,91, - 92,95,56,0,1,2,3,4,5,6, - 7,8,0,10,0,0,13,14,15,16, + 24,25,26,27,0,0,30,31,3,5, + 34,35,36,37,38,39,40,41,42,0, + 44,45,46,47,102,0,1,2,0,4, + 5,73,7,0,1,2,60,9,95,117, + 64,65,0,1,2,3,4,5,6,7, + 8,9,10,95,29,13,14,15,16,17, + 18,19,20,21,22,23,24,25,26,27, + 0,0,30,31,4,4,34,35,36,37, + 38,39,40,41,42,0,44,45,46,47, + 0,1,2,3,4,5,6,7,8,28, + 10,73,32,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,0,0, + 30,31,3,95,34,35,36,37,38,39, + 40,41,42,0,44,45,46,47,0,1, + 2,122,4,10,6,0,8,0,1,2, + 60,61,0,1,2,3,71,5,0,7, + 118,0,1,2,3,4,5,6,7,8, + 0,10,0,28,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,0, + 57,30,31,0,0,34,35,36,37,38, + 39,40,41,42,0,44,45,46,47,0, + 0,0,3,0,5,6,0,8,100,6, + 10,60,13,14,13,14,0,1,2,0, + 0,5,28,3,0,26,27,28,0,29, + 31,12,4,71,15,16,17,18,19,20, + 21,22,23,24,25,29,26,27,0,1, + 2,32,33,0,0,56,0,1,2,59, + 32,62,43,64,65,66,67,48,49,50, + 51,52,53,54,55,0,56,0,1,2, + 0,4,28,6,9,8,11,88,89,90, + 91,92,93,94,91,92,97,98,99,100, + 101,102,0,1,2,106,107,108,109,110, + 111,112,113,114,115,116,0,61,0,3, + 67,5,6,0,8,119,106,0,0,13, + 14,103,104,105,6,0,0,0,1,2, + 120,4,26,27,28,0,28,31,12,0, + 1,2,0,4,9,6,11,8,0,1, + 2,3,0,5,0,7,29,3,32,33, + 0,0,56,0,1,2,6,6,62,43, + 64,65,66,67,48,49,50,51,52,53, + 54,55,0,1,2,0,1,2,71,7, + 77,66,29,0,88,89,90,91,92,93, + 94,0,67,97,98,99,100,101,102,91, + 92,0,106,107,108,109,110,111,112,113, + 114,115,116,0,1,2,3,4,5,6, + 7,8,0,10,0,3,13,14,15,16, 17,18,19,20,21,22,23,24,25,26, - 27,122,0,30,31,3,0,34,35,36, + 27,91,92,30,31,62,0,34,35,36, 37,38,39,40,41,42,0,44,45,46, - 47,0,1,2,3,4,5,6,7,8, - 62,10,64,60,13,14,15,16,17,18, - 19,20,21,22,23,24,25,26,27,64, - 0,30,31,0,0,34,35,36,37,38, - 39,40,41,42,0,44,45,46,47,0, - 1,2,3,4,5,6,7,8,0,10, - 30,28,13,14,15,16,17,18,19,20, - 21,22,23,24,25,26,27,0,0,30, - 31,0,0,34,35,36,37,38,39,40, - 41,42,0,44,45,46,47,0,1,2, - 3,4,5,6,7,8,28,10,0,28, - 13,14,15,16,17,18,19,20,21,22, - 23,24,25,26,27,0,0,30,31,3, - 0,34,35,36,37,38,39,40,41,42, - 62,44,45,46,47,0,1,2,90,4, - 0,0,1,2,96,10,6,12,28,0, - 15,16,17,18,19,20,21,22,23,24, - 25,93,94,0,0,1,2,32,33,71, - 29,0,0,10,0,1,2,28,43,0, - 9,0,67,48,49,50,51,52,53,54, - 55,10,29,29,59,0,0,1,2,0, - 4,29,0,68,69,70,10,28,12,0, - 29,15,16,17,18,19,20,21,22,23, - 24,25,59,28,0,0,0,3,32,33, - 28,91,92,9,9,64,0,74,0,43, - 59,3,0,72,48,49,50,51,52,53, - 54,55,0,1,2,59,0,1,2,0, - 0,0,3,3,68,69,70,0,1,2, + 47,0,1,2,0,9,0,3,0,56, + 0,1,2,3,4,5,6,7,8,0, + 10,13,14,13,14,15,16,17,18,19, + 20,21,22,23,24,25,26,27,0,0, + 30,31,0,4,34,35,36,37,38,39, + 40,41,42,67,44,45,46,47,0,1, + 2,3,4,5,6,7,8,28,10,73, + 60,13,14,15,16,17,18,19,20,21, + 22,23,24,25,26,27,67,0,30,31, + 0,0,34,35,36,37,38,39,40,41, + 42,95,44,45,46,47,0,1,2,3, + 4,5,6,7,8,0,10,0,28,13, + 14,15,16,17,18,19,20,21,22,23, + 24,25,26,27,0,0,30,31,0,0, + 34,35,36,37,38,39,40,41,42,62, + 44,45,46,47,0,1,2,3,4,5, + 6,7,8,28,10,0,28,13,14,15, + 16,17,18,19,20,21,22,23,24,25, + 26,27,0,0,30,31,3,0,34,35, + 36,37,38,39,40,41,42,62,44,45, + 46,47,0,1,2,90,4,0,1,2, + 28,96,10,0,12,0,0,15,16,17, + 18,19,20,21,22,23,24,25,93,94, + 0,0,0,0,32,33,29,0,1,2, + 10,0,0,28,28,43,0,0,1,2, + 48,49,50,51,52,53,54,55,0,29, + 28,59,0,0,1,2,29,4,0,0, + 68,69,70,10,28,12,29,62,15,16, + 17,18,19,20,21,22,23,24,25,59, + 0,0,30,0,62,32,33,0,0,9, + 9,0,0,62,74,3,43,9,93,94, + 9,48,49,50,51,52,53,54,55,0, + 62,90,59,90,0,93,94,96,9,96, + 11,68,69,70,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,119,0,3,73,67,32,33,71,9, + 0,73,0,72,0,0,29,43,3,9, + 0,9,48,49,50,51,52,53,54,55, 56,0,1,2,3,4,5,6,7,8, - 9,0,11,12,0,28,0,73,73,32, - 33,0,0,0,13,14,3,13,14,67, - 43,0,0,32,33,48,49,50,51,52, - 53,54,55,56,43,64,0,0,0,48, - 49,50,51,52,53,54,55,56,0,28, - 73,0,1,2,3,4,5,6,7,8, - 9,0,11,12,73,28,28,0,1,2, + 9,0,11,12,57,58,0,73,118,0, + 63,0,0,0,3,9,56,11,9,72, + 29,9,75,0,1,2,3,4,5,6, + 7,8,9,73,11,12,0,0,0,3, + 66,28,72,0,0,73,3,3,57,58, + 0,28,29,3,63,0,0,0,0,0, + 0,60,3,72,0,10,75,0,1,2, 3,4,5,6,7,8,9,0,11,12, - 29,0,1,2,3,4,5,6,7,8, - 9,0,11,12,0,28,29,61,0,0, - 9,3,11,9,56,0,95,0,57,58, - 29,0,0,0,63,0,9,0,3,0, - 3,0,3,72,57,58,75,28,0,0, - 63,3,71,0,0,0,3,3,57,58, - 0,64,75,0,63,0,0,0,0,0, - 0,0,0,72,0,0,75,0,1,2, - 3,4,5,6,7,8,9,73,11,12, - 0,1,2,3,4,5,6,7,8,9, - 73,11,12,71,71,30,29,0,67,0, - 1,2,3,4,5,6,7,8,9,29, - 11,12,67,0,0,0,0,0,0,0, - 0,0,0,0,57,58,0,0,29,0, - 63,0,0,0,119,0,0,57,58,72, - 0,0,75,63,0,0,0,0,0,0, - 0,0,72,0,0,75,57,58,0,0, - 0,0,63,0,0,1,2,3,4,5, - 6,7,8,9,75,11,12,0,1,2, - 3,4,5,6,7,8,9,0,11,12, - 0,0,0,29,0,0,0,0,0,0, - 0,0,0,0,0,0,29,0,0,0, - 0,0,0,0,0,0,0,12,0,0, - 0,57,58,0,0,0,0,63,0,0, - 12,0,0,0,57,58,0,32,33,75, - 63,0,0,0,0,0,0,0,43,0, - 32,33,75,48,49,50,51,52,53,54, - 55,43,0,0,0,0,48,49,50,51, - 52,53,54,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,0,0,0,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,58,73,0,29,73,63,0,0,0, + 3,0,3,0,0,12,29,3,75,0, + 1,2,3,4,5,6,7,8,9,71, + 11,12,0,0,59,32,33,61,0,0, + 0,3,3,66,57,58,43,67,29,71, + 63,48,49,50,51,52,53,54,55,72, + 0,0,75,0,1,2,3,4,5,6, + 7,8,9,0,11,12,57,58,67,71, + 0,0,63,3,71,0,0,0,28,0, + 0,72,29,0,75,0,1,2,3,4, + 5,6,7,8,9,0,11,12,0,0, + 0,0,0,0,0,30,0,0,0,3, + 57,58,0,12,29,9,63,66,0,1, + 2,3,4,5,6,7,8,9,75,11, + 12,0,0,32,33,0,0,66,0,0, + 0,119,57,58,43,0,0,29,63,48, + 49,50,51,52,53,54,55,0,0,0, + 75,0,56,0,0,0,0,0,62,0, + 0,0,0,67,0,57,58,0,0,73, + 0,63,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,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 }; @@ -1372,299 +1365,298 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface TermAction { public final static char termAction[] = {0, - 5241,5222,5198,5198,5198,5198,5198,5198,5198,5232, - 1,5229,1,1,1,1,1,1,1,1, + 5237,5218,5194,5194,5194,5194,5194,5194,5194,5228, + 1,5225,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,127,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,137,1856,1563,1, - 1,3518,143,3046,2390,1,1,43,1,1, - 1,5283,5248,1515,5422,5572,2594,3319,3695,2239, - 3649,3241,3037,3305,1814,3304,3309,3291,8,5235, - 5235,5235,5235,5235,5235,5235,5235,5235,5235,5235, - 5235,5235,5235,5235,5235,5235,5235,5235,5235,5235, - 5235,5235,5235,5235,5235,5235,2604,2764,5235,5235, - 5235,5235,5235,5235,5235,5235,5235,5235,5235,5235, - 5235,5235,5235,5235,5235,5235,5235,5235,5235,5235, - 5235,5235,5235,5235,5241,5235,5235,5235,5235,5235, - 403,5235,5241,5235,5235,4141,5235,5235,5235,5132, - 5235,5135,5235,2326,5235,5235,5235,5235,5235,5235, - 5235,5235,5235,5235,5235,5235,5241,5222,5198,5198, - 5198,5198,5198,5198,5198,5226,1,5229,1,1, + 1,1,1,1,1,1,5237,1855,1562,1, + 1,3517,143,3043,1,1,131,43,1,1, + 1,5279,5244,1514,5418,5568,2593,3304,3694,2238, + 3648,3228,3036,3303,1813,3290,3308,3253,8,5231, + 5231,5231,5231,5231,5231,5231,5231,5231,5231,5231, + 5231,5231,5231,5231,5231,5231,5231,5231,5231,5231, + 5231,5231,5231,5231,5231,5231,2603,2763,5231,5231, + 5231,5231,5231,5231,5231,5231,5231,5231,5231,5231, + 5231,5231,5231,5231,5231,5231,5231,5231,5231,5231, + 5231,5231,5231,5231,139,5231,5231,5231,5231,5231, + 403,5231,5231,5231,2603,2763,5231,5231,5231,5128, + 5231,5131,5231,2325,5231,5231,5231,5231,5231,5231, + 5231,5231,5231,5231,5231,5231,5237,5218,5194,5194, + 5194,5194,5194,5194,5194,5222,1,5225,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,131,5241,1,1,1,1, + 1,1,1,1,130,5237,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,436,1856,1563,1,1,3518,144,3046, - 5241,1,1,3045,1,1,1,5241,4866,4863, - 5422,5283,2594,3319,3695,2239,3649,3241,3037,3305, - 1814,3304,3309,3291,5241,5222,5198,5198,5198,5198, - 5198,5198,5198,5226,1,5229,1,1,1,1, + 1,1,436,1855,1562,1,1,3517,144,3043, + 1,1,129,590,1,1,1,5237,4865,4862, + 5418,5279,2593,3304,3694,2238,3648,3228,3036,3303, + 1813,3290,3308,3253,5237,5218,5194,5194,5194,5194, + 5194,5194,5194,5222,1,5225,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,2604,2764,1,1,1,1,1,1, + 1,1,2603,2763,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 139,1856,1563,1,1,3518,4848,3046,97,1, - 1,5014,1,1,1,5673,5674,5675,5422,2326, - 2594,3319,3695,2239,3649,3241,3037,3305,1814,3304, - 3309,3291,5241,5222,5198,5198,5198,5198,5198,5198, - 5198,5226,1,5229,1,1,1,1,1,1, + 5237,1855,1562,1,1,3517,4847,3043,1,1, + 2603,2763,1,1,1,5669,5670,5671,5418,2325, + 2593,3304,3694,2238,3648,3228,3036,3303,1813,3290, + 3308,3253,5237,5218,5194,5194,5194,5194,5194,5194, + 5194,5222,1,5225,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 130,5241,1,1,1,1,1,1,1,1, + 128,2277,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5241,1856, - 1563,1,1,3518,3022,3046,140,1,1,591, - 1,1,1,5241,4866,4863,5422,5283,2594,3319, - 3695,2239,3649,3241,3037,3305,1814,3304,3309,3291, - 5241,5222,5198,5198,5198,5198,5198,5198,5198,5226, - 1,5229,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,2604,2764, + 1,1,1,1,1,1,1,1,5237,1855, + 1562,1,1,3517,43,3043,1,1,5279,5237, + 1,1,1,5237,4865,4862,5418,5279,2593,3304, + 3694,2238,3648,3228,3036,3303,1813,3290,3308,3253, + 5237,5218,5194,5194,5194,5194,5194,5194,5194,5222, + 1,5225,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,2603,2763, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,5241,1856,1563,1, - 1,3518,5241,3046,242,1,1,5096,1,1, - 1,395,5258,5259,5422,591,2594,3319,3695,2239, - 3649,3241,3037,3305,1814,3304,3309,3291,5241,5222, - 5198,5198,5198,5198,5198,5198,5198,5226,1,5229, + 1,1,1,1,1,1,140,1855,1562,1, + 1,3517,5237,3043,1,1,791,137,1,1, + 1,395,5254,5255,5418,2389,2593,3304,3694,2238, + 3648,3228,3036,3303,1813,3290,3308,3253,5237,5218, + 5194,5194,5194,5194,5194,5194,5194,5222,1,5225, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,129,2278,1,1, + 1,1,1,1,1,1,5237,5237,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,5241,1856,1563,1,1,3518, - 5241,3046,1,1,1,4790,1,1,1,5241, - 5258,5259,5422,5241,2594,3319,3695,2239,3649,3241, - 3037,3305,1814,3304,3309,3291,5241,5222,5198,5198, - 5198,5198,5198,5198,5198,5226,1,5229,1,1, + 1,1,1,1,792,1855,1562,1,1,3517, + 1,3043,1,1,387,590,1,1,1,5237, + 5254,5255,5418,5237,2593,3304,3694,2238,3648,3228, + 3036,3303,1813,3290,3308,3253,5237,5218,5194,5194, + 5194,5194,5194,5194,5194,5222,1,5225,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,2604,2764,1,1,1,1, + 1,1,1,1,451,5237,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,138,1856,1563,1,1,3518,135,3046, - 2390,1,1,5241,1,1,1,5241,4973,4970, - 5422,5241,2594,3319,3695,2239,3649,3241,3037,3305, - 1814,3304,3309,3291,5241,5222,5198,5198,5198,5198, - 5198,5198,5198,5226,1,5229,1,1,1,1, + 1,1,4871,1855,1562,1,1,3517,135,3043, + 1,1,359,138,1,1,1,5237,4972,4969, + 5418,2389,2593,3304,3694,2238,3648,3228,3036,3303, + 1813,3290,3308,3253,5237,5218,5194,5194,5194,5194, + 5194,5194,5194,5222,1,5225,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,128,5241,1,1,1,1,1,1, + 1,1,437,5237,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 3391,1856,1563,1,1,3518,5241,3046,5241,1, - 1,2936,1,1,1,2447,2419,5251,5422,5250, - 2594,3319,3695,2239,3649,3241,3037,3305,1814,3304, - 3309,3291,5241,3254,1,1,1,1,1,1, - 1,5251,1,5250,1,1,1,1,1,1, + 4874,1855,1562,1,1,3517,5237,3043,1,1, + 3311,5237,1,1,1,2446,2418,5595,5418,5237, + 2593,3304,3694,2238,3648,3228,3036,3303,1813,3290, + 3308,3253,5237,3240,1,1,1,1,1,1, + 1,5247,1,5246,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 2604,2764,1,1,1,1,1,1,1,1, + 33,5237,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,1,5241,1856, - 1563,1,1,3518,5241,3046,5241,1,1,3627, - 1,1,1,54,4973,4970,5422,136,2594,3319, - 3695,2239,3649,3241,3037,3305,1814,3304,3309,3291, - 43,4866,4863,3493,729,3792,3866,3034,3888,5241, - 777,349,5503,3844,3822,5510,5508,5517,5516,5512, - 5513,5511,5514,5515,5518,5509,3932,3910,5241,3452, - 5264,1055,5506,5579,1168,1273,5266,1186,1348,1213, - 5267,5265,1134,5580,5260,5262,5263,5261,5500,5507, - 5479,5505,5504,5501,5502,5480,5241,5258,5259,5637, - 1398,656,348,3034,425,869,5241,1311,573,5638, - 5639,5241,5083,5083,233,5079,233,233,233,233, - 5087,1,233,1,2447,2419,1,1,1,1, - 1,1,1,1,1,1,1,5241,5258,5259, - 5076,5241,2936,1,1,346,5007,5003,2662,5283, - 656,1515,3034,5572,1,49,5026,5026,1311,1, - 1,1,1,1,1,1,1,5241,2279,1479, - 1,1,4859,4855,2662,2647,656,505,3034,1, - 1,1,233,414,5023,5651,5738,3345,5241,5083, - 5083,233,5079,233,233,233,233,5087,1,233, - 1,1311,5241,1,1,1,1,1,1,1, - 1,1,1,1,5673,5674,5675,5076,43,1, - 1,1,5283,1,4859,4855,2662,1311,656,2588, - 3034,1,4881,293,5258,5259,1,1,1,1, - 1,1,1,1,2827,2279,1479,1,5241,4866, - 4863,320,729,656,4869,3034,1,1,1,233, - 414,2811,5651,5738,503,5241,5083,5083,233,5079, - 233,233,233,233,5147,1,233,1,371,1311, + 1,1,1,1,1,1,1,1,1472,1855, + 1562,1,1,3517,5237,3043,1,1,1947,5237, + 1,1,1,54,4972,4969,5418,136,2593,3304, + 3694,2238,3648,3228,3036,3303,1813,3290,3308,3253, + 43,4865,4862,3492,728,3791,3865,3033,3887,3637, + 776,421,5499,3843,3821,5506,5504,5513,5512,5508, + 5509,5507,5510,5511,5514,5505,3931,3909,5237,5237, + 5260,1054,5502,5575,1167,1272,5262,1185,1347,1212, + 5263,5261,1133,5576,5256,5258,5259,5257,5496,5503, + 5475,5501,5500,5497,5498,5476,5237,5254,5255,5633, + 1397,655,348,3033,5237,868,5237,4140,572,5634, + 5635,5237,5082,5082,233,5078,233,233,233,233, + 5086,1,233,1,2446,2418,1,1,1,1, + 1,1,1,1,1,1,1,5237,5254,5255, + 5075,5237,2935,1,1,346,5006,5002,2661,5279, + 655,1514,3033,5568,1,49,5025,5025,1310,1, + 1,1,1,1,1,1,1,5237,2278,1478, + 1,1,4858,4854,2661,5237,655,349,3033,1, + 1,1,233,414,5022,5647,5734,363,5237,5082, + 5082,233,5078,233,233,233,233,5086,1,233, + 1,1310,5237,1,1,1,1,1,1,1, + 1,1,1,1,5669,5670,5671,5075,337,5237, + 1,1,5237,1,4858,4854,2661,1310,655,870, + 3033,1,4880,1310,3034,5237,1,1,1,1, + 1,1,1,1,5245,2278,1478,1,5237,4865, + 4862,5575,728,655,3223,3033,1,1,1,233, + 414,5576,5647,5734,2578,5237,5082,5082,233,5078, + 233,233,233,233,5143,1,233,1,2810,1310, 1,1,1,1,1,1,1,1,1,1, - 1,5673,5674,5675,5076,3515,4884,1,1,5241, - 4866,4863,304,729,5020,145,3034,1311,1,5241, - 5258,5259,5544,1,1,1,1,1,1,1, - 1,322,2279,1479,1,5241,4866,4863,995,5283, - 229,4256,5241,1,1,1,233,413,37,5651, - 5738,4994,5503,5241,4994,1135,4994,4994,451,4994, - 455,4994,4994,5241,5176,5171,4490,4997,656,5168, - 3034,5165,5506,5579,4994,4994,4994,454,5673,5674, - 5675,793,1860,5580,3954,1265,4872,1311,5500,5507, - 5479,5505,5504,5501,5502,5480,1851,346,43,43, - 3275,5283,369,1515,4994,5572,1,4859,4855,4490, - 4994,656,4994,3034,5241,4994,4988,2289,792,4994, - 4994,4994,1818,1776,1734,1692,1650,1608,1566,1524, - 1482,1440,3495,4991,2065,5241,4994,4994,4994,4994, - 4994,4994,4994,4994,4994,4994,4994,4994,4994,4994, - 4994,5241,5241,1311,4994,4994,4994,4994,4994,4994, - 4994,4994,4994,4994,4994,4994,4994,5241,4994,1182, - 5017,106,530,5017,507,5017,5017,2065,5017,5241, - 5017,5017,5241,5007,5003,4490,5283,656,1515,3034, - 5572,359,5241,5017,5017,5017,312,5176,5171,4490, - 4997,656,5168,3034,5165,1,4859,4855,5138,3638, - 5141,5241,5144,871,5251,3035,5250,1,4859,4855, - 4490,43,656,5017,3034,5283,312,4436,312,5017, - 314,5017,3079,3513,5017,42,4979,4976,5017,5017, - 5017,932,917,1,5000,5000,117,4997,5241,1515, - 145,5572,364,2810,2679,5017,5017,5017,5017,5017, - 5017,5017,5017,5017,5017,5017,5017,5017,5017,5017, - 5241,5093,5090,5017,5017,5017,5017,5017,5017,5017, - 5017,5017,5017,5017,5017,5017,5599,5017,1,5069, - 5065,3493,5073,3792,3866,3034,3888,1269,5029,5281, - 5241,3844,3822,5056,5062,5035,5038,5050,5047,5053, - 5044,5041,5032,5059,3932,3910,364,5241,5264,1055, - 141,437,1168,1273,5266,1186,1348,1213,5267,5265, - 1134,5241,5260,5262,5263,5261,3976,5241,364,441, - 1,1,3998,1,5241,4985,1641,4985,1398,4875, - 513,5241,2289,43,43,43,4866,4863,3493,729, - 3792,3866,3034,3888,5249,814,5241,3495,3844,3822, - 5510,5508,5517,5516,5512,5513,5511,5514,5515,5518, - 5509,3932,3910,1,41,5264,1055,387,1944,1168, - 1273,5266,1186,1348,1213,5267,5265,1134,1683,5260, - 5262,5263,5261,5241,368,4859,4855,2662,1,656, - 1,3034,1,5281,1,1398,3737,5241,4866,4863, - 2359,729,656,5251,3034,5250,124,5248,43,4866, - 4863,3493,729,3792,3866,3034,3888,5249,814,2986, - 2959,3844,3822,5510,5508,5517,5516,5512,5513,5511, - 5514,5515,5518,5509,3932,3910,5241,5241,5264,1055, - 1311,5241,1168,1273,5266,1186,1348,1213,5267,5265, - 1134,1080,5260,5262,5263,5261,442,43,43,5241, - 5283,5241,5129,3312,5126,5241,5258,5259,1398,3737, - 5247,147,4866,4863,3493,729,3792,3866,3034,3888, - 5248,814,5241,363,3844,3822,5510,5508,5517,5516, - 5512,5513,5511,5514,5515,5518,5509,3932,3910,2680, - 53,5264,1055,2696,5241,1168,1273,5266,1186,1348, - 1213,5267,5265,1134,5241,5260,5262,5263,5261,5241, - 5241,4866,4863,1,729,5020,3378,3034,5245,1390, - 5241,1398,167,30,5246,5241,43,43,1,5069, - 5065,3493,5073,3792,3866,3034,3888,3224,5029,1370, - 5241,3844,3822,5056,5062,5035,5038,5050,5047,5053, - 5044,5041,5032,5059,3932,3910,5693,5241,5264,1055, - 4092,132,1168,1273,5266,1186,1348,1213,5267,5265, - 1134,304,5260,5262,5263,5261,98,1,1,394, - 1,5544,5153,386,5153,5123,167,5123,1398,2556, - 54,5114,5111,43,43,43,4866,4863,3493,729, - 3792,3866,3034,3888,5245,814,5241,1473,3844,3822, - 5510,5508,5517,5516,5512,5513,5511,5514,5515,5518, - 5509,3932,3910,4982,33,5264,1055,5244,3215,1168, - 1273,5266,1186,1348,1213,5267,5265,1134,163,5260, - 5262,5263,5261,43,4866,4863,3493,729,3792,3866, - 3034,3888,1473,814,2502,2475,3844,3822,5510,5508, - 5517,5516,5512,5513,5511,5514,5515,5518,5509,3932, - 3910,54,376,5264,1055,5259,120,1168,1273,5266, - 1186,1348,1213,5267,5265,1134,142,5260,5262,5263, - 5261,1,4859,4855,4490,421,656,54,3034,5259, - 5241,5258,1902,1398,3737,1,4859,4855,5138,5251, - 5141,5250,5144,5244,43,4866,4863,3493,729,3792, - 3866,3034,3888,119,814,5258,5241,3844,3822,5510, - 5508,5517,5516,5512,5513,5511,5514,5515,5518,5509, - 3932,3910,5241,1,5264,1055,1948,5241,1168,1273, - 5266,1186,1348,1213,5267,5265,1134,512,5260,5262, - 5263,5261,1,1,4341,1127,3976,5707,5701,5241, - 5705,5241,3998,4849,1398,5699,5700,101,43,43, - 5249,5283,228,5207,81,5204,2359,3164,5730,5731, - 5710,3345,577,5708,5503,134,5241,5510,5508,5517, - 5516,5512,5513,5511,5514,5515,5518,5509,1,5679, - 5309,5310,43,3976,5506,5579,5283,5219,585,3998, - 5241,875,4852,2556,5711,5580,5732,1597,1605,5709, - 5500,5507,5479,5505,5504,5501,5502,5480,5601,1, - 3430,5241,3275,5248,1547,5241,5114,5111,342,5241, - 5721,5720,5733,5702,5703,5726,5727,5117,5247,5724, - 5725,5704,5706,5728,5729,5241,8435,8435,5734,5714, - 5715,5716,5712,5713,5722,5723,5718,5717,5719,5241, - 5248,337,1127,5241,5707,5701,4158,5705,2502,2475, - 663,5640,5699,5700,5281,1311,395,4866,4863,230, - 5283,342,3518,342,800,5730,5731,5710,33,5241, - 5708,5503,342,4792,5579,5673,5674,5675,5241,4973, - 4970,5241,5246,5241,5580,43,4230,5241,41,5156, - 5156,5506,5579,5156,386,585,4878,41,5150,5150, - 294,5711,5580,5732,1597,1605,5709,5500,5507,5479, - 5505,5504,5501,5502,5480,121,1,3029,123,191, - 342,3601,4967,5241,3601,364,2883,5721,5720,5733, - 5702,5703,5726,5727,445,292,5724,5725,5704,5706, - 5728,5729,5241,3954,1265,5734,5714,5715,5716,5712, - 5713,5722,5723,5718,5717,5719,43,4866,4863,3493, - 729,3792,3866,3034,3888,5241,814,2028,908,3844, - 3822,5510,5508,5517,5516,5512,5513,5511,5514,5515, - 5518,5509,3932,3910,5241,5750,5264,1055,2025,364, - 1168,1273,5266,1186,1348,1213,5267,5265,1134,1772, - 5260,5262,5263,5261,4083,1219,3578,3549,5241,3578, - 3549,364,984,43,4866,4863,3493,729,3792,3866, - 3034,3888,5241,814,5241,423,3844,3822,5510,5508, - 5517,5516,5512,5513,5511,5514,5515,5518,5509,3932, - 3910,5238,5241,5264,1055,3165,5241,1168,1273,5266, - 1186,1348,1213,5267,5265,1134,5241,5260,5262,5263, - 5261,43,4866,4863,4745,729,3792,3866,3034,3888, - 4255,814,3035,1398,3844,3822,5510,5508,5517,5516, - 5512,5513,5511,5514,5515,5518,5509,3932,3910,3287, - 5241,5264,1055,5241,5241,1168,1273,5266,1186,1348, - 1213,5267,5265,1134,5241,5260,5262,5263,5261,43, - 4866,4863,3493,729,3792,3866,3034,3888,118,814, - 3688,4266,3844,3822,5510,5508,5517,5516,5512,5513, - 5511,5514,5515,5518,5509,3932,3910,5241,133,5264, - 1055,5241,5241,1168,1273,5266,1186,1348,1213,5267, - 5265,1134,5241,5260,5262,5263,5261,43,4866,4863, - 3493,729,3792,3866,3034,3888,2556,814,5241,4384, - 3844,3822,5510,5508,5517,5516,5512,5513,5511,5514, - 5515,5518,5509,3932,3910,417,5241,5264,1055,3632, - 5241,1168,1273,5266,1186,1348,1213,5267,5265,1134, - 5120,5260,5262,5263,5261,5241,4866,4863,3976,5283, - 122,51,5162,5162,3998,722,3601,5503,4782,5241, - 5510,5508,5517,5516,5512,5513,5511,5514,5515,5518, - 5509,2502,2475,5241,5241,5185,5181,5506,5579,2115, - 5159,5241,5241,1981,40,5192,5189,4787,5580,5241, - 5249,1,2152,5500,5507,5479,5505,5504,5501,5502, - 5480,4849,577,5281,5637,45,246,4960,4956,5241, - 4964,2768,1,573,5638,5639,722,1473,4911,5241, - 577,4947,4953,4926,4929,4941,4938,4944,4935,4932, - 4923,4950,2701,5011,1,1,5241,3275,4902,4896, - 1473,3578,3549,4881,5247,1013,5241,5775,109,4893, - 4852,4190,39,5248,4920,4899,4890,4905,4908,4917, - 4914,4887,5241,7633,7607,5637,5241,7633,7607,5241, - 283,446,3098,5216,573,5638,5639,33,386,386, - 5105,386,386,5105,386,5105,5108,5241,5105,386, - 1311,36,387,387,5099,387,387,5099,387,5099, - 5102,126,5099,387,125,4878,5241,4884,5246,386, - 386,1,5241,5241,2986,2959,3471,2986,2959,3222, - 386,5241,5241,387,387,386,386,386,386,386, - 386,386,386,5108,387,3023,1,5241,79,387, - 387,387,387,387,387,387,387,5102,105,2761, - 5108,1,5198,5198,233,5198,233,233,233,233, - 5201,5241,233,8491,5102,3464,5210,1,5198,5198, - 233,5198,233,233,233,233,233,311,233,8491, - 5195,1,5198,5198,233,5198,233,233,233,233, - 5213,1,233,8491,1,2761,5195,3651,5241,2, - 197,4426,197,526,2202,519,4046,1,2635,1563, - 5195,5241,5241,5241,3046,5241,169,5241,3625,5241, - 4075,5241,2878,225,2635,1563,5738,41,5241,5241, - 3046,4076,5425,5241,5241,5241,3458,4445,2635,1563, - 5241,4354,5738,5241,3046,5241,5241,5241,5241,5241, - 5241,5241,5241,224,5241,1,5738,1,5198,5198, - 233,5198,233,233,233,233,5201,526,233,8491, - 1,5198,5198,233,5198,233,233,233,233,5201, - 169,233,8491,3097,5424,3044,5195,5241,3222,1, - 5198,5198,233,5198,233,233,233,233,233,5195, - 233,8491,1986,5241,5241,5241,5241,5241,5241,5241, - 5241,5241,5241,5241,2635,1563,5241,5241,5195,5241, - 3046,5241,5241,5241,3345,5241,5241,2635,1563,225, - 5241,5241,5738,3046,5241,5241,5241,5241,5241,5241, - 5241,5241,225,5241,5241,5738,2635,1563,5241,5241, - 5241,5241,3046,5241,1,5198,5198,233,5198,233, - 233,233,233,233,5738,233,8491,1,5198,5198, - 233,5198,233,233,233,233,233,5241,233,8491, - 5241,5241,5241,5195,5241,5241,5241,5241,5241,5241, - 5241,5241,5241,5241,5241,231,5195,5241,5241,5241, - 5241,5241,5241,5241,5241,5241,5241,5503,232,5241, - 5241,2635,1563,5241,5241,5241,5241,3046,5241,5241, - 5503,5241,5241,5241,2635,1563,5241,5506,5579,5738, - 3046,5241,5241,5241,5241,5241,5241,5241,5580,5241, - 5506,5579,5738,5500,5507,5479,5505,5504,5501,5502, - 5480,5580,5241,5241,5241,5241,5500,5507,5479,5505, - 5504,5501,5502,5480 + 1,5669,5670,5671,5075,5237,4883,1,1,5237, + 4865,4862,1012,728,5019,145,3033,5244,1,5237, + 5237,5254,5255,1,1,1,1,1,1,1, + 1,322,2278,1478,1,5237,4865,4862,994,5279, + 229,5237,1,1,1,1,233,413,37,5647, + 5734,4993,5499,41,4993,5237,4993,4993,3044,4993, + 455,4993,4993,5237,5172,5167,4489,4996,655,5164, + 3033,5161,5502,5575,4993,4993,4993,454,5669,5670, + 5671,1859,5277,5576,3953,1264,505,1310,5496,5503, + 5475,5501,5500,5497,5498,5476,1850,346,43,43, + 3274,5279,3451,1514,4993,5568,1,4858,4854,4489, + 4993,655,5237,3033,4993,4993,4987,2288,3514,4993, + 4993,4993,1817,1775,1733,1691,1649,1607,1565,1523, + 1481,1439,3494,4990,2064,106,4993,4993,4993,4993, + 4993,4993,4993,4993,4993,4993,4993,4993,4993,4993, + 4993,5237,2826,1310,4993,4993,4993,4993,4993,4993, + 4993,4993,4993,4993,4993,4993,4993,5237,4993,33, + 5016,5237,105,5016,4254,5016,5016,2064,5016,3034, + 5016,5016,5237,5006,5002,4489,5279,655,1514,3033, + 5568,4435,5237,5016,5016,5016,2024,4877,33,386, + 386,5104,386,386,5104,386,5104,5107,5237,5104, + 386,312,5172,5167,4489,4996,655,5164,3033,5161, + 5237,4865,4862,5016,728,655,4877,3033,2201,5016, + 386,386,3517,5016,5016,5237,4972,4969,5016,5016, + 5016,386,386,5237,5092,5089,386,386,386,386, + 386,386,386,386,5107,5016,5016,5016,5016,5016, + 5016,5016,5016,5016,5016,5016,5016,5016,5016,5016, + 4966,5107,5277,5016,5016,5016,5016,5016,5016,5016, + 5016,5016,5016,5016,5016,5016,141,5016,1,5068, + 5064,3492,5072,3791,3865,3033,3887,5237,5028,3953, + 1264,3843,3821,5055,5061,5034,5037,5049,5046,5052, + 5043,5040,5031,5058,3931,3909,394,503,5260,1054, + 386,371,1167,1272,5262,1185,1347,1212,5263,5261, + 1133,369,5256,5258,5259,5257,1,4858,4854,5134, + 5237,5137,5237,5140,1472,5247,320,5246,1397,4868, + 513,1640,43,43,43,4865,4862,3492,728,3791, + 3865,3033,3887,5245,813,5237,5237,3843,3821,5506, + 5504,5513,5512,5508,5509,5507,5510,5511,5514,5505, + 3931,3909,5237,4255,5260,1054,2358,1134,1167,1272, + 5262,1185,1347,1212,5263,5261,1133,1181,5256,5258, + 5259,5257,1310,1682,368,4858,4854,2661,1,655, + 1,3033,1,507,1397,3736,441,1,1,5237, + 1,5237,4984,5237,4984,124,5244,43,4865,4862, + 3492,728,3791,3865,3033,3887,5245,813,2985,2958, + 3843,3821,5506,5504,5513,5512,5508,5509,5507,5510, + 5511,5514,5505,3931,3909,117,314,5260,1054,3512, + 1310,1167,1272,5262,1185,1347,1212,5263,5261,1133, + 1079,5256,5258,5259,5257,1,4858,4854,4489,931, + 655,2587,3033,2678,312,2679,312,1397,3736,53, + 147,4865,4862,3492,728,3791,3865,3033,3887,5244, + 813,163,145,3843,3821,5506,5504,5513,5512,5508, + 5509,5507,5510,5511,5514,5505,3931,3909,1389,5237, + 5260,1054,1268,1,1167,1272,5262,1185,1347,1212, + 5263,5261,1133,304,5256,5258,5259,5257,1,4999, + 4999,5237,4996,5540,1514,3975,5568,364,2760,97, + 1397,3997,5013,5237,43,43,1,5068,5064,3492, + 5072,3791,3865,3033,3887,5237,5028,5237,1901,3843, + 3821,5055,5061,5034,5037,5049,5046,5052,5043,5040, + 5031,5058,3931,3909,5237,242,5260,1054,5095,2935, + 1167,1272,5262,1185,1347,1212,5263,5261,1133,191, + 5256,5258,5259,5257,2288,5237,4865,4862,1,728, + 5019,364,3033,293,5254,5255,1397,364,5597,3494, + 43,43,43,4865,4862,3492,728,3791,3865,3033, + 3887,5241,813,364,1369,3843,3821,5506,5504,5513, + 5512,5508,5509,5507,5510,5511,5514,5505,3931,3909, + 43,54,5260,1054,5279,5255,1167,1272,5262,1185, + 1347,1212,5263,5261,1133,425,5256,5258,5259,5257, + 43,4865,4862,3492,728,3791,3865,3033,3887,5255, + 813,364,2809,3843,3821,5506,5504,5513,5512,5508, + 5509,5507,5510,5511,5514,5505,3931,3909,142,1, + 5260,1054,4789,364,1167,1272,5262,1185,1347,1212, + 5263,5261,1133,304,5256,5258,5259,5257,442,43, + 43,5234,5279,5540,5125,5237,5122,54,5113,5110, + 1397,3736,1,4858,4854,4489,2646,655,5237,3033, + 5240,43,4865,4862,3492,728,3791,3865,3033,3887, + 5237,813,5237,4265,3843,3821,5506,5504,5513,5512, + 5508,5509,5507,5510,5511,5514,5505,3931,3909,5237, + 3214,5260,1054,5237,5237,1167,1272,5262,1185,1347, + 1212,5263,5261,1133,5237,5256,5258,5259,5257,1, + 1,126,1126,121,5703,5697,5237,5701,2358,3600, + 4848,1397,5695,5696,2985,2958,41,5152,5152,228, + 81,5152,4383,3163,5237,5726,5727,5706,43,576, + 5704,5499,5279,1943,5506,5504,5513,5512,5508,5509, + 5507,5510,5511,5514,5505,3028,5305,5306,5237,5113, + 5110,5502,5575,512,5237,584,5237,5254,5255,4851, + 1546,5707,5576,1596,1604,5705,5728,5496,5503,5475, + 5501,5500,5497,5498,5476,5237,3429,98,1,1, + 5237,1,4781,5149,5247,5149,5246,5717,5716,5729, + 5698,5699,5722,5723,3577,3548,5720,5721,5700,5702, + 5724,5725,40,5188,5185,5730,5710,5711,5712,5708, + 5709,5718,5719,5714,5713,5715,5237,3377,5237,1126, + 874,5703,5697,5237,5701,3318,662,5237,123,5695, + 5696,5669,5670,5671,3600,294,230,395,4865,4862, + 799,5279,5726,5727,5706,5237,4786,5704,5499,101, + 43,43,5237,5279,5247,5203,5246,5200,1,4858, + 4854,5134,5237,5137,5237,5140,43,3626,5502,5575, + 122,5237,584,5237,8511,8511,3600,3021,5707,5576, + 1596,1604,5705,5728,5496,5503,5475,5501,5500,5497, + 5498,5476,42,4978,4975,5237,8010,7552,5636,916, + 3380,2027,5277,5237,5717,5716,5729,5698,5699,5722, + 5723,5237,4340,5720,5721,5700,5702,5724,5725,3577, + 3548,5237,5730,5710,5711,5712,5708,5709,5718,5719, + 5714,5713,5715,43,4865,4862,3492,728,3791,3865, + 3033,3887,5237,813,5237,4091,3843,3821,5506,5504, + 5513,5512,5508,5509,5507,5510,5511,5514,5505,3931, + 3909,3577,3548,5260,1054,5689,292,1167,1272,5262, + 1185,1347,1212,5263,5261,1133,5237,5256,5258,5259, + 5257,5237,8010,7552,5237,5243,1,4157,125,983, + 43,4865,4862,3492,728,3791,3865,3033,3887,423, + 813,2985,2958,3843,3821,5506,5504,5513,5512,5508, + 5509,5507,5510,5511,5514,5505,3931,3909,5237,54, + 5260,1054,5237,5254,1167,1272,5262,1185,1347,1212, + 5263,5261,1133,1771,5256,5258,5259,5257,43,4865, + 4862,4744,728,3791,3865,3033,3887,5254,813,5242, + 1397,3843,3821,5506,5504,5513,5512,5508,5509,5507, + 5510,5511,5514,5505,3931,3909,3286,5237,5260,1054, + 5237,5237,1167,1272,5262,1185,1347,1212,5263,5261, + 1133,4045,5256,5258,5259,5257,43,4865,4862,3492, + 728,3791,3865,3033,3887,120,813,5237,1472,3843, + 3821,5506,5504,5513,5512,5508,5509,5507,5510,5511, + 5514,5505,3931,3909,5237,132,5260,1054,45,5237, + 1167,1272,5262,1185,1347,1212,5263,5261,1133,5675, + 5256,5258,5259,5257,43,4865,4862,3492,728,3791, + 3865,3033,3887,2555,813,5237,5010,3843,3821,5506, + 5504,5513,5512,5508,5509,5507,5510,5511,5514,5505, + 3931,3909,1,5237,5260,1054,4229,5237,1167,1272, + 5262,1185,1347,1212,5263,5261,1133,4981,5256,5258, + 5259,5257,5237,4865,4862,3975,5279,41,5146,5146, + 1472,3997,721,5237,5499,134,5237,5506,5504,5513, + 5512,5508,5509,5507,5510,5511,5514,5505,2501,2474, + 5237,119,133,118,5502,5575,2882,51,5158,5158, + 1980,5237,376,2555,2744,5576,5237,5237,5181,5177, + 5496,5503,5475,5501,5500,5497,5498,5476,5237,576, + 2555,5633,5237,246,4959,4955,5155,4963,5237,5237, + 572,5634,5635,721,3463,4910,5277,5116,4946,4952, + 4925,4928,4940,4937,4943,4934,4931,4922,4949,2700, + 5237,1,3687,5237,5119,4901,4895,445,5237,5241, + 167,5237,5237,5746,5770,907,4892,5243,2501,2474, + 5245,4919,4898,4889,4904,4907,4916,4913,4886,1, + 4082,3975,5633,3975,5237,2501,2474,3997,5247,3997, + 5246,572,5634,5635,36,387,387,5098,387,387, + 5098,387,5098,5101,5237,5098,387,1,5194,5194, + 233,5194,233,233,233,233,5197,5237,233,8536, + 1,3318,5237,3274,167,4791,387,387,1218,4880, + 1,5242,1,5244,417,5237,5191,387,3164,5215, + 5237,5243,387,387,387,387,387,387,387,387, + 5101,1,5194,5194,233,5194,233,233,233,233, + 5209,529,233,8536,2634,1562,1,5101,5240,1, + 3043,5237,1,79,3631,197,1310,197,525,225, + 5191,169,5734,1,5194,5194,233,5194,233,233, + 233,233,233,4883,233,8536,109,5237,5237,4189, + 2151,5206,5244,5237,283,5242,3078,5212,2634,1562, + 5237,2744,5191,3470,3043,1,1,39,5237,5237, + 446,3046,4425,224,5237,4848,5734,1,5194,5194, + 233,5194,233,233,233,233,5197,5237,233,8536, + 2634,1562,525,231,576,169,3043,5237,5237,5237, + 3624,311,4074,5237,5237,5499,5191,2877,5734,1, + 5194,5194,233,5194,233,233,233,233,5197,2114, + 233,8536,518,5237,4851,5502,5575,3650,5237,5237, + 5237,4075,3457,3221,2634,1562,5576,3022,5191,5421, + 3043,5496,5503,5475,5501,5500,5497,5498,5476,225, + 2,5237,5734,1,5194,5194,233,5194,233,233, + 233,233,233,5237,233,8536,2634,1562,4353,3096, + 5237,5237,3043,4444,5420,1,5237,5237,41,5237, + 5237,225,5191,5237,5734,1,5194,5194,233,5194, + 233,233,233,233,233,5237,233,8536,5237,5237, + 5237,232,5237,5237,5237,3035,1,5237,5237,3274, + 2634,1562,5237,5499,5191,342,3043,3221,1,5194, + 5194,233,5194,233,233,233,233,233,5734,233, + 8536,5237,5237,5502,5575,5237,5237,1985,5237,5237, + 5237,3318,2634,1562,5576,5237,5237,5191,3043,5496, + 5503,5475,5501,5500,5497,5498,5476,5237,5237,5237, + 5734,5237,1310,5237,5237,5237,5237,5237,342,5237, + 5237,5237,5237,342,5237,2634,1562,5237,5237,342, + 5237,3043,5237,5237,5237,5237,5237,5237,5237,5237, + 5237,5237,5237,5734,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,5237,5237,5237,5237,342 }; }; public final static char termAction[] = TermAction.termAction; @@ -1672,59 +1664,59 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Asb { public final static char asb[] = {0, - 11,465,376,426,426,339,522,522,339,149, - 149,787,438,149,454,821,339,65,447,447, - 227,1,2,108,108,105,654,654,527,105, - 654,475,317,712,723,890,723,885,723,16, - 723,707,723,177,105,317,477,426,1027,376, - 376,376,376,177,1027,639,49,641,66,66, - 66,66,66,66,66,66,66,657,663,668, - 665,672,670,677,675,679,678,680,271,681, - 65,65,268,695,481,481,1068,179,121,121, - 651,268,513,654,654,376,654,121,513,513, - 479,438,105,647,323,323,105,889,368,888, - 372,836,378,105,105,105,368,454,479,522, - 49,149,149,149,149,105,601,558,656,513, - 513,49,986,148,1068,49,657,878,878,601, + 11,525,376,426,426,339,522,522,339,149, + 149,596,438,149,454,819,339,65,447,447, + 227,1,2,108,108,105,655,655,527,105, + 655,475,782,710,721,888,721,883,721,16, + 721,705,721,784,105,782,477,426,465,376, + 376,376,376,784,465,637,49,639,66,66, + 66,66,66,66,66,66,66,658,664,669, + 666,673,671,678,676,680,679,681,271,682, + 65,65,268,696,481,481,1066,786,121,121, + 652,268,513,655,655,376,655,121,513,513, + 479,438,105,648,323,323,105,887,368,886, + 372,834,378,105,105,105,368,454,479,522, + 49,149,149,149,149,105,599,558,657,513, + 513,49,984,148,1066,49,658,876,876,599, 65,66,66,66,66,66,66,66,66,66, 66,66,66,66,66,66,66,66,66,66, 65,65,65,65,65,65,65,65,65,65, - 65,65,66,481,481,103,1067,121,121,317, - 268,268,121,513,7,449,321,647,323,323, - 889,373,889,368,889,378,378,105,368,105, - 102,513,513,788,788,788,788,368,513,65, - 66,383,390,730,730,177,641,268,148,65, - 103,513,102,104,102,513,268,665,665,663, - 663,663,670,670,670,670,668,668,675,672, - 672,678,677,679,119,680,513,513,179,105, - 788,750,787,788,651,788,516,790,647,646, - 435,105,323,119,17,376,370,979,1074,323, - 435,889,889,467,105,378,435,433,434,105, - 105,1027,1027,1027,1027,105,105,65,105,1068, - 66,149,661,181,513,104,1068,65,516,823, - 1067,49,516,647,1068,840,836,788,376,102, - 117,1076,99,1027,834,176,468,105,435,66, - 105,65,65,65,65,1027,1027,368,103,513, - 661,317,179,105,103,516,823,518,103,840, - 840,894,339,103,118,118,99,700,317,218, - 66,119,222,467,105,177,177,105,513,513, - 513,513,601,601,105,661,662,661,65,181, - 984,657,179,518,825,518,701,435,599,1029, - 312,1027,17,930,840,840,339,103,118,836, - 177,1076,99,66,66,105,105,105,513,513, - 401,661,601,66,268,984,518,825,1027,893, - 312,599,704,177,435,787,701,836,29,835, - 105,1027,105,105,662,513,268,482,894,840, - 701,221,700,513,177,105,894,938,30,177, - 105,601,450,840,65,942,99,701,105,105, - 938,29,119,66,119,701,1027,1027,1027,30, - 1027,105,278,701,701,105,836,513,149,435, - 513,940,105,701,21,1027,21,119,30,49, - 49,47,838,49,701,701,597,938,940,701, - 790,513,99,513,47,312,1027,513,938,434, - 513,513,414,30,597,30,701,312,65,30, - 27,940,836,836,1019,65,28,601,701,513, - 30,513,701,30 + 65,65,66,481,481,103,1065,121,121,782, + 268,268,121,513,7,449,424,648,323,323, + 887,373,887,368,887,378,378,105,368,105, + 102,513,513,597,597,597,597,368,513,65, + 66,383,390,728,728,784,639,268,148,65, + 103,513,102,104,102,513,268,666,666,664, + 664,664,671,671,671,671,669,669,676,673, + 673,679,678,680,119,681,513,513,786,105, + 597,596,597,652,597,516,788,648,647,435, + 105,323,119,17,376,370,977,1072,323,435, + 887,887,467,105,378,435,433,434,105,105, + 465,465,465,465,105,105,65,105,1066,66, + 149,662,181,513,104,1066,65,516,821,1065, + 49,516,648,1066,838,834,597,376,102,117, + 1074,99,465,832,176,468,105,435,66,105, + 65,65,65,65,465,465,368,103,513,662, + 782,786,105,103,516,821,518,103,838,838, + 892,339,103,118,118,99,701,782,218,66, + 119,222,467,105,784,784,105,513,513,513, + 513,599,599,105,662,663,662,65,181,321, + 658,786,518,823,518,702,435,1025,1027,312, + 465,17,928,838,838,339,103,118,834,784, + 1074,99,66,66,105,105,105,513,513,763, + 662,599,66,268,321,518,823,465,891,312, + 1025,644,784,435,596,702,834,29,833,105, + 465,105,105,663,513,268,482,892,838,702, + 221,701,513,784,105,892,936,30,784,105, + 599,450,838,65,940,99,702,105,105,936, + 29,119,66,119,702,465,465,465,30,465, + 105,278,702,702,105,834,513,149,435,513, + 938,105,702,21,465,21,119,30,49,49, + 47,836,49,702,702,225,936,938,702,788, + 513,99,513,47,312,465,513,936,434,513, + 513,776,30,225,30,702,312,65,30,27, + 938,834,834,778,65,28,599,702,513,30, + 513,702,30 }; }; public final static char asb[] = Asb.asb; @@ -1732,115 +1724,115 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface Asr { public final static byte asr[] = {0, - 3,62,67,64,121,56,9,73,95,0, + 3,62,66,67,121,56,9,73,95,0, 59,10,29,74,0,4,1,2,61,0, 75,103,104,105,29,71,119,122,72,74, 76,58,57,63,78,80,86,84,77,82, 83,85,87,61,79,81,11,9,48,59, 33,68,49,12,50,51,52,53,54,69, - 55,70,32,43,60,65,66,10,35,39, + 55,70,32,43,60,64,65,10,35,39, 37,34,42,16,25,15,21,19,20,22, 23,18,17,24,44,47,45,46,30,41, 36,40,26,27,13,14,31,38,8,6, 3,4,7,5,1,2,0,9,3,62, - 95,67,64,73,11,56,76,61,71,0, - 34,65,35,36,66,7,37,38,39,40, + 95,66,67,73,11,56,76,61,71,0, + 34,64,35,36,65,7,37,38,39,40, 60,41,42,44,45,46,30,26,27,8, 6,13,14,5,31,62,47,3,48,15, 16,59,33,17,68,49,12,18,50,51, 19,20,52,53,21,22,54,69,55,10, - 70,23,24,43,25,32,1,2,4,0, + 70,23,24,43,25,1,2,4,32,0, 96,90,13,14,91,92,88,89,62,93, 94,97,98,99,100,101,102,117,95,107, 108,109,110,111,112,113,114,115,116,118, 73,72,1,2,4,8,6,71,56,28, - 3,9,64,11,67,0,65,66,3,10, + 3,9,67,11,66,0,64,65,3,10, 35,39,37,34,42,16,25,15,21,19, 20,22,23,18,17,24,44,47,45,46, 30,41,36,40,5,7,4,26,27,8, 6,13,14,31,38,1,2,118,9,0, - 62,71,95,64,118,73,72,15,16,34, - 65,17,35,36,18,19,20,66,37,21, + 62,71,95,67,118,73,72,15,16,34, + 64,17,35,36,18,19,20,65,37,21, 22,38,39,40,60,41,42,10,23,24, 25,44,45,46,30,26,27,13,14,31, - 47,9,11,7,5,3,1,2,8,4, - 6,0,75,57,7,103,104,105,58,9, + 47,9,8,6,4,11,1,2,7,3, + 5,0,75,57,7,103,104,105,58,9, 3,8,6,5,71,72,11,74,48,15, 16,59,33,17,68,49,12,18,50,51, 19,20,52,53,21,22,54,69,55,10, 70,23,32,24,43,25,4,1,2,29, 0,4,9,61,71,28,0,1,2,9, - 72,0,9,71,118,73,11,64,0,15, - 16,17,18,19,20,21,22,23,24,25, - 48,33,49,12,50,51,52,53,54,55, - 32,43,11,9,73,7,1,2,56,3, - 8,6,5,4,0,62,67,64,121,1, - 2,0,67,64,72,9,0,8,6,4, - 3,5,7,56,1,2,62,67,95,73, - 9,64,0,9,62,64,73,1,2,8, - 6,4,3,56,121,0,32,1,2,4, + 72,0,9,71,118,73,11,67,0,48, + 15,16,33,17,49,12,18,50,51,19, + 20,52,7,53,21,22,54,55,23,32, + 24,43,25,1,2,9,56,8,5,4, + 73,11,3,6,0,62,66,67,121,1, + 2,0,66,67,72,9,0,8,6,4, + 3,5,7,56,1,2,62,66,95,73, + 9,67,0,9,62,67,73,121,1,2, + 8,6,4,56,3,0,32,1,2,4, 103,104,105,0,7,5,3,56,6,8, 95,48,15,16,59,33,17,68,49,12, 18,50,51,19,20,52,53,21,22,54, 69,55,10,70,23,32,24,43,25,1, 2,4,73,9,0,33,43,60,9,95, - 73,62,64,121,67,0,48,15,16,59, + 73,62,67,66,121,0,48,15,16,59, 33,17,68,49,12,18,50,51,19,20, 52,53,21,22,54,69,55,10,70,23, - 32,24,43,25,1,2,4,66,65,13, - 14,6,91,92,99,8,100,5,31,28, - 62,110,111,107,108,109,115,114,116,89, + 32,24,43,25,1,2,4,65,64,13, + 14,6,91,92,99,8,100,5,31,66, + 28,110,111,107,108,109,115,114,116,89, 88,112,113,97,98,93,94,101,102,26, - 27,64,90,106,3,56,67,0,30,0, - 9,73,15,16,34,17,35,36,18,19, - 20,37,21,22,38,39,40,60,41,42, - 10,23,24,25,44,45,46,30,3,26, - 27,8,6,13,14,31,4,47,5,7, - 1,2,66,65,0,60,33,7,43,5, - 1,2,4,76,61,121,120,106,26,27, - 56,3,96,90,6,91,92,13,14,89, - 88,28,93,94,97,98,8,99,100,101, - 62,95,73,67,107,108,109,110,111,112, - 113,114,115,116,71,118,72,102,117,64, - 11,9,0,61,67,0,10,68,59,69, - 70,16,25,15,21,19,20,22,23,18, - 17,24,76,61,71,95,118,72,121,7, - 53,54,55,32,43,1,2,52,51,50, - 12,49,5,4,33,48,9,73,11,56, - 3,120,96,106,90,26,27,8,6,13, - 14,91,92,88,89,28,93,94,97,98, - 99,100,101,102,117,67,107,108,109,110, - 111,112,113,114,115,116,64,62,0,48, - 15,16,33,17,68,49,12,18,50,51, - 19,20,52,53,21,22,54,69,55,10, - 70,23,32,24,43,25,1,2,4,95, - 59,0,33,43,60,76,3,62,71,95, - 67,73,11,9,64,61,0,77,0,63, - 48,15,16,59,33,17,68,49,75,12, - 18,50,51,19,20,52,57,53,21,22, - 54,69,55,10,70,23,58,32,24,43, - 25,9,3,8,6,72,11,7,4,29, - 5,1,2,0,29,1,2,4,71,61, - 9,0,61,59,33,17,68,49,18,50, - 51,19,20,52,53,21,22,54,69,55, - 70,23,32,24,43,25,16,15,48,9, - 3,8,6,11,58,63,75,12,29,7, - 1,2,5,4,10,57,0,119,0,9, - 72,65,66,60,26,27,8,6,13,14, - 31,38,3,44,47,45,46,30,41,36, - 40,16,25,15,21,19,20,22,23,18, - 17,24,35,39,37,34,42,61,7,1, - 2,4,10,5,0,65,66,26,27,13, - 14,31,38,44,47,45,46,30,41,36, - 40,16,25,15,21,19,20,22,23,18, - 17,24,10,35,39,37,34,42,8,6, - 4,56,7,5,1,2,3,0,59,33, - 17,68,49,18,50,51,19,20,52,53, - 21,22,54,69,55,10,70,23,32,24, - 43,25,16,15,48,9,3,8,11,58, - 57,63,75,12,28,4,6,7,1,2, - 5,29,0,11,9,71,7,5,3,1, - 2,6,8,4,0 + 27,90,106,3,56,67,62,0,9,73, + 15,16,34,17,35,36,18,19,20,37, + 21,22,38,39,40,60,41,42,10,23, + 24,25,44,45,46,30,3,26,27,8, + 6,13,14,31,4,47,5,7,1,2, + 65,64,0,61,66,0,60,33,7,43, + 5,1,2,4,76,61,121,120,106,26, + 27,56,3,96,90,6,91,92,13,14, + 89,88,28,93,94,97,98,8,99,100, + 101,62,95,73,66,107,108,109,110,111, + 112,113,114,115,116,71,118,72,102,117, + 67,11,9,0,10,68,59,69,70,16, + 25,15,21,19,20,22,23,18,17,24, + 76,61,71,95,118,72,121,120,96,106, + 90,26,27,13,14,91,92,88,89,28, + 62,93,94,97,98,99,100,101,102,117, + 66,107,108,109,110,111,112,113,114,115, + 116,67,48,33,49,12,50,51,52,53, + 54,55,32,43,11,9,73,3,56,7, + 5,6,8,1,2,4,0,48,15,16, + 33,17,68,49,12,18,50,51,19,20, + 52,53,21,22,54,69,55,10,70,23, + 32,24,43,25,1,2,4,95,59,0, + 33,43,60,76,3,62,71,95,66,73, + 11,9,67,61,0,77,0,63,48,15, + 16,59,33,17,68,49,75,12,18,50, + 51,19,20,52,57,53,21,22,54,69, + 55,10,70,23,58,32,24,43,25,9, + 3,8,6,72,11,7,4,29,5,1, + 2,0,29,1,2,4,71,61,9,0, + 61,59,33,17,68,49,18,50,51,19, + 20,52,53,21,22,54,69,55,70,23, + 32,24,43,25,16,15,48,9,3,8, + 6,11,58,63,75,12,29,7,1,2, + 5,4,10,57,0,119,0,9,72,64, + 65,60,26,27,8,6,13,14,31,38, + 3,44,47,45,46,30,41,36,40,16, + 25,15,21,19,20,22,23,18,17,24, + 35,39,37,34,42,61,7,1,2,5, + 4,10,0,64,65,26,27,8,6,13, + 14,5,31,38,3,4,7,44,47,45, + 46,41,36,40,16,25,15,21,19,20, + 22,23,18,17,24,10,35,39,37,34, + 42,56,1,2,30,0,59,33,17,68, + 49,18,50,51,19,20,52,53,21,22, + 54,69,55,10,70,23,32,24,43,25, + 16,15,48,9,3,8,11,58,57,63, + 75,12,28,4,6,7,1,2,5,29, + 0,11,9,71,7,5,3,1,2,6, + 8,4,0 }; }; public final static byte asr[] = Asr.asr; @@ -1873,34 +1865,34 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 216,208,215,176,215,208,85,12,12,12, 12,12,12,12,12,12,12,12,12,12, 12,12,12,12,12,12,208,208,12,11, - 12,12,12,12,121,12,115,142,115,95, - 68,176,199,12,99,12,12,87,258,251, - 68,51,51,103,203,241,68,12,12,203, - 176,12,12,12,12,203,11,30,176,58, - 30,190,115,60,208,181,58,30,115,115, - 43,28,95,95,58,115,12,12,12,152, - 115,145,110,12,12,152,89,161,68,30, - 241,137,137,137,137,12,12,56,203,208, - 97,121,12,17,203,95,95,115,216,227, - 115,246,115,161,115,70,212,199,151,12, - 30,12,72,193,161,152,152,11,208,208, - 208,208,158,158,203,115,117,12,137,121, - 182,12,12,115,115,47,199,68,12,246, - 259,12,241,87,246,227,142,216,70,179, - 74,110,212,30,30,11,161,161,208,208, - 12,97,158,30,85,182,47,47,12,115, - 145,12,12,152,68,12,199,179,224,12, - 161,12,11,11,117,208,85,206,246,115, - 199,49,12,208,152,161,246,115,129,74, - 11,158,208,227,164,30,110,199,161,99, - 91,134,12,30,12,199,12,12,12,135, - 12,241,197,199,199,241,101,208,190,68, - 208,115,99,199,20,12,12,12,135,232, - 232,140,12,232,199,199,12,115,63,199, - 190,208,110,208,189,115,12,208,91,68, - 208,208,115,135,12,135,199,110,137,135, - 20,63,101,101,108,30,12,243,199,208, - 135,208,199,135 + 12,12,12,121,12,115,142,115,95,68, + 176,199,12,99,12,12,87,258,251,68, + 51,51,103,203,241,68,12,12,203,176, + 12,12,12,12,203,11,30,176,58,30, + 190,115,60,208,181,58,30,115,115,43, + 28,95,95,58,115,12,12,12,152,115, + 145,110,12,12,152,89,161,68,30,241, + 137,137,137,137,12,12,56,203,208,97, + 121,12,17,203,95,95,115,216,227,115, + 246,115,161,115,70,212,199,151,12,30, + 12,72,193,161,152,152,11,208,208,208, + 208,158,158,203,115,117,12,137,121,182, + 12,12,115,115,47,199,68,12,246,259, + 12,241,87,246,227,142,216,70,179,74, + 110,212,30,30,11,161,161,208,208,12, + 97,158,30,85,182,47,47,12,115,145, + 12,12,152,68,12,199,179,224,12,161, + 12,11,11,117,208,85,206,246,115,199, + 49,12,208,152,161,246,115,129,74,11, + 158,208,227,164,30,110,199,161,99,91, + 134,12,30,12,199,12,12,12,135,12, + 241,197,199,199,241,101,208,190,68,208, + 115,99,199,20,12,12,12,135,232,232, + 140,12,232,199,199,12,115,63,199,190, + 208,110,208,189,115,12,208,91,68,208, + 208,115,135,12,135,199,110,137,135,20, + 63,101,101,108,30,12,243,199,208,135, + 208,199,135 }; }; public final static char nasb[] = Nasb.nasb; @@ -1948,7 +1940,7 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 16,106,56,57,63,69,86,90,92,96, 99,101,108,111,112,113,123,49,66,72, 75,78,85,91,100,2,79,105,55,97, - 4,22,48,46,60,80,35,65,93,103, + 4,22,48,60,80,35,46,65,93,103, 32,120,119,122,67,98,110,51,52,58, 59,61,71,73,74,87,94,19,20,8, 17,18,23,24,34,6,25,26,27,28, @@ -2052,10 +2044,10 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 1,1,1,1,4,62,11,1,1,62, 73,73,73,119,73,1,11,72,1,1, 1,1,11,11,72,118,73,73,73,73, - 73,118,1,73,1,64,73,73,73,71, + 73,118,1,73,1,67,73,73,73,71, 4,73,62,62,62,62,73,3,1,1, 73,73,3,118,73,1,1,1,11,71, - 73,118,73,5,73,1,29,67,73,1, + 73,118,73,5,73,1,29,66,73,1, 1,6,1,29,77,76,11,11,4,4, 4,4,3,1,9,61,1,1,3 }; @@ -2113,7 +2105,7 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 0,0,0,0,0,197,3,0,201,0, 238,127,61,30,12,0,184,128,57,58, 0,197,129,0,131,184,128,275,58,0, - 184,128,275,58,0,184,128,67,124,57, + 184,128,275,58,0,184,128,66,124,57, 0,238,127,61,57,0,238,127,61,226, 57,0,273,127,61,124,68,0,273,127, 61,68,0,184,128,68,0,136,0,188, @@ -2131,8 +2123,8 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par 0,297,127,61,0,162,0,214,79,0, 32,0,162,117,158,0,32,171,0,177, 3,0,127,151,0,219,3,0,214,56, - 263,0,162,56,0,177,3,293,66,128, - 0,127,0,0,0,0,293,66,128,0, + 263,0,162,56,0,177,3,293,65,128, + 0,127,0,0,0,0,293,65,128,0, 3,147,127,0,0,0,0,177,3,38, 0,149,0,126,29,167,128,0,33,149, 0,95,138,33,149,0,223,184,128,0, @@ -2156,38 +2148,38 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface ScopeState { public final static char scopeState[] = {0, - 3278,4076,4075,3625,0,2175,2113,661,1939,0, - 3427,3362,3277,3217,3157,3097,3037,2876,2816,2878, - 0,798,0,3023,1219,0,3427,3362,2844,2627, - 3277,3217,3157,3097,2594,3037,2876,2816,3392,3193, - 0,1437,1264,795,0,3307,2691,0,2804,2185, - 0,3287,2647,0,580,4590,0,4606,4396,4386, - 0,4606,4396,4386,3706,4255,4245,3633,4169,4159, - 4083,3624,0,4606,4396,4386,3706,4255,4245,3633, - 4169,4159,4083,3624,3427,3362,3277,3217,3157,3097, - 3037,2876,2816,0,3312,792,0,800,663,0, - 1265,0,2790,4526,1725,1599,4503,1557,3011,813, - 1431,3048,2748,3482,2801,1389,859,0,4694,4686, - 4682,4664,4656,4618,4479,4376,4770,4764,4760,4331, - 4100,4756,4739,3723,3062,4709,3743,2648,3417,3181, - 0,535,3126,2595,0,4526,580,4503,4590,3482, - 3331,4064,4569,4354,2790,4341,4490,3011,2662,2583, - 0,4694,2697,4686,2283,2196,4682,4664,4656,1178, - 3091,920,4618,4479,3029,2936,2883,4376,3271,4770, - 2871,4764,2749,2189,4760,1009,4331,4100,1390,4756, - 3283,4739,3723,3062,784,4709,3743,2648,3126,3417, - 656,3181,2595,729,3331,4064,4569,4354,2790,4526, - 4341,2102,580,4503,1122,4490,3011,4590,639,624, - 3482,2662,2583,1370,995,932,800,663,1348,4042, - 4020,2289,2326,591,2359,2447,2419,2390,2764,2604, - 2556,2529,2502,2475,3601,3578,3549,2986,2959,3998, - 3976,3954,3932,3910,3888,3866,3844,3822,3792,1055, - 1986,2239,2202,2152,2115,2065,2028,875,1944,1902, - 1227,820,740,685,1860,1818,1776,1734,1692,1650, - 1608,1566,1524,1482,1440,535,1182,1135,1398,1311, - 1080,1013,953,1269,0,733,667,579,558,2748, - 3482,3331,3275,2662,2634,2583,0,4093,3035,2814, - 568,0 + 3277,4075,4074,3624,0,2174,2112,660,1938,0, + 3426,3361,3276,3216,3156,3096,3036,2875,2815,2877, + 0,797,0,3022,1218,0,3426,3361,2843,2626, + 3276,3216,3156,3096,2593,3036,2875,2815,3391,3192, + 0,1436,1263,794,0,3306,2690,0,2803,2184, + 0,3286,2646,0,579,4589,0,4605,4395,4385, + 0,4605,4395,4385,3705,4254,4244,3632,4168,4158, + 4082,3623,0,4605,4395,4385,3705,4254,4244,3632, + 4168,4158,4082,3623,3426,3361,3276,3216,3156,3096, + 3036,2875,2815,0,3311,791,0,799,662,0, + 1264,0,2789,4525,1724,1598,4502,1556,3010,812, + 1430,3047,2747,3481,2800,1388,858,0,4693,4685, + 4681,4663,4655,4617,4478,4375,4769,4763,4759,4330, + 4099,4755,4738,3722,3061,4708,3742,2647,3416,3180, + 0,534,3125,2594,0,4525,579,4502,4589,3481, + 3330,4063,4568,4353,2789,4340,4489,3010,2661,2582, + 0,4693,2696,4685,2282,2195,4681,4663,4655,1177, + 3090,919,4617,4478,3028,2935,2882,4375,3270,4769, + 2870,4763,2748,2188,4759,1008,4330,4099,1389,4755, + 3282,4738,3722,3061,783,4708,3742,2647,3125,3416, + 655,3180,2594,728,3330,4063,4568,4353,2789,4525, + 4340,2101,579,4502,1121,4489,3010,4589,638,623, + 3481,2661,2582,1369,994,931,799,662,1347,4041, + 4019,2288,2325,590,2358,2446,2418,2389,2763,2603, + 2555,2528,2501,2474,3600,3577,3548,2985,2958,3997, + 3975,3953,3931,3909,3887,3865,3843,3821,3791,1054, + 1985,2238,2201,2151,2114,2064,2027,874,1943,1901, + 1226,819,739,684,1859,1817,1775,1733,1691,1649, + 1607,1565,1523,1481,1439,534,1181,1134,1397,1310, + 1079,1012,952,1268,0,732,666,578,557,2747, + 3481,3330,3274,2661,2633,2582,0,4092,3034,2813, + 567,0 }; }; public final static char scopeState[] = ScopeState.scopeState; @@ -2195,59 +2187,59 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public interface InSymb { public final static char inSymb[] = {0, - 0,292,29,10,59,28,230,230,127,67, - 67,291,146,127,166,62,64,67,224,197, + 0,292,29,10,59,28,230,230,127,66, + 66,291,146,127,166,62,67,66,224,197, 56,216,217,186,180,171,130,133,7,5, 125,3,127,267,268,250,269,243,270,68, 271,272,125,10,128,127,3,59,42,34, 37,39,35,10,136,4,3,128,38,31, 5,14,13,6,8,27,26,140,145,148, 147,150,149,152,151,155,153,157,60,158, - 67,67,214,158,3,3,167,165,28,28, - 166,56,3,65,66,125,124,28,224,197, + 66,66,214,158,3,3,167,165,28,28, + 166,56,3,64,65,125,124,28,224,197, 127,212,128,6,9,61,167,230,128,126, 125,124,61,128,128,184,167,212,127,230, 3,28,28,28,28,128,3,7,125,177, - 162,127,65,66,167,3,126,106,120,3, + 162,127,64,65,167,3,126,106,120,3, 56,90,96,14,13,92,91,6,94,93, 62,28,88,89,8,98,97,100,99,101, 116,115,114,113,112,111,110,109,108,107, - 67,117,102,127,127,188,4,127,127,127, + 66,117,102,127,127,188,4,127,127,127, 56,56,127,227,228,229,167,127,127,127, 126,125,127,184,127,61,127,184,167,29, - 67,177,162,177,177,177,177,167,219,127, + 66,177,162,177,177,177,177,167,219,127, 154,265,136,126,125,10,128,56,293,3, 188,177,29,128,29,219,162,147,147,145, 145,145,149,149,149,149,148,148,151,150, 150,153,152,155,162,157,227,227,258,188, - 253,134,255,253,212,253,154,64,6,183, - 281,128,168,222,57,29,195,58,170,282, - 281,127,127,71,188,127,273,124,274,188, - 128,62,62,62,62,188,171,64,128,167, - 198,3,294,166,156,184,167,71,154,154, - 4,64,127,127,167,61,226,28,29,275, - 277,127,3,180,306,222,32,128,273,67, - 64,3,3,3,3,126,125,167,29,177, - 127,127,223,5,29,127,127,220,188,127, - 61,62,28,128,76,127,212,304,127,125, - 71,284,197,64,128,32,307,184,162,162, - 162,162,3,3,188,154,260,263,56,178, - 4,124,126,220,220,127,131,238,12,29, - 170,63,57,58,237,127,127,184,127,278, - 71,64,212,71,67,184,128,128,219,219, - 126,127,3,56,162,4,127,127,60,30, - 127,3,124,57,238,291,131,278,61,288, - 128,289,184,184,260,219,214,3,127,61, - 266,197,276,30,67,128,62,279,127,64, - 184,3,311,127,3,67,64,154,128,184, - 127,297,81,79,1,162,87,85,83,82, - 77,84,86,80,78,57,76,219,64,238, - 156,61,184,226,280,119,9,214,71,3, - 3,3,199,3,124,162,124,182,127,226, - 3,225,166,225,299,146,77,225,127,303, - 95,310,166,154,197,154,298,127,3,154, - 280,64,154,154,127,67,199,161,266,162, - 122,296,154,154 + 253,255,253,212,253,154,67,6,183,281, + 128,168,222,57,29,195,58,170,282,281, + 127,127,71,188,127,273,124,274,188,128, + 62,62,62,62,188,171,67,128,167,198, + 3,294,166,156,184,167,71,154,154,4, + 67,127,127,167,61,226,28,29,275,277, + 127,3,180,306,222,32,128,273,66,67, + 3,3,3,3,126,125,167,29,177,127, + 127,223,5,29,127,127,220,188,127,61, + 62,28,128,76,127,212,304,127,125,71, + 284,197,67,128,32,307,184,162,162,162, + 162,3,3,188,154,260,263,56,178,4, + 124,126,220,220,127,131,238,12,29,170, + 63,57,58,237,127,127,184,127,278,71, + 67,212,71,66,184,128,128,219,219,126, + 127,3,56,162,4,127,127,60,30,127, + 3,124,57,238,291,131,278,61,288,128, + 289,184,184,260,219,214,3,127,61,266, + 197,276,30,66,128,62,279,127,67,184, + 3,311,127,3,66,67,154,128,184,127, + 297,81,79,1,162,87,85,83,82,77, + 84,86,80,78,57,76,219,67,238,156, + 61,184,226,280,119,9,214,71,3,3, + 3,199,3,124,162,124,182,127,226,3, + 225,166,225,299,146,77,225,127,303,95, + 310,166,154,197,154,298,127,3,154,280, + 67,154,154,127,66,199,161,266,162,122, + 296,154,154 }; }; public final static char inSymb[] = InSymb.inSymb; @@ -2522,20 +2514,20 @@ public class CPPTemplateTypeParameterParserprs implements lpg.lpgjavaruntime.Par public final int getMaxNameLength() { return MAX_NAME_LENGTH; } public final static int - NUM_STATES = 524, + NUM_STATES = 523, NT_OFFSET = 123, - LA_STATE_OFFSET = 5775, + LA_STATE_OFFSET = 5770, MAX_LA = 2147483647, - NUM_RULES = 534, + NUM_RULES = 533, NUM_NONTERMINALS = 194, NUM_SYMBOLS = 317, SEGMENT_SIZE = 8192, - START_STATE = 568, + START_STATE = 567, IDENTIFIER_SYMBOL = 0, EOFT_SYMBOL = 121, EOLT_SYMBOL = 121, - ACCEPT_ACTION = 4848, - ERROR_ACTION = 5241; + ACCEPT_ACTION = 4847, + ERROR_ACTION = 5237; 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 155b64a4a26..6fa92493924 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 @@ -27,7 +27,7 @@ public interface CPPTemplateTypeParameterParsersym { TK_const_cast = 34, TK_continue = 80, TK_default = 81, - TK_delete = 65, + TK_delete = 64, TK_do = 82, TK_double = 17, TK_dynamic_cast = 35, @@ -47,7 +47,7 @@ public interface CPPTemplateTypeParameterParsersym { TK_long = 20, TK_mutable = 52, TK_namespace = 57, - TK_new = 66, + TK_new = 65, TK_operator = 7, TK_private = 103, TK_protected = 104, @@ -119,7 +119,7 @@ public interface CPPTemplateTypeParameterParsersym { TK_Colon = 71, TK_ColonColon = 4, TK_DotDotDot = 95, - TK_Assign = 67, + TK_Assign = 66, TK_StarAssign = 107, TK_SlashAssign = 108, TK_PercentAssign = 109, @@ -130,7 +130,7 @@ public interface CPPTemplateTypeParameterParsersym { TK_AndAssign = 114, TK_CaretAssign = 115, TK_OrAssign = 116, - TK_Comma = 64, + TK_Comma = 67, TK_RightBracket = 118, TK_RightParen = 73, TK_RightBrace = 72, @@ -204,10 +204,10 @@ public interface CPPTemplateTypeParameterParsersym { "LeftBrace", "GT", "asm", - "Comma", "delete", "new", "Assign", + "Comma", "enum", "struct", "union", -- cgit v1.2.3