Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Kucera2008-03-24 12:16:14 -0400
committerMike Kucera2008-03-24 12:16:14 -0400
commit8d37ffe0608d00f84191d229b9d4030e641f347f (patch)
tree3abe2d43963dde54205ec94a9d07b7b6211f11d3
parente1bf40252e94c577e8bcea1c650130567de17bf6 (diff)
downloadorg.eclipse.cdt-8d37ffe0608d00f84191d229b9d4030e641f347f.tar.gz
org.eclipse.cdt-8d37ffe0608d00f84191d229b9d4030e641f347f.tar.xz
org.eclipse.cdt-8d37ffe0608d00f84191d229b9d4030e641f347f.zip
attempt at fixing function declarator/constructor initializer ambiguity, needs more testing
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguity.java3
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/build.xml9
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g33
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoFunctionDeclaratorParser.g43
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/BuildASTParserAction.java95
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java32
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPASTAmbiguousDeclarator.java138
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPASTNodeFactory.java4
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPBuildASTParserAction.java163
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ISOCPPASTSimpleDeclaration.java35
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java399
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java2915
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParser.java399
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoCastExpressionParserprs.java2918
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java2116
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java2639
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java272
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java395
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParserprs.java3269
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPRules.java544
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParser.java399
-rw-r--r--lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPSizeofExpressionParserprs.java2912
22 files changed, 12848 insertions, 6884 deletions
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguity.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguity.java
index f9071bfa96..3fea21ef45 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguity.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTAmbiguity.java
@@ -30,7 +30,8 @@ public abstract class CPPASTAmbiguity extends CPPASTNode {
protected static class CPPASTNameCollector extends CPPASTVisitor {
private IASTName[] names = new IASTName[2];
private int namesPos=-1;
- {
+
+ public CPPASTNameCollector() {
shouldVisitNames = true;
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/build.xml b/lrparser/org.eclipse.cdt.core.lrparser/grammar/build.xml
index 96f11442b7..6801241a2d 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/build.xml
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/build.xml
@@ -79,6 +79,15 @@
<antcall target="generate_cpp">
<param name="grammar_name" value="CPPSizeofExpressionParser"/>
</antcall>
+ <!-- Generate parser for disambiguating declarators
+ <antcall target="generate_cpp">
+ <param name="grammar_name" value="CPPNoConstructorInitializerParser"/>
+ </antcall>
+ -->
+ <!-- Generate parser for disambiguating declarators -->
+ <antcall target="generate_cpp">
+ <param name="grammar_name" value="CPPNoFunctionDeclaratorParser"/>
+ </antcall>
</target>
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 ee7622c560..fc704e7405 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPGrammar.g
@@ -233,7 +233,7 @@ $Headers
int kind = super.getKind(i);
// There used to be a special token kind for zero used to parser pure virtual function declarations.
- // But it turned out to be easier to just parse them as an init_declarator and programaticaly check
+ // But it turned out to be easier to just parse them as an init_ declarator and programaticaly check
// for pure virtual, see consumeMemberDeclaratorWithInitializer().
//if(kind == CPPParsersym.TK_integer && "0".equals(getTokenText(i))) { //$NON-NLS-1$
@@ -435,8 +435,9 @@ template_opt
/. $Build consumeEmpty(); $EndBuild ./
+-- the ::=? is necessary for example 8.2.1 in the C++ spec to parse correctly
dcolon_opt
- ::= '::'
+ ::=? '::'
/. $Build consumePlaceHolder(); $EndBuild ./
| $empty
/. $Build consumeEmpty(); $EndBuild ./
@@ -942,12 +943,12 @@ declaration_seq_opt
simple_declaration
::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ';'
- /. $Build consumeDeclarationSimple(true); $EndBuild ./
+ /. $Build consumeDeclarationSimple(true, true); $EndBuild ./
simple_declaration_with_declspec
::= declaration_specifiers <openscope-ast> init_declarator_list_opt ';'
- /. $Build consumeDeclarationSimple(true); $EndBuild ./
+ /. $Build consumeDeclarationSimple(true, false); $EndBuild ./
-- declaration specifier nodes not created here, they are created by sub-rules
@@ -1238,8 +1239,8 @@ linkage_specification
init_declarator_list
- ::= init_declarator
- | init_declarator_list ',' init_declarator
+ ::= init_declarator_complete
+ | init_declarator_list ',' init_declarator_complete
init_declarator_list_opt
@@ -1247,6 +1248,11 @@ init_declarator_list_opt
| $empty
+init_declarator_complete
+ ::= init_declarator
+ /. $Build consumeInitDeclaratorComplete(); $EndBuild ./
+
+
init_declarator
::= declarator
| declarator initializer
@@ -1332,9 +1338,10 @@ cv_qualifier
declarator_id_name
- ::= qualified_or_unqualified_name
- | dcolon_opt nested_name_specifier_opt type_name
+ ::= qualified_or_unqualified_name
+ | dcolon_opt nested_name_specifier_opt type_name
/. $Build consumeQualifiedId(false); $EndBuild ./
+
type_id
@@ -1520,9 +1527,9 @@ visibility_label
member_declaration
::= declaration_specifiers_opt <openscope-ast> member_declarator_list ';'
- /. $Build consumeDeclarationSimple(true); $EndBuild ./
+ /. $Build consumeDeclarationSimple(true, true); $EndBuild ./
| declaration_specifiers_opt ';'
- /. $Build consumeDeclarationSimple(false); $EndBuild ./
+ /. $Build consumeDeclarationSimple(false, false); $EndBuild ./
| function_definition ';'
| function_definition
| dcolon_opt nested_name_specifier template_opt unqualified_id_name ';'
@@ -1785,11 +1792,11 @@ handler
-- open a scope just so that we can reuse consumeDeclarationSimple()
exception_declaration
::= type_specifier_seq <openscope-ast> declarator
- /. $Build consumeDeclarationSimple(true); $EndBuild ./
+ /. $Build consumeDeclarationSimple(true, false); $EndBuild ./
| type_specifier_seq <openscope-ast> abstract_declarator -- TODO might need to be abstract_declarator_without_function, might be too lenient, what exactly can you catch?
- /. $Build consumeDeclarationSimple(true); $EndBuild ./
+ /. $Build consumeDeclarationSimple(true, false); $EndBuild ./
| type_specifier_seq
- /. $Build consumeDeclarationSimple(false); $EndBuild ./
+ /. $Build consumeDeclarationSimple(false, false); $EndBuild ./
-- puts type ids on the stack
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoFunctionDeclaratorParser.g b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoFunctionDeclaratorParser.g
new file mode 100644
index 0000000000..5ca750de1f
--- /dev/null
+++ b/lrparser/org.eclipse.cdt.core.lrparser/grammar/cpp/CPPNoFunctionDeclaratorParser.g
@@ -0,0 +1,43 @@
+-----------------------------------------------------------------------------------
+-- 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
+
+$Import
+ CPPGrammar.g
+$DropRules
+
+ direct_declarator
+ ::= function_direct_declarator
+
+ init_declarator_complete
+ ::= init_declarator
+
+$End
+
+$Start
+ no_function_declarator_start
+$End
+
+$Rules
+
+ no_function_declarator_start
+ ::= init_declarator_complete
+ | ERROR_TOKEN
+ /. $Build consumeDeclarationProblem(); $EndBuild ./
+
+ -- redeclare this rule with no semantic action, prevents recursion
+ init_declarator_complete
+ ::= init_declarator
+
+$End \ No newline at end of file
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 3bb5cfbf7d..63f31fd21a 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.ast.cpp.ICPPASTLiteralExpression;
import org.eclipse.cdt.core.dom.lrparser.IParser;
import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
import org.eclipse.cdt.core.parser.util.DebugUtil;
+import org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym;
import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym;
import org.eclipse.cdt.internal.core.dom.parser.ASTNode;
@@ -92,7 +93,7 @@ public abstract class BuildASTParserAction {
* @see BuildASTParserAction#consumePlaceHolder()
* @see BuildASTParserAction#consumeEmpty()
*/
- protected static final Object PLACE_HOLDER = Boolean.TRUE;
+ protected static final Object PLACE_HOLDER = Boolean.TRUE; // any object will do
// turn debug tracing on and off
@@ -311,6 +312,9 @@ public abstract class BuildASTParserAction {
return true;
}
+
+
+
/*************************************************************************************************************
* Start of actions.
************************************************************************************************************/
@@ -403,6 +407,7 @@ public abstract class BuildASTParserAction {
tu.accept(EMPTY_VISITOR);
}
+
/**
* When applied to the AST causes ambiguity nodes to be resolved.
*/
@@ -453,8 +458,10 @@ public abstract class BuildASTParserAction {
result = declarationStatement;
else if(isImplicitInt(decl))
result = expressionStatement;
- else
+ else {
result = nodeFactory.newAmbiguousStatement(declarationStatement, expressionStatement);
+ setOffsetAndLength(result);
+ }
astStack.push(result);
@@ -532,7 +539,11 @@ public abstract class BuildASTParserAction {
public void consumeExpressionID() {
if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
- IASTName name = createName(parser.getRightIToken());
+ System.out.println("Right Token: " + parser.getRightIToken());
+ System.out.println("Left Token: " + parser.getLeftIToken());
+ System.out.println("All Tokens: " + parser.getRuleTokens());
+ //IASTName name = createName(parser.getRightIToken());
+ IASTName name = createName(parser.getLeftIToken());
IASTIdExpression expr = nodeFactory.newIdExpression(name);
setOffsetAndLength(expr);
astStack.push(expr);
@@ -628,8 +639,11 @@ public abstract class BuildASTParserAction {
if(alternateExpr == null || alternateExpr instanceof IASTProblemExpression)
astStack.push(expr);
- else
- astStack.push(nodeFactory.newAmbiguousExpression(expr, (IASTExpression)alternateExpr));
+ else {
+ IASTNode ambiguityNode = nodeFactory.newAmbiguousExpression(expr, (IASTExpression)alternateExpr);
+ setOffsetAndLength(ambiguityNode);
+ astStack.push(ambiguityNode);
+ }
if(TRACE_AST_STACK) System.out.println(astStack);
}
@@ -669,19 +683,13 @@ public abstract class BuildASTParserAction {
if(alternateExpr == null || alternateExpr instanceof IASTProblemExpression)
astStack.push(expr);
- else
- astStack.push(nodeFactory.newAmbiguousExpression(expr, (IASTExpression)alternateExpr));
+ else {
+ IASTNode ambiguityNode = nodeFactory.newAmbiguousExpression(expr, (IASTExpression)alternateExpr);
+ setOffsetAndLength(ambiguityNode);
+ astStack.push(ambiguityNode);
+ }
if(TRACE_AST_STACK) System.out.println(astStack);
-
-// if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
-//
-// IASTTypeId typeId = (IASTTypeId) astStack.pop();
-// IASTTypeIdExpression expr = nodeFactory.newTypeIdExpression(operator, typeId);
-// setOffsetAndLength(expr);
-// astStack.push(expr);
-//
-// if(TRACE_AST_STACK) System.out.println(astStack);
}
@@ -1035,15 +1043,14 @@ public abstract class BuildASTParserAction {
/**
* parameter_declaration ::= declaration_specifiers
*/
- public void consumeParameterDeclarationWithoutDeclarator(/*IBinding binding*/) {
+ public void consumeParameterDeclarationWithoutDeclarator() {
if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
// offsets need to be calculated differently in this case
- final int endOffset = parser.getRightIToken().getEndOffset() + 1;
+ final int endOffset = parser.getRightIToken().getEndOffset();
IASTName name = nodeFactory.newName();
setOffsetAndLength(name, endOffset, 0);
- //name.setBinding(binding);
// it appears that a declarator is always required in the AST here
IASTDeclarator declarator = nodeFactory.newDeclarator(name);
@@ -1078,31 +1085,31 @@ public abstract class BuildASTParserAction {
*
* TODO Make both grammars the same here.
*/
- public void consumeDeclarationSimple(boolean hasDeclaratorList) {
- if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
-
- List<Object> declarators = (hasDeclaratorList) ? astStack.closeScope() : Collections.emptyList();
- IASTDeclSpecifier declSpecifier = (IASTDeclSpecifier) astStack.pop(); // may be null
-
- // do not generate nodes for extra EOC tokens
- if(matchTokens(parser.getRuleTokens(), CPPParsersym.TK_EndOfCompletion))
- return;
-
- if(declSpecifier == null) { // can happen if implicit int is used
- declSpecifier = nodeFactory.newSimpleDeclSpecifier();
- setOffsetAndLength(declSpecifier, parser.getLeftIToken().getStartOffset(), 0);
- }
-
- IASTSimpleDeclaration declaration = nodeFactory.newSimpleDeclaration(declSpecifier);
-
- for(Object declarator : declarators)
- declaration.addDeclarator((IASTDeclarator)declarator);
-
- setOffsetAndLength(declaration);
- astStack.push(declaration);
-
- if(TRACE_AST_STACK) System.out.println(astStack);
- }
+// public void consumeDeclarationSimple(boolean hasDeclaratorList) {
+// if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
+//
+// List<Object> declarators = (hasDeclaratorList) ? astStack.closeScope() : Collections.emptyList();
+// IASTDeclSpecifier declSpecifier = (IASTDeclSpecifier) astStack.pop(); // may be null
+//
+// // do not generate nodes for extra EOC tokens
+// if(matchTokens(parser.getRuleTokens(), CPPParsersym.TK_EndOfCompletion))
+// return;
+//
+// if(declSpecifier == null) { // can happen if implicit int is used
+// declSpecifier = nodeFactory.newSimpleDeclSpecifier();
+// setOffsetAndLength(declSpecifier, parser.getLeftIToken().getStartOffset(), 0);
+// }
+//
+// IASTSimpleDeclaration declaration = nodeFactory.newSimpleDeclaration(declSpecifier);
+//
+// for(Object declarator : declarators)
+// declaration.addDeclarator((IASTDeclarator)declarator);
+//
+// setOffsetAndLength(declaration);
+// astStack.push(declaration);
+//
+// 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/c99/C99BuildASTParserAction.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/c99/C99BuildASTParserAction.java
index f10423c181..c683472099 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
@@ -34,6 +34,7 @@ import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_uns
import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_void;
import static org.eclipse.cdt.internal.core.dom.lrparser.c99.C99Parsersym.TK_volatile;
+import java.util.Collections;
import java.util.List;
import lpg.lpgjavaruntime.IToken;
@@ -41,6 +42,7 @@ import lpg.lpgjavaruntime.IToken;
import org.eclipse.cdt.core.dom.ast.IASTCompoundStatement;
import org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier;
import org.eclipse.cdt.core.dom.ast.IASTDeclaration;
+import org.eclipse.cdt.core.dom.ast.IASTDeclarator;
import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier;
import org.eclipse.cdt.core.dom.ast.IASTExpression;
import org.eclipse.cdt.core.dom.ast.IASTFieldReference;
@@ -131,16 +133,19 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
@Override
protected IParser getExpressionStatementParser() {
+ DebugUtil.printMethodTrace();
return new C99ExpressionStatementParser(parser.getOrderedTerminalSymbols());
}
@Override
protected IParser getNoCastExpressionParser() {
+ DebugUtil.printMethodTrace();
return new C99NoCastExpressionParser(parser.getOrderedTerminalSymbols());
}
@Override
protected IParser getSizeofExpressionParser() {
+ DebugUtil.printMethodTrace();
return new C99SizeofExpressionParser(parser.getOrderedTerminalSymbols());
}
@@ -540,6 +545,33 @@ public class C99BuildASTParserAction extends BuildASTParserAction {
/**
+ * declaration ::= declaration_specifiers <openscope> init_declarator_list ';'
+ * declaration ::= declaration_specifiers ';'
+ */
+ public void consumeDeclarationSimple(boolean hasDeclaratorList) {
+ if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
+
+ List<Object> declarators = (hasDeclaratorList) ? astStack.closeScope() : Collections.emptyList();
+ IASTDeclSpecifier declSpecifier = (IASTDeclSpecifier) astStack.pop();
+
+ // do not generate nodes for extra EOC tokens
+ if(matchTokens(parser.getRuleTokens(), CPPParsersym.TK_EndOfCompletion))
+ return;
+
+ IASTSimpleDeclaration declaration = nodeFactory.newSimpleDeclaration(declSpecifier);
+
+ for(Object declarator : declarators)
+ declaration.addDeclarator((IASTDeclarator)declarator);
+
+ setOffsetAndLength(declaration);
+ astStack.push(declaration);
+
+ if(TRACE_AST_STACK) System.out.println(astStack);
+ }
+
+
+
+ /**
* external_declaration ::= ';'
*
* TODO: doesn't the declaration need a name?
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPASTAmbiguousDeclarator.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPASTAmbiguousDeclarator.java
new file mode 100644
index 0000000000..339d8e3360
--- /dev/null
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/CPPASTAmbiguousDeclarator.java
@@ -0,0 +1,138 @@
+package org.eclipse.cdt.core.dom.lrparser.action.cpp;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.cdt.core.dom.ast.ASTVisitor;
+import org.eclipse.cdt.core.dom.ast.DOMException;
+import org.eclipse.cdt.core.dom.ast.IASTDeclarator;
+import org.eclipse.cdt.core.dom.ast.IASTInitializer;
+import org.eclipse.cdt.core.dom.ast.IASTName;
+import org.eclipse.cdt.core.dom.ast.IASTNode;
+import org.eclipse.cdt.core.dom.ast.IASTPointerOperator;
+import org.eclipse.cdt.core.dom.ast.IBinding;
+import org.eclipse.cdt.core.dom.ast.IProblemBinding;
+import org.eclipse.cdt.core.dom.ast.IScope;
+import org.eclipse.cdt.internal.core.dom.parser.ASTInternal;
+import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguityParent;
+import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTAmbiguity;
+import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVisitor;
+
+
+public class CPPASTAmbiguousDeclarator extends CPPASTAmbiguity implements IASTDeclarator {
+
+ private List<IASTDeclarator> declarators = new ArrayList<IASTDeclarator>(2);
+
+ public CPPASTAmbiguousDeclarator(IASTDeclarator ... ds) {
+ for(IASTDeclarator declarator : ds)
+ addDeclarator(declarator);
+ }
+
+ @Override
+ protected IASTNode[] getNodes() {
+ return declarators.toArray(new IASTDeclarator[declarators.size()]);
+ }
+
+
+
+ @Override
+ public boolean accept(ASTVisitor visitor) {
+ // this code was copied from CPPASTAmbiguity.accept() and slightly modified.
+ IASTNode nodeToReplace = this;
+ IASTAmbiguityParent owner = (IASTAmbiguityParent) getParent();
+
+ IASTNode[] nodez = getNodes();
+ int[] problems = new int[nodez.length];
+
+ for(int i = 0; i < nodez.length; ++i) {
+ IASTNode node = nodez[i];
+ owner.replace(nodeToReplace, node);
+ nodeToReplace = node;
+
+ node.accept(visitor);
+ CPPASTNameCollector nameCollector = new CPPASTNameCollector();
+ node.accept(nameCollector);
+ IASTName[] names = nameCollector.getNames();
+ for(IASTName name : names) {
+ try {
+ IBinding b = name.resolveBinding();
+ if(b == null || b instanceof IProblemBinding)
+ ++problems[i];
+ } catch (Exception t) {
+ t.printStackTrace();
+ ++problems[i];
+ }
+ }
+ if(names.length > 0) {
+ IScope scope = CPPVisitor.getContainingScope(names[0]);
+ if( scope != null ) {
+ try {
+ ASTInternal.flushCache(scope);
+ } catch (DOMException de) {}
+ }
+ }
+ }
+ int bestIndex = 0;
+ int bestValue = problems[0];
+ for (int i = 1; i < problems.length; ++i) {
+ if (problems[i] < bestValue) {
+ bestIndex = i;
+ bestValue = problems[i];
+ }
+ }
+
+ //IASTAmbiguityParent owner = (IASTAmbiguityParent) getParent();
+ owner.replace(nodeToReplace, nodez[bestIndex]);
+ return true;
+ }
+
+ public void addDeclarator(IASTDeclarator declarator) {
+ if(declarator != null) {
+ declarators.add(declarator);
+ declarator.setParent(this);
+ declarator.setPropertyInParent(null); // it really doesn't matter
+ }
+ }
+
+ private IASTDeclarator getDefaultDeclarator() {
+ return declarators.get(0);
+ }
+
+ public void addPointerOperator(IASTPointerOperator operator) {
+ getDefaultDeclarator().addPointerOperator(operator);
+ }
+
+ public void setInitializer(IASTInitializer initializer) {
+ getDefaultDeclarator().setInitializer(initializer);
+ }
+
+ public void setName(IASTName name) {
+ getDefaultDeclarator().setName(name);
+ }
+
+ public void setNestedDeclarator(IASTDeclarator nested) {
+ getDefaultDeclarator().setNestedDeclarator(nested);
+ }
+
+ public IASTInitializer getInitializer() {
+ return getDefaultDeclarator().getInitializer();
+ }
+
+ public IASTName getName() {
+ return getDefaultDeclarator().getName();
+ }
+
+ public IASTDeclarator getNestedDeclarator() {
+ return getDefaultDeclarator().getNestedDeclarator();
+ }
+
+ public IASTPointerOperator[] getPointerOperators() {
+ return getDefaultDeclarator().getPointerOperators();
+ }
+
+ public int getRoleForName(IASTName n) {
+ return getDefaultDeclarator().getRoleForName(n);
+ }
+
+
+}
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 7b5d44c3dc..93331543d2 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
@@ -187,6 +187,8 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.OverloadableOperator;
/**
* Abstract factory implementation that creates C++ AST nodes.
*
+ * TODO rename, its convention for AST nodes to start with CPPAST...
+ *
* @author Mike Kucera
*/
@SuppressWarnings("restriction") // all AST node constructors are internal
@@ -377,7 +379,7 @@ public class CPPASTNodeFactory implements ICPPASTNodeFactory {
}
public IASTSimpleDeclaration newSimpleDeclaration(IASTDeclSpecifier declSpecifier) {
- return new CPPASTSimpleDeclaration(declSpecifier);
+ return new ISOCPPASTSimpleDeclaration(declSpecifier);
}
public IASTInitializerExpression newInitializerExpression(IASTExpression expression) {
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 f47eca358d..d5035c2569 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
@@ -10,8 +10,8 @@
*******************************************************************************/
package org.eclipse.cdt.core.dom.lrparser.action.cpp;
-import static org.eclipse.cdt.core.parser.util.CollectionUtils.*;
-
+import static org.eclipse.cdt.core.parser.util.CollectionUtils.findFirstAndRemove;
+import static org.eclipse.cdt.core.parser.util.CollectionUtils.reverseIterable;
import static org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPParsersym.*;
import java.util.Collections;
@@ -20,16 +20,17 @@ import java.util.List;
import lpg.lpgjavaruntime.IToken;
+import org.eclipse.cdt.core.dom.ast.ASTVisitor;
import org.eclipse.cdt.core.dom.ast.IASTASMDeclaration;
import org.eclipse.cdt.core.dom.ast.IASTCompositeTypeSpecifier;
import org.eclipse.cdt.core.dom.ast.IASTCompoundStatement;
import org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier;
import org.eclipse.cdt.core.dom.ast.IASTDeclaration;
-import org.eclipse.cdt.core.dom.ast.IASTDeclarationStatement;
import org.eclipse.cdt.core.dom.ast.IASTDeclarator;
import org.eclipse.cdt.core.dom.ast.IASTElaboratedTypeSpecifier;
import org.eclipse.cdt.core.dom.ast.IASTExpression;
import org.eclipse.cdt.core.dom.ast.IASTFieldReference;
+import org.eclipse.cdt.core.dom.ast.IASTFunctionDeclarator;
import org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition;
import org.eclipse.cdt.core.dom.ast.IASTIfStatement;
import org.eclipse.cdt.core.dom.ast.IASTInitializer;
@@ -40,6 +41,7 @@ import org.eclipse.cdt.core.dom.ast.IASTNode;
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.IASTSimpleDeclSpecifier;
import org.eclipse.cdt.core.dom.ast.IASTSimpleDeclaration;
import org.eclipse.cdt.core.dom.ast.IASTStatement;
@@ -75,7 +77,6 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateId;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateParameter;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateSpecialization;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplatedTypeTemplateParameter;
-import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTranslationUnit;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTryBlockStatement;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTypenameExpression;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUnaryExpression;
@@ -87,15 +88,13 @@ import org.eclipse.cdt.core.dom.lrparser.IParser;
import org.eclipse.cdt.core.dom.lrparser.IParserActionTokenProvider;
import org.eclipse.cdt.core.dom.lrparser.LPGTokenAdapter;
import org.eclipse.cdt.core.dom.lrparser.action.BuildASTParserAction;
-import org.eclipse.cdt.core.parser.util.CollectionUtils;
+import org.eclipse.cdt.core.parser.util.ASTPrinter;
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.C99Parsersym;
import org.eclipse.cdt.internal.core.dom.lrparser.cpp.CPPExpressionStatementParser;
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.parser.cpp.CPPASTFunctionDeclarator;
import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTQualifiedName;
import org.eclipse.cdt.internal.core.dom.parser.cpp.OverloadableOperator;
@@ -130,22 +129,21 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
@Override
protected IParser getExpressionStatementParser() {
- DebugUtil.printMethodTrace();
return new CPPExpressionStatementParser(parser.getOrderedTerminalSymbols());
}
@Override
protected IParser getNoCastExpressionParser() {
- DebugUtil.printMethodTrace();
return new CPPNoCastExpressionParser(parser.getOrderedTerminalSymbols());
}
@Override
protected IParser getSizeofExpressionParser() {
- DebugUtil.printMethodTrace();
return new CPPSizeofExpressionParser(parser.getOrderedTerminalSymbols());
}
+
+
/**
* new_expression
@@ -964,8 +962,7 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
* object to determine how to set a specifier.
*/
protected void setSpecifier(IASTDeclSpecifier node, IToken token) {
- //TODO int kind = asC99Kind(token);
-
+ //TODO int kind = asC99Kind(token)
int kind = token.getKind();
switch(kind){
case TK_typedef: node.setStorageClass(IASTDeclSpecifier.sc_typedef); return;
@@ -1081,8 +1078,9 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
private static int getElaboratedTypeSpecifier(IToken token) {
- switch(token.getKind()) {
- default: assert false;
+ int kind = token.getKind();
+ switch(kind) {
+ default: assert false : "wrong token kind: " + kind; //$NON-NLS-1$
case TK_struct: return IASTElaboratedTypeSpecifier.k_struct;
case TK_union: return IASTElaboratedTypeSpecifier.k_union;
case TK_enum: return IASTElaboratedTypeSpecifier.k_enum;
@@ -1091,6 +1089,121 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
}
+
+ /**
+ * simple_declaration
+ * ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ';'
+ *
+ * TODO: remove attemptAmbiguityResolution parameter
+ */
+ public void consumeDeclarationSimple(boolean hasDeclaratorList, boolean attemptAmbiguityResolution) {
+ if(TRACE_ACTIONS) DebugUtil.printMethodTrace();
+
+ List<Object> declarators = (hasDeclaratorList) ? astStack.closeScope() : Collections.emptyList();
+ IASTDeclSpecifier declSpecifier = (IASTDeclSpecifier) astStack.pop(); // may be null
+
+ // do not generate nodes for extra EOC tokens
+ if(matchTokens(parser.getRuleTokens(), CPPParsersym.TK_EndOfCompletion))
+ return;
+
+ if(declSpecifier == null) { // can happen if implicit int is used
+ declSpecifier = nodeFactory.newSimpleDeclSpecifier();
+ setOffsetAndLength(declSpecifier, parser.getLeftIToken().getStartOffset(), 0);
+ }
+
+ IASTSimpleDeclaration declaration = nodeFactory.newSimpleDeclaration(declSpecifier);
+ setOffsetAndLength(declaration);
+ for(Object declarator : declarators)
+ declaration.addDeclarator((IASTDeclarator)declarator);
+
+ astStack.push(declaration);
+
+// IASTNode alternateDeclaration = null;
+// if(attemptAmbiguityResolution) {// && hasConstructorInitializer(declaration)) { // try to resolve the constructor initializer ambiguity
+// // TODO should this ambiguity be resolved here, or at the level of individual declarators?
+// IParser alternateParser = new CPPNoConstructorInitializerParser(parser.getOrderedTerminalSymbols());
+// alternateDeclaration = runSecondaryParser(alternateParser);
+// }
+//
+// if(alternateDeclaration == null || alternateDeclaration instanceof IASTProblemDeclaration)
+// astStack.push(declaration);
+// else {
+// System.out.println("Ambiguous Declaration in my parser!");
+//// ASTPrinter.print(declaration);
+//// System.out.println();
+//// ASTPrinter.print(alternateDeclaration);
+//// System.out.println();
+//
+// IASTNode ambiguityNode = nodeFactory.newAmbiguousDeclaration((IASTDeclaration)alternateDeclaration, declaration);
+// setOffsetAndLength(ambiguityNode);
+// astStack.push(ambiguityNode);
+// }
+//
+
+
+ if(TRACE_AST_STACK) System.out.println(astStack);
+ }
+
+
+ public void consumeInitDeclaratorComplete() {
+ DebugUtil.printMethodTrace();
+
+ IASTDeclarator declarator = (IASTDeclarator) astStack.peek();
+ if(!(declarator instanceof IASTFunctionDeclarator))
+ return;
+
+ IParser alternateParser = new CPPNoFunctionDeclaratorParser(parser.getOrderedTerminalSymbols());
+ IASTNode alternateDeclarator = runSecondaryParser(alternateParser);
+
+ if(alternateDeclarator == null || alternateDeclarator instanceof IASTProblemDeclaration)
+ return;
+
+
+ astStack.pop();
+ IASTNode ambiguityNode = new CPPASTAmbiguousDeclarator(declarator, (IASTDeclarator)alternateDeclarator);
+
+ System.out.println("AMBIGUOUS DECLARATOR!");
+// ASTPrinter.print(declarator);
+// System.out.println();
+// ASTPrinter.print(alternateDeclarator);
+// System.out.println();
+
+ setOffsetAndLength(ambiguityNode);
+ astStack.push(ambiguityNode);
+
+
+ if(TRACE_AST_STACK) System.out.println(astStack);
+ }
+
+
+
+ /**
+ * Returns true iff the given AST contains at least one constructor initializer node.
+ * Can be called on any AST node but is mean to be called on declarations or declarators.
+ *
+ * TODO how freaking inefficient is this?
+ */
+ private static boolean hasConstructorInitializer(IASTNode declaration) {
+ final boolean[] found = {false};
+
+ ASTVisitor detector = new ASTVisitor() {
+ {shouldVisitInitializers = true;}
+ @Override
+ public int visit(IASTInitializer initializer) {
+ if(initializer instanceof ICPPASTConstructorInitializer) {
+ found[0] = true; // who said Java doesn't have closures
+ return PROCESS_ABORT;
+ }
+ return PROCESS_CONTINUE;
+ }
+ };
+
+ declaration.accept(detector);
+ System.out.println("hasConstructorInitializer: " + found[0]);
+ return found[0];
+ }
+
+
/**
* visibility_label
* ::= access_specifier_keyword ':'
@@ -1109,8 +1222,9 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
private static int getAccessSpecifier(IToken token) {
- switch(token.getKind()) {
- default: assert false;
+ int kind = token.getKind();
+ switch(kind) {
+ default: assert false : "wrong token kind: " + kind; //$NON-NLS-1$
case TK_private: return ICPPASTVisiblityLabel.v_private;
case TK_public: return ICPPASTVisiblityLabel.v_public;
case TK_protected: return ICPPASTVisiblityLabel.v_protected;
@@ -1218,8 +1332,9 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
private static int getCompositeTypeSpecifier(IToken token) {
- switch(token.getKind()) {
- default: assert false;
+ int kind = token.getKind();
+ switch(kind) {
+ default: assert false : "wrong token kind: " + kind; //$NON-NLS-1$
case TK_struct: return IASTCompositeTypeSpecifier.k_struct;
case TK_union: return IASTCompositeTypeSpecifier.k_union;
case TK_class: return ICPPASTCompositeTypeSpecifier.k_class;
@@ -1325,8 +1440,9 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
}
for(Object token : astStack.closeScope()) {
- switch(((IToken)token).getKind()) {
- default: assert false;
+ int kind = ((IToken)token).getKind();
+ switch(kind) {
+ default: assert false : "wrong token kind: " + kind; //$NON-NLS-1$
case TK_const: declarator.setConst(true); break;
case TK_volatile: declarator.setVolatile(true); break;
}
@@ -1501,8 +1617,9 @@ public class CPPBuildASTParserAction extends BuildASTParserAction {
}
private static int getTemplateParameterType(IToken token) {
- switch(token.getKind()) {
- default: assert false;
+ int kind = token.getKind();
+ switch(kind) {
+ default: assert false : "wrong token kind: " + kind; //$NON-NLS-1$
case TK_class: return ICPPASTSimpleTypeTemplateParameter.st_class;
case TK_typename: return ICPPASTSimpleTypeTemplateParameter.st_typename;
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ISOCPPASTSimpleDeclaration.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ISOCPPASTSimpleDeclaration.java
new file mode 100644
index 0000000000..5d9427dbe6
--- /dev/null
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/core/dom/lrparser/action/cpp/ISOCPPASTSimpleDeclaration.java
@@ -0,0 +1,35 @@
+package org.eclipse.cdt.core.dom.lrparser.action.cpp;
+
+import org.eclipse.cdt.core.dom.ast.IASTDeclSpecifier;
+import org.eclipse.cdt.core.dom.ast.IASTDeclarator;
+import org.eclipse.cdt.core.dom.ast.IASTNode;
+import org.eclipse.cdt.internal.core.dom.parser.IASTAmbiguityParent;
+import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTSimpleDeclaration;
+
+/**
+ * TODO this functionality should be moved into CPPASTSimpleDeclaration
+ * @author Mike Kucera
+ *
+ */
+public class ISOCPPASTSimpleDeclaration extends CPPASTSimpleDeclaration implements IASTAmbiguityParent {
+
+ public ISOCPPASTSimpleDeclaration() {
+ }
+
+ public ISOCPPASTSimpleDeclaration(IASTDeclSpecifier declSpecifier) {
+ super(declSpecifier);
+ }
+
+ public void replace(IASTNode child, IASTNode other) {
+ IASTDeclarator[] declarators = getDeclarators();
+ for(int i = 0; i < declarators.length; i++) {
+ if(declarators[i] == child) {
+ declarators[i] = (IASTDeclarator)other;
+ other.setParent(child.getParent());
+ other.setPropertyInParent(child.getPropertyInParent());
+ break;
+ }
+ }
+ }
+
+}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java
index 20dcda3a3c..34f4400af5 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParser.java
@@ -213,7 +213,7 @@ public int getKind(int i) {
int kind = super.getKind(i);
// There used to be a special token kind for zero used to parser pure virtual function declarations.
- // But it turned out to be easier to just parse them as an init_declarator and programaticaly check
+ // But it turned out to be easier to just parse them as an init_ declarator and programaticaly check
// for pure virtual, see consumeMemberDeclaratorWithInitializer().
//if(kind == CPPParsersym.TK_integer && "0".equals(getTokenText(i))) { //$NON-NLS-1$
@@ -1221,14 +1221,14 @@ public CPPExpressionStatementParser(String[] mapFrom) { // constructor
// Rule 221: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
//
case 221: { action.builder.
- consumeDeclarationSimple(true); break;
+ consumeDeclarationSimple(true, true); break;
}
//
// Rule 222: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
//
case 222: { action.builder.
- consumeDeclarationSimple(true); break;
+ consumeDeclarationSimple(true, false); break;
}
//
@@ -1449,660 +1449,667 @@ public CPPExpressionStatementParser(String[] mapFrom) { // constructor
}
//
- // Rule 312: init_declarator ::= declarator initializer
+ // Rule 311: init_declarator_complete ::= init_declarator
//
- case 312: { action.builder.
+ case 311: { action.builder.
+ consumeInitDeclaratorComplete(); break;
+ }
+
+ //
+ // Rule 313: init_declarator ::= declarator initializer
+ //
+ case 313: { action.builder.
consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 314: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
+ // Rule 315: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
//
- case 314: { action.builder.
+ case 315: { action.builder.
consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 316: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
+ // Rule 317: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
//
- case 316: { action.builder.
+ case 317: { action.builder.
consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 320: basic_direct_declarator ::= declarator_id_name
+ // Rule 321: basic_direct_declarator ::= declarator_id_name
//
- case 320: { action.builder.
+ case 321: { action.builder.
consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 321: basic_direct_declarator ::= ( declarator )
+ // Rule 322: basic_direct_declarator ::= ( declarator )
//
- case 321: { action.builder.
+ case 322: { action.builder.
consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 322: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ // Rule 323: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
- case 322: { action.builder.
+ case 323: { action.builder.
consumeDirectDeclaratorFunctionDeclarator(true); break;
}
//
- // Rule 323: array_direct_declarator ::= array_direct_declarator array_modifier
+ // Rule 324: array_direct_declarator ::= array_direct_declarator array_modifier
//
- case 323: { action.builder.
+ case 324: { action.builder.
consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 324: array_direct_declarator ::= basic_direct_declarator array_modifier
+ // Rule 325: array_direct_declarator ::= basic_direct_declarator array_modifier
//
- case 324: { action.builder.
+ case 325: { action.builder.
consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 325: array_modifier ::= [ constant_expression ]
+ // Rule 326: array_modifier ::= [ constant_expression ]
//
- case 325: { action.builder.
+ case 326: { action.builder.
consumeDirectDeclaratorArrayModifier(true); break;
}
//
- // Rule 326: array_modifier ::= [ ]
+ // Rule 327: array_modifier ::= [ ]
//
- case 326: { action.builder.
+ case 327: { action.builder.
consumeDirectDeclaratorArrayModifier(false); break;
}
//
- // Rule 327: ptr_operator ::= * <openscope-ast> cv_qualifier_seq_opt
+ // Rule 328: ptr_operator ::= * <openscope-ast> cv_qualifier_seq_opt
//
- case 327: { action.builder.
+ case 328: { action.builder.
consumePointer(); break;
}
//
- // Rule 328: ptr_operator ::= &
+ // Rule 329: ptr_operator ::= &
//
- case 328: { action.builder.
+ case 329: { action.builder.
consumeReferenceOperator(); break;
}
//
- // Rule 329: ptr_operator ::= dcolon_opt nested_name_specifier * <openscope-ast> cv_qualifier_seq_opt
+ // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier * <openscope-ast> cv_qualifier_seq_opt
//
- case 329: { action.builder.
+ case 330: { action.builder.
consumePointerToMember(); break;
}
//
- // Rule 335: cv_qualifier ::= const
+ // Rule 336: cv_qualifier ::= const
//
- case 335: { action.builder.
+ case 336: { action.builder.
consumeDeclSpecToken(); break;
}
//
- // Rule 336: cv_qualifier ::= volatile
+ // Rule 337: cv_qualifier ::= volatile
//
- case 336: { action.builder.
+ case 337: { action.builder.
consumeDeclSpecToken(); break;
}
//
- // Rule 338: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
+ // Rule 339: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
//
- case 338: { action.builder.
+ case 339: { action.builder.
consumeQualifiedId(false); break;
}
//
- // Rule 339: type_id ::= type_specifier_seq
+ // Rule 340: type_id ::= type_specifier_seq
//
- case 339: { action.builder.
+ case 340: { action.builder.
consumeTypeId(false); break;
}
//
- // Rule 340: type_id ::= type_specifier_seq abstract_declarator
+ // Rule 341: type_id ::= type_specifier_seq abstract_declarator
//
- case 340: { action.builder.
+ case 341: { action.builder.
consumeTypeId(true); break;
}
//
- // Rule 343: abstract_declarator ::= <openscope-ast> ptr_operator_seq
+ // Rule 344: abstract_declarator ::= <openscope-ast> ptr_operator_seq
//
- case 343: { action.builder.
+ case 344: { action.builder.
consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 344: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
+ // Rule 345: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
//
- case 344: { action.builder.
+ case 345: { action.builder.
consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 348: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ // Rule 349: basic_direct_abstract_declarator ::= ( abstract_declarator )
//
- case 348: { action.builder.
+ case 349: { action.builder.
consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 349: array_direct_abstract_declarator ::= array_modifier
+ // Rule 350: array_direct_abstract_declarator ::= array_modifier
//
- case 349: { action.builder.
+ case 350: { action.builder.
consumeDirectDeclaratorArrayDeclarator(false); break;
}
//
- // Rule 350: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ // Rule 351: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
//
- case 350: { action.builder.
+ case 351: { action.builder.
consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 351: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ // Rule 352: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
//
- case 351: { action.builder.
+ case 352: { action.builder.
consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 352: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ // Rule 353: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
- case 352: { action.builder.
+ case 353: { action.builder.
consumeDirectDeclaratorFunctionDeclarator(true); break;
}
//
- // Rule 353: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ // Rule 354: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
- case 353: { action.builder.
+ case 354: { action.builder.
consumeDirectDeclaratorFunctionDeclarator(false); break;
}
//
- // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt ...
+ // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt ...
//
- case 354: { action.builder.
+ case 355: { action.builder.
consumePlaceHolder(); break;
}
//
- // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt
+ // Rule 356: parameter_declaration_clause ::= parameter_declaration_list_opt
//
- case 355: { action.builder.
+ case 356: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 356: parameter_declaration_clause ::= parameter_declaration_list , ...
+ // Rule 357: parameter_declaration_clause ::= parameter_declaration_list , ...
//
- case 356: { action.builder.
+ case 357: { action.builder.
consumePlaceHolder(); break;
}
//
- // Rule 362: abstract_declarator_opt ::= $Empty
+ // Rule 363: abstract_declarator_opt ::= $Empty
//
- case 362: { action.builder.
+ case 363: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 363: parameter_declaration ::= declaration_specifiers parameter_init_declarator
+ // Rule 364: parameter_declaration ::= declaration_specifiers parameter_init_declarator
//
- case 363: { action.builder.
+ case 364: { action.builder.
consumeParameterDeclaration(); break;
}
//
- // Rule 364: parameter_declaration ::= declaration_specifiers
+ // Rule 365: parameter_declaration ::= declaration_specifiers
//
- case 364: { action.builder.
+ case 365: { action.builder.
consumeParameterDeclarationWithoutDeclarator(); break;
}
//
- // Rule 366: parameter_init_declarator ::= declarator = parameter_initializer
+ // Rule 367: parameter_init_declarator ::= declarator = parameter_initializer
//
- case 366: { action.builder.
+ case 367: { action.builder.
consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 368: parameter_init_declarator ::= abstract_declarator = parameter_initializer
+ // Rule 369: parameter_init_declarator ::= abstract_declarator = parameter_initializer
//
- case 368: { action.builder.
+ case 369: { action.builder.
consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 369: parameter_init_declarator ::= = parameter_initializer
+ // Rule 370: parameter_init_declarator ::= = parameter_initializer
//
- case 369: { action.builder.
+ case 370: { action.builder.
consumeDeclaratorWithInitializer(false); break;
}
//
- // Rule 370: parameter_initializer ::= assignment_expression
+ // Rule 371: parameter_initializer ::= assignment_expression
//
- case 370: { action.builder.
+ case 371: { action.builder.
consumeInitializer(); break;
}
//
- // Rule 371: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
+ // Rule 372: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
//
- case 371: { action.builder.
+ case 372: { action.builder.
consumeFunctionDefinition(false); break;
}
//
- // Rule 372: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
+ // Rule 373: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
//
- case 372: { action.builder.
+ case 373: { action.builder.
consumeFunctionDefinition(true); break;
}
//
- // Rule 375: initializer ::= ( expression_list )
+ // Rule 376: initializer ::= ( expression_list )
//
- case 375: { action.builder.
+ case 376: { action.builder.
consumeInitializerConstructor(); break;
}
//
- // Rule 376: initializer_clause ::= assignment_expression
+ // Rule 377: initializer_clause ::= assignment_expression
//
- case 376: { action.builder.
+ case 377: { action.builder.
consumeInitializer(); break;
}
//
- // Rule 377: initializer_clause ::= { <openscope-ast> initializer_list , }
+ // Rule 378: initializer_clause ::= { <openscope-ast> initializer_list , }
//
- case 377: { action.builder.
+ case 378: { action.builder.
consumeInitializerList(); break;
}
//
- // Rule 378: initializer_clause ::= { <openscope-ast> initializer_list }
+ // Rule 379: initializer_clause ::= { <openscope-ast> initializer_list }
//
- case 378: { action.builder.
+ case 379: { action.builder.
consumeInitializerList(); break;
}
//
- // Rule 379: initializer_clause ::= { <openscope-ast> }
+ // Rule 380: initializer_clause ::= { <openscope-ast> }
//
- case 379: { action.builder.
+ case 380: { action.builder.
consumeInitializerList(); break;
}
//
- // Rule 384: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
+ // Rule 385: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
//
- case 384: { action.builder.
+ case 385: { action.builder.
consumeClassSpecifier(); break;
}
//
- // Rule 385: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
+ // Rule 386: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
//
- case 385: { action.builder.
+ case 386: { action.builder.
consumeClassHead(false); break;
}
//
- // Rule 386: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt
+ // Rule 387: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt
//
- case 386: { action.builder.
+ case 387: { action.builder.
consumeClassHead(false); break;
}
//
- // Rule 387: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
+ // Rule 388: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
//
- case 387: { action.builder.
+ case 388: { action.builder.
consumeClassHead(true); break;
}
//
- // Rule 388: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt
+ // Rule 389: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt
//
- case 388: { action.builder.
+ case 389: { action.builder.
consumeClassHead(true); break;
}
//
- // Rule 390: identifier_name_opt ::= $Empty
+ // Rule 391: identifier_name_opt ::= $Empty
//
- case 390: { action.builder.
+ case 391: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 394: visibility_label ::= access_specifier_keyword :
+ // Rule 395: visibility_label ::= access_specifier_keyword :
//
- case 394: { action.builder.
+ case 395: { action.builder.
consumeVisibilityLabel(); break;
}
//
- // Rule 395: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
+ // Rule 396: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
//
- case 395: { action.builder.
- consumeDeclarationSimple(true); break;
+ case 396: { action.builder.
+ consumeDeclarationSimple(true, true); break;
}
//
- // Rule 396: member_declaration ::= declaration_specifiers_opt ;
+ // Rule 397: member_declaration ::= declaration_specifiers_opt ;
//
- case 396: { action.builder.
- consumeDeclarationSimple(false); break;
+ case 397: { action.builder.
+ consumeDeclarationSimple(false, false); break;
}
//
- // Rule 399: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
+ // Rule 400: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
//
- case 399: { action.builder.
+ case 400: { action.builder.
consumeMemberDeclarationQualifiedId(); break;
}
//
- // Rule 403: member_declaration ::= ERROR_TOKEN
+ // Rule 404: member_declaration ::= ERROR_TOKEN
//
- case 403: { action.builder.
+ case 404: { action.builder.
consumeDeclarationProblem(); break;
}
//
- // Rule 411: member_declarator ::= declarator constant_initializer
+ // Rule 412: member_declarator ::= declarator constant_initializer
//
- case 411: { action.builder.
+ case 412: { action.builder.
consumeMemberDeclaratorWithInitializer(); break;
}
//
- // Rule 412: member_declarator ::= bit_field_declarator : constant_expression
+ // Rule 413: member_declarator ::= bit_field_declarator : constant_expression
//
- case 412: { action.builder.
+ case 413: { action.builder.
consumeBitField(true); break;
}
//
- // Rule 413: member_declarator ::= : constant_expression
+ // Rule 414: member_declarator ::= : constant_expression
//
- case 413: { action.builder.
+ case 414: { action.builder.
consumeBitField(false); break;
}
//
- // Rule 414: bit_field_declarator ::= identifier_name
+ // Rule 415: bit_field_declarator ::= identifier_name
//
- case 414: { action.builder.
+ case 415: { action.builder.
consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 415: constant_initializer ::= = constant_expression
+ // Rule 416: constant_initializer ::= = constant_expression
//
- case 415: { action.builder.
+ case 416: { action.builder.
consumeInitializer(); break;
}
//
- // Rule 421: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
+ // Rule 422: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
//
- case 421: { action.builder.
+ case 422: { action.builder.
consumeBaseSpecifier(false, false); break;
}
//
- // Rule 422: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
+ // Rule 423: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
//
- case 422: { action.builder.
+ case 423: { action.builder.
consumeBaseSpecifier(true, true); break;
}
//
- // Rule 423: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
+ // Rule 424: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
//
- case 423: { action.builder.
+ case 424: { action.builder.
consumeBaseSpecifier(true, true); break;
}
//
- // Rule 424: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
+ // Rule 425: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
//
- case 424: { action.builder.
+ case 425: { action.builder.
consumeBaseSpecifier(true, false); break;
}
//
- // Rule 425: access_specifier_keyword ::= private
+ // Rule 426: access_specifier_keyword ::= private
//
- case 425: { action.builder.
+ case 426: { action.builder.
consumeAccessKeywordToken(); break;
}
//
- // Rule 426: access_specifier_keyword ::= protected
+ // Rule 427: access_specifier_keyword ::= protected
//
- case 426: { action.builder.
+ case 427: { action.builder.
consumeAccessKeywordToken(); break;
}
//
- // Rule 427: access_specifier_keyword ::= public
+ // Rule 428: access_specifier_keyword ::= public
//
- case 427: { action.builder.
+ case 428: { action.builder.
consumeAccessKeywordToken(); break;
}
//
- // Rule 429: access_specifier_keyword_opt ::= $Empty
+ // Rule 430: access_specifier_keyword_opt ::= $Empty
//
- case 429: { action.builder.
+ case 430: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 430: conversion_function_id_name ::= operator conversion_type_id
+ // Rule 431: conversion_function_id_name ::= operator conversion_type_id
//
- case 430: { action.builder.
+ case 431: { action.builder.
consumeConversionName(); break;
}
//
- // Rule 431: conversion_type_id ::= type_specifier_seq conversion_declarator
+ // Rule 432: conversion_type_id ::= type_specifier_seq conversion_declarator
//
- case 431: { action.builder.
+ case 432: { action.builder.
consumeTypeId(true); break;
}
//
- // Rule 432: conversion_type_id ::= type_specifier_seq
+ // Rule 433: conversion_type_id ::= type_specifier_seq
//
- case 432: { action.builder.
+ case 433: { action.builder.
consumeTypeId(false); break;
}
//
- // Rule 433: conversion_declarator ::= <openscope-ast> ptr_operator_seq
+ // Rule 434: conversion_declarator ::= <openscope-ast> ptr_operator_seq
//
- case 433: { action.builder.
+ case 434: { action.builder.
consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 439: mem_initializer ::= mem_initializer_name ( expression_list_opt )
+ // Rule 440: mem_initializer ::= mem_initializer_name ( expression_list_opt )
//
- case 439: { action.builder.
+ case 440: { action.builder.
consumeConstructorChainInitializer(); break;
}
//
- // Rule 440: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
+ // Rule 441: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
//
- case 440: { action.builder.
+ case 441: { action.builder.
consumeQualifiedId(false); break;
}
//
- // Rule 443: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
+ // Rule 444: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
//
- case 443: { action.builder.
+ case 444: { action.builder.
consumeTemplateId(); break;
}
//
- // Rule 444: operator_id_name ::= operator overloadable_operator
+ // Rule 445: operator_id_name ::= operator overloadable_operator
//
- case 444: { action.builder.
+ case 445: { action.builder.
consumeOperatorName(); break;
}
//
- // Rule 487: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
+ // Rule 488: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
//
- case 487: { action.builder.
+ case 488: { action.builder.
consumeTemplateDeclaration(); break;
}
//
- // Rule 488: export_opt ::= export
+ // Rule 489: export_opt ::= export
//
- case 488: { action.builder.
+ case 489: { action.builder.
consumePlaceHolder(); break;
}
//
- // Rule 489: export_opt ::= $Empty
+ // Rule 490: export_opt ::= $Empty
//
- case 489: { action.builder.
+ case 490: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 494: type_parameter ::= class identifier_name_opt
+ // Rule 495: type_parameter ::= class identifier_name_opt
//
- case 494: { action.builder.
+ case 495: { action.builder.
consumeSimpleTypeTemplateParameter(false); break;
}
//
- // Rule 495: type_parameter ::= class identifier_name_opt = type_id
+ // Rule 496: type_parameter ::= class identifier_name_opt = type_id
//
- case 495: { action.builder.
+ case 496: { action.builder.
consumeSimpleTypeTemplateParameter(true); break;
}
//
- // Rule 496: type_parameter ::= typename identifier_name_opt
+ // Rule 497: type_parameter ::= typename identifier_name_opt
//
- case 496: { action.builder.
+ case 497: { action.builder.
consumeSimpleTypeTemplateParameter(false); break;
}
//
- // Rule 497: type_parameter ::= typename identifier_name_opt = type_id
+ // Rule 498: type_parameter ::= typename identifier_name_opt = type_id
//
- case 497: { action.builder.
+ case 498: { action.builder.
consumeSimpleTypeTemplateParameter(true); break;
}
//
- // Rule 498: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
+ // Rule 499: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
//
- case 498: { action.builder.
+ case 499: { action.builder.
consumeTemplatedTypeTemplateParameter(false); break;
}
//
- // Rule 499: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
+ // Rule 500: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
//
- case 499: { action.builder.
+ case 500: { action.builder.
consumeTemplatedTypeTemplateParameter(true); break;
}
//
- // Rule 500: template_id_name ::= template_identifier < <openscope-ast> template_argument_list_opt >
+ // Rule 501: template_id_name ::= template_identifier < <openscope-ast> template_argument_list_opt >
//
- case 500: { action.builder.
+ case 501: { action.builder.
consumeTemplateId(); break;
}
//
- // Rule 509: explicit_instantiation ::= template declaration
+ // Rule 510: explicit_instantiation ::= template declaration
//
- case 509: { action.builder.
+ case 510: { action.builder.
consumeTemplateExplicitInstantiation(); break;
}
//
- // Rule 510: explicit_specialization ::= template < > declaration
+ // Rule 511: explicit_specialization ::= template < > declaration
//
- case 510: { action.builder.
+ case 511: { action.builder.
consumeTemplateExplicitSpecialization(); break;
}
//
- // Rule 511: try_block ::= try compound_statement <openscope-ast> handler_seq
+ // Rule 512: try_block ::= try compound_statement <openscope-ast> handler_seq
//
- case 511: { action.builder.
+ case 512: { action.builder.
consumeStatementTryBlock(); break;
}
//
- // Rule 514: handler ::= catch ( exception_declaration ) compound_statement
+ // Rule 515: handler ::= catch ( exception_declaration ) compound_statement
//
- case 514: { action.builder.
+ case 515: { action.builder.
consumeStatementCatchHandler(false); break;
}
//
- // Rule 515: handler ::= catch ( ... ) compound_statement
+ // Rule 516: handler ::= catch ( ... ) compound_statement
//
- case 515: { action.builder.
+ case 516: { action.builder.
consumeStatementCatchHandler(true); break;
}
//
- // Rule 516: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
+ // Rule 517: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
//
- case 516: { action.builder.
- consumeDeclarationSimple(true); break;
+ case 517: { action.builder.
+ consumeDeclarationSimple(true, false); break;
}
//
- // Rule 517: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
+ // Rule 518: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
//
- case 517: { action.builder.
- consumeDeclarationSimple(true); break;
+ case 518: { action.builder.
+ consumeDeclarationSimple(true, false); break;
}
//
- // Rule 518: exception_declaration ::= type_specifier_seq
+ // Rule 519: exception_declaration ::= type_specifier_seq
//
- case 518: { action.builder.
- consumeDeclarationSimple(false); break;
+ case 519: { action.builder.
+ consumeDeclarationSimple(false, false); break;
}
//
- // Rule 526: expression_parser_start ::= ERROR_TOKEN
+ // Rule 527: expression_parser_start ::= ERROR_TOKEN
//
- case 526: { action.builder.
+ case 527: { action.builder.
consumeExpressionProblem(); break;
}
diff --git a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java
index 38aa0ce7c0..1f064bf719 100644
--- a/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPExpressionStatementParserprs.java
@@ -68,470 +68,464 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse
5,4,5,6,1,3,1,0,1,3,
1,1,1,1,1,6,6,5,7,6,
1,0,6,5,6,4,1,3,1,0,
- 1,2,1,3,1,3,1,1,1,1,
- 3,9,2,2,3,2,3,1,5,1,
- 2,2,1,0,1,1,1,3,1,2,
- 1,1,2,3,1,1,1,3,1,2,
- 2,9,8,2,1,3,1,3,1,0,
- 1,0,2,1,1,3,1,3,2,1,
- 5,8,1,2,3,1,5,4,3,1,
- 3,1,1,5,4,4,5,5,1,0,
- 1,1,1,2,4,2,2,1,5,1,
- 1,1,1,1,2,1,0,1,3,1,
- 2,3,2,1,2,2,1,0,1,3,
- 3,5,5,4,1,1,1,1,0,2,
- 2,1,2,2,1,0,1,3,4,3,
- 1,1,5,2,1,1,3,3,1,1,
+ 1,1,2,1,3,1,3,1,1,1,
+ 1,3,9,2,2,3,2,3,1,5,
+ 1,2,2,1,0,1,1,1,3,1,
+ 2,1,1,2,3,1,1,1,3,1,
+ 2,2,9,8,2,1,3,1,3,1,
+ 0,1,0,2,1,1,3,1,3,2,
+ 1,5,8,1,2,3,1,5,4,3,
+ 1,3,1,1,5,4,4,5,5,1,
+ 0,1,1,1,2,4,2,2,1,5,
+ 1,1,1,1,1,2,1,0,1,3,
+ 1,2,3,2,1,2,2,1,0,1,
+ 3,3,5,5,4,1,1,1,1,0,
+ 2,2,1,2,2,1,0,1,3,4,
+ 3,1,1,5,2,1,1,3,3,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,2,2,7,1,0,1,
- 3,1,1,2,4,2,4,7,9,5,
- 1,1,3,1,0,1,1,1,2,4,
- 4,1,2,5,5,3,3,1,4,3,
- 1,0,1,3,2,1,-63,0,0,0,
- 0,-54,0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,2,2,7,1,0,
+ 1,3,1,1,2,4,2,4,7,9,
+ 5,1,1,3,1,0,1,1,1,2,
+ 4,4,1,2,5,5,3,3,1,4,
+ 3,1,0,1,3,2,1,-63,0,0,
+ 0,0,-54,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,
- -11,0,0,0,0,0,0,0,0,-72,
- 0,0,0,0,-2,0,0,0,0,0,
- 0,0,-89,0,0,0,0,0,0,0,
+ 0,-50,0,0,0,0,0,0,0,0,
+ 0,-11,0,0,0,0,0,0,0,0,
+ -72,0,0,0,0,-2,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,-51,0,0,0,
- 0,0,-57,0,0,0,0,0,-5,0,
- -20,0,0,0,0,-6,0,0,0,0,
+ 0,0,0,0,0,0,0,-434,0,0,
+ 0,0,-124,0,0,0,0,0,0,-5,
+ 0,-20,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,-73,0,0,
+ 0,0,0,0,0,0,0,0,-365,-516,
0,0,0,0,0,0,0,0,0,0,
- -176,0,0,0,0,-3,0,-7,0,0,
- 0,0,0,0,-116,0,0,0,0,0,
+ 0,0,-6,-181,0,-370,0,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,
- 0,0,0,0,0,0,0,0,-114,0,
- 0,0,0,-53,-8,0,0,-420,-292,0,
- -17,0,0,0,0,-60,-58,0,0,0,
- -131,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-7,0,0,0,
+ -288,0,0,0,0,-145,-8,0,0,0,
+ 0,0,-17,0,0,0,0,-60,-58,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,
- -9,0,0,0,-374,0,0,0,0,0,
- -10,0,0,0,0,0,-185,0,0,0,
- 0,0,-177,0,0,0,-144,0,0,0,
- 0,0,0,0,0,0,0,-224,-134,0,
+ 0,0,-244,0,0,0,-374,0,0,0,
+ 0,0,0,0,0,0,-208,0,0,0,
+ 0,0,-40,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-12,0,0,0,0,-65,0,0,
- 0,0,0,0,0,0,0,-143,-117,0,
- 0,-61,0,0,0,-516,0,0,0,0,
- -13,0,0,0,0,0,0,0,0,0,
- 0,-147,0,0,0,0,0,0,0,0,
- 0,0,0,0,-66,0,0,-150,0,0,
- 0,0,-14,0,0,0,0,0,0,0,
- -208,-260,0,0,0,0,0,0,0,0,
- -222,0,0,0,0,0,0,0,0,0,
+ 0,-310,0,0,0,0,-1,0,0,0,
+ 0,0,-53,0,0,-147,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-176,0,
+ 0,0,0,0,-9,0,0,0,0,0,
+ 0,-148,0,0,0,0,0,-309,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-181,0,0,0,0,0,
- 0,0,0,-124,0,0,-233,0,0,0,
- -514,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-10,-66,0,0,
+ 0,-117,0,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,-127,0,0,0,0,-183,
- 0,0,0,0,0,0,0,0,0,-129,
- 0,0,0,-327,0,0,0,0,0,-244,
- 0,0,0,0,-241,0,0,-16,-353,0,
- 0,0,0,-365,0,0,0,0,0,-235,
- 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,-108,0,
- 0,0,0,-310,0,0,0,0,-139,0,
- 0,0,0,0,0,0,0,0,-263,0,
- -242,0,0,0,0,0,-228,-148,0,0,
- 0,0,0,-4,0,0,0,0,0,0,
+ 0,0,0,-339,0,0,0,-57,0,0,
+ 0,0,0,-61,0,0,-12,0,0,-65,
+ 0,0,0,-514,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-415,0,0,0,0,-230,0,0,
- 0,0,-419,0,0,0,-400,-136,0,-249,
- 0,0,0,0,0,0,0,0,-344,0,
- 0,0,0,0,-276,0,0,0,0,0,
+ 0,0,0,-13,0,0,0,0,0,0,
+ 0,0,-14,-246,0,0,-73,0,0,0,
+ 0,-136,0,0,0,0,0,0,0,-177,
+ 0,0,-150,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-233,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,-184,0,0,0,0,0,0,
- 0,0,0,-288,-109,0,0,0,0,-312,
+ 0,0,-129,0,0,0,0,-143,0,0,
+ 0,0,0,0,0,0,0,-16,0,0,
+ 0,-400,-3,-144,0,0,0,0,-224,0,
+ 0,0,0,0,-29,-306,0,-4,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-204,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-30,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-29,-30,-313,0,0,0,0,-115,
+ 0,0,0,-327,0,0,0,0,-257,0,
+ 0,0,0,0,-185,0,0,0,0,-276,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-214,0,
- 0,0,0,-306,-297,0,0,0,0,0,
- 0,0,0,0,-146,0,0,0,0,-475,
- 0,0,0,0,-151,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-299,0,0,0,0,0,0,
+ 0,0,0,-331,0,0,0,0,0,0,
+ 0,0,0,-51,0,0,0,0,0,0,
+ 0,0,-415,0,-312,0,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,0,0,0,0,0,0,-228,0,
+ 0,0,0,0,-31,0,0,0,0,0,
+ 0,0,0,-32,-348,0,0,-33,0,0,
+ -313,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,0,0,-305,0,
- 0,0,0,-145,0,0,0,0,0,0,
- 0,0,0,-186,-188,0,0,0,0,0,
- -42,0,0,0,0,-130,0,0,0,0,
+ 0,0,0,0,-230,0,0,0,0,-34,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-191,0,0,0,0,0,
- -31,0,0,0,0,0,0,0,0,-200,
- -404,0,0,-95,0,0,0,0,0,0,
+ -109,0,0,-130,-35,-475,0,0,0,0,
+ -115,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-127,
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,-36,0,0,0,0,
+ 0,-42,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-32,0,0,0,-96,0,0,0,
+ 0,0,0,0,0,-183,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-95,0,0,
+ 0,0,-137,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,
- -202,0,0,0,0,0,-472,0,0,-97,
- 0,0,0,0,-141,0,0,0,0,0,
+ 0,-284,0,0,0,0,0,-37,0,0,
+ 0,0,0,0,0,0,-419,0,0,0,
+ -96,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-207,0,
- 0,0,0,0,0,0,0,0,-209,-33,
- 0,0,-98,0,0,0,0,0,0,0,
+ 0,0,0,0,-139,0,0,0,0,0,
+ 0,0,0,0,-184,0,0,0,0,0,
+ -38,0,0,-97,0,0,0,0,-141,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-186,0,0,
+ 0,0,0,0,0,0,0,-299,0,0,
+ 0,0,-146,0,0,0,-98,0,0,0,
+ 0,-151,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,-236,0,0,0,-99,0,0,0,0,
- -152,0,0,0,0,0,0,0,0,0,
+ -188,0,0,0,0,0,0,0,0,0,
+ -260,0,0,0,0,0,0,0,0,-99,
+ 0,0,0,0,-152,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,-243,-34,0,0,-100,0,
- 0,0,0,-198,0,0,0,0,0,0,
+ 0,0,0,-191,0,0,0,0,0,0,
+ 0,0,0,-305,0,0,0,0,-200,0,
+ 0,0,-100,0,0,0,0,-198,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-231,0,0,
- 0,0,0,0,0,0,0,-250,0,0,
- 0,-101,0,0,0,0,-251,0,0,0,
+ 0,0,0,0,0,0,-202,0,0,0,
+ 0,0,0,0,0,0,-207,0,0,0,
+ 0,0,0,0,0,-101,0,0,0,0,
+ -209,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-226,
+ 0,0,0,0,0,-39,0,0,0,-333,
+ 0,0,0,0,0,0,0,0,-102,0,
+ 0,0,0,-41,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,-231,0,0,0,0,0,-55,0,
+ 0,-103,0,0,0,0,-236,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,-256,0,0,0,0,
- 0,0,0,0,0,-333,0,0,0,0,
- 0,0,0,0,-102,0,0,0,0,-252,
+ 0,-56,0,0,0,-59,0,0,0,0,
+ 0,-404,0,0,-104,0,0,0,0,-243,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-275,0,
0,0,0,0,0,0,0,0,-342,0,
- 0,0,0,0,0,0,0,-103,0,0,
- 0,0,-253,0,0,0,0,0,0,0,
+ 0,0,0,-322,0,0,0,0,-343,0,
+ 0,0,0,0,0,0,0,-105,0,0,
+ 0,0,-250,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,-275,0,0,0,0,0,-420,0,0,
+ 0,-351,0,0,0,0,0,-67,0,0,
+ -134,0,0,0,0,-472,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-279,0,0,0,0,-287,-339,0,0,
- 0,0,0,0,0,0,0,-35,0,0,
- -104,0,0,0,0,-280,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-287,
+ 0,0,0,0,0,0,0,0,0,-215,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-300,0,0,0,0,0,
- -36,0,0,0,-343,0,0,0,0,-285,
- 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,-37,0,0,
- 0,0,0,0,0,0,0,-432,0,0,
- 0,0,-294,0,0,0,-215,0,0,0,
- 0,-295,0,0,0,0,0,0,0,0,
+ 0,0,0,-245,0,0,0,0,0,0,
+ 0,0,0,-258,0,0,0,0,0,0,
+ 0,0,0,-194,0,0,0,0,-68,-508,
0,0,0,0,0,0,0,0,0,0,
- -314,0,0,0,0,0,0,0,0,0,
- -351,0,0,0,0,0,-326,0,0,-508,
- 0,0,0,0,-317,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-320,0,0,0,0,0,0,
- 0,0,0,-372,0,0,0,0,0,0,
- 0,0,-309,0,0,0,0,-258,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-271,0,0,0,
- 0,-328,0,0,0,0,0,0,0,0,
- 0,-324,0,0,0,0,-38,0,0,0,
+ 0,0,0,-300,0,0,0,0,0,-70,
+ 0,0,-324,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-266,0,0,0,0,
- 0,0,0,0,0,-39,0,0,0,0,
- -269,0,0,0,0,-194,0,0,0,0,
+ 0,0,0,0,0,0,-71,0,0,0,
+ 0,-251,0,0,0,0,-252,0,0,0,
0,-337,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -330,-409,0,0,0,0,0,0,0,0,
- -360,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-110,0,0,0,0,
+ -353,0,0,0,0,-111,-253,0,0,0,
+ 0,-360,0,0,0,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,-41,0,0,0,0,-274,
- 0,0,0,0,-55,-325,0,0,0,-308,
+ 0,0,0,0,0,-271,0,0,0,0,
+ 0,-372,0,0,0,-285,0,0,0,0,
-361,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-367,0,0,0,0,0,
- -417,0,0,0,-349,0,0,0,0,-407,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-292,0,0,0,0,0,
+ 0,0,0,0,-112,0,0,0,0,-235,
+ 0,0,0,0,-248,0,0,0,0,0,
+ -407,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-286,0,
- 0,0,0,-19,0,0,0,0,-56,-107,
+ 0,0,0,0,0,0,0,0,0,-113,
+ -120,0,0,0,-354,0,0,0,0,-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,-366,-59,
- 0,0,0,-418,0,0,0,0,-94,0,
+ 0,0,0,-133,0,0,0,0,-314,0,
+ 0,0,0,0,0,0,-242,0,0,0,
+ 0,-399,0,0,-241,0,0,0,0,-94,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-316,-348,0,
- 0,0,0,0,-92,0,0,0,0,-322,
+ 0,0,0,-138,0,0,0,0,-204,0,
+ 0,0,0,-114,0,-92,0,0,0,0,
+ -294,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-267,0,
- 0,0,0,-434,-421,0,0,0,-93,0,
- 0,0,0,-67,0,0,0,0,0,0,
+ 0,0,0,0,0,-266,0,0,0,-93,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-350,0,0,
- 0,-90,0,0,0,0,-359,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-68,0,0,0,0,
- -91,0,0,0,0,-70,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-71,0,0,0,0,-52,
- 0,0,0,0,0,0,-110,0,-111,0,
- 0,0,0,0,0,0,0,0,-213,0,
- 0,0,0,-454,-83,0,0,0,0,0,
+ 0,0,-90,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-399,0,0,-84,0,0,0,0,
+ 0,-91,0,0,0,0,-325,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-15,
- 0,0,0,-505,0,-381,-385,0,0,0,
- 0,0,0,-48,0,0,0,0,-362,0,
- 0,0,0,0,-483,0,0,-463,-356,0,
- 0,0,0,-112,0,0,0,0,0,0,
- -113,-388,-423,0,0,0,0,0,0,-424,
- -428,0,0,-447,0,0,0,0,0,-120,
- 0,0,0,0,0,0,0,-85,0,0,
+ 0,0,0,0,0,-153,0,0,0,0,
+ -52,0,0,0,0,0,0,-249,0,0,
+ 0,0,-432,0,0,-154,0,0,0,-213,
+ 0,0,0,0,-155,-83,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-138,0,0,0,-86,0,0,0,0,
- -478,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-156,0,-157,-84,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,0,0,0,0,-87,0,0,0,
- 0,-422,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -246,0,0,-240,0,-153,0,-154,0,-248,
- 0,0,0,0,0,0,-444,-445,-331,-155,
- -156,0,0,0,0,0,0,0,-157,-158,
- 0,0,0,0,-378,0,0,0,0,0,
- 0,-282,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-159,0,0,
- 0,0,-232,0,0,0,0,-88,0,0,
- 0,0,-456,0,0,0,0,0,0,0,
+ -15,0,0,0,-158,0,-18,-142,0,0,
+ 0,0,0,0,-19,0,0,0,0,-211,
+ 0,0,0,0,0,-344,0,0,0,0,
+ 0,0,0,-159,-160,0,0,0,0,0,
+ 0,-232,0,-320,0,0,0,0,0,0,
+ -454,0,0,0,-460,0,-214,0,0,-295,
+ 0,0,0,0,0,0,0,0,0,-85,
+ 0,0,0,0,-161,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-451,0,0,-160,0,0,-161,-162,0,
- 0,0,0,0,0,-497,0,-163,0,-164,
- 0,0,0,-379,0,0,0,0,0,-507,
+ 0,0,0,0,0,0,0,-86,0,0,
+ 0,0,-279,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-165,-382,0,0,0,0,
- 0,-270,0,0,0,-78,0,0,0,0,
- -464,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-238,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-87,0,
+ 0,0,0,-317,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-346,0,-370,0,0,0,0,0,0,
- 0,0,0,0,0,-166,0,-460,-315,0,
- 0,0,0,0,-466,0,0,-301,0,0,
+ 0,0,0,0,0,-240,-162,-267,0,0,
+ 0,-315,0,0,0,0,-383,0,-382,-163,
+ 0,0,-349,0,0,0,0,0,0,0,
+ 0,0,0,-280,-362,0,0,0,0,-505,
+ 0,0,0,-282,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-483,0,0,
+ 0,0,0,0,0,-366,-164,0,0,-88,
+ 0,0,0,0,-165,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-167,-355,0,0,0,0,0,-229,
- 0,0,0,-79,0,0,0,0,0,0,
+ 0,0,0,-346,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-449,0,-409,
+ 0,-326,0,0,0,-270,0,0,0,0,
+ 0,-426,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-229,0,0,-496,0,0,
+ 0,0,0,0,0,0,0,-166,0,0,
+ -297,-507,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-301,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-119,0,
+ 0,0,-167,0,0,0,-128,0,0,0,
+ 0,-140,0,0,0,0,-355,-168,0,0,
+ 0,0,0,-378,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-421,0,-169,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-389,0,-502,
- 0,0,0,0,-168,0,0,0,0,0,
- 0,-457,0,0,-257,0,0,-234,0,0,
- 0,0,-119,-169,0,-496,0,-49,0,0,
+ 0,0,-328,0,0,0,0,0,0,0,
+ 0,0,-170,0,0,0,0,0,0,0,
+ 0,0,-62,0,0,0,-316,0,-269,0,
+ 0,0,0,0,0,0,0,0,0,-78,
0,0,0,0,0,0,0,0,0,0,
- 0,-170,-453,0,0,0,0,0,0,0,
- 0,-371,0,0,0,-500,0,0,0,0,
- 0,0,0,0,0,-468,0,0,0,0,
- 0,0,0,0,-171,0,-172,0,-173,0,
- -1,0,0,0,-405,0,-484,0,0,0,
- 0,0,0,0,0,0,0,0,0,-122,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-121,0,-79,0,0,0,0,
+ -308,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-174,-175,0,0,-178,0,0,-471,0,
- 0,0,0,0,0,0,0,0,0,-473,
- -74,0,0,0,0,0,-201,-296,0,0,
- -179,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-391,0,0,0,0,0,
- 0,0,-426,0,0,0,0,0,0,0,
+ 0,0,-389,-373,0,0,-171,0,-264,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-485,0,-62,0,-390,0,0,
- 0,-458,0,0,-373,0,0,0,0,0,
- -449,-180,-477,-128,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-189,
- 0,0,0,-501,0,0,-480,0,0,0,
- -245,0,-491,0,0,0,0,0,0,0,
- 0,0,-133,0,0,0,0,0,0,-459,
- 0,0,0,0,0,-190,-195,0,-476,0,
+ 0,-350,-172,-173,-174,0,0,0,0,0,
+ 0,0,0,-175,0,0,-178,-356,0,0,
+ -405,0,0,0,0,0,-179,0,0,0,
+ 0,0,0,0,0,0,-502,0,0,0,
+ 0,0,0,0,0,-474,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,-274,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-180,-135,0,-330,0,
+ -457,0,-345,0,0,0,-189,0,-190,0,
+ 0,0,0,0,0,0,0,-506,-195,-80,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-469,0,0,0,-197,
- 0,-481,0,-121,0,0,0,-487,0,-196,
- -486,-199,0,0,-123,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-474,
- 0,0,-210,0,0,-140,0,0,0,0,
- 0,0,0,0,0,0,-220,0,0,0,
- 0,0,0,0,0,0,-221,-223,0,0,
- 0,0,0,-499,0,0,0,0,0,0,
- -211,0,0,0,0,0,-237,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-498,-239,
- 0,-247,0,0,0,-506,0,0,-22,0,
+ 0,0,0,-234,0,0,0,0,0,0,
+ 0,0,0,0,-286,0,0,0,0,0,
+ -467,-196,0,0,-473,0,0,-199,0,0,
+ -390,0,0,-480,0,-359,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ -367,0,0,0,0,0,-417,0,-210,0,
+ 0,0,0,0,-381,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-220,0,
+ 0,0,0,0,0,0,0,-371,0,0,
+ 0,-385,0,-388,-422,0,0,-481,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-261,0,-80,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-81,0,0,
+ 0,0,0,-48,0,0,0,0,0,0,
+ 0,-149,0,0,0,0,-283,-221,0,0,
+ -223,-237,0,0,0,0,0,0,0,0,
+ 0,-418,-444,0,-239,-247,-182,0,0,0,
+ 0,0,-445,0,-261,0,0,0,-379,0,
+ 0,0,0,-262,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-272,-423,-453,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-22,0,0,0,0,-273,
0,0,0,0,0,0,0,0,0,0,
- 0,-82,0,0,0,0,-521,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,-319,0,0,0,0,
- -503,0,0,0,0,0,0,0,-21,0,
- 0,0,0,-311,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-262,-413,-272,-511,-513,-347,0,-512,0,
- 0,-44,-318,-268,-283,-273,0,0,0,0,
- 0,0,-277,0,0,0,0,0,0,-278,
- -289,0,0,-135,-293,0,0,-125,0,0,
- -438,0,0,0,0,0,-515,0,0,0,
- 0,0,0,0,0,0,0,-520,-298,0,
- 0,0,0,0,0,-303,0,0,0,0,
+ 0,0,0,-82,0,0,0,0,-277,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-304,-321,0,0,0,0,0,0,0,
- 0,0,0,0,-488,-336,0,0,0,0,
- 0,-518,-338,0,0,0,0,0,-368,0,
+ 0,0,0,0,0,0,0,-319,0,0,
+ 0,0,-278,0,0,0,0,0,0,0,
+ -21,0,0,0,0,-289,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-369,0,-523,0,0,0,0,0,
- 0,0,-490,0,0,0,0,0,-375,-377,
- 0,0,0,0,0,0,0,0,-416,-380,
- -386,0,-387,0,-395,-398,0,-406,0,-408,
- -410,0,-118,0,0,0,0,0,0,0,
- 0,0,0,-411,0,0,0,0,0,0,
- 0,0,0,0,0,0,-495,0,0,0,
- -412,0,-352,-254,-414,-383,0,0,0,-425,
- 0,0,0,0,0,0,0,0,0,-427,
- 0,-429,-255,-323,-430,0,0,0,0,0,
- -354,-431,0,0,-517,0,0,-433,-435,0,
- -436,-437,0,0,0,0,0,0,0,0,
- -467,0,0,0,-442,0,-446,-455,0,-462,
- 0,0,0,0,-470,0,0,0,0,0,
- 0,0,0,0,0,-489,-504,-509,0,0,
- 0,0,0,0,0,0,0,0,-522,0,
- 0,0,0,0,0,-392,0,0,0,0,
+ 0,0,0,-49,-413,-456,-296,-468,0,0,
+ -397,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-464,0,0,0,0,0,
+ 0,-197,0,0,0,-424,-428,0,-293,0,
+ 0,0,-438,0,0,-477,0,0,-298,-466,
+ 0,0,0,0,0,0,0,0,0,-478,
+ -303,0,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,-75,-106,0,0,0,0,0,
- 0,0,0,0,0,0,-525,0,0,0,
+ 0,0,0,0,0,0,-488,-471,0,0,
+ -447,0,0,-291,-485,0,0,0,-304,0,
+ -321,0,0,0,0,0,0,0,0,-451,
+ 0,-336,-338,0,0,0,0,0,0,0,
+ -368,0,-352,0,-490,0,0,0,0,0,
+ -369,-375,0,0,0,0,0,0,0,0,
+ -416,-377,-458,0,-380,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-484,0,0,-386,0,
+ 0,0,0,0,0,0,0,0,-459,0,
+ 0,0,-497,0,-491,-334,-122,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-216,0,0,0,0,0,0,0,0,
+ 0,-493,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-486,0,-387,-391,0,
+ 0,0,0,0,-193,0,0,0,0,0,
+ 0,0,-463,-495,-469,-500,-395,0,0,0,
+ -123,0,-398,-406,-408,-410,0,-265,0,0,
+ 0,0,0,0,0,-411,0,0,-501,0,
+ 0,0,0,0,0,-44,-498,0,0,-74,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-517,-412,0,
+ 0,0,0,0,0,0,0,-513,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,-487,0,-499,0,0,0,-518,0,
+ 0,-523,0,0,0,-503,0,0,0,0,
+ 0,0,-414,0,0,0,0,0,0,0,
+ 0,-522,-492,0,0,-510,0,0,-425,-427,
+ 0,0,0,-429,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-430,-75,0,-431,
+ 0,0,0,-521,0,-433,-435,-436,-45,-525,
+ 0,0,0,0,0,0,-437,0,0,0,
+ 0,0,0,0,0,-106,0,-442,0,-511,
+ 0,-512,0,0,-515,0,0,0,0,-446,
0,0,0,0,0,0,0,0,0,0,
+ 0,-455,-520,0,0,0,0,0,0,0,
+ 0,0,0,0,-462,0,0,0,0,-470,
+ 0,-489,-504,0,0,-509,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,-23,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,-24,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-25,
+ 0,0,-25,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-26,0,0,0,0,
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,-27,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,0,-28,0,
+ 0,-28,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-64,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,-76,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,-77,0,0,
+ -77,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-132,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -132,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-205,0,0,0,
+ 0,-125,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-384,
+ -519,-216,-254,0,0,0,0,0,-396,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-205,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-384,-492,-217,-218,
- 0,0,0,0,0,-396,0,-291,0,0,
- 0,0,0,0,0,0,-142,0,0,0,
+ 0,0,0,-217,-255,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -510,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-311,0,
+ 0,0,-450,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -340,0,0,0,0,-394,0,0,0,-450,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-357,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-452,0,0,0,
+ 0,0,0,0,0,0,-479,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,0,0,-452,0,0,0,0,0,0,
- 0,0,0,-479,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ -340,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-476,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-126,0,0,
+ 0,0,0,0,0,-187,0,0,0,0,
+ 0,0,-218,-401,0,0,-441,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,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-357,0,0,0,0,0,0,
- 0,0,0,0,0,0,-126,0,0,0,
- 0,0,0,0,-149,0,0,0,0,0,
0,0,0,-302,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-219,0,0,
- 0,0,0,0,0,-182,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-334,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,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,0,0,0,0,0,
0,-465,0,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,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,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-332,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-332,0,0,0,0,0,0,
+ 0,0,0,-323,0,0,0,0,0,0,
+ 0,0,0,0,0,-358,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-358,0,0,0,0,0,
- 0,0,0,0,0,0,0,-397,0,0,
+ 0,-201,0,-225,0,-318,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -290,0,-225,0,0,0,0,0,0,0,
- 0,0,0,0,-265,0,0,0,0,0,
- 0,-187,0,0,0,0,0,0,0,0,
+ 0,0,0,-290,0,0,0,0,0,0,
+ -192,0,0,0,0,-281,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,-268,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-192,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-347,0,0,0,
+ 0,0,0,0,0,0,0,0,-307,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-45,0,0,0,0,0,0,0,0,
- 0,0,0,0,-281,0,0,0,0,-307,
+ 0,0,0,0,0,-329,0,0,0,0,
+ -335,0,0,0,0,-47,-494,-43,0,0,
+ 0,0,0,0,0,-341,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-329,0,0,0,0,0,0,0,-335,
+ 0,0,0,0,-394,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-341,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-363,0,0,0,
- 0,0,0,0,0,0,-46,0,0,0,
- 0,0,0,0,0,0,-364,0,0,0,
- 0,0,0,0,-47,0,0,0,0,0,
- 0,0,0,0,-376,0,0,0,0,0,
- 0,-461,0,0,0,0,0,0,0,0,
- 0,0,0,-482,0,0,0,0,-18,0,
- 0,0,-401,0,0,0,0,0,0,0,
- 0,0,-203,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-212,
- 0,0,0,0,-43,0,0,0,0,0,
- -69,-393,0,0,0,0,0,0,-259,0,
0,0,0,0,0,0,0,0,0,0,
+ -363,0,0,0,0,-364,0,0,0,0,
+ 0,0,-376,0,0,0,0,-461,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-439,-440,0,0,
- 0,0,0,-441,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-482,0,0,
+ 0,0,0,0,0,-393,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-443,-206,0,0,0,0,0,
- -402,0,0,-403,0,0,0,0,0,0,
- 0,0,0,0,0,0,-448,0,0,0,
- 0,0,0,-519,0,-494,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,-203,0,0,0,0,0,0,0,
+ 0,0,-212,0,0,0,0,0,0,0,
+ 0,0,-259,0,0,0,0,0,0,-69,
+ 0,0,0,-439,0,-440,-206,0,0,0,
+ 0,0,0,-443,-402,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,-403,0,0,0,0,0,-448,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
@@ -540,7 +534,7 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,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;
@@ -550,546 +544,539 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse
public interface BaseAction {
public final static char baseAction[] = {
- 170,5,131,78,78,34,34,64,64,39,
- 39,190,190,191,191,192,192,1,1,16,
+ 171,5,132,78,78,34,34,64,64,39,
+ 39,191,191,192,192,193,193,1,1,16,
16,16,16,16,16,16,16,17,17,17,
15,11,11,9,9,9,9,9,2,65,
- 65,6,6,12,12,12,12,44,44,132,
- 132,133,54,54,43,18,18,18,18,18,
+ 65,6,6,12,12,12,12,44,44,133,
+ 133,134,54,54,43,18,18,18,18,18,
18,18,18,18,18,18,18,18,18,18,
- 18,18,18,18,18,134,134,134,114,19,
+ 18,18,18,18,18,135,135,135,114,19,
19,19,19,19,19,19,19,19,19,19,
- 19,19,20,20,171,171,172,172,173,137,
- 137,138,138,135,135,139,136,136,21,21,
+ 19,19,20,20,172,172,173,173,174,138,
+ 138,139,139,136,136,140,137,137,21,21,
22,22,23,23,23,25,25,25,25,26,
26,26,27,27,27,28,28,28,28,28,
31,31,31,32,32,33,33,35,35,36,
36,37,37,38,38,42,42,41,41,41,
41,41,41,41,41,41,41,41,41,41,
- 40,29,140,140,99,99,102,102,94,193,
- 193,69,69,69,69,69,69,69,69,69,
- 70,70,70,71,71,57,57,174,174,72,
+ 40,29,141,141,99,99,102,102,94,194,
+ 194,69,69,69,69,69,69,69,69,69,
+ 70,70,70,71,71,57,57,175,175,72,
72,72,115,115,73,73,73,73,74,74,
74,74,74,75,75,79,79,79,79,79,
79,79,49,49,49,49,49,105,105,106,
- 106,50,175,24,24,24,24,24,48,48,
- 88,88,88,88,88,147,147,142,142,142,
- 142,142,143,143,143,144,144,144,145,145,
- 145,146,146,146,89,89,89,89,89,90,
+ 106,50,176,24,24,24,24,24,48,48,
+ 88,88,88,88,88,148,148,143,143,143,
+ 143,143,144,144,144,145,145,145,146,146,
+ 146,147,147,147,89,89,89,89,89,90,
90,90,13,14,14,14,14,14,14,14,
14,14,14,14,93,119,119,119,119,119,
- 117,117,117,118,118,149,149,148,148,121,
- 121,150,83,83,84,84,86,87,85,52,
- 47,151,151,53,51,82,82,152,152,141,
- 141,122,122,77,77,153,153,62,62,62,
- 59,59,58,63,63,67,67,56,56,56,
- 91,91,101,100,100,61,61,60,60,55,
- 55,45,103,103,103,95,95,95,96,97,
- 97,97,98,98,107,107,107,109,109,108,
- 108,194,194,92,92,177,177,177,177,177,
- 124,46,46,155,176,176,125,125,125,125,
- 178,178,30,30,116,126,126,126,126,110,
- 110,120,120,120,157,158,158,158,158,158,
- 158,158,158,158,181,181,179,179,180,180,
- 159,159,159,159,160,182,112,111,111,183,
- 183,161,161,161,161,104,104,104,184,184,
- 10,185,185,186,162,154,154,163,163,164,
- 165,165,7,7,8,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,68,68,
- 168,168,127,127,128,128,128,128,128,128,
- 3,4,169,169,166,166,129,129,129,80,
- 81,76,156,156,113,113,187,187,187,130,
- 130,123,123,188,188,170,170,958,38,2435,
- 2416,883,508,3266,34,1008,31,35,30,32,
- 2612,262,29,27,55,1233,110,80,81,112,
- 1234,30,1453,1401,1626,1540,675,274,1831,1798,
- 2017,590,1868,2046,2135,147,485,2534,162,148,
- 1476,38,851,36,883,117,4365,34,1008,31,
- 35,62,32,2351,38,851,36,883,232,2234,
- 34,1008,31,35,30,32,823,262,29,27,
- 55,1233,110,80,81,112,1234,1315,1453,1401,
- 1626,1540,839,30,2790,235,230,231,731,82,
- 275,2307,38,851,36,883,1155,2234,34,1008,
- 31,35,30,32,823,262,29,27,55,1233,
- 90,80,81,242,245,248,251,3030,2025,38,
- 851,36,883,2580,4365,34,1008,31,35,61,
- 32,327,38,501,3277,883,1186,619,160,3633,
- 2953,3234,3245,3508,4357,1496,38,851,36,883,
- 2440,2234,34,1008,31,35,3081,32,823,262,
- 29,27,55,1233,110,80,81,112,1234,341,
- 1453,1401,1626,1540,66,525,1831,1798,2017,1106,
- 1868,2046,2135,147,943,856,506,148,865,2528,
- 3126,66,38,2270,46,883,508,2094,45,1008,
- 507,1496,38,851,36,883,2440,2234,34,1008,
- 31,35,3081,32,823,262,29,27,55,1233,
- 110,80,81,112,1234,341,1453,1401,1626,1540,
- 4071,1189,1831,1798,2017,1311,1868,2046,2135,147,
- 2928,1449,506,148,661,2574,3126,327,38,1615,
- 1572,883,65,327,38,3287,507,2658,38,851,
- 36,883,486,431,34,1008,43,35,938,1826,
- 38,851,36,883,502,2234,34,1008,31,35,
- 30,32,823,262,29,27,55,1233,110,80,
- 81,112,1234,1243,1453,1401,1626,1540,1472,186,
- 1831,1798,2017,75,1868,2046,3242,168,30,1607,
- 783,3056,508,1084,3142,4396,2148,38,851,36,
- 883,1852,4810,34,1008,31,35,30,32,2945,
- 502,499,1466,38,851,36,883,1539,4810,34,
- 1008,31,35,64,32,1076,28,326,1466,38,
- 851,36,883,1855,4810,34,1008,31,35,63,
- 32,2121,2541,1634,444,330,3171,3240,327,333,
- 3142,1761,38,851,36,883,2440,2234,34,1008,
- 31,35,3081,32,823,262,29,27,55,1233,
- 110,80,81,112,1234,341,1453,1401,1626,1540,
- 935,397,1831,1798,2017,2011,1868,2046,2135,147,
- 787,4396,506,148,1092,3196,3126,327,38,282,
- 4624,1562,38,851,36,883,507,2234,34,1008,
- 31,35,30,32,823,262,29,27,55,1233,
- 110,80,81,112,1234,590,1453,1401,1626,1540,
- 30,4478,1831,1798,2017,798,1868,2046,2135,147,
- 943,331,376,148,2658,38,851,36,883,4137,
- 1682,34,1008,1921,35,2701,38,278,1918,2658,
- 38,851,36,883,1879,379,34,1008,1964,35,
- 327,38,501,277,883,1634,38,851,36,883,
- 503,2234,34,1008,31,35,30,32,823,262,
- 29,27,55,1233,110,80,81,112,1234,508,
- 1453,1401,1626,1540,327,3474,1831,1798,2017,590,
- 1868,2046,2135,147,97,4793,376,148,448,1054,
- 2229,1555,38,501,277,883,380,1095,327,38,
- 2406,383,883,74,1935,38,851,36,883,377,
- 2234,34,1008,31,35,30,32,823,262,29,
- 27,55,1233,110,80,81,112,1234,37,1453,
- 1401,1626,1540,327,2697,1831,1798,2017,1095,1868,
- 2046,2135,147,327,3717,162,148,1375,507,3417,
- 1555,38,501,3505,883,1184,783,353,3501,327,
- 38,2406,383,883,521,1935,38,851,36,883,
- 381,2234,34,1008,31,35,30,32,823,262,
- 29,27,55,1233,110,80,81,112,1234,421,
- 1453,1401,1626,1540,30,286,1831,1798,2017,4573,
- 1868,2046,2135,147,2377,508,370,148,385,417,
- 1935,38,851,36,883,350,2234,34,1008,31,
- 35,30,32,823,262,29,27,55,1233,110,
- 80,81,112,1234,1932,1453,1401,1626,1540,73,
- 1304,1831,1798,2017,619,1868,2046,2135,147,386,
- 417,370,148,2566,1725,1935,38,851,36,883,
- 508,2234,34,1008,31,35,30,32,823,262,
- 29,27,55,1233,110,80,81,112,1234,2690,
- 1453,1401,1626,1540,1139,1076,1831,1798,2017,369,
- 1868,2046,2135,147,58,508,370,148,1304,787,
- 1870,38,851,36,883,508,2234,34,1008,31,
- 35,30,32,823,262,29,27,55,1233,110,
- 80,81,112,1234,590,1453,1401,1626,1540,91,
- 4672,1831,1798,2017,368,1868,2046,2135,147,57,
- 92,376,148,106,787,1696,38,851,36,883,
- 994,2234,34,1008,31,35,30,32,823,262,
- 29,27,55,1233,110,80,81,112,1234,2018,
- 1453,1401,1626,1540,1175,4692,1831,1798,2017,366,
- 1868,2046,2135,147,30,2442,146,148,428,1077,
- 1118,1935,38,851,36,883,943,2234,34,1008,
- 31,35,30,32,823,262,29,27,55,1233,
- 110,80,81,112,1234,30,1453,1401,1626,1540,
- 2743,235,1831,1798,2017,374,1868,2046,2135,147,
- 508,2303,163,148,1935,38,851,36,883,3301,
- 2234,34,1008,31,35,30,32,823,262,29,
- 27,55,1233,110,80,81,112,1234,2049,1453,
- 1401,1626,1540,2440,348,1831,1798,2017,1835,1868,
- 2046,2135,147,931,447,159,148,1935,38,851,
- 36,883,2644,2234,34,1008,31,35,30,32,
- 823,262,29,27,55,1233,110,80,81,112,
- 1234,2130,1453,1401,1626,1540,47,3263,1831,1798,
- 2017,30,1868,2046,2135,147,2684,2303,158,148,
- 1935,38,851,36,883,943,2234,34,1008,31,
- 35,30,32,823,262,29,27,55,1233,110,
- 80,81,112,1234,512,1453,1401,1626,1540,30,
- 358,1831,1798,2017,1000,1868,2046,2135,147,508,
- 2445,157,148,1935,38,851,36,883,351,2234,
- 34,1008,31,35,30,32,823,262,29,27,
- 55,1233,110,80,81,112,1234,2344,1453,1401,
- 1626,1540,30,94,1831,1798,2017,2036,1868,2046,
- 2135,147,508,4094,156,148,1935,38,851,36,
- 883,943,2234,34,1008,31,35,30,32,823,
- 262,29,27,55,1233,110,80,81,112,1234,
- 512,1453,1401,1626,1540,2316,1739,1831,1798,2017,
- 2339,1868,2046,2135,147,508,153,155,148,1935,
- 38,851,36,883,943,2234,34,1008,31,35,
- 30,32,823,262,29,27,55,1233,110,80,
- 81,112,1234,2956,1453,1401,1626,1540,30,1787,
- 1831,1798,2017,2822,1868,2046,2135,147,508,56,
- 154,148,1935,38,851,36,883,508,2234,34,
- 1008,31,35,30,32,823,262,29,27,55,
- 1233,110,80,81,112,1234,30,1453,1401,1626,
- 1540,3078,72,1831,1798,2017,2526,1868,2046,2135,
- 147,71,325,153,148,1935,38,851,36,883,
- 508,2234,34,1008,31,35,30,32,823,262,
- 29,27,55,1233,110,80,81,112,1234,30,
- 1453,1401,1626,1540,3454,395,1831,1798,2017,590,
- 1868,2046,2135,147,70,4717,152,148,1935,38,
- 851,36,883,508,2234,34,1008,31,35,30,
- 32,823,262,29,27,55,1233,110,80,81,
- 112,1234,1979,1453,1401,1626,1540,30,2684,1831,
- 1798,2017,2320,1868,2046,2135,147,69,1474,151,
- 148,1935,38,851,36,883,2175,2234,34,1008,
- 31,35,30,32,823,262,29,27,55,1233,
- 110,80,81,112,1234,1479,1453,1401,1626,1540,
- 2699,1006,1831,1798,2017,590,1868,2046,2135,147,
- 508,4737,150,148,1935,38,851,36,883,323,
- 2234,34,1008,31,35,30,32,823,262,29,
- 27,55,1233,110,80,81,112,1234,1248,1453,
- 1401,1626,1540,324,1954,1831,1798,2017,590,1868,
- 2046,2135,147,508,4762,149,148,1935,38,851,
- 36,883,508,2234,34,1008,31,35,30,32,
- 823,262,29,27,55,1233,110,80,81,112,
- 1234,30,1453,1401,1626,1540,2852,60,1831,1798,
- 2017,1186,1868,2046,2135,147,59,2528,144,148,
- 2259,38,851,36,883,508,2234,34,1008,31,
- 35,30,32,823,262,29,27,55,1233,110,
- 80,81,112,1234,30,1453,1401,1626,1540,3477,
- 399,1831,1798,2017,1186,1868,2046,2135,147,321,
- 411,193,148,2351,38,851,36,883,1178,2234,
- 34,1008,31,35,30,32,823,262,29,27,
- 55,1233,110,80,81,112,1234,1178,1453,1401,
- 1626,1540,30,300,1831,1798,2017,3663,1868,2046,
- 3242,168,2351,38,851,36,883,1109,2234,34,
- 1008,31,35,30,32,823,262,29,27,55,
- 1233,110,80,81,112,1234,1095,1453,1401,1626,
- 1540,76,384,1831,1798,2017,155,1868,2046,3242,
- 168,327,38,501,281,883,327,38,2406,383,
- 883,283,2351,38,851,36,883,290,2234,34,
- 1008,31,35,30,32,823,262,29,27,55,
- 1233,110,80,81,112,1234,274,1453,1401,1626,
- 1540,30,1186,1831,1798,2017,3691,1868,2046,3242,
- 168,2351,38,851,36,883,2378,2234,34,1008,
- 31,35,30,32,823,262,29,27,55,1233,
- 110,80,81,112,1234,30,1453,1401,1626,1540,
- 1014,183,1831,1798,2017,1247,1868,2046,3242,168,
- 327,38,501,279,883,333,943,388,417,276,
- 1178,2351,38,851,36,883,413,2234,34,1008,
- 31,35,30,32,823,262,29,27,55,1233,
- 110,80,81,112,1234,30,1453,1401,1626,1540,
- 2816,1186,1831,1798,2017,508,1868,2046,3242,168,
- 2395,38,851,36,883,412,2234,34,1008,31,
- 35,30,32,823,262,29,27,55,1233,110,
- 80,81,112,1234,284,1453,1401,1626,1540,105,
- 199,1831,1798,2017,101,1868,2046,3242,168,327,
- 38,501,3553,883,1630,38,2406,383,883,420,
- 2351,38,851,36,883,415,2234,34,1008,31,
- 35,30,32,823,262,29,27,55,1233,110,
- 80,81,112,1234,54,1453,1401,1626,1540,508,
- 2107,1831,1798,2017,1186,1868,3005,2354,875,2351,
- 38,851,36,883,3702,2234,34,1008,31,35,
- 30,32,823,262,29,27,55,1233,110,80,
- 81,112,1234,2526,1453,1401,1626,1540,2740,2377,
- 1831,1798,2017,198,2954,2351,38,851,36,883,
- 1682,2234,34,1008,31,35,30,32,823,262,
- 29,27,55,1233,110,80,81,112,1234,1095,
- 1453,1401,1626,1540,2530,508,1831,1798,2893,2351,
- 38,851,36,883,1085,2234,34,1008,31,35,
- 30,32,823,262,29,27,55,1233,110,80,
- 81,112,1234,787,1453,1401,1626,1540,943,439,
- 1831,2935,2351,38,851,36,883,2645,2234,34,
- 1008,31,35,30,32,823,262,29,27,55,
- 1233,110,80,81,112,1234,2173,1453,1401,1626,
- 2815,2351,38,851,36,883,1185,2234,34,1008,
- 31,35,30,32,823,262,29,27,55,1233,
- 110,80,81,112,1234,1301,1453,1401,1626,2866,
- 2439,38,2406,383,883,93,3144,154,106,589,
- 387,417,787,237,262,2309,102,513,3501,1369,
- 38,2406,383,883,2447,2351,38,851,36,883,
- 274,2234,34,1008,31,35,30,32,823,262,
- 29,27,55,1233,110,80,81,112,1234,274,
- 1453,1401,2710,1914,3692,3685,2351,38,851,36,
- 883,232,2234,34,1008,31,35,30,32,823,
- 262,29,27,55,1233,110,80,81,112,1234,
- 1980,1453,1401,2738,865,2440,30,30,235,230,
- 231,4186,4783,275,327,38,2406,383,883,327,
- 38,2406,383,883,341,327,38,291,2404,1267,
- 38,441,3332,2440,1545,4755,242,245,248,251,
- 3030,1758,30,30,54,607,2580,1411,3141,424,
- 2286,30,341,77,30,4190,2942,2354,709,1497,
- 691,515,3633,2953,3234,3245,3508,4357,2351,38,
- 851,36,883,3238,2234,34,1008,31,35,30,
- 32,823,262,29,27,55,1233,110,80,81,
- 112,1234,1522,1453,1401,2775,2351,38,851,36,
- 883,1178,2234,34,1008,31,35,30,32,823,
- 262,29,27,55,1233,110,80,81,112,1234,
- 312,1453,1401,2778,1146,38,851,36,883,3485,
- 4655,34,1008,31,35,337,32,2351,38,851,
- 36,883,1299,2234,34,1008,31,35,30,32,
- 823,262,29,27,55,1233,110,80,81,112,
- 1234,2704,1453,2779,1919,298,2051,444,2165,2440,
- 327,38,2406,383,883,3441,519,1186,1186,1228,
- 1897,2162,318,1806,320,430,313,1782,2644,2444,
- 588,349,434,3609,3610,327,38,2406,383,883,
- 274,3500,1618,38,851,36,883,3483,4655,34,
- 1008,31,35,337,32,3241,202,200,675,342,
- 1481,1128,347,1415,3474,423,3301,3493,2351,38,
- 851,36,883,508,2234,34,1008,31,35,30,
- 32,823,262,29,27,55,1233,110,80,81,
- 112,1234,30,1453,2788,762,357,3070,936,670,
- 318,1806,320,78,313,1782,1178,3143,757,349,
- 2448,1840,3307,3330,327,38,2406,383,883,1935,
- 1685,38,851,36,883,3485,4655,34,1008,31,
- 35,337,32,49,3263,2500,1879,342,1481,1128,
- 347,363,1415,3474,422,1410,2351,38,851,36,
- 883,508,2234,34,1008,31,35,30,32,823,
- 262,29,27,55,1233,110,80,81,112,1234,
- 305,2686,1919,2894,1805,38,389,2440,318,1806,
- 320,435,313,1782,285,3565,2606,349,590,327,
- 38,2406,383,883,4774,508,2644,516,1234,38,
- 3566,36,883,4410,4680,34,1008,31,35,337,
- 32,1997,3486,1691,865,342,1481,1128,347,274,
- 2678,38,280,517,2351,38,851,36,883,3603,
- 2234,34,1008,31,35,30,32,823,262,29,
- 27,55,1233,110,80,81,112,1234,175,2688,
- 327,38,291,527,330,2095,318,1806,320,352,
- 313,1782,2108,285,357,938,521,2440,2678,38,
- 278,373,229,1014,1384,1788,2542,160,334,2269,
- 3307,3330,338,1084,3621,2051,229,184,2092,4524,
- 2150,3486,306,1186,204,215,4558,203,212,213,
- 214,216,1805,38,389,173,1178,164,206,215,
- 4558,205,212,213,214,216,1186,187,171,172,
- 174,175,176,177,178,1350,2945,1817,207,2098,
- 3472,1422,221,2140,232,1,1084,1805,38,389,
- 527,217,208,209,210,211,292,293,294,295,
- 2637,38,3160,1365,883,4118,4592,408,3573,229,
- 160,244,230,231,160,332,333,4254,2621,371,
- 297,666,2128,2177,184,2092,1788,1240,1706,508,
- 54,204,215,4558,203,212,213,214,216,513,
- 2596,334,173,2354,777,2440,1084,1921,938,185,
- 3517,1057,2440,4396,188,171,172,174,175,176,
- 177,178,3623,3657,229,327,38,2406,383,883,
- 164,2644,3015,1328,38,851,36,883,4410,4680,
- 34,1008,31,35,337,32,206,215,4558,205,
- 212,213,214,216,508,440,2471,3737,1540,38,
- 441,3183,30,330,4755,865,207,3167,3472,2945,
- 1364,1879,430,1186,414,38,2406,383,883,217,
- 208,209,210,211,292,293,294,295,2524,330,
- 1343,318,1806,320,1178,313,1782,2709,3230,357,
- 1285,1607,2440,1186,54,4254,2786,4396,329,333,
- 2464,575,304,1607,1582,3307,3330,2354,3197,4396,
- 30,229,373,349,4524,3232,778,2067,2056,1487,
- 38,851,36,883,4410,4655,34,1008,31,35,
- 337,32,4151,206,215,4558,205,212,213,214,
- 216,342,1481,1128,347,307,30,4128,296,340,
- 1546,4221,2720,207,1695,3472,4396,2440,2609,330,
- 1924,508,1931,2800,2973,2007,217,208,209,210,
- 211,292,293,294,295,3718,229,318,1806,320,
- 30,313,1782,2463,322,1084,1755,38,2406,383,
- 883,521,4254,2986,3230,3336,2464,2234,206,215,
- 4558,205,212,213,214,216,331,2285,849,3329,
- 2562,438,3609,3610,30,232,54,349,207,951,
- 3472,327,38,2406,383,883,232,2009,98,2354,
- 1214,217,208,209,210,211,292,293,294,295,
- 2056,308,247,230,231,344,1481,1128,347,508,
- 942,54,2464,250,230,231,865,4254,3164,2351,
- 38,2435,2416,883,51,2234,34,1008,31,35,
- 30,32,823,262,29,27,55,1233,110,80,
- 81,88,1172,375,2351,38,851,36,883,37,
- 2234,34,1008,31,35,30,32,823,262,29,
- 27,55,1233,110,80,81,112,2700,2351,38,
- 851,36,883,514,2234,34,1008,31,35,30,
- 32,823,262,29,27,55,1233,110,80,81,
- 112,2701,2351,38,851,36,883,1070,2234,34,
- 1008,31,35,30,32,823,262,29,27,55,
- 1233,110,80,81,112,2709,1258,38,851,36,
- 883,1186,4680,34,1008,31,35,337,32,2351,
- 38,851,36,883,938,2234,34,1008,31,35,
- 30,32,823,262,29,27,55,1233,110,80,
- 81,89,2304,262,2465,1186,508,938,527,1186,
- 303,378,30,1921,2031,1607,1558,2440,2440,4396,
- 4660,4396,331,2543,318,1806,320,229,314,1782,
- 2670,2527,160,349,1981,2668,341,2644,2424,3077,
- 3528,349,184,2092,4914,2945,527,1186,222,204,
- 215,4558,203,212,213,214,216,3126,1186,2334,
- 173,344,1481,1128,347,229,2640,2447,2945,330,
- 160,330,3715,171,172,174,175,176,177,178,
- 184,2092,1614,2682,2125,333,299,204,215,4558,
- 203,212,213,214,216,436,1018,195,173,232,
- 527,349,508,2676,3436,357,3436,2175,333,1523,
- 180,171,172,174,175,176,177,178,1349,229,
- 1582,3307,3330,2505,160,508,253,230,231,342,
- 1481,1128,347,523,184,2092,3749,1410,527,2421,
- 2694,204,215,4558,203,212,213,214,216,2655,
- 2750,2687,173,2689,1084,2731,2752,229,2758,3787,
- 2760,2761,160,2562,191,171,172,174,175,176,
- 177,178,184,2092,2771,419,239,262,160,204,
- 215,4558,203,212,213,214,216,610,201,2698,
- 173,2772,527,1161,334,2779,1161,3552,2440,1084,
- 2732,2440,3738,171,172,174,175,176,177,178,
- 2739,229,2513,334,334,2574,160,2644,1084,1084,
- 2644,1228,2766,164,232,697,184,2092,1551,2783,
- 527,88,2762,204,215,4558,203,212,213,214,
- 216,2586,164,164,173,2773,1084,2777,2785,229,
- 2778,240,230,231,160,2784,194,171,172,174,
- 175,176,177,178,184,2092,2788,2789,1053,5394,
- 160,204,215,4558,203,212,213,214,216,784,
- 5394,166,173,5394,527,493,334,5394,493,5394,
- 5394,1084,5394,1883,190,171,172,174,175,176,
- 177,178,5394,229,30,30,5394,5394,160,1084,
- 1084,5394,1892,2185,5394,164,5394,871,184,2092,
- 490,492,527,491,492,204,215,4558,203,212,
- 213,214,216,160,160,5394,173,5394,5394,5394,
- 5394,229,30,3173,1591,2972,160,1084,197,171,
- 172,174,175,176,177,178,184,2092,5394,5394,
- 5394,3579,5394,204,215,4558,203,212,213,214,
- 216,160,5394,5394,173,3135,5394,5394,5394,5394,
- 5394,5394,1668,435,5394,2345,196,171,172,174,
- 175,176,177,178,2351,38,851,36,883,5394,
- 2234,34,1008,31,35,30,32,823,262,29,
- 27,55,1233,110,80,81,87,2351,38,851,
- 36,883,5394,2234,34,1008,31,35,30,32,
- 823,262,29,27,55,1233,110,80,81,86,
- 2351,38,851,36,883,5394,2234,34,1008,31,
- 35,30,32,823,262,29,27,55,1233,110,
- 80,81,85,2351,38,851,36,883,5394,2234,
- 34,1008,31,35,30,32,823,262,29,27,
- 55,1233,110,80,81,84,2351,38,851,36,
- 883,5394,2234,34,1008,31,35,30,32,823,
- 262,29,27,55,1233,110,80,81,83,2351,
- 38,851,36,883,5394,2234,34,1008,31,35,
- 30,32,823,262,29,27,55,1233,110,80,
- 81,82,2208,38,851,36,883,5394,2234,34,
- 1008,31,35,30,32,823,262,29,27,55,
- 1233,110,80,81,108,2351,38,851,36,883,
- 5394,2234,34,1008,31,35,30,32,823,262,
- 29,27,55,1233,110,80,81,114,2351,38,
- 851,36,883,5394,2234,34,1008,31,35,30,
- 32,823,262,29,27,55,1233,110,80,81,
- 113,2351,38,851,36,883,5394,2234,34,1008,
- 31,35,30,32,823,262,29,27,55,1233,
- 110,80,81,111,2351,38,851,36,883,5394,
- 2234,34,1008,31,35,30,32,823,262,29,
- 27,55,1233,110,80,81,109,2802,2586,30,
- 30,5394,2440,1084,1084,1084,1994,5394,2166,5394,
- 5394,2440,5394,5394,4396,5394,5394,1660,5394,5394,
- 5394,229,2440,5394,5394,5394,5394,160,160,160,
- 229,2586,5394,5394,5394,5394,1084,5394,166,1677,
- 1720,341,5394,206,215,4558,205,212,213,214,
- 216,5394,206,215,4558,205,212,213,214,216,
- 160,2031,891,207,4128,3472,938,4660,5394,5394,
- 2812,166,207,5394,3472,2440,487,208,209,210,
- 211,292,293,294,295,509,208,209,210,211,
- 292,293,294,295,229,5394,5394,5394,5394,5394,
- 3475,1337,38,851,36,883,4410,4655,34,1008,
- 31,35,337,32,5394,5394,206,215,4558,205,
- 212,213,214,216,2894,5394,5394,2945,5394,2440,
- 5394,5394,5394,3572,2627,5394,207,5394,3472,2440,
- 5394,5394,5394,5394,5394,100,5394,5394,229,306,
- 208,209,210,211,292,293,294,295,229,318,
- 1806,320,5394,313,1782,1349,2563,333,5394,5394,
- 206,215,4558,205,212,213,214,216,2464,5394,
- 206,215,4558,205,212,213,214,216,5394,1529,
- 207,5394,3472,5394,5394,5394,5394,5394,5394,5394,
- 207,5394,3472,510,208,209,210,211,292,293,
- 294,295,5394,218,208,209,210,211,292,293,
- 294,295,420,307,1376,38,3566,36,883,4410,
- 4655,34,1008,31,35,337,32,2502,38,2406,
- 383,883,3479,3144,5394,501,38,2406,383,883,
- 238,262,5394,3718,1487,38,851,36,883,4410,
- 4655,34,1008,31,35,337,32,274,30,5394,
- 5394,5394,5394,1084,5394,54,327,38,2406,383,
- 883,5394,318,1806,320,5394,313,1782,2354,1259,
- 1607,5394,5394,5394,5394,5394,4396,160,232,2459,
- 5394,1788,5394,5394,5394,5394,54,5394,1763,5394,
- 5394,5394,318,1806,320,5394,313,1782,5394,2354,
- 3288,5394,5394,5394,5394,236,230,231,5394,5394,
- 275,1935,1487,38,851,36,883,4410,4655,34,
- 1008,31,35,337,32,5394,330,5394,5394,5394,
- 5394,5394,5394,243,246,249,252,3030,327,38,
- 2406,383,883,2580,1198,38,851,36,883,2878,
- 4655,34,1008,31,35,337,32,5394,5394,5394,
- 5394,4545,5394,409,3573,5394,5394,5394,54,5394,
- 318,1806,320,5394,313,1782,5394,5394,5394,5394,
- 5394,2354,2948,396,1214,38,851,36,883,3736,
- 4680,34,1008,31,35,337,32,5394,5394,5394,
- 5394,5394,315,3536,320,1214,38,851,36,883,
- 5394,4680,34,1008,31,35,337,32,1809,38,
- 851,36,883,3103,4655,34,1008,31,35,337,
- 32,30,5394,1029,5394,5394,1084,5394,2440,4829,
- 331,5394,318,1806,320,1111,316,1782,5394,5394,
- 2440,4829,1230,38,2406,383,883,229,5394,5394,
- 160,331,5394,318,1806,320,5394,314,1782,229,
- 5394,2146,5394,5394,5394,5394,315,3536,320,892,
- 400,4484,54,5394,414,38,2406,383,883,5394,
- 5394,892,400,4484,5394,2354,52,1825,5394,401,
- 5394,3472,30,5394,5394,5394,2900,2440,5394,5394,
- 5394,401,5394,3472,54,1626,38,2406,383,883,
- 1626,38,2406,383,883,5394,341,2354,52,5394,
- 5394,5394,501,38,2406,383,883,3362,947,5394,
- 1626,38,2406,383,883,54,5394,3126,5394,3362,
- 54,5394,1626,38,2406,383,883,2449,2354,2308,
- 5394,5394,54,2354,52,5394,5394,5394,5394,2869,
- 54,1825,5394,5394,1139,2354,52,1626,38,2406,
- 383,883,54,2354,2387,5394,1009,30,5394,5394,
- 402,404,2440,5394,2869,2354,52,1626,38,2406,
- 383,883,402,405,5394,30,2539,54,5394,5394,
- 2440,341,1978,5394,4585,1626,38,2406,383,883,
- 2354,52,2139,38,2406,383,883,54,5394,341,
- 5394,2715,3126,5394,2253,38,2406,383,883,30,
- 2354,52,2554,2734,527,54,5394,5394,2440,5394,
- 3126,2794,54,327,38,2406,383,883,2354,52,
- 2561,5394,5394,341,54,2354,52,2644,160,3095,
- 327,38,2406,383,883,30,2545,2354,52,842,
- 527,30,2486,54,3126,5394,527,2440,2930,327,
- 38,2406,383,883,726,5394,2354,1005,5394,341,
- 54,5394,5394,5394,160,341,341,5394,5394,5394,
- 160,5394,5394,2354,875,1185,520,30,30,54,
- 3126,842,527,527,2586,5394,3126,3126,5394,527,
- 1049,5394,2354,1265,5394,493,1275,523,5394,5394,
- 5394,341,341,5394,30,30,160,160,3226,527,
- 2440,30,5394,160,30,5394,2440,192,192,2440,
- 5394,5394,4452,4452,166,5394,5394,30,341,341,
- 490,492,2440,160,2586,341,30,5394,341,1084,
- 5394,1084,5394,5394,192,5394,5394,5394,5394,4452,
- 3126,341,5394,5394,5394,5394,3126,5394,5394,3126,
- 1625,5394,5394,160,5394,160,497,5394,5394,495,
- 5394,3698,3126,5394,166,5394,3476,5394,5394,5394,
- 5394,5394,524,5394,5394,5394,2996,5394,5394,5394,
- 5394,5394,2831,2875,5394,5394,5394,5394,5394,5394,
- 5394,5394,5394,5394,5394,5394,5394,5394,5394,5394,
- 5394,5394,5394,5394,5394,5394,5394,5394,5394,3059,
- 5394,5394,5394,5394,5394,5394,5394,5394,5394,5394,
- 2662,5394,5394,5394,5394,5394,3595,5394,5394,5394,
- 5394,5394,5394,5394,5394,5394,5394,5394,5394,5394,
- 5394,5394,5394,5394,5394,5394,5394,5394,5394,3711,
- 5394,0,5412,42,0,5411,42,0,501,33,
- 0,442,613,0,41,5412,0,41,5411,0,
- 130,2588,0,1,432,0,42,5412,0,42,
- 5411,0,446,990,0,445,1376,0,501,44,
- 0,838,95,0,501,382,0,383,36,0,
- 36,383,0,382,33,0,33,382,0,501,
- 33,382,0,1078,42,0,1,561,0,1,
- 5667,0,1,5666,0,1,5665,0,1,5664,
- 0,1,5663,0,1,5662,0,1,5661,0,
- 1,5660,0,1,5659,0,1,5658,0,1,
- 5657,0,1,5412,42,0,1,5411,42,0,
- 1,721,0,5628,241,0,5627,241,0,5730,
- 241,0,5729,241,0,5655,241,0,5654,241,
- 0,5653,241,0,5652,241,0,5651,241,0,
- 5650,241,0,5649,241,0,5648,241,0,5667,
- 241,0,5666,241,0,5665,241,0,5664,241,
- 0,5663,241,0,5662,241,0,5661,241,0,
- 5660,241,0,5659,241,0,5658,241,0,5657,
- 241,0,42,241,5412,0,42,241,5411,0,
- 241,5435,0,53,5412,0,53,5411,0,237,
- 2958,0,48,5433,0,48,40,0,5412,53,
- 0,5411,53,0,132,2588,0,131,2588,0,
- 30,508,0,5722,433,0,980,433,0,1,
- 5435,0,1,42,0,52,40,0,1,96,
- 0,228,1,5435,0,228,1,42,0,228,
- 407,0,40,5412,0,40,5411,0,40,5412,
- 2,0,40,5411,2,0,5412,39,0,5411,
- 39,0,5433,50,0,50,40,0,5404,398,
- 0,5403,398,0,1,4374,0,1,2520,0,
- 1,1078,0,228,406,0,1911,317,0,5722,
- 99,0,980,99,0,1,5722,0,1,980,
- 0,279,3664,0,1,2854,0,1,2982,0,
- 5402,1,0,489,4126,0,228,1,0,228,
- 1,3630,0,5404,228,0,5403,228,0,3701,
+ 117,117,117,118,118,150,150,149,149,121,
+ 121,151,83,83,84,84,86,87,85,52,
+ 47,152,152,53,51,82,82,153,153,142,
+ 142,122,123,123,77,77,154,154,62,62,
+ 62,59,59,58,63,63,67,67,56,56,
+ 56,91,91,101,100,100,61,61,60,60,
+ 55,55,45,103,103,103,95,95,95,96,
+ 97,97,97,98,98,107,107,107,109,109,
+ 108,108,195,195,92,92,178,178,178,178,
+ 178,125,46,46,156,177,177,126,126,126,
+ 126,179,179,30,30,116,127,127,127,127,
+ 110,110,120,120,120,158,159,159,159,159,
+ 159,159,159,159,159,182,182,180,180,181,
+ 181,160,160,160,160,161,183,112,111,111,
+ 184,184,162,162,162,162,104,104,104,185,
+ 185,10,186,186,187,163,155,155,164,164,
+ 165,166,166,7,7,8,168,168,168,168,
+ 168,168,168,168,168,168,168,168,168,168,
+ 168,168,168,168,168,168,168,168,168,168,
+ 168,168,168,168,168,168,168,168,168,168,
+ 168,168,168,168,168,168,168,168,66,68,
+ 68,169,169,128,128,129,129,129,129,129,
+ 129,3,4,170,170,167,167,130,130,130,
+ 80,81,76,157,157,113,113,188,188,188,
+ 131,131,124,124,189,189,171,171,958,38,
+ 2007,1980,993,508,2842,34,1068,31,35,30,
+ 32,2274,262,29,27,55,1085,110,80,81,
+ 112,1118,30,1234,1225,1270,1238,677,274,1326,
+ 1285,1461,590,1408,1666,1684,147,486,3234,162,
+ 148,1476,38,984,36,993,117,3242,34,1068,
+ 31,35,62,32,2351,38,984,36,993,232,
+ 2505,34,1068,31,35,30,32,947,262,29,
+ 27,55,1085,110,80,81,112,1118,2530,1234,
+ 1225,1270,1238,1092,3079,2717,235,230,231,4581,
+ 82,275,2307,38,984,36,993,1054,2505,34,
+ 1068,31,35,30,32,947,262,29,27,55,
+ 1085,90,80,81,242,245,248,251,3617,1879,
+ 2148,38,984,36,993,2191,4823,34,1068,31,
+ 35,30,32,1155,2011,500,1805,38,390,620,
+ 3267,3493,2829,2944,3671,4122,4378,1496,38,984,
+ 36,993,2411,2505,34,1068,31,35,3017,32,
+ 947,262,29,27,55,1085,110,80,81,112,
+ 1118,342,1234,1225,1270,1238,66,160,1326,1285,
+ 1461,2377,1408,1666,1684,147,1175,856,507,148,
+ 332,514,2903,66,38,1756,46,993,508,2094,
+ 45,1068,508,1496,38,984,36,993,2411,2505,
+ 34,1068,31,35,3017,32,947,262,29,27,
+ 55,1085,110,80,81,112,1118,342,1234,1225,
+ 1270,1238,4094,1682,1326,1285,1461,1311,1408,1666,
+ 1684,147,2973,354,507,148,3599,2121,2903,1498,
+ 522,2510,1914,1696,38,984,36,993,508,2505,
+ 34,1068,31,35,30,32,947,262,29,27,
+ 55,1085,110,80,81,112,1118,503,1234,1225,
+ 1270,1238,327,3298,1326,1285,1461,1422,1408,1666,
+ 1684,147,1088,943,146,148,1466,38,984,36,
+ 993,186,4823,34,1068,31,35,64,32,327,
+ 38,502,3189,993,3007,1189,160,3066,92,47,
+ 3169,106,327,38,1939,384,993,1073,2351,38,
+ 984,36,993,503,2505,34,1068,31,35,30,
+ 32,947,262,29,27,55,1085,110,80,81,
+ 112,1118,37,1234,1225,1270,1238,1449,1076,1326,
+ 1285,1461,1607,1408,1666,3138,168,445,3267,711,
+ 3132,487,3406,3066,1761,38,984,36,993,2411,
+ 2505,34,1068,31,35,3017,32,947,262,29,
+ 27,55,1085,110,80,81,112,1118,342,1234,
+ 1225,1270,1238,286,2684,1326,1285,1461,30,1408,
+ 1666,1684,147,733,508,507,148,1243,331,2903,
+ 1472,97,290,1074,1562,38,984,36,993,508,
+ 2505,34,1068,31,35,30,32,947,262,29,
+ 27,55,1085,110,80,81,112,1118,28,1234,
+ 1225,1270,1238,664,1852,1326,1285,1461,576,1408,
+ 1666,1684,147,1855,2704,377,148,2025,38,984,
+ 36,993,507,3242,34,1068,31,35,61,32,
+ 327,38,3248,1466,38,984,36,993,380,4823,
+ 34,1068,31,35,63,32,327,38,282,1634,
+ 38,984,36,993,504,2505,34,1068,31,35,
+ 30,32,947,262,29,27,55,1085,110,80,
+ 81,112,1118,943,1234,1225,1270,1238,30,2510,
+ 1326,1285,1461,1088,1408,1666,1684,147,1918,351,
+ 377,148,1375,1186,2658,38,984,36,993,938,
+ 381,34,1068,43,35,2566,1139,1641,1935,38,
+ 984,36,993,378,2505,34,1068,31,35,30,
+ 32,947,262,29,27,55,1085,110,80,81,
+ 112,1118,526,1234,1225,1270,1238,412,1725,1326,
+ 1285,1461,2498,1408,1666,1684,147,49,3169,162,
+ 148,449,65,3804,2658,38,984,36,993,938,
+ 1139,34,1068,1842,35,327,38,1703,1660,993,
+ 1935,38,984,36,993,382,2505,34,1068,31,
+ 35,30,32,947,262,29,27,55,1085,110,
+ 80,81,112,1118,1228,1234,1225,1270,1238,328,
+ 334,1326,1285,1461,1315,1408,1666,1684,147,892,
+ 429,371,148,327,3263,1935,38,984,36,993,
+ 1139,2505,34,1068,31,35,30,32,947,262,
+ 29,27,55,1085,110,80,81,112,1118,1095,
+ 1234,1225,1270,1238,1498,235,1326,1285,1461,620,
+ 1408,1666,1684,147,931,2377,371,148,2445,333,
+ 334,1935,38,984,36,993,508,2505,34,1068,
+ 31,35,30,32,947,262,29,27,55,1085,
+ 110,80,81,112,1118,1095,1234,1225,1270,1238,
+ 153,1799,1326,1285,1461,370,1408,1666,1684,147,
+ 74,508,371,148,943,1474,1870,38,984,36,
+ 993,508,2505,34,1068,31,35,30,32,947,
+ 262,29,27,55,1085,110,80,81,112,1118,
+ 590,1234,1225,1270,1238,73,3655,1326,1285,1461,
+ 369,1408,1666,1684,147,58,1006,377,148,2847,
+ 386,418,1935,38,984,36,993,436,2505,34,
+ 1068,31,35,30,32,947,262,29,27,55,
+ 1085,110,80,81,112,1118,30,1234,1225,1270,
+ 1238,1079,448,1326,1285,1461,367,1408,1666,1684,
+ 147,432,93,163,148,106,387,418,1935,38,
+ 984,36,993,2130,2505,34,1068,31,35,30,
+ 32,947,262,29,27,55,1085,110,80,81,
+ 112,1118,2049,1234,1225,1270,1238,2411,1248,1326,
+ 1285,1461,375,1408,1666,1684,147,327,3840,159,
+ 148,1935,38,984,36,993,2616,2505,34,1068,
+ 31,35,30,32,947,262,29,27,55,1085,
+ 110,80,81,112,1118,590,1234,1225,1270,1238,
+ 352,4813,1326,1285,1461,30,1408,1666,1684,147,
+ 4554,1109,158,148,1935,38,984,36,993,943,
+ 2505,34,1068,31,35,30,32,947,262,29,
+ 27,55,1085,110,80,81,112,1118,30,1234,
+ 1225,1270,1238,1219,359,1326,1285,1461,590,1408,
+ 1666,1684,147,508,4666,157,148,1935,38,984,
+ 36,993,508,2505,34,1068,31,35,30,32,
+ 947,262,29,27,55,1085,110,80,81,112,
+ 1118,2442,1234,1225,1270,1238,1265,91,1326,1285,
+ 1461,2541,1408,1666,1684,147,57,4117,156,148,
+ 1935,38,984,36,993,943,2505,34,1068,31,
+ 35,30,32,947,262,29,27,55,1085,110,
+ 80,81,112,1118,30,1234,1225,1270,1238,2532,
+ 398,1326,1285,1461,2018,1408,1666,1684,147,508,
+ 4686,155,148,1935,38,984,36,993,943,2505,
+ 34,1068,31,35,30,32,947,262,29,27,
+ 55,1085,110,80,81,112,1118,30,1234,1225,
+ 1270,1238,2656,349,1326,1285,1461,30,1408,1666,
+ 1684,147,763,56,154,148,1935,38,984,36,
+ 993,508,2505,34,1068,31,35,30,32,947,
+ 262,29,27,55,1085,110,80,81,112,1118,
+ 30,1234,1225,1270,1238,2316,155,1326,1285,1461,
+ 2526,1408,1666,1684,147,94,326,153,148,1935,
+ 38,984,36,993,1247,2505,34,1068,31,35,
+ 30,32,947,262,29,27,55,1085,110,80,
+ 81,112,1118,2316,1234,1225,1270,1238,2658,396,
+ 1326,1285,1461,30,1408,1666,1684,147,2766,333,
+ 152,148,1935,38,984,36,993,508,2505,34,
+ 1068,31,35,30,32,947,262,29,27,55,
+ 1085,110,80,81,112,1118,30,1234,1225,1270,
+ 1238,3427,420,1326,1285,1461,2107,1408,1666,1684,
+ 147,1832,2303,151,148,1935,38,984,36,993,
+ 508,2505,34,1068,31,35,30,32,947,262,
+ 29,27,55,1085,110,80,81,112,1118,590,
+ 1234,1225,1270,1238,1682,4741,1326,1285,1461,590,
+ 1408,1666,1684,147,1880,4746,150,148,1935,38,
+ 984,36,993,508,2505,34,1068,31,35,30,
+ 32,947,262,29,27,55,1085,110,80,81,
+ 112,1118,30,1234,1225,1270,1238,4209,865,1326,
+ 1285,1461,1186,1408,1666,1684,147,72,1085,149,
+ 148,1826,38,984,36,993,2303,2505,34,1068,
+ 31,35,30,32,947,262,29,27,55,1085,
+ 110,80,81,112,1118,513,1234,1225,1270,1238,
+ 30,400,1326,1285,1461,1794,1408,1666,3138,168,
+ 1935,38,984,36,993,3521,2505,34,1068,31,
+ 35,30,32,947,262,29,27,55,1085,110,
+ 80,81,112,1118,1607,1234,1225,1270,1238,608,
+ 3267,1326,1285,1461,1178,1408,1666,1684,147,327,
+ 1235,144,148,3406,327,38,1939,384,993,2173,
+ 2259,38,984,36,993,1598,2505,34,1068,31,
+ 35,30,32,947,262,29,27,55,1085,110,
+ 80,81,112,1118,274,1234,1225,1270,1238,513,
+ 3524,1326,1285,1461,1479,1408,1666,1684,147,1174,
+ 1185,193,148,2351,38,984,36,993,385,2505,
+ 34,1068,31,35,30,32,947,262,29,27,
+ 55,1085,110,80,81,112,1118,1301,1234,1225,
+ 1270,1238,508,2788,1326,1285,1461,508,1408,1666,
+ 3138,168,2351,38,984,36,993,276,2505,34,
+ 1068,31,35,30,32,947,262,29,27,55,
+ 1085,110,80,81,112,1118,71,1234,1225,1270,
+ 1238,70,98,1326,1285,1461,154,1408,1666,3138,
+ 168,2658,38,984,36,993,589,508,34,1068,
+ 2102,35,2351,38,984,36,993,2992,2505,34,
+ 1068,31,35,30,32,947,262,29,27,55,
+ 1085,110,80,81,112,1118,1178,1234,1225,1270,
+ 1238,69,1186,1326,1285,1461,508,1408,1666,3138,
+ 168,2351,38,984,36,993,414,2505,34,1068,
+ 31,35,30,32,947,262,29,27,55,1085,
+ 110,80,81,112,1118,2528,1234,1225,1270,1238,
+ 2534,300,1326,1285,1461,1545,1408,1666,3138,168,
+ 327,38,502,277,993,327,38,1939,384,993,
+ 283,2395,38,984,36,993,413,2505,34,1068,
+ 31,35,30,32,947,262,29,27,55,1085,
+ 110,80,81,112,1118,274,1234,1225,1270,1238,
+ 1758,691,1326,1285,1461,1228,1408,1666,3138,168,
+ 2351,38,984,36,993,416,2505,34,1068,31,
+ 35,30,32,947,262,29,27,55,1085,110,
+ 80,81,112,1118,1607,1234,1225,1270,1238,30,
+ 3267,1326,1285,1461,2744,1408,2977,1555,38,502,
+ 277,993,1914,3800,3797,2701,38,278,78,75,
+ 2351,38,984,36,993,3817,2505,34,1068,31,
+ 35,30,32,947,262,29,27,55,1085,110,
+ 80,81,112,1118,1522,1234,1225,1270,1238,1932,
+ 331,1326,1285,1461,1106,2870,2351,38,984,36,
+ 993,508,2505,34,1068,31,35,30,32,947,
+ 262,29,27,55,1085,110,80,81,112,1118,
+ 3125,1234,1225,1270,1238,3452,1095,1326,1285,2833,
+ 2351,38,984,36,993,60,2505,34,1068,31,
+ 35,30,32,947,262,29,27,55,1085,110,
+ 80,81,112,1118,1074,1234,1225,1270,1238,839,
+ 2974,1326,2848,2351,38,984,36,993,436,2505,
+ 34,1068,31,35,30,32,947,262,29,27,
+ 55,1085,110,80,81,112,1118,1010,1234,1225,
+ 1270,2725,2351,38,984,36,993,943,2505,34,
+ 1068,31,35,30,32,947,262,29,27,55,
+ 1085,110,80,81,112,1118,2051,1234,1225,1270,
+ 2798,2439,38,1939,384,993,1010,2837,1555,38,
+ 502,3459,993,590,237,262,2165,389,418,4758,
+ 1369,38,1939,384,993,1897,2351,38,984,36,
+ 993,274,2505,34,1068,31,35,30,32,947,
+ 262,29,27,55,1085,110,80,81,112,1118,
+ 274,1234,1225,2495,2162,101,2444,2351,38,984,
+ 36,993,232,2505,34,1068,31,35,30,32,
+ 947,262,29,27,55,1085,110,80,81,112,
+ 1118,1980,1234,1225,2524,588,2411,30,1660,235,
+ 230,231,528,2411,275,1630,38,1939,384,993,
+ 327,38,1939,384,993,342,327,38,1939,384,
+ 993,342,342,3266,675,762,160,242,245,248,
+ 251,3617,1415,3298,30,54,1184,944,2191,4637,
+ 54,2447,2903,777,77,590,422,2690,1848,888,
+ 508,4778,728,51,3493,2829,2944,3671,4122,4378,
+ 2351,38,984,36,993,936,2505,34,1068,31,
+ 35,30,32,947,262,29,27,55,1085,110,
+ 80,81,112,1118,59,1234,1225,2525,2351,38,
+ 984,36,993,1979,2505,34,1068,31,35,30,
+ 32,947,262,29,27,55,1085,110,80,81,
+ 112,1118,1074,1234,1225,2565,1146,38,984,36,
+ 993,3247,4586,34,1068,31,35,338,32,2351,
+ 38,984,36,993,508,2505,34,1068,31,35,
+ 30,32,947,262,29,27,55,1085,110,80,
+ 81,112,1118,285,1234,2657,1919,670,1095,445,
+ 324,2411,327,38,1939,384,993,1161,322,1879,
+ 757,1627,2411,508,319,2684,321,431,314,2593,
+ 2616,2096,3320,350,2175,327,38,1939,384,993,
+ 865,2616,274,3393,1618,38,984,36,993,4556,
+ 4586,34,1068,31,35,338,32,105,327,38,
+ 291,343,1383,1002,348,425,508,2448,313,3369,
+ 2351,38,984,36,993,2500,2505,34,1068,31,
+ 35,30,32,947,262,29,27,55,1085,110,
+ 80,81,112,1118,1919,1234,2670,516,358,2411,
+ 3175,325,319,2684,321,339,314,2593,1879,494,
+ 1186,350,2528,2106,3252,3265,1415,3298,2616,388,
+ 418,2634,1328,38,984,36,993,3616,4671,34,
+ 1068,31,35,338,32,2678,38,280,2542,343,
+ 1383,1002,348,353,364,492,493,1589,2606,183,
+ 522,1076,1685,38,984,36,993,3247,4586,34,
+ 1068,31,35,338,32,1234,38,3542,36,993,
+ 3616,4671,34,1068,31,35,338,32,331,1014,
+ 319,2684,321,1691,314,2593,358,414,38,1939,
+ 384,993,1755,38,1939,384,993,865,2095,2541,
+ 2909,2716,3252,3265,327,38,1939,384,993,3756,
+ 319,2684,321,4508,314,2593,1134,54,508,350,
+ 1384,331,54,319,2684,321,76,314,2593,517,
+ 1848,3089,323,30,424,1848,2279,285,3553,522,
+ 232,1934,934,306,307,311,1934,343,1383,1002,
+ 348,514,440,2471,374,518,4508,2740,2224,327,
+ 38,502,281,993,3300,2951,3320,244,230,231,
+ 2351,38,984,36,993,3852,2505,34,1068,31,
+ 35,30,32,947,262,29,27,55,1085,110,
+ 80,81,112,1118,1695,2406,2351,38,984,36,
+ 993,1178,2505,34,1068,31,35,30,32,947,
+ 262,29,27,55,1085,110,80,81,112,1118,
+ 350,2426,1074,175,865,409,3543,1350,528,1198,
+ 38,984,36,993,2815,4586,34,1068,31,35,
+ 338,32,943,1817,2098,2128,1670,229,343,1383,
+ 1002,348,160,372,2177,232,341,1788,1267,38,
+ 442,1,184,2760,4753,284,528,1057,397,204,
+ 215,3431,203,212,213,214,216,327,38,291,
+ 173,374,247,230,231,229,30,316,3481,321,
+ 160,1088,187,171,172,174,175,176,177,178,
+ 184,2760,327,38,502,279,993,204,215,3431,
+ 203,212,213,214,216,3697,430,1981,173,30,
+ 102,2108,4552,30,2195,185,2411,1343,649,778,
+ 188,171,172,174,175,176,177,178,865,2067,
+ 2351,38,984,36,993,229,2505,34,1068,31,
+ 35,30,32,947,262,29,27,55,1085,110,
+ 80,81,112,2435,2678,38,278,206,215,3431,
+ 205,212,213,214,216,327,38,502,3531,993,
+ 3204,2586,1924,1974,350,2596,1088,207,1931,3284,
+ 2411,1540,38,442,2709,515,2645,4753,3011,2411,
+ 217,208,209,210,211,292,293,294,295,229,
+ 160,30,343,1383,1002,348,2669,1186,229,2463,
+ 1589,166,435,3562,3572,30,4277,3480,3835,3052,
+ 4705,206,215,3431,205,212,213,214,216,2234,
+ 206,215,3431,205,212,213,214,216,1805,38,
+ 390,207,30,3284,30,1299,199,4394,2720,1762,
+ 207,1074,3284,2411,217,208,209,210,211,292,
+ 293,294,295,217,208,209,210,211,292,293,
+ 294,295,229,3615,327,38,1939,384,993,520,
+ 4277,3613,501,38,1939,384,993,1607,2285,4277,
+ 3666,849,2009,3267,206,215,3431,205,212,213,
+ 214,216,1186,1186,54,942,2464,327,38,1939,
+ 384,993,54,1186,207,1172,3284,1848,2284,327,
+ 38,1939,384,993,2304,1848,2547,217,208,209,
+ 210,211,292,293,294,295,2430,54,2465,30,
+ 1186,198,202,331,2758,439,3562,3572,3648,423,
+ 1848,3251,200,4277,3689,2351,38,2007,1980,993,
+ 1558,2505,34,1068,31,35,30,32,947,262,
+ 29,27,55,1085,110,80,81,88,3388,221,
+ 2351,38,984,36,993,37,2505,34,1068,31,
+ 35,30,32,947,262,29,27,55,1085,110,
+ 80,81,112,2464,2351,38,984,36,993,2543,
+ 2505,34,1068,31,35,30,32,947,262,29,
+ 27,55,1085,110,80,81,112,2466,1258,38,
+ 984,36,993,2670,4671,34,1068,31,35,338,
+ 32,2351,38,984,36,993,2527,2505,34,1068,
+ 31,35,30,32,947,262,29,27,55,1085,
+ 110,80,81,89,334,262,508,938,1186,1088,
+ 528,1809,38,984,36,993,2772,4586,34,1068,
+ 31,35,338,32,332,508,319,2684,321,229,
+ 315,2593,1546,164,160,350,2286,30,3267,2668,
+ 3466,4213,3071,349,184,2760,1186,3773,528,2334,
+ 508,204,215,3431,203,212,213,214,216,3517,
+ 1178,2640,173,345,1383,1002,348,229,1139,316,
+ 3481,321,160,2562,3828,171,172,174,175,176,
+ 177,178,184,2760,3555,304,239,262,332,204,
+ 215,3431,203,212,213,214,216,436,508,350,
+ 173,30,528,1291,2166,508,1856,330,334,1614,
+ 3267,2682,180,171,172,174,175,176,177,178,
+ 30,229,1018,2676,298,3135,160,345,1383,1002,
+ 348,1523,3664,1161,232,523,184,2760,2411,2690,
+ 528,2505,2421,204,215,3431,203,212,213,214,
+ 216,2655,2694,30,173,2750,1088,2616,3144,229,
+ 3524,240,230,231,160,1974,191,171,172,174,
+ 175,176,177,178,184,2760,1805,38,390,2687,
+ 160,204,215,3431,203,212,213,214,216,30,
+ 201,3273,173,1178,3208,1186,1607,2637,38,3077,
+ 1531,993,3267,4386,3876,171,172,174,175,176,
+ 177,178,1337,38,984,36,993,3616,4586,34,
+ 1068,31,35,338,32,494,508,54,2689,327,
+ 38,1939,384,993,3776,327,38,1939,384,993,
+ 1848,1145,100,2404,610,30,1178,2731,2411,528,
+ 3632,2007,331,2752,2758,2760,2761,305,1111,441,
+ 3088,491,493,2411,4833,54,2771,342,229,1178,
+ 319,2684,321,160,314,2593,30,508,1848,3114,
+ 334,2411,229,184,2760,1088,3873,4536,3743,2541,
+ 204,215,3431,203,212,213,214,216,697,2772,
+ 342,173,3551,528,1541,401,2979,1488,508,164,
+ 297,376,232,194,171,172,174,175,176,177,
+ 178,2903,229,2609,402,30,3284,160,2802,508,
+ 954,2056,508,296,307,311,1186,184,2760,250,
+ 230,231,3853,2779,204,215,3431,203,212,213,
+ 214,216,784,2586,3832,173,2586,528,1088,2732,
+ 2739,1088,3275,3772,2513,3852,3810,190,171,172,
+ 174,175,176,177,178,303,229,2574,30,1512,
+ 2766,160,160,1088,1070,160,1551,2783,88,30,
+ 871,184,2760,166,2411,528,166,2762,204,215,
+ 3431,203,212,213,214,216,30,160,2773,173,
+ 1186,1088,1186,342,229,1186,403,406,1555,160,
+ 2777,197,171,172,174,175,176,177,178,184,
+ 2760,3646,2785,1186,2903,160,204,215,3431,203,
+ 212,213,214,216,2066,2778,2893,173,379,4141,
+ 2784,222,2788,2789,299,3830,1053,5324,3749,196,
+ 171,172,174,175,176,177,178,2351,38,984,
+ 36,993,195,2505,34,1068,31,35,30,32,
+ 947,262,29,27,55,1085,110,80,81,87,
+ 2351,38,984,36,993,5324,2505,34,1068,31,
+ 35,30,32,947,262,29,27,55,1085,110,
+ 80,81,86,2351,38,984,36,993,5324,2505,
+ 34,1068,31,35,30,32,947,262,29,27,
+ 55,1085,110,80,81,85,2351,38,984,36,
+ 993,5324,2505,34,1068,31,35,30,32,947,
+ 262,29,27,55,1085,110,80,81,84,2351,
+ 38,984,36,993,5324,2505,34,1068,31,35,
+ 30,32,947,262,29,27,55,1085,110,80,
+ 81,83,2351,38,984,36,993,5324,2505,34,
+ 1068,31,35,30,32,947,262,29,27,55,
+ 1085,110,80,81,82,2208,38,984,36,993,
+ 5324,2505,34,1068,31,35,30,32,947,262,
+ 29,27,55,1085,110,80,81,108,2351,38,
+ 984,36,993,5324,2505,34,1068,31,35,30,
+ 32,947,262,29,27,55,1085,110,80,81,
+ 114,2351,38,984,36,993,5324,2505,34,1068,
+ 31,35,30,32,947,262,29,27,55,1085,
+ 110,80,81,113,2351,38,984,36,993,5324,
+ 2505,34,1068,31,35,30,32,947,262,29,
+ 27,55,1085,110,80,81,111,2351,38,984,
+ 36,993,2424,2505,34,1068,31,35,30,32,
+ 947,262,29,27,55,1085,110,80,81,109,
+ 2802,2586,30,334,5324,2411,1088,1088,1088,1994,
+ 5324,5324,5324,5324,2411,5324,5324,5324,5324,5324,
+ 5324,5324,5324,5324,229,5324,5324,5324,5324,5324,
+ 160,160,164,229,30,334,5324,5324,5324,1088,
+ 1088,166,1813,232,5324,5324,206,215,3431,205,
+ 212,213,214,216,5324,206,215,3431,205,212,
+ 213,214,216,160,164,5324,207,5324,3284,938,
+ 253,230,231,2812,2012,207,5324,3284,2411,488,
+ 208,209,210,211,292,293,294,295,510,208,
+ 209,210,211,292,293,294,295,229,5324,5324,
+ 5324,5324,2291,3752,1376,38,3542,36,993,3616,
+ 4586,34,1068,31,35,338,32,5324,5324,206,
+ 215,3431,205,212,213,214,216,2894,5324,5324,
+ 1139,5324,2411,5324,2550,5324,5324,2627,5324,207,
+ 5324,3284,2411,5324,5324,5324,5324,5324,5324,5324,
+ 5324,229,306,208,209,210,211,292,293,294,
+ 295,229,319,2684,321,5324,314,2593,5324,3073,
+ 334,5324,5324,206,215,3431,205,212,213,214,
+ 216,934,5324,206,215,3431,205,212,213,214,
+ 216,2031,5324,207,5324,3284,5324,4649,5324,5324,
+ 5324,5324,5324,207,5324,3284,511,208,209,210,
+ 211,292,293,294,295,5324,218,208,209,210,
+ 211,292,293,294,295,1487,38,984,36,993,
+ 3616,4586,34,1068,31,35,338,32,2502,38,
+ 1939,384,993,5324,2837,5324,1230,38,1939,384,
+ 993,238,262,30,2734,5324,5324,2586,1088,2411,
+ 5324,5324,528,5324,410,3543,5324,5324,274,5324,
+ 5324,5324,5324,5324,30,5324,54,5324,2616,2411,
+ 5324,3665,160,319,2684,321,160,314,2593,1848,
+ 52,5324,5324,2017,5324,1584,5324,166,342,232,
+ 2785,5324,2541,5324,1487,38,984,36,993,3616,
+ 4586,34,1068,31,35,338,32,5324,5324,2903,
+ 30,5324,5324,5324,5324,1088,236,230,231,2145,
+ 5324,275,1487,38,984,36,993,3616,4586,34,
+ 1068,31,35,338,32,5324,494,308,311,160,
+ 5324,5324,5324,421,243,246,249,252,3617,3428,
+ 2067,5324,319,2684,321,2191,314,2593,1214,38,
+ 984,36,993,5324,4671,34,1068,31,35,338,
+ 32,2634,491,493,334,5324,5324,5324,5324,1088,
+ 319,2684,321,5324,314,2593,1214,38,984,36,
+ 993,5324,4671,34,1068,31,35,338,32,3872,
+ 5324,5324,1921,164,1029,5324,1921,2411,3267,2411,
+ 4833,2411,3267,3806,332,5324,319,2684,321,5324,
+ 317,2593,5324,3131,30,5324,2616,5324,229,1088,
+ 2616,414,38,1939,384,993,1626,38,1939,384,
+ 993,5324,332,5324,319,2684,321,5324,315,2593,
+ 1541,401,2979,160,5324,334,5324,5324,331,5324,
+ 1088,54,331,5324,2387,2031,54,5324,5324,5324,
+ 402,4649,3284,2673,1848,52,5324,5324,5324,1848,
+ 2907,5324,5324,5324,164,1026,5324,938,5324,5324,
+ 2662,5324,5324,3452,358,5324,5324,3388,358,1626,
+ 38,1939,384,993,5324,5324,5324,5324,3275,1727,
+ 3252,3265,5324,1727,3252,3265,501,38,1939,384,
+ 993,1626,38,1939,384,993,30,30,30,54,
+ 5324,2411,1088,528,5324,5324,1626,38,1939,384,
+ 993,5324,1848,52,5324,5324,54,5324,1139,5324,
+ 342,54,342,2516,2868,938,160,160,5324,1848,
+ 52,5324,403,405,1848,3146,54,3728,1281,1584,
+ 2061,2903,5324,2903,5324,2662,5324,5324,5324,1848,
+ 52,2190,5324,1246,1924,5324,3678,3161,334,5324,
+ 2685,1626,38,1939,384,993,1626,38,1939,384,
+ 993,5324,5324,1626,38,1939,384,993,2139,38,
+ 1939,384,993,5324,5324,5324,1139,5324,5324,5324,
+ 5324,54,5324,5324,5324,5324,54,420,2253,38,
+ 1939,384,993,54,1848,52,2486,5324,54,1848,
+ 52,2411,5324,5324,5324,2854,1848,52,5324,3529,
+ 3279,1848,52,5324,5324,3299,334,3649,54,5324,
+ 342,5324,2708,327,38,1939,384,993,5324,5324,
+ 521,1848,52,327,38,1939,384,993,5324,5324,
+ 5324,2903,3027,327,38,1939,384,993,5324,5324,
+ 30,524,5324,54,30,528,30,30,5324,528,
+ 5324,528,2411,54,30,30,1848,2245,5324,528,
+ 2411,5324,5324,54,342,5324,1848,888,342,160,
+ 342,342,5324,160,5324,160,1848,2801,342,342,
+ 944,5324,30,160,192,2903,192,2411,30,4472,
+ 5324,4472,2903,2411,192,1503,5324,5324,5324,4472,
+ 2903,5324,1770,5324,5324,5324,342,5324,5324,5324,
+ 498,5324,342,5324,5324,5324,5324,5324,5324,5324,
+ 5324,5324,5324,5324,5324,5324,5324,2903,5324,5324,
+ 5324,5324,5324,2903,5324,5324,5324,496,5324,5324,
+ 5324,5324,5324,525,5324,5324,5324,5324,5324,5324,
+ 5324,5324,5324,5324,5324,5324,5324,5324,5324,3445,
+ 5324,3470,5324,5324,5324,5324,5324,5324,5324,3518,
+ 5324,5324,5324,5324,5324,3205,5324,0,42,5342,
+ 0,42,5341,0,502,33,0,443,938,0,
+ 41,5342,0,41,5341,0,130,2560,0,1,
+ 433,0,447,1053,0,446,1284,0,502,44,
+ 0,1058,95,0,502,383,0,384,36,0,
+ 36,384,0,383,33,0,33,383,0,502,
+ 33,383,0,42,852,0,1,562,0,1,
+ 5597,0,1,5596,0,1,5595,0,1,5594,
+ 0,1,5593,0,1,5592,0,1,5591,0,
+ 1,5590,0,1,5589,0,1,5588,0,1,
+ 5587,0,42,1,5342,0,42,1,5341,0,
+ 723,1,0,5558,241,0,5557,241,0,5661,
+ 241,0,5660,241,0,5585,241,0,5584,241,
+ 0,5583,241,0,5582,241,0,5581,241,0,
+ 5580,241,0,5579,241,0,5578,241,0,5597,
+ 241,0,5596,241,0,5595,241,0,5594,241,
+ 0,5593,241,0,5592,241,0,5591,241,0,
+ 5590,241,0,5589,241,0,5588,241,0,5587,
+ 241,0,42,241,5342,0,42,241,5341,0,
+ 5365,241,0,53,5342,0,53,5341,0,237,
+ 3424,0,48,5363,0,48,40,0,5342,53,
+ 0,5341,53,0,132,2560,0,131,2560,0,
+ 30,509,0,5653,434,0,1356,434,0,5365,
+ 1,0,42,1,0,52,40,0,1,96,
+ 0,5365,228,1,0,42,228,1,0,228,
+ 408,0,40,5342,0,40,5341,0,40,5342,
+ 2,0,40,5341,2,0,5342,39,0,5341,
+ 39,0,5363,50,0,50,40,0,5334,399,
+ 0,5333,399,0,1,4444,0,1,2491,0,
+ 1,852,0,228,407,0,2229,318,0,5653,
+ 99,0,1356,99,0,1,5653,0,1,1356,
+ 0,279,4143,0,1,666,0,1,3198,0,
+ 5332,1,0,490,4149,0,228,1,0,228,
+ 1,3675,0,5334,228,0,5333,228,0,3808,
228,0,8,10,0,228,220,0,228,219,
- 0,189,3695,0
+ 0,189,3718,0
};
};
public final static char baseAction[] = BaseAction.baseAction;
@@ -1408,304 +1395,304 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse
public interface TermAction {
public final static char termAction[] = {0,
- 5394,5369,5366,5366,5366,5366,5366,5366,5366,5379,
+ 5324,5299,5296,5296,5296,5296,5296,5296,5296,5309,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,5376,1,1,1,
+ 1,1,1,1,1,1,5306,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,5394,1,1,1,1127,1,
- 765,1,1,1,1,1,1123,1,1,1,
- 5394,3626,1,1,1,41,5057,5054,1,1,
- 1,5401,727,5573,718,3665,2274,2190,2181,3628,
- 3473,161,3661,1113,3644,3619,3631,8,5382,5382,
- 5382,5382,5382,5382,5382,5382,5382,5382,5382,5382,
- 5382,5382,5382,5382,5382,5382,5382,5382,5382,5382,
- 5382,5382,5382,5382,5382,5382,5394,5382,5382,5382,
- 5382,5382,5382,5382,5382,5382,5382,5382,5382,5382,
- 5382,5394,5382,5382,5382,5382,5382,5382,5382,5382,
- 5382,5382,5382,5382,5382,5382,5382,1371,5382,5382,
- 5382,5382,125,5394,141,5382,5382,5382,5382,5394,
- 5382,5382,5382,5382,5382,5382,5382,5382,5394,5382,
- 5382,5382,5382,5382,5394,5369,5366,5366,5366,5366,
- 5366,5366,5366,5373,1,1,1,1,1,1,
+ 1,1,1,1,5324,1,1,1,1072,1,
+ 767,1,1,1,1,1,1417,1,1,1,
+ 5324,3673,1,1,1,41,4993,4990,1,1,
+ 1,5331,729,5503,1838,3763,3262,2161,3167,3674,
+ 3425,161,3719,1193,3686,3571,3676,8,5312,5312,
+ 5312,5312,5312,5312,5312,5312,5312,5312,5312,5312,
+ 5312,5312,5312,5312,5312,5312,5312,5312,5312,5312,
+ 5312,5312,5312,5312,5312,5312,5324,5312,5312,5312,
+ 5312,5312,5312,5312,5312,5312,5312,5312,5312,5312,
+ 5312,5324,5312,5312,5312,5312,5312,5312,5312,5312,
+ 5312,5312,5312,5312,5312,5312,5312,1332,5312,5312,
+ 5312,5312,125,5324,141,5312,5312,5312,5312,5324,
+ 5312,5312,5312,5312,5312,5312,5312,5312,5324,5312,
+ 5312,5312,5312,5312,5324,5299,5296,5296,5296,5296,
+ 5296,5296,5296,5303,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 5376,1,1,3482,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,3007,1,
- 1,1,1127,1,765,1,1,1,1,1,
- 1123,1,1,1,122,3626,1,1,1,5041,
- 2657,2748,1,1,1,2904,2826,5573,718,3665,
- 2274,2190,2181,3628,3473,2279,3661,1113,3644,3619,
- 3631,5394,5369,5366,5366,5366,5366,5366,5366,5366,
- 5373,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,5376,1,1,
- 5394,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,5394,1,1,1,1127,
- 1,765,1,1,1,1,1,1123,1,1,
- 1,5394,3626,1,1,1,5394,5411,5412,1,
- 1,1,446,1,5573,718,3665,2274,2190,2181,
- 3628,3473,165,3661,1113,3644,3619,3631,5394,5369,
- 5366,5366,5366,5366,5366,5366,5366,5373,1,1,
+ 5306,1,1,3696,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,2993,1,
+ 1,1,1072,1,767,1,1,1,1,1,
+ 1417,1,1,1,122,3673,1,1,1,4977,
+ 2629,2720,1,1,1,2946,2920,5503,1838,3763,
+ 3262,2161,3167,3674,3425,2250,3719,1193,3686,3571,
+ 3676,5324,5299,5296,5296,5296,5296,5296,5296,5296,
+ 5303,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,5306,1,1,
+ 5324,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,5324,1,1,1,1072,
+ 1,767,1,1,1,1,1,1417,1,1,
+ 1,5324,3673,1,1,1,5324,5341,5342,1,
+ 1,1,447,1,5503,1838,3763,3262,2161,3167,
+ 3674,3425,165,3719,1193,3686,3571,3676,5324,5299,
+ 5296,5296,5296,5296,5296,5296,5296,5303,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,5376,1,1,1887,1,1,
+ 1,1,1,1,5306,1,1,1890,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,5072,1,1,1,1127,1,765,1,
- 1,1,1,1,1123,1,1,1,5394,3626,
- 1,1,1,5394,5236,5233,1,1,1,445,
- 165,5573,718,3665,2274,2190,2181,3628,3473,504,
- 3661,1113,3644,3619,3631,5394,5369,5366,5366,5366,
- 5366,5366,5366,5366,5373,1,1,1,1,1,
+ 1,1,5002,1,1,1,1072,1,767,1,
+ 1,1,1,1,1417,1,1,1,5324,3673,
+ 1,1,1,5324,5166,5163,1,1,1,446,
+ 165,5503,1838,3763,3262,2161,3167,3674,3425,505,
+ 3719,1193,3686,3571,3676,5324,5299,5296,5296,5296,
+ 5296,5296,5296,5296,5303,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,5376,1,1,5394,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,5075,
- 1,1,1,1127,1,765,1,1,1,1,
- 1,1123,1,1,1,901,3626,1,1,1,
- 53,5251,5248,1,1,1,346,5394,5573,718,
- 3665,2274,2190,2181,3628,3473,5400,3661,1113,3644,
- 3619,3631,5394,5369,5366,5366,5366,5366,5366,5366,
- 5366,5373,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,5376,1,
- 1,5394,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,799,1,1,1,
- 1127,1,765,1,1,1,1,1,1123,1,
- 1,1,5394,3626,1,1,1,129,5394,42,
- 1,1,1,5435,5399,5573,718,3665,2274,2190,
- 2181,3628,3473,5394,3661,1113,3644,3619,3631,5394,
- 5369,5366,5366,5366,5366,5366,5366,5366,5373,1,
+ 1,5306,1,1,5324,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,5005,
+ 1,1,1,1072,1,767,1,1,1,1,
+ 1,1417,1,1,1,904,3673,1,1,1,
+ 53,5181,5178,1,1,1,347,5324,5503,1838,
+ 3763,3262,2161,3167,3674,3425,5330,3719,1193,3686,
+ 3571,3676,5324,5299,5296,5296,5296,5296,5296,5296,
+ 5296,5303,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,5306,1,
+ 1,5324,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1851,1,1,1,
+ 1072,1,767,1,1,1,1,1,1417,1,
+ 1,1,5324,3673,1,1,1,129,5324,42,
+ 1,1,1,5365,5329,5503,1838,3763,3262,2161,
+ 3167,3674,3425,5324,3719,1193,3686,3571,3676,5324,
+ 5299,5296,5296,5296,5296,5296,5296,5296,5303,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,5376,1,1,5394,1,
+ 1,1,1,1,1,5306,1,1,5324,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,3009,1,1,1,1127,1,765,
- 1,1,1,1,1,1123,1,1,1,124,
- 3626,1,1,1,128,2657,2748,1,1,1,
- 2904,2826,5573,718,3665,2274,2190,2181,3628,3473,
- 5394,3661,1113,3644,3619,3631,5394,5369,5366,5366,
- 5366,5366,5366,5366,5366,5373,1,1,1,1,
+ 1,1,1,2994,1,1,1,1072,1,767,
+ 1,1,1,1,1,1417,1,1,1,124,
+ 3673,1,1,1,128,2629,2720,1,1,1,
+ 2946,2920,5503,1838,3763,3262,2161,3167,3674,3425,
+ 5324,3719,1193,3686,3571,3676,5324,5299,5296,5296,
+ 5296,5296,5296,5296,5296,5303,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,5376,1,1,5394,1,1,1,1,
+ 1,1,5306,1,1,5324,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1174,1,1,1,1127,1,765,1,1,1,
- 1,1,1123,1,1,1,123,3626,1,1,
- 1,127,2657,2748,1,1,1,2904,2826,5573,
- 718,3665,2274,2190,2181,3628,3473,5394,3661,1113,
- 3644,3619,3631,5394,5369,5366,5366,5366,5366,5366,
- 5366,5366,5373,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,5376,
- 1,1,5394,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1658,1,1,
- 1,1127,1,765,1,1,1,1,1,1123,
- 1,1,1,5394,3626,1,1,1,5394,2657,
- 2748,1,1,1,1696,5394,5573,718,3665,2274,
- 2190,2181,3628,3473,5394,3661,1113,3644,3619,3631,
- 5394,3630,1,1,1,1,1,1,1,5404,
+ 1455,1,1,1,1072,1,767,1,1,1,
+ 1,1,1417,1,1,1,123,3673,1,1,
+ 1,127,2629,2720,1,1,1,2946,2920,5503,
+ 1838,3763,3262,2161,3167,3674,3425,5324,3719,1193,
+ 3686,3571,3676,5324,5299,5296,5296,5296,5296,5296,
+ 5296,5296,5303,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,5306,
+ 1,1,5324,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1713,1,1,
+ 1,1072,1,767,1,1,1,1,1,1417,
+ 1,1,1,5324,3673,1,1,1,5324,2629,
+ 2720,1,1,1,1746,5324,5503,1838,3763,3262,
+ 2161,3167,3674,3425,5324,3719,1193,3686,3571,3676,
+ 5324,3675,1,1,1,1,1,1,1,5334,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,5403,1,1,4642,
+ 1,1,1,1,1,1,5333,1,1,3809,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,765,1,1,1,1127,1,
- 765,1,1,1,1,1,1123,1,1,1,
- 119,3626,1,1,1,126,3412,334,1,1,
- 1,359,5394,5573,718,3665,2274,2190,2181,3628,
- 3473,5398,3661,1113,3644,3619,3631,42,5069,5066,
- 4779,721,3339,3910,2520,3933,5394,1059,3887,3864,
- 5659,5657,5666,5665,5661,5662,5660,5663,5664,5667,
- 5658,3979,3956,5729,5651,5417,5730,3449,668,771,
- 5419,715,621,761,5420,5418,626,5413,5415,5416,
- 5414,5394,5654,5729,1325,133,5730,1438,5648,5655,
- 5627,5653,5652,224,5649,5650,5628,33,5394,5785,
- 5394,3388,3364,2657,2748,944,5786,5787,5394,5285,
- 5285,228,5281,228,228,228,228,5289,1,5394,
- 5651,1,1,1,1,1,1,1,1,1,
- 1,1,189,302,228,1,30,489,5654,5729,
- 5397,501,5730,5695,5648,5655,5627,5653,5652,5394,
- 5649,5650,5628,1,1,40,1069,1,5402,1,
- 1,1,1,1,5394,1,1,1,1354,414,
- 1,5394,5069,5066,418,5435,1,1,1,407,
- 228,5797,2411,2382,5433,5394,8712,8712,137,5882,
- 5394,5285,5285,228,5281,228,228,228,228,5333,
- 1,5260,5260,1,1,1,1,1,1,1,
- 1,1,1,1,5433,1025,228,1,429,489,
- 5401,1395,5819,5820,5821,364,5146,5142,2722,5150,
- 1078,1,2520,1,5394,1,1,4815,1069,1,
- 1,1,1,1,1,1,3484,1,1,1,
- 5354,5394,1,5391,48,5245,5245,5394,1,1,
- 1,406,228,5797,383,5394,5402,5087,5394,3593,
- 5087,5882,5087,5090,5404,5090,5090,1,5146,5142,
- 5324,5150,5330,5242,5327,799,5404,2349,5090,5090,
- 5087,5403,1145,5394,5045,5042,4374,721,1078,980,
- 2520,5722,5357,5403,5819,5820,5821,436,5090,53,
- 5236,5233,4727,5394,5146,5142,4374,5150,1078,5348,
- 2520,5345,5394,5788,5090,2958,143,139,5401,5090,
- 5090,5090,5819,5820,5821,5090,5090,343,5045,5042,
- 2722,721,1078,980,2520,5722,5394,5045,5042,5394,
- 5435,5090,5090,5090,5090,5090,5090,5090,5090,5090,
- 5090,5090,5090,5090,5090,5090,5090,5090,5090,5090,
- 5090,5090,5090,5090,5090,5090,5090,5090,5394,2549,
- 382,5090,5090,5093,5090,2062,5093,5400,5093,5096,
- 1,5096,5096,1844,432,1,1,799,1,5360,
- 5063,5394,5063,5394,5096,5096,5093,310,5146,5142,
- 4374,5150,1078,5348,2520,5345,1,5146,5142,4374,
- 5150,1078,389,2520,5099,310,382,2315,2240,142,
- 1801,1758,1715,1672,1629,1586,1543,1500,1457,1414,
- 5096,5394,310,3775,4907,5096,5096,5096,5394,5411,
- 5412,5096,5096,2690,302,1,5146,5142,4374,5150,
- 1078,5401,2520,140,5695,5399,501,5096,5096,5096,
- 5096,5096,5096,5096,5096,5096,5096,5096,5096,5096,
- 5096,5096,5096,5096,5096,5096,5096,5096,5096,5096,
- 5096,5096,5096,5096,288,5411,5412,5096,5096,5394,
- 5096,5394,1,1,1,1,1,1,1,1,
- 1878,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,2062,5394,1,
- 2279,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,5394,5045,5042,1,721,
- 1078,95,2520,135,5081,5394,5045,5042,1,721,
- 5103,583,2520,2315,1,1,1,5146,5142,4374,
- 5150,1078,4745,2520,5920,1,5146,5142,4779,5150,
- 3339,3910,2520,3933,862,5106,3887,3864,5133,5139,
- 5112,5115,5127,5124,5130,5121,5118,5109,5136,3979,
- 3956,237,5394,5417,5239,3449,668,771,5419,715,
- 621,761,5420,5418,626,5413,5415,5416,5414,5394,
- 5045,5042,1325,5435,5394,343,42,42,3504,5435,
- 5394,980,2091,5722,39,5309,5306,287,42,42,
- 505,42,5045,5042,4779,721,3339,3910,2520,3933,
- 5402,561,3887,3864,5659,5657,5666,5665,5661,5662,
- 5660,5663,5664,5667,5658,3979,3956,4117,3666,5417,
- 5394,3449,668,771,5419,715,621,761,5420,5418,
- 626,5413,5415,5416,5414,799,42,5394,1325,3052,
- 5435,3294,980,416,5722,3720,3666,1,5146,5142,
- 2722,5150,1078,1054,2520,5394,5251,5248,5394,5394,
- 5411,5412,5401,42,5045,5042,4779,721,3339,3910,
- 2520,3933,5402,561,3887,3864,5659,5657,5666,5665,
- 5661,5662,5660,5663,5664,5667,5658,3979,3956,1,
- 5394,5417,4885,3449,668,771,5419,715,621,761,
- 5420,5418,626,5413,5415,5416,5414,799,53,4181,
- 1325,104,5412,3294,1,5146,5142,2722,5150,1078,
- 138,2520,4002,828,225,145,5045,5042,4779,721,
- 3339,3910,2520,3933,5401,561,3887,3864,5659,5657,
- 5666,5665,5661,5662,5660,5663,5664,5667,5658,3979,
- 3956,5651,5412,5417,115,3449,668,771,5419,715,
- 621,761,5420,5418,626,5413,5415,5416,5414,5654,
- 5729,4571,1325,5730,799,5648,5655,5627,5653,5652,
- 5394,5649,5650,5628,5394,5236,5233,5394,42,42,
- 1,5146,5142,4779,5150,3339,3910,2520,3933,5394,
- 5106,3887,3864,5133,5139,5112,5115,5127,5124,5130,
- 5121,5118,5109,5136,3979,3956,5394,5394,5417,2349,
- 3449,668,771,5419,715,621,761,5420,5418,626,
- 5413,5415,5416,5414,390,5411,5412,1325,1,5146,
- 5142,5324,5150,5330,4025,5327,5394,4002,828,3812,
- 4048,5394,3053,42,42,42,5045,5042,4779,721,
- 3339,3910,2520,3933,5398,561,3887,3864,5659,5657,
- 5666,5665,5661,5662,5660,5663,5664,5667,5658,3979,
- 3956,33,5894,5417,5394,3449,668,771,5419,715,
- 621,761,5420,5418,626,5413,5415,5416,5414,42,
- 5045,5042,4779,721,3339,3910,2520,3933,522,561,
- 3887,3864,5659,5657,5666,5665,5661,5662,5660,5663,
- 5664,5667,5658,3979,3956,5048,118,5417,551,3449,
- 668,771,5419,715,621,761,5420,5418,626,5413,
- 5415,5416,5414,5394,5411,5412,1325,442,1,3294,
- 1,5272,5272,5394,5269,3620,980,360,5722,360,
- 143,40,5275,5275,42,5045,5042,4779,721,3339,
- 3910,2520,3933,5397,561,3887,3864,5659,5657,5666,
- 5665,5661,5662,5660,5663,5664,5667,5658,3979,3956,
- 1071,5051,5417,2571,3449,668,771,5419,715,621,
- 761,5420,5418,626,5413,5415,5416,5414,319,1,
- 1,1325,532,3504,5851,5845,4025,5849,5837,5394,
- 5843,5844,4048,1,5366,5366,228,5366,228,228,
- 228,228,228,5874,5875,360,226,360,355,5852,
- 433,42,42,360,5435,360,5266,42,5263,228,
- 8714,5435,5363,5854,5394,5045,5042,5394,721,5103,
- 42,2520,2240,5651,5435,3682,5394,3670,799,714,
- 799,1127,2145,2239,5855,5876,5853,3775,1,2493,
- 121,5654,5729,878,3626,5730,3412,5648,5655,5627,
- 5653,5652,1749,5649,5650,5628,52,5865,5864,5877,
- 5846,5847,5870,5871,5882,1264,5868,5869,5848,5850,
- 5872,5873,5878,5858,5859,5860,5856,5857,5866,5867,
- 5862,5861,5863,5394,136,1020,532,5394,5851,5845,
- 4119,5849,583,5748,5843,5844,44,1,5366,5366,
- 228,5366,228,228,228,228,5385,5874,5875,5394,
- 96,1,1,5852,1,5394,5278,5394,5278,345,
- 4120,53,1491,228,8714,5411,5363,5854,5394,8052,
- 7599,3388,3364,5750,5819,5820,5821,5394,5045,5042,
- 5078,721,1078,714,2520,1127,2145,2239,5855,5876,
- 5853,117,5394,2493,120,99,42,42,3626,5435,
- 3412,5342,382,5339,317,5411,5394,5336,220,4388,
- 5394,5865,5864,5877,5846,5847,5870,5871,5882,799,
- 5868,5869,5848,5850,5872,5873,5878,5858,5859,5860,
- 5856,5857,5866,5867,5862,5861,5863,42,5045,5042,
- 4779,721,3339,3910,2520,3933,5084,561,3887,3864,
- 5659,5657,5666,5665,5661,5662,5660,5663,5664,5667,
- 5658,3979,3956,5394,799,5417,3664,3449,668,771,
- 5419,715,621,761,5420,5418,626,5413,5415,5416,
- 5414,4025,5394,8052,7599,3388,3364,4048,42,5045,
- 5042,4779,721,3339,3910,2520,3933,1505,561,3887,
- 3864,5659,5657,5666,5665,5661,5662,5660,5663,5664,
- 5667,5658,3979,3956,5394,1,5417,3683,3449,668,
- 771,5419,715,621,761,5420,5418,626,5413,5415,
- 5416,5414,5394,5394,5394,1325,42,5045,5042,4821,
- 721,3339,3910,2520,3933,1,561,3887,3864,5659,
- 5657,5666,5665,5661,5662,5660,5663,5664,5667,5658,
- 3979,3956,3529,5394,5417,2772,3449,668,771,5419,
- 715,621,761,5420,5418,626,5413,5415,5416,5414,
- 42,5045,5042,4779,721,3339,3910,2520,3933,501,
- 561,3887,3864,5659,5657,5666,5665,5661,5662,5660,
- 5663,5664,5667,5658,3979,3956,107,2002,5417,3684,
- 3449,668,771,5419,715,621,761,5420,5418,626,
- 5413,5415,5416,5414,42,5045,5042,4779,721,3339,
- 3910,2520,3933,1,561,3887,3864,5659,5657,5666,
- 5665,5661,5662,5660,5663,5664,5667,5658,3979,3956,
- 437,3699,5417,227,3449,668,771,5419,715,621,
- 761,5420,5418,626,5413,5415,5416,5414,5394,5069,
- 5066,1,5435,116,130,383,311,134,975,3260,
- 5651,5659,5657,5666,5665,5661,5662,5660,5663,5664,
- 5667,5658,5394,5394,289,5651,2681,719,5654,5729,
- 1,5394,5730,3504,5648,5655,5627,5653,5652,339,
- 5649,5650,5628,5654,5729,1,3128,5730,2616,5648,
- 5655,5627,5653,5652,5400,5649,5650,5628,3124,132,
- 5785,241,5226,5222,5394,5230,944,5786,5787,5060,
- 5394,975,5394,1280,5213,5219,5192,5195,5207,5204,
- 5210,5201,5198,5189,5216,5394,103,5394,5177,372,
- 799,1973,2690,4025,5404,339,339,2496,2465,4048,
- 398,511,367,2616,2411,2382,5168,5162,2527,5318,
- 5159,5403,5186,5165,5156,5171,5174,339,5183,5180,
- 5153,223,3132,5785,5254,79,5321,5394,3071,944,
- 5786,5787,5399,5394,5659,5657,5666,5665,5661,5662,
- 5660,5663,5664,5667,5658,1,2012,5394,5651,5461,
- 5462,4344,2496,2465,167,1,5366,5366,228,5366,
- 228,228,228,228,5385,131,5654,5729,1,1190,
- 5730,167,5648,5655,5627,5653,5652,518,5649,5650,
- 5628,228,8714,3190,5363,3774,1,5366,5366,228,
- 5366,228,228,228,228,5388,390,5069,5066,5394,
- 5435,5394,1911,1127,40,5275,5275,5394,3699,2616,
- 1696,2493,228,8714,1,5363,3626,5394,5411,5412,
- 3699,5394,1078,5404,2520,42,220,5394,570,365,
- 5257,1927,167,5433,1127,5394,5882,5394,5295,5292,
- 5403,279,2493,410,5351,648,496,3626,494,40,
- 5275,5275,5394,5394,5275,518,3756,219,2496,2465,
- 5394,5302,5298,50,5315,5315,5433,5882,1,5366,
- 5366,228,5366,228,228,228,228,5385,1130,1,
- 5366,5366,228,5366,228,228,228,228,5385,5433,
- 5394,5394,5312,1,228,8714,1235,5363,5394,40,
- 5275,5275,5394,5354,5394,228,8714,2101,5363,5394,
- 2151,5394,4822,4891,3680,4894,1127,5394,2570,5394,
- 5394,5394,3593,4857,2493,38,2753,1127,5433,3626,
- 5394,5394,5394,4858,4864,2493,5394,5394,5394,220,
- 3626,4884,5394,5394,309,2548,4916,5394,498,5882,
- 220,2,5394,1,5394,5357,4244,5394,5394,5394,
- 5882,1,5366,5366,228,5366,228,228,228,228,
- 228,1,5366,5366,228,5366,228,228,228,228,
- 228,3625,5394,5394,5394,5394,5394,228,8714,5576,
- 5363,3511,2868,5575,5394,40,5394,228,8714,3017,
- 5363,5394,5394,2868,5394,5394,5394,3725,5394,1127,
- 3199,5394,5394,5394,1930,846,5394,2493,5394,1127,
- 5394,5394,3626,5394,5394,5394,5394,2493,5394,5394,
- 5394,5394,3626,5394,5394,5394,5394,5394,5394,5394,
- 5394,5394,5882,5394,5394,5394,5394,5394,5394,5394,
- 5394,5394,5882,1,5366,5366,228,5366,228,228,
- 228,228,228,5394,5394,5394,5394,5394,5394,5394,
- 5394,5394,5394,5394,5394,5394,5394,5394,5394,228,
- 8714,5394,5363,5394,5394,5394,5394,5394,5394,5394,
- 5394,5394,5394,5394,5394,5394,5394,5394,5394,5394,
- 5394,1127,5394,5394,5394,5394,5394,5394,5394,2493,
- 5394,5394,5394,5394,3626,5394,5394,5394,5394,5394,
- 5394,5394,5394,5394,5394,5394,5394,5394,5394,5394,
- 5394,5394,5394,5394,5882
+ 1,1,1,1,767,1,1,1,1072,1,
+ 767,1,1,1,1,1,1417,1,1,1,
+ 119,3673,1,1,1,126,3364,335,1,1,
+ 1,360,5324,5503,1838,3763,3262,2161,3167,3674,
+ 3425,5328,3719,1193,3686,3571,3676,42,4981,4978,
+ 2497,723,3315,3933,2491,3956,5324,1445,3910,3887,
+ 5589,5587,5596,5595,5591,5592,5590,5593,5594,5597,
+ 5588,4002,3979,5660,5581,5347,5661,3401,707,887,
+ 5349,717,622,845,5350,5348,663,5343,5345,5346,
+ 5344,5324,5584,5660,783,133,5661,1402,5578,5585,
+ 5557,5583,5582,224,5579,5580,5558,33,5324,5716,
+ 5324,3340,3090,2629,2720,613,5717,5718,5324,5215,
+ 5215,228,5211,228,228,228,228,5219,1,5324,
+ 5581,1,1,1,1,1,1,1,1,1,
+ 1,1,189,302,228,1,30,490,5584,5660,
+ 5327,502,5661,5625,5578,5585,5557,5583,5582,5324,
+ 5579,5580,5558,1,1,40,627,1,5332,1,
+ 1,1,1,1,5324,1,1,1,716,415,
+ 1,5324,4981,4978,419,5365,1,1,1,408,
+ 228,5728,2382,2353,5363,5324,8643,8643,137,5813,
+ 5324,5215,5215,228,5211,228,228,228,228,5263,
+ 1,5190,5190,1,1,1,1,1,1,1,
+ 1,1,1,1,5363,1029,228,1,430,490,
+ 5331,1574,5750,5751,5752,365,5076,5072,2694,5080,
+ 852,1,2491,1,5324,1,1,4678,627,1,
+ 1,1,1,1,1,1,4615,1,1,1,
+ 5284,5324,1,5321,48,5175,5175,5324,1,1,
+ 1,407,228,5728,384,5324,5332,5017,5324,3561,
+ 5017,5813,5017,5020,5334,5020,5020,1,5076,5072,
+ 5254,5080,5260,5172,5257,1851,5334,2320,5020,5020,
+ 5017,5333,1150,5324,4981,4978,4444,723,852,1356,
+ 2491,5653,5287,5333,5750,5751,5752,437,5020,53,
+ 5166,5163,4414,5324,5076,5072,4444,5080,852,5278,
+ 2491,5275,5324,5719,5020,3424,143,139,5331,5020,
+ 5020,5020,5750,5751,5752,5020,5020,344,4981,4978,
+ 2694,723,852,1356,2491,5653,5324,4981,4978,5324,
+ 5365,5020,5020,5020,5020,5020,5020,5020,5020,5020,
+ 5020,5020,5020,5020,5020,5020,5020,5020,5020,5020,
+ 5020,5020,5020,5020,5020,5020,5020,5020,5324,3008,
+ 383,5020,5020,5023,5020,2022,5023,5330,5023,5026,
+ 1,5026,5026,1808,433,1,1,1851,1,5290,
+ 4999,5324,4999,5324,5026,5026,5023,310,5076,5072,
+ 4444,5080,852,5278,2491,5275,1,5076,5072,4444,
+ 5080,852,390,2491,5029,310,383,2286,2200,142,
+ 1765,1722,1679,1636,1593,1550,1507,1464,1421,1378,
+ 5026,5324,310,3826,4888,5026,5026,5026,5324,5341,
+ 5342,5026,5026,2155,302,1,5076,5072,4444,5080,
+ 852,5331,2491,140,5625,5329,502,5026,5026,5026,
+ 5026,5026,5026,5026,5026,5026,5026,5026,5026,5026,
+ 5026,5026,5026,5026,5026,5026,5026,5026,5026,5026,
+ 5026,5026,5026,5026,288,5341,5342,5026,5026,5324,
+ 5026,5324,1,1,1,1,1,1,1,1,
+ 2423,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,2022,5324,1,
+ 2250,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,5324,4981,4978,1,723,
+ 852,95,2491,135,5011,5324,4981,4978,1,723,
+ 5033,584,2491,2286,1,1,1,5076,5072,4444,
+ 5080,852,4676,2491,5851,1,5076,5072,2497,5080,
+ 3315,3933,2491,3956,826,5036,3910,3887,5063,5069,
+ 5042,5045,5057,5054,5060,5051,5048,5039,5066,4002,
+ 3979,237,5324,5347,5169,3401,707,887,5349,717,
+ 622,845,5350,5348,663,5343,5345,5346,5344,5324,
+ 4981,4978,783,5365,5324,344,42,42,3067,5365,
+ 5324,1356,3069,5653,39,5239,5236,287,42,42,
+ 506,42,4981,4978,2497,723,3315,3933,2491,3956,
+ 5332,562,3910,3887,5589,5587,5596,5595,5591,5592,
+ 5590,5593,5594,5597,5588,4002,3979,4140,2667,5347,
+ 5324,3401,707,887,5349,717,622,845,5350,5348,
+ 663,5343,5345,5346,5344,1851,42,5324,783,2995,
+ 5365,3745,1356,417,5653,3865,2667,1,5076,5072,
+ 2694,5080,852,812,2491,5324,5181,5178,5324,5324,
+ 5341,5342,5331,42,4981,4978,2497,723,3315,3933,
+ 2491,3956,5332,562,3910,3887,5589,5587,5596,5595,
+ 5591,5592,5590,5593,5594,5597,5588,4002,3979,1,
+ 5324,5347,4847,3401,707,887,5349,717,622,845,
+ 5350,5348,663,5343,5345,5346,5344,1851,53,4331,
+ 783,104,5342,3745,1,5076,5072,2694,5080,852,
+ 138,2491,4025,950,225,145,4981,4978,2497,723,
+ 3315,3933,2491,3956,5331,562,3910,3887,5589,5587,
+ 5596,5595,5591,5592,5590,5593,5594,5597,5588,4002,
+ 3979,5581,5342,5347,115,3401,707,887,5349,717,
+ 622,845,5350,5348,663,5343,5345,5346,5344,5584,
+ 5660,4574,783,5661,1851,5578,5585,5557,5583,5582,
+ 5324,5579,5580,5558,5324,5166,5163,5324,42,42,
+ 1,5076,5072,2497,5080,3315,3933,2491,3956,5324,
+ 5036,3910,3887,5063,5069,5042,5045,5057,5054,5060,
+ 5051,5048,5039,5066,4002,3979,5324,5324,5347,2320,
+ 3401,707,887,5349,717,622,845,5350,5348,663,
+ 5343,5345,5346,5344,391,5341,5342,783,1,5076,
+ 5072,5254,5080,5260,4048,5257,5324,4025,950,4142,
+ 4071,5324,3004,42,42,42,4981,4978,2497,723,
+ 3315,3933,2491,3956,5328,562,3910,3887,5589,5587,
+ 5596,5595,5591,5592,5590,5593,5594,5597,5588,4002,
+ 3979,33,5825,5347,5324,3401,707,887,5349,717,
+ 622,845,5350,5348,663,5343,5345,5346,5344,42,
+ 4981,4978,2497,723,3315,3933,2491,3956,523,562,
+ 3910,3887,5589,5587,5596,5595,5591,5592,5590,5593,
+ 5594,5597,5588,4002,3979,4984,118,5347,552,3401,
+ 707,887,5349,717,622,845,5350,5348,663,5343,
+ 5345,5346,5344,5324,5341,5342,783,443,1,3745,
+ 1,5202,5202,5324,5199,3575,1356,361,5653,361,
+ 143,40,5205,5205,42,4981,4978,2497,723,3315,
+ 3933,2491,3956,5327,562,3910,3887,5589,5587,5596,
+ 5595,5591,5592,5590,5593,5594,5597,5588,4002,3979,
+ 2237,4987,5347,3457,3401,707,887,5349,717,622,
+ 845,5350,5348,663,5343,5345,5346,5344,320,1,
+ 1,783,533,3067,5782,5776,4048,5780,5768,5324,
+ 5774,5775,4071,1,5296,5296,228,5296,228,228,
+ 228,228,228,5805,5806,361,226,361,356,5783,
+ 434,42,42,361,5365,361,5196,42,5193,228,
+ 8645,5365,5293,5785,5324,4981,4978,5324,723,5033,
+ 42,2491,2200,5581,5365,3784,5324,3779,1851,823,
+ 1851,1072,1719,1752,5786,5807,5784,3826,1,2242,
+ 121,5584,5660,1013,3673,5661,3364,5578,5585,5557,
+ 5583,5582,1789,5579,5580,5558,52,5796,5795,5808,
+ 5777,5778,5801,5802,5813,1086,5799,5800,5779,5781,
+ 5803,5804,5809,5789,5790,5791,5787,5788,5797,5798,
+ 5793,5792,5794,5324,136,2150,533,5324,5782,5776,
+ 4174,5780,584,5679,5774,5775,44,1,5296,5296,
+ 228,5296,228,228,228,228,5315,5805,5806,5324,
+ 96,1,1,5783,1,5324,5208,5324,5208,346,
+ 4393,53,1617,228,8645,5341,5293,5785,5324,7983,
+ 7530,3340,3090,5681,5750,5751,5752,5324,4981,4978,
+ 5008,723,852,823,2491,1072,1719,1752,5786,5807,
+ 5784,117,5324,2242,120,99,42,42,3673,5365,
+ 3364,5272,383,5269,318,5341,5324,5266,220,4460,
+ 5324,5796,5795,5808,5777,5778,5801,5802,5813,1851,
+ 5799,5800,5779,5781,5803,5804,5809,5789,5790,5791,
+ 5787,5788,5797,5798,5793,5792,5794,42,4981,4978,
+ 2497,723,3315,3933,2491,3956,5014,562,3910,3887,
+ 5589,5587,5596,5595,5591,5592,5590,5593,5594,5597,
+ 5588,4002,3979,5324,1851,5347,4143,3401,707,887,
+ 5349,717,622,845,5350,5348,663,5343,5345,5346,
+ 5344,4048,5324,7983,7530,3340,3090,4071,42,4981,
+ 4978,2497,723,3315,3933,2491,3956,1469,562,3910,
+ 3887,5589,5587,5596,5595,5591,5592,5590,5593,5594,
+ 5597,5588,4002,3979,5324,1,5347,4175,3401,707,
+ 887,5349,717,622,845,5350,5348,663,5343,5345,
+ 5346,5344,5324,5324,5324,783,42,4981,4978,4840,
+ 723,3315,3933,2491,3956,1,562,3910,3887,5589,
+ 5587,5596,5595,5591,5592,5590,5593,5594,5597,5588,
+ 4002,3979,3469,5324,5347,3540,3401,707,887,5349,
+ 717,622,845,5350,5348,663,5343,5345,5346,5344,
+ 42,4981,4978,2497,723,3315,3933,2491,3956,502,
+ 562,3910,3887,5589,5587,5596,5595,5591,5592,5590,
+ 5593,5594,5597,5588,4002,3979,107,2883,5347,4524,
+ 3401,707,887,5349,717,622,845,5350,5348,663,
+ 5343,5345,5346,5344,42,4981,4978,2497,723,3315,
+ 3933,2491,3956,1,562,3910,3887,5589,5587,5596,
+ 5595,5591,5592,5590,5593,5594,5597,5588,4002,3979,
+ 438,3807,5347,227,3401,707,887,5349,717,622,
+ 845,5350,5348,663,5343,5345,5346,5344,5324,4981,
+ 4978,1,5365,116,130,384,312,134,1310,3036,
+ 5581,5589,5587,5596,5595,5591,5592,5590,5593,5594,
+ 5597,5588,5324,5324,289,5581,994,2135,5584,5660,
+ 1,5324,5661,3067,5578,5585,5557,5583,5582,340,
+ 5579,5580,5558,5584,5660,1,3141,5661,2588,5578,
+ 5585,5557,5583,5582,5330,5579,5580,5558,3525,132,
+ 5716,241,5156,5152,5324,5160,613,5717,5718,4996,
+ 5324,1310,5324,1286,5143,5149,5122,5125,5137,5134,
+ 5140,5131,5128,5119,5146,5324,103,5324,5107,373,
+ 1851,858,2155,4048,5334,340,340,2467,2436,4071,
+ 399,512,368,2588,2382,2353,5098,5092,3202,5248,
+ 5089,5333,5116,5095,5086,5101,5104,340,5113,5110,
+ 5083,223,3573,5716,5184,79,5251,5324,3700,613,
+ 5717,5718,5329,5324,5589,5587,5596,5595,5591,5592,
+ 5590,5593,5594,5597,5588,1,1983,5324,5581,5391,
+ 5392,4244,2467,2436,167,1,5296,5296,228,5296,
+ 228,228,228,228,5315,131,5584,5660,1,1195,
+ 5661,167,5578,5585,5557,5583,5582,519,5579,5580,
+ 5558,228,8645,3609,5293,3798,1,5296,5296,228,
+ 5296,228,228,228,228,5318,391,4981,4978,5324,
+ 5365,5324,2229,1072,40,5205,5205,5324,3807,2588,
+ 1746,2242,228,8645,1,5293,3673,5324,5341,5342,
+ 3807,5324,852,5334,2491,42,220,5324,571,366,
+ 5187,2762,167,5363,1072,5324,5813,5324,5225,5222,
+ 5333,279,2242,411,5281,997,497,3673,495,40,
+ 5205,5205,5324,5324,5205,519,4605,219,2467,2436,
+ 5324,5232,5228,50,5245,5245,5363,5813,1,5296,
+ 5296,228,5296,228,228,228,228,5315,2418,1,
+ 5296,5296,228,5296,228,228,228,228,5315,5363,
+ 5324,5324,5242,1,228,8645,1241,5293,5324,40,
+ 5205,5205,5324,5284,5324,228,8645,2072,5293,5324,
+ 2111,5324,4786,4855,3780,4882,1072,5324,3456,5324,
+ 5324,5324,3561,4844,2242,38,3426,1072,5363,3673,
+ 5324,5324,5324,4846,4397,2242,5324,5324,5324,220,
+ 3673,4854,5324,5324,309,3663,4677,5324,499,5813,
+ 220,2,5324,1,5324,5287,4267,5324,5324,5324,
+ 5813,1,5296,5296,228,5296,228,228,228,228,
+ 228,1,5296,5296,228,5296,228,228,228,228,
+ 228,3667,5324,5324,5324,5324,5324,228,8645,5506,
+ 5293,3463,2545,5505,5324,40,5324,228,8645,3596,
+ 5293,5324,5324,2545,5324,5324,5324,3870,5324,1072,
+ 4365,5324,5324,5324,1940,650,5324,2242,5324,1072,
+ 5324,5324,3673,5324,5324,5324,5324,2242,5324,5324,
+ 5324,5324,3673,5324,5324,5324,5324,5324,5324,5324,
+ 5324,5324,5813,5324,5324,5324,5324,5324,5324,5324,
+ 5324,5324,5813,1,5296,5296,228,5296,228,228,
+ 228,228,228,5324,5324,5324,5324,5324,5324,5324,
+ 5324,5324,5324,5324,5324,5324,5324,5324,5324,228,
+ 8645,5324,5293,5324,5324,5324,5324,5324,5324,5324,
+ 5324,5324,5324,5324,5324,5324,5324,5324,5324,5324,
+ 5324,1072,5324,5324,5324,5324,5324,5324,5324,2242,
+ 5324,5324,5324,5324,3673,5324,5324,5324,5324,5324,
+ 5324,5324,5324,5324,5324,5324,5324,5324,5324,5324,
+ 5324,5324,5324,5324,5813
};
};
public final static char termAction[] = TermAction.termAction;
@@ -1713,59 +1700,59 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse
public interface Asb {
public final static char asb[] = {0,
- 801,61,1100,373,63,974,926,926,926,926,
- 57,974,707,926,421,707,794,357,796,374,
- 374,374,374,374,374,374,374,374,1056,1062,
- 1067,1064,1071,1069,1076,1074,1078,1077,1079,208,
- 1080,373,357,29,29,29,29,413,756,1,
- 704,29,111,157,707,707,1,452,707,157,
- 157,148,357,933,28,549,59,1037,357,1039,
- 1039,1014,1014,756,373,374,374,374,374,374,
- 374,374,374,374,374,374,374,374,374,374,
- 374,374,374,374,373,373,373,373,373,373,
- 373,373,373,373,373,373,374,157,157,491,
- 491,491,491,204,157,1,254,1026,1037,850,
- 1037,845,1037,847,1037,1021,57,413,111,111,
- 1,374,254,70,654,644,643,600,57,796,
- 111,28,373,411,548,157,410,413,412,410,
- 157,111,1064,1064,1062,1062,1062,1069,1069,1069,
- 1069,1067,1067,1074,1071,1071,1077,1076,1078,1113,
- 1079,974,974,974,974,413,413,491,716,490,
- 704,413,700,160,413,854,204,260,852,850,
- 264,413,413,413,204,491,148,111,1094,157,
- 656,658,413,549,374,29,1060,114,157,59,
- 413,413,412,549,373,373,373,373,373,974,
- 974,357,258,700,160,854,853,854,204,854,
- 264,264,413,204,413,157,648,636,647,658,
- 204,411,157,1060,254,548,59,413,411,157,
- 157,157,157,756,756,700,699,905,413,160,
- 1113,206,896,1103,160,854,854,908,413,264,
- 905,903,904,413,302,373,645,645,312,312,
- 413,652,254,269,157,413,1060,1061,1060,373,
- 114,901,59,157,157,700,549,926,410,325,
- 1105,407,974,916,56,909,413,905,374,413,
- 302,373,373,658,413,549,157,656,636,302,
- 611,1060,756,374,111,901,411,175,411,854,
- 854,407,1099,254,413,919,374,1113,320,908,
- 413,57,57,413,500,658,302,1061,157,111,
- 1100,175,411,854,850,57,1105,407,548,374,
- 374,413,413,413,500,157,500,490,926,693,
- 693,1100,850,337,916,413,974,413,413,974,
- 493,500,175,556,175,489,489,508,338,57,
- 413,756,659,493,843,976,249,974,416,592,
- 175,29,29,508,337,1113,374,1113,1100,974,
- 974,974,338,974,413,215,1100,1100,413,850,
- 157,156,495,510,491,249,843,555,850,850,
- 928,57,490,329,974,329,1113,338,357,357,
- 355,931,357,1100,1100,754,508,29,495,556,
- 555,556,1100,319,1099,157,555,555,555,57,
- 413,691,269,157,407,157,215,1100,249,974,
- 157,508,555,373,859,407,1100,905,555,555,
- 555,413,413,693,157,157,624,338,754,338,
- 1100,215,249,373,338,335,905,157,857,905,
- 905,413,1100,489,850,850,966,373,336,756,
- 1100,1100,157,857,1100,410,338,157,756,1100,
- 904,338,157,857,338
+ 261,61,1104,107,150,978,877,877,877,877,
+ 57,978,313,877,551,313,770,91,772,108,
+ 108,108,108,108,108,108,108,108,1060,1066,
+ 1071,1068,1075,1073,1080,1078,1082,1081,1083,209,
+ 1084,107,91,29,29,29,29,147,732,1,
+ 310,29,503,206,313,313,1,582,313,206,
+ 206,197,91,937,28,816,59,1041,91,1043,
+ 1043,1018,1018,732,107,108,108,108,108,108,
+ 108,108,108,108,108,108,108,108,108,108,
+ 108,108,108,108,107,107,107,107,107,107,
+ 107,107,107,107,107,107,108,206,206,621,
+ 621,621,621,439,206,1,255,1030,1041,884,
+ 1041,879,1041,881,1041,1025,57,147,503,503,
+ 1,108,255,462,654,644,643,515,57,772,
+ 503,28,107,145,815,206,144,147,146,144,
+ 206,503,1068,1068,1066,1066,1066,1073,1073,1073,
+ 1073,1071,1071,1078,1075,1075,1081,1080,1082,703,
+ 1083,978,978,978,978,147,147,621,322,620,
+ 310,147,306,395,147,707,439,443,705,884,
+ 447,147,147,147,439,621,197,503,1098,206,
+ 656,658,147,816,108,29,1064,163,206,59,
+ 147,147,146,816,107,107,107,107,107,978,
+ 978,91,259,306,395,707,706,707,439,707,
+ 447,447,147,439,147,206,648,636,647,658,
+ 439,145,206,1064,255,815,59,147,145,206,
+ 206,206,206,732,732,306,305,729,147,395,
+ 703,441,925,693,395,707,707,1107,147,447,
+ 729,727,728,147,452,107,645,645,623,623,
+ 147,652,255,362,206,147,1064,1065,1064,107,
+ 163,930,59,206,206,306,816,877,144,506,
+ 695,141,978,867,56,1108,147,729,108,147,
+ 452,107,107,658,147,816,206,656,636,452,
+ 526,1064,732,108,503,930,145,410,145,707,
+ 707,141,1103,255,147,870,108,703,631,1107,
+ 147,57,57,147,717,658,452,1065,206,503,
+ 1104,410,145,707,884,57,695,141,815,108,
+ 108,147,147,147,717,206,717,620,877,157,
+ 157,1104,884,71,867,147,978,147,147,978,
+ 710,717,410,823,410,619,619,725,72,57,
+ 147,732,659,710,303,980,250,978,510,859,
+ 410,29,29,725,71,703,108,703,1104,978,
+ 978,978,72,978,147,216,1104,1104,147,884,
+ 206,205,712,777,621,250,303,822,884,884,
+ 932,57,620,63,978,63,703,72,91,91,
+ 89,935,91,1104,1104,360,725,29,712,823,
+ 822,823,1104,630,1103,206,822,822,822,57,
+ 147,691,362,206,141,206,216,1104,250,978,
+ 206,725,822,107,888,141,1104,729,822,822,
+ 822,147,147,157,206,206,539,72,360,72,
+ 1104,216,250,107,72,69,729,206,886,729,
+ 729,147,1104,619,884,884,970,107,70,732,
+ 1104,1104,206,886,1104,144,72,206,732,1104,
+ 728,72,206,886,72
};
};
public final static char asb[] = Asb.asb;
@@ -1779,42 +1766,55 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse
14,62,46,15,68,52,27,16,53,54,
17,18,55,57,19,20,58,69,59,10,
70,21,22,49,23,45,1,2,4,0,
- 123,0,9,72,118,87,26,66,0,63,
- 64,3,10,32,36,34,31,39,14,23,
- 13,19,17,18,20,21,16,15,22,40,
- 43,41,42,28,38,33,37,5,7,4,
- 24,25,8,6,11,12,30,35,1,2,
- 118,9,0,96,90,11,12,91,92,88,
- 89,44,93,94,97,98,99,100,101,102,
- 117,72,95,67,104,105,106,107,108,109,
- 110,111,112,113,118,71,26,65,1,2,
- 8,6,4,3,60,66,87,9,0,81,
- 7,114,115,116,48,9,3,8,6,5,
- 72,71,26,73,51,13,14,62,46,15,
- 68,52,27,16,53,54,17,18,55,57,
- 19,20,58,69,59,10,70,21,45,22,
- 49,23,4,1,2,29,0,65,72,95,
- 66,118,87,71,13,14,31,63,15,32,
- 33,16,17,18,64,34,19,20,35,36,
- 37,47,38,39,10,21,22,23,40,41,
- 42,28,24,25,11,12,30,43,9,26,
- 5,7,3,1,2,8,4,6,0,4,
- 50,72,0,1,2,9,71,0,51,13,
- 14,62,46,15,68,52,27,16,53,54,
- 17,18,55,57,19,20,58,69,59,10,
- 70,21,45,22,49,23,1,2,4,95,
+ 123,0,81,114,115,116,29,72,119,121,
+ 71,73,74,48,56,61,76,78,85,83,
+ 75,80,82,84,86,50,77,79,9,26,
+ 51,62,46,68,52,27,53,54,55,57,
+ 58,69,59,70,45,49,47,63,64,10,
+ 32,36,34,31,39,14,23,13,19,17,
+ 18,20,21,16,15,22,40,43,41,42,
+ 28,38,33,37,24,25,11,12,30,35,
+ 8,6,3,4,7,5,1,2,0,9,
+ 72,118,87,26,66,0,65,67,66,1,
+ 2,0,96,90,11,12,91,92,88,89,
+ 44,93,94,97,98,99,100,101,102,117,
+ 72,95,67,104,105,106,107,108,109,110,
+ 111,112,113,118,71,26,65,1,2,8,
+ 6,4,3,60,66,87,9,0,65,72,
+ 95,66,118,87,71,13,14,31,63,15,
+ 32,33,16,17,18,64,34,19,20,35,
+ 36,37,47,38,39,10,21,22,23,40,
+ 41,42,28,24,25,11,12,30,43,9,
+ 26,5,7,3,1,2,8,4,6,0,
+ 13,14,31,63,15,32,33,16,17,18,
+ 64,7,34,19,20,35,36,37,47,38,
+ 39,10,21,22,23,40,41,42,1,2,
+ 3,24,25,8,6,11,12,5,30,4,
+ 43,73,28,0,47,46,7,49,5,1,
+ 2,4,74,9,50,72,95,118,87,71,
+ 26,60,3,120,96,103,90,24,25,8,
+ 6,11,12,91,92,88,89,44,93,94,
+ 97,98,99,100,101,102,117,104,105,106,
+ 107,108,109,110,111,112,113,65,66,67,
+ 0,51,13,14,62,46,15,68,52,27,
+ 16,53,54,17,18,55,57,19,20,58,
+ 69,59,10,70,21,45,22,49,23,1,
+ 2,4,95,0,81,7,114,115,116,48,
+ 9,3,8,6,5,72,71,26,73,51,
+ 13,14,62,46,15,68,52,27,16,53,
+ 54,17,18,55,57,19,20,58,69,59,
+ 10,70,21,45,22,49,23,4,1,2,
+ 29,0,4,50,72,0,1,2,9,71,
0,46,47,49,9,65,95,67,66,87,
- 0,74,50,65,72,95,87,60,3,9,
- 66,26,67,0,50,72,74,0,81,114,
- 115,116,29,72,119,121,71,73,74,48,
- 56,61,76,78,85,83,75,80,82,84,
- 86,50,77,79,9,26,51,62,46,68,
- 52,27,53,54,55,57,58,69,59,70,
- 45,49,47,63,64,10,32,36,34,31,
- 39,14,23,13,19,17,18,20,21,16,
- 15,22,40,43,41,42,28,38,33,37,
- 24,25,11,12,30,35,8,6,3,4,
- 7,5,1,2,0,1,2,122,50,0,
+ 0,63,64,3,10,32,36,34,31,39,
+ 14,23,13,19,17,18,20,21,16,15,
+ 22,40,43,41,42,28,38,33,37,5,
+ 7,4,24,25,8,6,11,12,30,35,
+ 1,2,118,9,0,50,72,74,0,1,
+ 2,122,50,0,13,14,15,16,17,18,
+ 19,20,21,22,23,51,46,52,27,53,
+ 54,55,57,58,59,45,49,26,9,87,
+ 7,1,2,60,3,8,6,5,4,0,
51,13,14,62,46,15,68,52,27,16,
53,54,17,18,55,57,19,20,58,69,
59,10,70,21,45,22,49,23,1,2,
@@ -1822,69 +1822,56 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse
100,5,30,44,107,108,104,105,106,112,
111,113,89,88,109,110,97,98,93,94,
101,102,24,25,90,103,3,60,67,66,
- 65,0,46,49,74,3,50,72,26,47,
- 9,65,95,67,66,87,0,119,0,61,
- 51,13,14,62,46,15,68,52,81,27,
- 16,53,54,17,18,55,56,57,19,20,
- 58,69,59,10,70,21,48,45,22,49,
- 23,9,3,8,4,26,50,6,7,1,
- 2,5,29,0,71,62,46,15,68,52,
- 16,53,54,17,18,55,57,19,20,58,
- 69,59,70,21,45,22,49,23,14,13,
- 51,9,3,8,6,26,48,61,81,27,
- 29,7,1,2,5,4,10,56,0,13,
- 14,15,16,17,18,19,20,21,22,23,
- 51,46,52,27,53,54,55,57,58,59,
- 45,49,26,9,87,7,1,2,60,3,
- 8,6,5,4,0,8,6,7,5,4,
+ 65,0,74,50,65,72,95,87,60,3,
+ 9,66,26,67,0,8,6,7,5,4,
1,2,3,60,65,67,66,9,87,95,
0,5,7,3,60,6,8,95,51,13,
14,46,15,68,52,27,16,53,54,17,
18,55,57,19,20,58,69,59,10,70,
21,45,22,49,23,1,2,4,87,9,
- 62,0,65,67,66,1,2,0,47,46,
- 7,49,5,1,2,4,74,9,50,72,
- 95,118,87,71,26,60,3,120,96,103,
- 90,24,25,8,6,11,12,91,92,88,
- 89,44,93,94,97,98,99,100,101,102,
- 117,104,105,106,107,108,109,110,111,112,
- 113,65,66,67,0,9,87,13,14,31,
- 15,32,33,16,17,18,34,19,20,35,
- 36,37,47,38,39,10,21,22,23,40,
- 41,42,28,3,24,25,8,6,11,12,
- 30,4,43,5,7,1,2,64,63,0,
- 13,14,31,63,15,32,33,16,17,18,
- 64,7,34,19,20,35,36,37,47,38,
- 39,10,21,22,23,40,41,42,1,2,
- 3,24,25,8,6,11,12,5,30,4,
- 43,73,28,0,29,72,4,1,2,50,
- 0,4,44,50,72,0,9,71,63,64,
- 47,24,25,8,6,11,12,30,35,3,
- 40,43,41,42,28,38,33,37,14,23,
- 13,19,17,18,20,21,16,15,22,32,
- 36,34,31,39,50,7,1,2,4,10,
- 5,0,67,66,71,9,0,45,1,2,
- 4,114,115,116,0,50,66,0,72,9,
- 60,3,67,66,26,44,0,50,67,0,
- 75,0,63,64,24,25,11,12,30,35,
- 40,43,41,42,28,38,33,37,14,23,
- 13,19,17,18,20,21,16,15,22,10,
- 32,36,34,31,39,8,6,60,5,7,
- 1,2,4,3,0,62,46,15,68,52,
- 16,53,54,17,18,55,57,19,20,58,
- 69,59,10,70,21,45,22,49,23,14,
- 13,51,9,3,8,6,26,48,56,61,
- 81,27,44,7,4,29,5,1,2,0,
- 10,68,62,69,70,14,23,13,19,17,
- 18,20,21,16,15,22,74,50,5,4,
- 2,1,49,45,59,58,57,7,55,54,
- 53,27,52,46,51,120,103,24,25,60,
- 3,96,90,6,91,92,11,12,89,88,
- 44,93,94,97,98,8,99,100,101,65,
- 95,87,67,104,105,106,107,108,109,110,
- 111,112,113,72,118,71,102,117,66,26,
- 9,0,26,9,5,7,3,1,2,4,
- 6,8,72,0
+ 62,0,26,9,5,7,3,1,2,4,
+ 6,8,72,0,4,44,50,72,0,46,
+ 49,74,3,50,72,26,47,9,65,95,
+ 67,66,87,0,119,0,67,66,71,9,
+ 0,9,87,13,14,31,15,32,33,16,
+ 17,18,34,19,20,35,36,37,47,38,
+ 39,10,21,22,23,40,41,42,28,3,
+ 24,25,8,6,11,12,30,4,43,5,
+ 7,1,2,64,63,0,61,51,13,14,
+ 62,46,15,68,52,81,27,16,53,54,
+ 17,18,55,56,57,19,20,58,69,59,
+ 10,70,21,48,45,22,49,23,9,3,
+ 8,4,26,50,6,7,1,2,5,29,
+ 0,71,62,46,15,68,52,16,53,54,
+ 17,18,55,57,19,20,58,69,59,70,
+ 21,45,22,49,23,14,13,51,9,3,
+ 8,6,26,48,61,81,27,29,7,1,
+ 2,5,4,10,56,0,50,66,0,72,
+ 9,60,3,67,66,26,44,0,29,72,
+ 4,1,2,50,0,9,71,63,64,47,
+ 24,25,8,6,11,12,30,35,3,40,
+ 43,41,42,28,38,33,37,14,23,13,
+ 19,17,18,20,21,16,15,22,32,36,
+ 34,31,39,50,7,1,2,4,10,5,
+ 0,50,67,0,75,0,63,64,24,25,
+ 11,12,30,35,40,43,41,42,28,38,
+ 33,37,14,23,13,19,17,18,20,21,
+ 16,15,22,10,32,36,34,31,39,8,
+ 6,60,5,7,1,2,4,3,0,62,
+ 46,15,68,52,16,53,54,17,18,55,
+ 57,19,20,58,69,59,10,70,21,45,
+ 22,49,23,14,13,51,9,3,8,6,
+ 26,48,56,61,81,27,44,7,4,29,
+ 5,1,2,0,10,68,62,69,70,14,
+ 23,13,19,17,18,20,21,16,15,22,
+ 74,50,5,4,2,1,49,45,59,58,
+ 57,7,55,54,53,27,52,46,51,120,
+ 103,24,25,60,3,96,90,6,91,92,
+ 11,12,89,88,44,93,94,97,98,8,
+ 99,100,101,65,95,87,67,104,105,106,
+ 107,108,109,110,111,112,113,72,118,71,
+ 102,117,66,26,9,0,45,1,2,4,
+ 114,115,116,0
};
};
public final static byte asr[] = Asr.asr;
@@ -1892,59 +1879,59 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse
public interface Nasb {
public final static char nasb[] = {0,
- 140,11,189,25,11,11,11,11,11,11,
- 123,11,11,11,96,11,171,226,152,25,
- 25,169,25,25,25,25,25,25,11,11,
- 11,11,11,11,11,11,11,11,11,25,
- 11,25,226,235,235,235,235,152,137,112,
- 17,4,44,232,11,11,112,98,11,232,
- 232,160,1,25,46,67,11,11,226,11,
- 11,12,12,137,147,25,25,25,25,25,
- 25,25,25,25,25,25,25,25,25,25,
- 25,25,25,25,25,25,25,25,25,25,
- 25,25,25,25,25,147,25,232,232,11,
- 11,11,11,30,232,23,122,206,207,11,
- 207,150,207,54,207,200,123,152,44,44,
- 23,25,122,40,160,75,75,11,123,152,
- 44,235,48,180,81,232,179,10,152,179,
- 232,44,11,11,11,11,11,11,11,11,
+ 49,11,186,30,11,11,11,11,11,11,
+ 127,11,11,11,102,11,164,106,190,30,
+ 30,162,30,30,30,30,30,30,11,11,
+ 11,11,11,11,11,11,11,11,11,30,
+ 11,30,106,240,240,240,240,190,176,118,
+ 77,4,90,237,11,11,118,104,11,237,
+ 237,131,1,30,58,94,11,11,106,11,
+ 11,12,12,176,154,30,30,30,30,30,
+ 30,30,30,30,30,30,30,30,30,30,
+ 30,30,30,30,30,30,30,30,30,30,
+ 30,30,30,30,30,154,30,237,237,11,
+ 11,11,11,96,237,28,126,208,209,11,
+ 209,188,209,19,209,202,127,190,90,90,
+ 28,30,126,86,131,66,66,11,127,190,
+ 90,240,68,173,37,237,172,10,190,172,
+ 237,90,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
- 11,11,11,11,11,20,10,11,11,11,
- 166,152,112,112,172,112,223,112,11,11,
- 112,223,152,10,11,11,164,44,11,232,
- 155,112,152,67,25,235,112,51,232,11,
- 10,152,91,67,25,147,147,147,147,11,
- 11,23,11,38,216,112,112,73,66,73,
- 112,55,10,66,20,232,11,106,11,157,
- 65,20,232,63,166,81,11,10,20,232,
- 232,232,232,137,137,112,38,61,152,189,
- 11,11,71,209,216,73,73,183,20,55,
- 61,11,11,20,112,25,11,11,75,75,
- 152,106,122,157,232,20,112,77,11,147,
- 166,92,11,232,232,38,67,11,123,112,
- 118,108,11,11,123,79,223,61,25,55,
- 38,25,25,112,10,67,232,155,175,112,
- 11,63,137,25,44,92,180,112,223,112,
- 114,177,189,122,152,11,25,11,87,196,
- 223,123,123,10,112,157,38,77,232,44,
- 189,157,180,114,125,102,108,177,67,25,
- 25,10,223,223,69,232,112,11,11,116,
- 116,189,125,35,11,223,11,10,10,11,
- 112,69,157,191,112,11,11,112,127,102,
- 10,137,230,38,11,191,210,11,55,71,
- 157,235,235,85,144,11,25,11,189,11,
- 11,11,145,11,55,187,189,189,55,33,
- 232,232,112,112,11,118,11,112,11,11,
- 11,123,11,89,11,11,11,145,234,234,
- 238,11,234,189,189,11,112,235,69,191,
- 112,191,189,94,11,232,132,112,112,123,
- 223,11,235,232,108,232,240,189,112,11,
- 232,85,132,48,25,108,189,61,191,132,
- 132,223,100,116,232,232,112,145,11,145,
- 189,240,108,147,145,89,61,232,112,61,
- 61,100,189,11,33,33,106,25,11,240,
- 189,189,232,57,189,179,145,232,240,189,
- 61,145,232,57,145
+ 11,11,11,11,11,53,10,11,11,11,
+ 181,190,118,118,165,118,211,118,11,11,
+ 118,211,190,10,11,11,179,90,11,237,
+ 219,118,190,94,30,240,118,46,237,11,
+ 10,190,99,94,30,154,154,154,154,11,
+ 11,28,11,71,224,118,118,80,93,80,
+ 118,20,10,93,53,237,11,112,11,221,
+ 92,53,237,41,181,37,11,10,53,237,
+ 237,237,237,176,176,118,71,64,190,186,
+ 11,11,22,140,224,80,80,231,53,20,
+ 64,11,11,53,118,30,11,11,66,66,
+ 190,112,126,221,237,53,118,35,11,154,
+ 181,100,11,237,237,71,94,11,127,118,
+ 122,114,11,11,127,73,211,64,30,20,
+ 71,30,30,118,10,94,237,219,168,118,
+ 11,41,176,30,90,100,173,118,211,118,
+ 75,170,186,126,190,11,30,11,56,198,
+ 211,127,127,10,118,221,71,35,237,90,
+ 186,221,173,75,129,147,114,170,94,30,
+ 30,10,211,211,24,237,118,11,11,26,
+ 26,186,129,43,11,211,11,10,10,11,
+ 118,24,221,193,118,11,11,118,135,147,
+ 10,176,235,71,11,193,141,11,20,22,
+ 221,240,240,82,151,11,30,11,186,11,
+ 11,11,152,11,20,184,186,186,20,84,
+ 237,237,118,118,11,122,11,118,11,11,
+ 11,127,11,17,11,11,11,152,239,239,
+ 214,11,239,186,186,11,118,240,24,193,
+ 118,193,186,110,11,237,157,118,118,127,
+ 211,11,240,237,114,237,216,186,118,11,
+ 237,82,157,68,30,114,186,64,193,157,
+ 157,211,120,26,237,237,118,152,11,152,
+ 186,216,114,154,152,17,64,237,118,64,
+ 64,120,186,11,84,84,112,30,11,216,
+ 186,186,237,60,186,172,152,237,216,186,
+ 64,152,237,60,152
};
};
public final static char nasb[] = Nasb.nasb;
@@ -1952,31 +1939,31 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse
public interface Nasr {
public final static char nasr[] = {0,
- 3,13,8,6,147,145,120,144,143,2,
- 0,6,2,8,134,0,5,186,0,4,
- 3,0,45,5,6,8,2,13,0,131,
- 65,0,57,0,5,64,0,61,0,13,
- 2,8,6,78,0,171,0,5,29,0,
- 5,173,0,6,1,0,13,2,8,6,
- 64,0,138,0,131,2,65,0,123,0,
- 151,0,111,0,67,0,136,0,184,0,
- 65,133,132,0,156,0,182,0,113,0,
- 2,114,0,176,0,5,45,167,0,150,
- 0,165,6,164,0,97,96,63,6,2,
- 8,5,0,154,0,110,0,2,63,8,
- 5,91,6,0,155,0,5,48,40,174,
- 0,105,5,48,68,0,5,99,0,5,
- 40,170,0,64,48,69,5,40,0,3,
- 6,2,44,0,6,91,24,5,0,96,
- 97,5,0,97,96,6,56,0,6,13,
- 8,2,3,0,97,96,63,56,6,8,
- 2,0,6,104,183,0,5,40,39,0,
- 5,48,68,79,0,6,104,161,0,2,
- 6,120,116,117,118,13,88,0,39,6,
- 2,8,5,153,0,5,48,68,104,46,
- 6,0,2,54,0,5,45,40,0,45,
- 5,34,0,115,5,45,0,24,175,5,
- 102,0
+ 3,13,8,6,148,146,120,145,144,2,
+ 0,6,2,8,135,0,113,0,6,1,
+ 0,152,0,124,0,110,0,45,5,6,
+ 8,2,13,0,137,0,65,134,133,0,
+ 139,0,5,64,0,5,174,0,5,40,
+ 171,0,4,3,0,183,0,172,0,13,
+ 2,8,6,64,0,67,0,5,29,0,
+ 61,0,185,0,155,0,5,187,0,111,
+ 0,157,0,57,0,13,2,8,6,78,
+ 0,132,2,65,0,132,65,0,2,114,
+ 0,5,45,168,0,5,45,40,0,177,
+ 0,97,96,63,6,2,8,5,0,151,
+ 0,2,63,8,5,91,6,0,156,0,
+ 96,97,5,0,5,48,40,175,0,39,
+ 6,2,8,5,154,0,166,6,165,0,
+ 64,48,69,5,40,0,105,5,48,68,
+ 0,6,13,8,2,3,0,97,96,63,
+ 56,6,8,2,0,5,99,0,97,96,
+ 6,56,0,5,40,39,0,3,6,2,
+ 44,0,5,48,68,79,0,6,104,162,
+ 0,2,6,120,116,117,118,13,88,0,
+ 2,54,0,24,176,5,102,0,6,91,
+ 24,5,0,5,48,68,104,46,6,0,
+ 6,104,184,0,45,5,34,0,115,5,
+ 45,0
};
};
public final static char nasr[] = Nasr.nasr;
@@ -2016,14 +2003,14 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse
203,213,149,160,209,210,211,0,0,0,
0,0,208,221,181,0,0,0,212,0,
0,0,242,150,177,191,192,193,194,195,
- 197,200,0,215,218,220,238,0,241,0,
- 0,143,144,147,0,0,157,159,0,173,
- 0,183,184,185,186,187,190,0,196,198,
- 0,199,204,0,216,217,0,222,225,227,
- 229,0,232,233,234,0,236,237,240,126,
- 0,153,156,176,179,201,214,219,0,223,
- 224,226,228,0,230,231,243,244,0,0,
- 0,0,0,0
+ 197,200,0,0,215,218,220,238,0,241,
+ 0,0,143,144,147,0,0,157,159,0,
+ 173,0,183,184,185,186,187,190,0,196,
+ 198,0,199,204,0,216,217,0,222,225,
+ 227,229,0,232,233,234,0,236,237,240,
+ 126,0,153,156,176,179,201,214,219,0,
+ 223,224,226,228,0,230,231,243,244,0,
+ 0,0,0,0,0
};
};
public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
@@ -2071,16 +2058,16 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse
public final static char scopeLhs[] = {
46,18,18,73,18,18,18,18,73,82,
47,87,86,118,66,52,73,72,46,18,
- 73,20,3,7,161,161,158,116,46,85,
- 118,117,119,53,47,134,128,73,18,18,
- 128,98,58,130,76,164,161,158,125,117,
- 117,119,175,50,57,138,19,18,18,18,
- 18,18,12,113,158,125,73,72,72,38,
- 134,72,18,18,18,18,98,73,20,165,
- 161,176,96,103,60,67,59,153,77,119,
- 74,70,139,138,171,134,17,158,119,115,
- 22,126,126,56,134,134,73,46,158,71,
- 132,44,132,44,164,115,116,46,46,58
+ 73,20,3,7,162,162,159,116,46,85,
+ 118,117,119,53,47,135,129,73,18,18,
+ 129,98,58,131,76,165,162,159,126,117,
+ 117,119,176,50,57,139,19,18,18,18,
+ 18,18,12,113,159,126,73,72,72,38,
+ 135,72,18,18,18,18,98,73,20,166,
+ 162,177,96,103,60,67,59,154,77,119,
+ 74,70,140,139,172,135,17,159,119,115,
+ 22,127,127,56,135,135,73,46,159,71,
+ 133,44,133,44,165,115,116,46,46,58
};
};
public final static char scopeLhs[] = ScopeLhs.scopeLhs;
@@ -2126,25 +2113,25 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse
public interface ScopeRhs {
public final static char scopeRhs[] = {0,
- 312,3,47,0,128,0,311,3,119,0,
- 128,175,0,129,181,74,0,217,0,290,
- 129,44,128,0,21,0,292,129,44,29,
+ 313,3,47,0,128,0,312,3,119,0,
+ 128,175,0,129,181,74,0,217,0,291,
+ 129,44,128,0,21,0,293,129,44,29,
0,21,55,0,34,134,0,21,55,0,
- 0,292,129,44,29,192,0,21,131,0,
- 290,129,44,132,0,178,130,0,140,0,
- 223,3,289,0,289,0,2,0,128,0,
+ 0,293,129,44,29,192,0,21,131,0,
+ 291,129,44,132,0,178,130,0,140,0,
+ 223,3,290,0,290,0,2,0,128,0,
178,130,228,0,178,130,45,228,0,178,
- 130,308,45,0,133,189,168,130,0,130,
+ 130,309,45,0,133,189,168,130,0,130,
0,189,168,130,0,136,130,0,172,0,
- 304,129,172,0,129,172,0,223,130,0,
+ 305,129,172,0,129,172,0,223,130,0,
168,244,0,139,0,0,0,137,0,0,
- 0,303,129,50,250,0,129,0,250,0,
- 3,0,0,129,0,302,129,50,0,45,
- 129,0,153,3,0,129,279,278,129,74,
- 277,172,0,278,129,74,277,172,0,216,
- 0,217,0,277,172,0,98,0,0,216,
+ 0,304,129,50,251,0,129,0,251,0,
+ 3,0,0,129,0,303,129,50,0,45,
+ 129,0,153,3,0,129,280,279,129,74,
+ 278,172,0,279,129,74,278,172,0,216,
+ 0,217,0,278,172,0,98,0,0,216,
0,217,0,204,98,0,0,216,0,217,
- 0,278,129,277,172,0,216,0,204,0,
+ 0,279,129,278,172,0,216,0,204,0,
0,216,0,231,129,3,0,128,0,0,
0,0,0,231,129,3,220,0,227,3,
0,215,129,0,209,0,149,0,168,130,
@@ -2152,17 +2139,17 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse
231,129,3,183,0,183,0,2,0,0,
128,0,0,0,0,0,201,3,0,202,
0,230,129,50,28,27,0,178,130,56,
- 48,0,198,130,0,133,178,130,275,48,
- 0,178,130,275,48,0,178,130,67,125,
+ 48,0,198,130,0,133,178,130,276,48,
+ 0,178,130,276,48,0,178,130,67,125,
56,0,230,129,50,56,0,230,129,50,
- 122,56,0,230,129,50,126,56,0,272,
- 129,50,125,68,0,272,129,50,68,0,
+ 122,56,0,230,129,50,126,56,0,273,
+ 129,50,125,68,0,273,129,50,68,0,
178,130,68,0,137,0,189,178,130,244,
0,139,0,178,130,244,0,189,168,130,
- 10,0,168,130,10,0,95,139,0,265,
- 129,148,0,265,129,172,0,164,85,0,
- 226,163,226,299,3,82,0,128,174,0,
- 226,299,3,82,0,130,0,128,174,0,
+ 10,0,168,130,10,0,95,139,0,266,
+ 129,148,0,266,129,172,0,164,85,0,
+ 226,163,226,300,3,82,0,128,174,0,
+ 226,300,3,82,0,130,0,128,174,0,
226,163,226,163,226,3,82,0,226,163,
226,3,82,0,226,3,82,0,130,0,
130,0,128,174,0,164,3,75,193,80,
@@ -2171,11 +2158,11 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse
34,172,0,169,0,178,34,172,0,239,
3,86,0,193,158,239,3,84,0,64,
174,0,239,3,84,0,128,174,64,174,
- 0,298,129,50,0,164,0,218,77,0,
+ 0,299,129,50,0,164,0,218,77,0,
31,0,164,117,161,0,31,172,0,179,
3,0,128,152,0,223,3,0,218,60,
- 262,0,164,60,0,179,3,295,64,130,
- 0,128,0,0,0,0,295,64,130,0,
+ 263,0,164,60,0,179,3,296,64,130,
+ 0,128,0,0,0,0,296,64,130,0,
2,148,128,0,0,0,0,179,3,35,
0,150,0,127,29,168,130,0,32,150,
0,95,139,32,150,0,217,178,130,0,
@@ -2187,10 +2174,10 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse
164,3,65,179,44,32,0,179,44,32,
0,223,3,127,189,168,130,10,0,127,
189,168,130,10,0,139,2,0,128,0,
- 223,3,126,255,168,130,10,0,255,168,
+ 223,3,126,256,168,130,10,0,256,168,
130,10,0,137,2,0,128,0,223,3,
137,0,223,3,142,0,164,60,142,0,
- 257,0,32,0,32,143,0,167,0,136,
+ 258,0,32,0,32,143,0,167,0,136,
0,164,3,0
};
};
@@ -2199,37 +2186,37 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse
public interface ScopeState {
public final static char scopeState[] = {0,
- 2464,0,4864,0,4884,4858,4857,0,2956,1497,
- 2344,1411,0,3141,2816,1014,0,3128,2549,0,
- 3787,3749,3695,3336,2524,3657,3603,3565,3511,718,
- 3473,3015,2928,3135,2894,0,4783,3666,3663,0,
- 2309,1184,0,4181,3484,0,4558,4484,0,2320,
- 1000,0,4558,4545,4524,3436,4484,2800,4221,3199,
- 4452,3103,4344,4374,2878,2722,2644,0,4585,4573,
- 0,4585,4573,3232,3167,4254,3070,2942,4244,4190,
- 4126,4117,3787,3749,3695,3657,3603,3565,3511,3473,
- 3015,2928,0,4585,4573,3232,3167,4254,3070,2942,
- 4244,4190,4126,4117,0,2681,1354,0,3103,4545,
- 4410,4524,3436,3483,2878,4128,3485,3171,3077,3230,
- 935,3183,839,0,648,570,0,828,0,1806,
- 1782,1481,1128,3436,3230,2800,2722,2644,3504,3126,
- 0,4357,527,2440,0,4774,4762,4755,4737,4717,
- 4692,4680,4672,4660,4655,4829,4810,4793,4478,4624,
- 4592,4396,4365,3266,3144,3030,2534,2234,0,4774,
- 4762,3095,2794,2715,4755,4737,4717,2539,1139,4692,
- 4680,4672,2869,4660,2229,4655,2140,2051,4829,1130,
- 2690,1071,1020,2459,4810,3301,4793,2056,4478,4624,
- 4592,777,4396,661,4365,1078,3266,3144,4357,3030,
- 2440,2534,2234,1009,994,787,721,846,2800,4221,
- 3199,4452,3103,4558,4545,4344,4524,3436,4374,2878,
- 2722,4484,2644,878,862,648,570,621,4094,4071,
- 2240,2279,2349,2315,2411,2382,583,2748,2657,2616,
- 2588,2496,2465,3412,3388,3364,2904,2826,4048,4025,
- 4002,3979,3956,3933,3910,3887,3864,3339,3449,1930,
- 2190,2151,2101,2062,2012,1235,1190,1973,1145,901,
- 1887,799,731,675,1844,1801,1758,1715,1672,1629,
- 1586,1543,1500,1457,1414,527,1371,1325,1084,1025,
- 951,1280,0
+ 2541,0,4397,0,4854,4846,4844,0,2788,1856,
+ 608,1762,0,2758,2669,649,0,3141,3008,0,
+ 3810,3772,3718,3088,2690,3664,3555,3517,3463,1838,
+ 3425,3011,2973,2974,2847,0,4394,2667,3553,0,
+ 1235,711,0,4331,4615,0,3431,2979,0,1794,
+ 763,0,3431,4536,4508,3388,2979,2802,3632,4365,
+ 4472,2772,4244,4444,2815,2694,2616,0,3678,4554,
+ 0,3678,4554,3208,3144,4277,3135,3071,4267,4213,
+ 4149,4140,3810,3772,3718,3664,3555,3517,3463,3425,
+ 3011,2973,0,3678,4554,3208,3144,4277,3135,3071,
+ 4267,4213,4149,4140,0,994,716,0,2772,4536,
+ 3616,4508,3388,4556,2815,3524,3247,1914,4552,3452,
+ 664,2224,892,0,997,571,0,950,0,2684,
+ 2593,1383,1002,3388,3452,2802,2694,2616,3067,2903,
+ 0,4378,528,2411,0,4778,4758,4753,4746,4741,
+ 4686,4671,4666,4649,4586,4833,4823,4813,3655,4581,
+ 4386,3267,3242,2842,2837,3617,3234,2505,0,4778,
+ 4758,3649,3279,2854,4753,4746,4741,2685,2516,4686,
+ 4671,4666,2662,4649,3125,4586,3052,2909,4833,2418,
+ 2155,2237,2150,2430,4823,2510,4813,1934,3655,4581,
+ 4386,1145,3267,839,3242,852,2842,2837,4378,3617,
+ 2411,3234,2505,2061,1134,1074,723,650,2802,3632,
+ 4365,4472,2772,3431,4536,4244,4508,3388,4444,2815,
+ 2694,2979,2616,1013,826,997,571,622,4117,4094,
+ 2200,2250,2320,2286,2382,2353,584,2720,2629,2588,
+ 2560,2467,2436,3364,3340,3090,2946,2920,4071,4048,
+ 4025,4002,3979,3956,3933,3910,3887,3315,3401,1940,
+ 2161,2111,2072,2022,1983,1241,1195,858,1150,904,
+ 1890,1851,733,677,1808,1765,1722,1679,1636,1593,
+ 1550,1507,1464,1421,1378,528,1332,783,1088,1029,
+ 954,1286,0
};
};
public final static char scopeState[] = ScopeState.scopeState;
@@ -2237,7 +2224,7 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse
public interface InSymb {
public final static char inSymb[] = {0,
- 0,294,164,129,264,39,31,34,36,32,
+ 0,295,164,129,265,39,31,34,36,32,
10,137,126,128,7,132,4,3,130,35,
30,5,12,11,6,8,25,24,142,147,
150,149,152,151,156,155,159,157,160,47,
@@ -2248,48 +2235,48 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse
91,6,94,93,65,44,88,89,8,98,
97,100,99,101,113,112,111,110,109,108,
107,106,105,104,67,117,102,179,164,179,
- 179,179,179,168,223,129,129,266,267,250,
- 268,244,269,68,270,271,10,130,60,60,
+ 179,179,179,168,223,129,129,267,268,251,
+ 269,244,270,68,271,272,10,130,60,60,
129,158,129,60,3,221,220,137,10,130,
- 60,295,3,189,4,179,29,5,130,29,
+ 60,296,3,189,4,179,29,5,130,29,
223,164,149,149,147,147,147,151,151,151,
151,150,150,155,152,152,157,156,159,164,
- 160,65,65,65,65,189,255,290,135,293,
+ 160,65,65,65,65,189,256,291,135,294,
215,130,6,50,168,234,130,127,126,125,
- 50,130,130,178,168,290,215,218,161,227,
- 129,3,130,168,202,3,296,169,153,257,
+ 50,130,130,178,168,291,215,218,161,227,
+ 129,3,130,168,202,3,297,169,153,258,
189,130,178,168,72,3,3,3,3,127,
126,66,168,129,129,127,126,129,178,129,
50,129,178,168,29,231,232,148,233,129,
168,29,179,129,129,4,217,5,29,164,
- 164,164,164,3,3,6,185,303,130,170,
- 228,192,48,172,305,129,129,72,189,129,
- 272,125,273,189,158,67,227,201,187,183,
- 130,3,129,66,231,189,158,259,262,60,
- 180,4,127,223,223,129,168,29,275,277,
- 129,3,183,307,228,45,130,272,67,66,
+ 164,164,164,3,3,6,185,304,130,170,
+ 228,192,48,172,306,129,129,72,189,129,
+ 273,125,274,189,158,67,227,201,187,183,
+ 130,3,129,66,231,189,158,260,263,60,
+ 180,4,127,223,223,129,168,29,276,278,
+ 129,3,183,308,228,45,130,273,67,66,
129,67,67,3,178,168,201,129,215,158,
127,129,3,60,164,4,189,44,130,74,
- 129,215,304,129,130,126,72,284,201,66,
- 130,45,308,178,224,129,129,259,223,218,
- 133,129,178,129,278,72,66,215,168,72,
- 67,178,130,130,129,231,224,292,29,10,
- 62,133,278,50,288,130,289,178,178,47,
- 158,129,66,65,44,234,234,279,129,66,
+ 129,215,305,129,130,126,72,285,201,66,
+ 130,45,309,178,224,129,129,260,223,218,
+ 133,129,178,129,279,72,66,215,168,72,
+ 67,178,130,130,129,231,224,293,29,10,
+ 62,133,279,50,289,130,290,178,178,47,
+ 158,129,66,65,44,234,234,280,129,66,
178,3,3,129,27,29,172,61,56,48,
- 129,67,67,129,298,79,77,1,164,86,
+ 129,67,67,129,299,79,77,1,164,86,
84,82,80,75,83,85,78,76,56,74,
- 223,312,224,28,44,129,3,50,122,126,
- 125,56,292,280,119,9,218,72,3,3,
+ 223,313,224,28,44,129,3,50,122,126,
+ 125,56,293,281,119,9,218,72,3,3,
3,193,3,125,164,125,181,66,129,129,
- 50,65,265,201,276,28,129,50,50,67,
- 130,65,3,239,169,239,299,226,148,75,
+ 50,65,266,201,277,28,129,50,50,67,
+ 130,65,3,239,169,239,300,226,148,75,
239,129,129,3,67,66,158,230,229,129,
- 129,130,178,62,95,311,169,158,201,158,
- 226,163,129,3,158,280,230,153,50,230,
- 230,178,274,234,158,158,129,67,193,163,
- 226,265,164,129,274,67,121,226,163,158,
- 302,158,226,66,158
+ 129,130,178,62,95,312,169,158,201,158,
+ 226,163,129,3,158,281,230,153,50,230,
+ 230,178,275,234,158,158,129,67,193,163,
+ 226,266,164,129,275,67,121,226,163,158,
+ 303,158,226,66,158
};
};
public final static char inSymb[] = InSymb.inSymb;
@@ -2502,7 +2489,7 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse
"enumerator_definition",
"namespace_name",
"init_declarator_list",
- "init_declarator",
+ "init_declarator_complete",
"initializer",
"direct_declarator",
"ptr_operator_seq",
@@ -2568,18 +2555,18 @@ public class CPPExpressionStatementParserprs implements lpg.lpgjavaruntime.Parse
public final static int
NUM_STATES = 525,
NT_OFFSET = 124,
- LA_STATE_OFFSET = 5920,
+ LA_STATE_OFFSET = 5851,
MAX_LA = 2147483647,
- NUM_RULES = 526,
- NUM_NONTERMINALS = 194,
- NUM_SYMBOLS = 318,
+ NUM_RULES = 527,
+ NUM_NONTERMINALS = 195,
+ NUM_SYMBOLS = 319,
SEGMENT_SIZE = 8192,
- START_STATE = 3011,
+ START_STATE = 817,
IDENTIFIER_SYMBOL = 0,
EOFT_SYMBOL = 123,
EOLT_SYMBOL = 123,
- ACCEPT_ACTION = 5041,
- ERROR_ACTION = 5394;
+ ACCEPT_ACTION = 4977,
+ ERROR_ACTION = 5324;
public final static boolean BACKTRACK = 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 d5cb5f89fb..765d6e392c 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
@@ -213,7 +213,7 @@ public int getKind(int i) {
int kind = super.getKind(i);
// There used to be a special token kind for zero used to parser pure virtual function declarations.
- // But it turned out to be easier to just parse them as an init_declarator and programaticaly check
+ // But it turned out to be easier to just parse them as an init_ declarator and programaticaly check
// for pure virtual, see consumeMemberDeclaratorWithInitializer().
//if(kind == CPPParsersym.TK_integer && "0".equals(getTokenText(i))) { //$NON-NLS-1$
@@ -1214,14 +1214,14 @@ public CPPNoCastExpressionParser(String[] mapFrom) { // constructor
// Rule 220: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
//
case 220: { action.builder.
- consumeDeclarationSimple(true); break;
+ consumeDeclarationSimple(true, true); break;
}
//
// Rule 221: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
//
case 221: { action.builder.
- consumeDeclarationSimple(true); break;
+ consumeDeclarationSimple(true, false); break;
}
//
@@ -1442,660 +1442,667 @@ public CPPNoCastExpressionParser(String[] mapFrom) { // constructor
}
//
- // Rule 311: init_declarator ::= declarator initializer
+ // Rule 310: init_declarator_complete ::= init_declarator
//
- case 311: { action.builder.
+ case 310: { action.builder.
+ consumeInitDeclaratorComplete(); break;
+ }
+
+ //
+ // Rule 312: init_declarator ::= declarator initializer
+ //
+ case 312: { action.builder.
consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 313: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
+ // Rule 314: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
//
- case 313: { action.builder.
+ case 314: { action.builder.
consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 315: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
+ // Rule 316: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
//
- case 315: { action.builder.
+ case 316: { action.builder.
consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 319: basic_direct_declarator ::= declarator_id_name
+ // Rule 320: basic_direct_declarator ::= declarator_id_name
//
- case 319: { action.builder.
+ case 320: { action.builder.
consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 320: basic_direct_declarator ::= ( declarator )
+ // Rule 321: basic_direct_declarator ::= ( declarator )
//
- case 320: { action.builder.
+ case 321: { action.builder.
consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 321: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ // Rule 322: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
- case 321: { action.builder.
+ case 322: { action.builder.
consumeDirectDeclaratorFunctionDeclarator(true); break;
}
//
- // Rule 322: array_direct_declarator ::= array_direct_declarator array_modifier
+ // Rule 323: array_direct_declarator ::= array_direct_declarator array_modifier
//
- case 322: { action.builder.
+ case 323: { action.builder.
consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 323: array_direct_declarator ::= basic_direct_declarator array_modifier
+ // Rule 324: array_direct_declarator ::= basic_direct_declarator array_modifier
//
- case 323: { action.builder.
+ case 324: { action.builder.
consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 324: array_modifier ::= [ constant_expression ]
+ // Rule 325: array_modifier ::= [ constant_expression ]
//
- case 324: { action.builder.
+ case 325: { action.builder.
consumeDirectDeclaratorArrayModifier(true); break;
}
//
- // Rule 325: array_modifier ::= [ ]
+ // Rule 326: array_modifier ::= [ ]
//
- case 325: { action.builder.
+ case 326: { action.builder.
consumeDirectDeclaratorArrayModifier(false); break;
}
//
- // Rule 326: ptr_operator ::= * <openscope-ast> cv_qualifier_seq_opt
+ // Rule 327: ptr_operator ::= * <openscope-ast> cv_qualifier_seq_opt
//
- case 326: { action.builder.
+ case 327: { action.builder.
consumePointer(); break;
}
//
- // Rule 327: ptr_operator ::= &
+ // Rule 328: ptr_operator ::= &
//
- case 327: { action.builder.
+ case 328: { action.builder.
consumeReferenceOperator(); break;
}
//
- // Rule 328: ptr_operator ::= dcolon_opt nested_name_specifier * <openscope-ast> cv_qualifier_seq_opt
+ // Rule 329: ptr_operator ::= dcolon_opt nested_name_specifier * <openscope-ast> cv_qualifier_seq_opt
//
- case 328: { action.builder.
+ case 329: { action.builder.
consumePointerToMember(); break;
}
//
- // Rule 334: cv_qualifier ::= const
+ // Rule 335: cv_qualifier ::= const
//
- case 334: { action.builder.
+ case 335: { action.builder.
consumeDeclSpecToken(); break;
}
//
- // Rule 335: cv_qualifier ::= volatile
+ // Rule 336: cv_qualifier ::= volatile
//
- case 335: { action.builder.
+ case 336: { action.builder.
consumeDeclSpecToken(); break;
}
//
- // Rule 337: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
+ // Rule 338: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
//
- case 337: { action.builder.
+ case 338: { action.builder.
consumeQualifiedId(false); break;
}
//
- // Rule 338: type_id ::= type_specifier_seq
+ // Rule 339: type_id ::= type_specifier_seq
//
- case 338: { action.builder.
+ case 339: { action.builder.
consumeTypeId(false); break;
}
//
- // Rule 339: type_id ::= type_specifier_seq abstract_declarator
+ // Rule 340: type_id ::= type_specifier_seq abstract_declarator
//
- case 339: { action.builder.
+ case 340: { action.builder.
consumeTypeId(true); break;
}
//
- // Rule 342: abstract_declarator ::= <openscope-ast> ptr_operator_seq
+ // Rule 343: abstract_declarator ::= <openscope-ast> ptr_operator_seq
//
- case 342: { action.builder.
+ case 343: { action.builder.
consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 343: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
+ // Rule 344: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
//
- case 343: { action.builder.
+ case 344: { action.builder.
consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 347: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ // Rule 348: basic_direct_abstract_declarator ::= ( abstract_declarator )
//
- case 347: { action.builder.
+ case 348: { action.builder.
consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 348: array_direct_abstract_declarator ::= array_modifier
+ // Rule 349: array_direct_abstract_declarator ::= array_modifier
//
- case 348: { action.builder.
+ case 349: { action.builder.
consumeDirectDeclaratorArrayDeclarator(false); break;
}
//
- // Rule 349: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ // Rule 350: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
//
- case 349: { action.builder.
+ case 350: { action.builder.
consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 350: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ // Rule 351: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
//
- case 350: { action.builder.
+ case 351: { action.builder.
consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 351: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ // Rule 352: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
- case 351: { action.builder.
+ case 352: { action.builder.
consumeDirectDeclaratorFunctionDeclarator(true); break;
}
//
- // Rule 352: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ // Rule 353: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
- case 352: { action.builder.
+ case 353: { action.builder.
consumeDirectDeclaratorFunctionDeclarator(false); break;
}
//
- // Rule 353: parameter_declaration_clause ::= parameter_declaration_list_opt ...
+ // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt ...
//
- case 353: { action.builder.
+ case 354: { action.builder.
consumePlaceHolder(); break;
}
//
- // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt
+ // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt
//
- case 354: { action.builder.
+ case 355: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 355: parameter_declaration_clause ::= parameter_declaration_list , ...
+ // Rule 356: parameter_declaration_clause ::= parameter_declaration_list , ...
//
- case 355: { action.builder.
+ case 356: { action.builder.
consumePlaceHolder(); break;
}
//
- // Rule 361: abstract_declarator_opt ::= $Empty
+ // Rule 362: abstract_declarator_opt ::= $Empty
//
- case 361: { action.builder.
+ case 362: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 362: parameter_declaration ::= declaration_specifiers parameter_init_declarator
+ // Rule 363: parameter_declaration ::= declaration_specifiers parameter_init_declarator
//
- case 362: { action.builder.
+ case 363: { action.builder.
consumeParameterDeclaration(); break;
}
//
- // Rule 363: parameter_declaration ::= declaration_specifiers
+ // Rule 364: parameter_declaration ::= declaration_specifiers
//
- case 363: { action.builder.
+ case 364: { action.builder.
consumeParameterDeclarationWithoutDeclarator(); break;
}
//
- // Rule 365: parameter_init_declarator ::= declarator = parameter_initializer
+ // Rule 366: parameter_init_declarator ::= declarator = parameter_initializer
//
- case 365: { action.builder.
+ case 366: { action.builder.
consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 367: parameter_init_declarator ::= abstract_declarator = parameter_initializer
+ // Rule 368: parameter_init_declarator ::= abstract_declarator = parameter_initializer
//
- case 367: { action.builder.
+ case 368: { action.builder.
consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 368: parameter_init_declarator ::= = parameter_initializer
+ // Rule 369: parameter_init_declarator ::= = parameter_initializer
//
- case 368: { action.builder.
+ case 369: { action.builder.
consumeDeclaratorWithInitializer(false); break;
}
//
- // Rule 369: parameter_initializer ::= assignment_expression
+ // Rule 370: parameter_initializer ::= assignment_expression
//
- case 369: { action.builder.
+ case 370: { action.builder.
consumeInitializer(); break;
}
//
- // Rule 370: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
+ // Rule 371: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
//
- case 370: { action.builder.
+ case 371: { action.builder.
consumeFunctionDefinition(false); break;
}
//
- // Rule 371: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
+ // Rule 372: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
//
- case 371: { action.builder.
+ case 372: { action.builder.
consumeFunctionDefinition(true); break;
}
//
- // Rule 374: initializer ::= ( expression_list )
+ // Rule 375: initializer ::= ( expression_list )
//
- case 374: { action.builder.
+ case 375: { action.builder.
consumeInitializerConstructor(); break;
}
//
- // Rule 375: initializer_clause ::= assignment_expression
+ // Rule 376: initializer_clause ::= assignment_expression
//
- case 375: { action.builder.
+ case 376: { action.builder.
consumeInitializer(); break;
}
//
- // Rule 376: initializer_clause ::= { <openscope-ast> initializer_list , }
+ // Rule 377: initializer_clause ::= { <openscope-ast> initializer_list , }
//
- case 376: { action.builder.
+ case 377: { action.builder.
consumeInitializerList(); break;
}
//
- // Rule 377: initializer_clause ::= { <openscope-ast> initializer_list }
+ // Rule 378: initializer_clause ::= { <openscope-ast> initializer_list }
//
- case 377: { action.builder.
+ case 378: { action.builder.
consumeInitializerList(); break;
}
//
- // Rule 378: initializer_clause ::= { <openscope-ast> }
+ // Rule 379: initializer_clause ::= { <openscope-ast> }
//
- case 378: { action.builder.
+ case 379: { action.builder.
consumeInitializerList(); break;
}
//
- // Rule 383: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
+ // Rule 384: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
//
- case 383: { action.builder.
+ case 384: { action.builder.
consumeClassSpecifier(); break;
}
//
- // Rule 384: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
+ // Rule 385: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
//
- case 384: { action.builder.
+ case 385: { action.builder.
consumeClassHead(false); break;
}
//
- // Rule 385: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt
+ // Rule 386: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt
//
- case 385: { action.builder.
+ case 386: { action.builder.
consumeClassHead(false); break;
}
//
- // Rule 386: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
+ // Rule 387: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
//
- case 386: { action.builder.
+ case 387: { action.builder.
consumeClassHead(true); break;
}
//
- // Rule 387: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt
+ // Rule 388: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt
//
- case 387: { action.builder.
+ case 388: { action.builder.
consumeClassHead(true); break;
}
//
- // Rule 389: identifier_name_opt ::= $Empty
+ // Rule 390: identifier_name_opt ::= $Empty
//
- case 389: { action.builder.
+ case 390: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 393: visibility_label ::= access_specifier_keyword :
+ // Rule 394: visibility_label ::= access_specifier_keyword :
//
- case 393: { action.builder.
+ case 394: { action.builder.
consumeVisibilityLabel(); break;
}
//
- // Rule 394: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
+ // Rule 395: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
//
- case 394: { action.builder.
- consumeDeclarationSimple(true); break;
+ case 395: { action.builder.
+ consumeDeclarationSimple(true, true); break;
}
//
- // Rule 395: member_declaration ::= declaration_specifiers_opt ;
+ // Rule 396: member_declaration ::= declaration_specifiers_opt ;
//
- case 395: { action.builder.
- consumeDeclarationSimple(false); break;
+ case 396: { action.builder.
+ consumeDeclarationSimple(false, false); break;
}
//
- // Rule 398: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
+ // Rule 399: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
//
- case 398: { action.builder.
+ case 399: { action.builder.
consumeMemberDeclarationQualifiedId(); break;
}
//
- // Rule 402: member_declaration ::= ERROR_TOKEN
+ // Rule 403: member_declaration ::= ERROR_TOKEN
//
- case 402: { action.builder.
+ case 403: { action.builder.
consumeDeclarationProblem(); break;
}
//
- // Rule 410: member_declarator ::= declarator constant_initializer
+ // Rule 411: member_declarator ::= declarator constant_initializer
//
- case 410: { action.builder.
+ case 411: { action.builder.
consumeMemberDeclaratorWithInitializer(); break;
}
//
- // Rule 411: member_declarator ::= bit_field_declarator : constant_expression
+ // Rule 412: member_declarator ::= bit_field_declarator : constant_expression
//
- case 411: { action.builder.
+ case 412: { action.builder.
consumeBitField(true); break;
}
//
- // Rule 412: member_declarator ::= : constant_expression
+ // Rule 413: member_declarator ::= : constant_expression
//
- case 412: { action.builder.
+ case 413: { action.builder.
consumeBitField(false); break;
}
//
- // Rule 413: bit_field_declarator ::= identifier_name
+ // Rule 414: bit_field_declarator ::= identifier_name
//
- case 413: { action.builder.
+ case 414: { action.builder.
consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 414: constant_initializer ::= = constant_expression
+ // Rule 415: constant_initializer ::= = constant_expression
//
- case 414: { action.builder.
+ case 415: { action.builder.
consumeInitializer(); break;
}
//
- // Rule 420: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
+ // Rule 421: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
//
- case 420: { action.builder.
+ case 421: { action.builder.
consumeBaseSpecifier(false, false); break;
}
//
- // Rule 421: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
+ // Rule 422: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
//
- case 421: { action.builder.
+ case 422: { action.builder.
consumeBaseSpecifier(true, true); break;
}
//
- // Rule 422: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
+ // Rule 423: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
//
- case 422: { action.builder.
+ case 423: { action.builder.
consumeBaseSpecifier(true, true); break;
}
//
- // Rule 423: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
+ // Rule 424: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
//
- case 423: { action.builder.
+ case 424: { action.builder.
consumeBaseSpecifier(true, false); break;
}
//
- // Rule 424: access_specifier_keyword ::= private
+ // Rule 425: access_specifier_keyword ::= private
//
- case 424: { action.builder.
+ case 425: { action.builder.
consumeAccessKeywordToken(); break;
}
//
- // Rule 425: access_specifier_keyword ::= protected
+ // Rule 426: access_specifier_keyword ::= protected
//
- case 425: { action.builder.
+ case 426: { action.builder.
consumeAccessKeywordToken(); break;
}
//
- // Rule 426: access_specifier_keyword ::= public
+ // Rule 427: access_specifier_keyword ::= public
//
- case 426: { action.builder.
+ case 427: { action.builder.
consumeAccessKeywordToken(); break;
}
//
- // Rule 428: access_specifier_keyword_opt ::= $Empty
+ // Rule 429: access_specifier_keyword_opt ::= $Empty
//
- case 428: { action.builder.
+ case 429: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 429: conversion_function_id_name ::= operator conversion_type_id
+ // Rule 430: conversion_function_id_name ::= operator conversion_type_id
//
- case 429: { action.builder.
+ case 430: { action.builder.
consumeConversionName(); break;
}
//
- // Rule 430: conversion_type_id ::= type_specifier_seq conversion_declarator
+ // Rule 431: conversion_type_id ::= type_specifier_seq conversion_declarator
//
- case 430: { action.builder.
+ case 431: { action.builder.
consumeTypeId(true); break;
}
//
- // Rule 431: conversion_type_id ::= type_specifier_seq
+ // Rule 432: conversion_type_id ::= type_specifier_seq
//
- case 431: { action.builder.
+ case 432: { action.builder.
consumeTypeId(false); break;
}
//
- // Rule 432: conversion_declarator ::= <openscope-ast> ptr_operator_seq
+ // Rule 433: conversion_declarator ::= <openscope-ast> ptr_operator_seq
//
- case 432: { action.builder.
+ case 433: { action.builder.
consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 438: mem_initializer ::= mem_initializer_name ( expression_list_opt )
+ // Rule 439: mem_initializer ::= mem_initializer_name ( expression_list_opt )
//
- case 438: { action.builder.
+ case 439: { action.builder.
consumeConstructorChainInitializer(); break;
}
//
- // Rule 439: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
+ // Rule 440: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
//
- case 439: { action.builder.
+ case 440: { action.builder.
consumeQualifiedId(false); break;
}
//
- // Rule 442: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
+ // Rule 443: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
//
- case 442: { action.builder.
+ case 443: { action.builder.
consumeTemplateId(); break;
}
//
- // Rule 443: operator_id_name ::= operator overloadable_operator
+ // Rule 444: operator_id_name ::= operator overloadable_operator
//
- case 443: { action.builder.
+ case 444: { action.builder.
consumeOperatorName(); break;
}
//
- // Rule 486: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
+ // Rule 487: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
//
- case 486: { action.builder.
+ case 487: { action.builder.
consumeTemplateDeclaration(); break;
}
//
- // Rule 487: export_opt ::= export
+ // Rule 488: export_opt ::= export
//
- case 487: { action.builder.
+ case 488: { action.builder.
consumePlaceHolder(); break;
}
//
- // Rule 488: export_opt ::= $Empty
+ // Rule 489: export_opt ::= $Empty
//
- case 488: { action.builder.
+ case 489: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 493: type_parameter ::= class identifier_name_opt
+ // Rule 494: type_parameter ::= class identifier_name_opt
//
- case 493: { action.builder.
+ case 494: { action.builder.
consumeSimpleTypeTemplateParameter(false); break;
}
//
- // Rule 494: type_parameter ::= class identifier_name_opt = type_id
+ // Rule 495: type_parameter ::= class identifier_name_opt = type_id
//
- case 494: { action.builder.
+ case 495: { action.builder.
consumeSimpleTypeTemplateParameter(true); break;
}
//
- // Rule 495: type_parameter ::= typename identifier_name_opt
+ // Rule 496: type_parameter ::= typename identifier_name_opt
//
- case 495: { action.builder.
+ case 496: { action.builder.
consumeSimpleTypeTemplateParameter(false); break;
}
//
- // Rule 496: type_parameter ::= typename identifier_name_opt = type_id
+ // Rule 497: type_parameter ::= typename identifier_name_opt = type_id
//
- case 496: { action.builder.
+ case 497: { action.builder.
consumeSimpleTypeTemplateParameter(true); break;
}
//
- // Rule 497: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
+ // Rule 498: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
//
- case 497: { action.builder.
+ case 498: { action.builder.
consumeTemplatedTypeTemplateParameter(false); break;
}
//
- // Rule 498: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
+ // Rule 499: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
//
- case 498: { action.builder.
+ case 499: { action.builder.
consumeTemplatedTypeTemplateParameter(true); break;
}
//
- // Rule 499: template_id_name ::= template_identifier < <openscope-ast> template_argument_list_opt >
+ // Rule 500: template_id_name ::= template_identifier < <openscope-ast> template_argument_list_opt >
//
- case 499: { action.builder.
+ case 500: { action.builder.
consumeTemplateId(); break;
}
//
- // Rule 508: explicit_instantiation ::= template declaration
+ // Rule 509: explicit_instantiation ::= template declaration
//
- case 508: { action.builder.
+ case 509: { action.builder.
consumeTemplateExplicitInstantiation(); break;
}
//
- // Rule 509: explicit_specialization ::= template < > declaration
+ // Rule 510: explicit_specialization ::= template < > declaration
//
- case 509: { action.builder.
+ case 510: { action.builder.
consumeTemplateExplicitSpecialization(); break;
}
//
- // Rule 510: try_block ::= try compound_statement <openscope-ast> handler_seq
+ // Rule 511: try_block ::= try compound_statement <openscope-ast> handler_seq
//
- case 510: { action.builder.
+ case 511: { action.builder.
consumeStatementTryBlock(); break;
}
//
- // Rule 513: handler ::= catch ( exception_declaration ) compound_statement
+ // Rule 514: handler ::= catch ( exception_declaration ) compound_statement
//
- case 513: { action.builder.
+ case 514: { action.builder.
consumeStatementCatchHandler(false); break;
}
//
- // Rule 514: handler ::= catch ( ... ) compound_statement
+ // Rule 515: handler ::= catch ( ... ) compound_statement
//
- case 514: { action.builder.
+ case 515: { action.builder.
consumeStatementCatchHandler(true); break;
}
//
- // Rule 515: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
+ // Rule 516: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
//
- case 515: { action.builder.
- consumeDeclarationSimple(true); break;
+ case 516: { action.builder.
+ consumeDeclarationSimple(true, false); break;
}
//
- // Rule 516: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
+ // Rule 517: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
//
- case 516: { action.builder.
- consumeDeclarationSimple(true); break;
+ case 517: { action.builder.
+ consumeDeclarationSimple(true, false); break;
}
//
- // Rule 517: exception_declaration ::= type_specifier_seq
+ // Rule 518: exception_declaration ::= type_specifier_seq
//
- case 517: { action.builder.
- consumeDeclarationSimple(false); break;
+ case 518: { action.builder.
+ consumeDeclarationSimple(false, false); break;
}
//
- // Rule 525: no_cast_start ::= ERROR_TOKEN
+ // Rule 526: no_cast_start ::= ERROR_TOKEN
//
- case 525: { action.builder.
+ case 526: { 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 ec836af017..28e7be5b91 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
@@ -68,476 +68,471 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
4,5,6,1,3,1,0,1,3,1,
1,1,1,1,6,6,5,7,6,1,
0,6,5,6,4,1,3,1,0,1,
- 2,1,3,1,3,1,1,1,1,3,
- 9,2,2,3,2,3,1,5,1,2,
- 2,1,0,1,1,1,3,1,2,1,
- 1,2,3,1,1,1,3,1,2,2,
- 9,8,2,1,3,1,3,1,0,1,
- 0,2,1,1,3,1,3,2,1,5,
- 8,1,2,3,1,5,4,3,1,3,
- 1,1,5,4,4,5,5,1,0,1,
- 1,1,2,4,2,2,1,5,1,1,
- 1,1,1,2,1,0,1,3,1,2,
- 3,2,1,2,2,1,0,1,3,3,
- 5,5,4,1,1,1,1,0,2,2,
- 1,2,2,1,0,1,3,4,3,1,
- 1,5,2,1,1,3,3,1,1,1,
+ 1,2,1,3,1,3,1,1,1,1,
+ 3,9,2,2,3,2,3,1,5,1,
+ 2,2,1,0,1,1,1,3,1,2,
+ 1,1,2,3,1,1,1,3,1,2,
+ 2,9,8,2,1,3,1,3,1,0,
+ 1,0,2,1,1,3,1,3,2,1,
+ 5,8,1,2,3,1,5,4,3,1,
+ 3,1,1,5,4,4,5,5,1,0,
+ 1,1,1,2,4,2,2,1,5,1,
+ 1,1,1,1,2,1,0,1,3,1,
+ 2,3,2,1,2,2,1,0,1,3,
+ 3,5,5,4,1,1,1,1,0,2,
+ 2,1,2,2,1,0,1,3,4,3,
+ 1,1,5,2,1,1,3,3,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,2,2,7,1,0,1,3,
- 1,1,2,4,2,4,7,9,5,1,
- 1,3,1,0,1,1,1,2,4,4,
- 1,2,5,5,3,3,1,4,3,1,
- 0,1,3,1,1,-107,0,0,0,0,
- -336,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-49,
+ 1,1,1,1,2,2,7,1,0,1,
+ 3,1,1,2,4,2,4,7,9,5,
+ 1,1,3,1,0,1,1,1,2,4,
+ 4,1,2,5,5,3,3,1,4,3,
+ 1,0,1,3,1,1,-107,0,0,0,
+ 0,-2,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -371,0,0,0,-2,0,0,0,-68,0,
- 0,0,0,-4,0,0,0,0,0,0,
- 0,-85,0,0,0,0,0,0,0,0,
+ -49,0,0,0,0,0,0,0,0,0,
+ 0,-371,0,0,0,-4,0,0,0,-68,
+ 0,0,0,0,-5,0,0,0,0,0,
+ 0,0,-85,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-5,0,0,0,0,
- -122,0,0,0,0,0,0,-431,0,-19,
+ 0,0,0,0,0,0,-56,0,0,0,
+ 0,0,-50,0,0,0,0,0,-61,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,-164,-69,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-69,0,0,0,
- 0,0,0,0,0,0,0,0,0,-173,
- 0,0,0,0,-112,0,-362,0,0,0,
- 0,0,0,-114,0,0,0,0,0,0,
+ 0,-173,0,0,0,0,-112,0,-255,0,
+ 0,0,0,0,0,-114,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-52,0,0,0,0,-134,0,
- 0,0,0,-6,0,0,-513,0,0,0,
+ 0,0,0,0,0,-6,0,0,0,0,
+ -134,0,0,0,0,-7,0,0,-513,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-57,0,-129,0,0,0,0,0,
+ 0,0,0,0,-8,0,-129,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-7,-244,0,0,0,0,0,
- 0,0,0,0,-8,0,0,-367,0,0,
- 0,0,0,-133,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-162,0,0,
+ 0,0,0,0,0,-122,0,0,0,0,
+ 0,0,0,0,0,0,-9,0,0,-57,
+ -367,0,0,0,0,-133,0,0,0,0,
+ 0,-10,0,0,0,0,0,0,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,-52,0,0,0,0,-165,
+ -132,0,0,0,0,0,0,0,0,-174,
+ 0,0,0,0,0,0,-136,0,0,0,
+ 0,-11,0,0,0,0,0,0,0,0,
+ -53,-139,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-230,0,0,-62,0,-324,
+ 0,0,0,0,-412,0,0,0,0,0,
+ 0,-245,0,0,0,0,0,-16,0,0,
+ 0,0,0,0,0,0,0,-219,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-10,0,0,0,0,-178,0,0,0,
- 0,0,0,0,0,0,-174,0,0,0,
- 0,0,0,-136,0,0,0,0,-260,0,
- 0,0,0,0,0,0,0,-53,-139,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-9,0,-324,0,0,0,
- 0,0,-11,0,0,0,0,0,-245,0,
- 0,0,0,-236,-16,0,0,0,0,0,
- 0,0,0,0,-219,0,0,0,0,0,
+ 0,0,0,0,0,0,-203,-12,0,0,
+ 0,0,0,0,0,0,-127,0,0,0,
+ -350,0,0,0,0,0,0,0,0,0,
+ 0,-221,-511,0,0,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,
+ 0,0,-380,0,0,0,0,0,0,0,
+ 0,0,-128,0,0,-182,0,0,0,0,
+ -232,0,0,0,0,0,0,-239,0,0,
+ 0,0,0,0,0,0,0,-246,0,0,
+ 0,0,-521,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-62,-56,0,0,0,0,0,
- 0,0,0,-277,-12,0,0,-350,0,0,
- 0,0,0,0,0,0,0,0,0,-511,
+ 0,0,0,0,0,0,-13,0,0,0,
+ 0,0,0,0,0,0,0,-197,0,0,
+ 0,-15,0,0,0,-266,0,0,0,0,
+ 0,-225,-28,-125,0,-480,0,0,0,0,
+ -257,-3,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,-180,0,0,0,
+ 0,0,0,0,-271,0,0,0,0,-416,
+ 0,0,-290,0,0,0,0,-191,0,0,
+ 0,0,-29,-280,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,-380,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-182,0,0,0,0,-232,0,0,
- 0,0,0,0,-239,0,0,0,0,0,
- -307,0,0,0,-13,0,0,-225,-521,0,
+ 0,0,-115,-236,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-167,-314,0,0,
0,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,-197,0,
- 0,0,0,0,0,0,0,-412,0,0,
- 0,-246,0,0,0,0,-266,0,0,0,
- 0,0,-203,-303,0,0,-257,-3,0,0,
+ 0,-212,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,-330,-315,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,-352,0,0,0,0,-28,0,0,
- -271,0,0,0,0,-50,-29,0,0,0,
- 0,0,-191,0,0,0,0,0,-280,0,
+ 0,0,0,0,0,0,0,-181,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-451,0,0,0,-472,0,0,
+ 0,0,-59,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-125,0,0,
+ 0,-294,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-296,0,0,0,
+ -307,0,0,-39,0,0,0,0,-104,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-314,0,0,0,0,-59,0,0,
+ 0,0,0,0,0,0,0,-303,0,0,
+ 0,0,-30,-336,0,0,0,0,0,0,
+ 0,0,-183,0,0,0,0,0,-41,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,-167,0,0,0,
- 0,-212,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-296,-315,0,0,
+ 0,0,-460,0,0,0,0,0,-31,0,
+ 0,0,0,0,0,0,0,-32,0,0,
+ 0,-91,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-33,0,0,0,0,
+ 0,0,0,0,0,0,-34,0,0,0,
+ 0,0,0,0,-92,0,0,0,0,-113,
0,0,0,0,0,0,0,0,0,0,
- 0,-180,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-104,0,0,0,
- -30,-472,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-288,0,
+ 0,0,0,0,-185,0,0,0,0,0,
+ 0,0,0,-35,0,0,0,-93,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-181,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -105,0,0,0,-312,-61,-39,0,0,0,
- 0,-401,0,0,0,0,0,0,0,0,
+ 0,-188,0,0,0,0,0,-36,0,0,
+ 0,0,0,0,0,0,0,-37,0,0,
+ -94,0,0,0,0,-130,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -302,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-183,-113,0,0,-31,
- 0,-41,0,0,0,0,-127,0,0,0,
+ 0,0,0,0,-196,0,0,0,0,0,
+ 0,0,0,0,0,-38,0,0,0,-40,
+ 0,0,0,-95,0,0,0,0,-54,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-131,0,0,0,0,
+ 0,0,0,0,0,0,0,-210,0,0,
+ 0,0,0,-223,0,0,0,0,0,0,
+ 0,0,-277,0,0,0,-96,0,0,0,
+ 0,-135,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -416,0,0,0,-91,0,0,0,0,0,
+ -224,0,0,0,0,0,-228,0,0,0,
+ 0,0,0,0,0,-55,0,0,0,-97,
+ 0,0,0,0,-140,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-253,0,0,0,0,0,-272,
+ 0,0,0,0,0,0,0,0,-58,0,
+ 0,0,-98,0,0,0,0,-141,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-451,
- 0,0,0,-32,0,0,0,-92,0,0,
- 0,0,-135,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,0,
- 0,0,-33,0,0,0,0,0,0,0,
- -93,0,0,0,0,0,0,0,0,0,
+ 0,-63,-279,0,0,0,0,0,0,0,
+ 0,-64,-66,0,0,-99,0,0,0,0,
+ -283,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-297,
+ 0,0,0,0,0,-316,0,0,0,0,
+ 0,0,0,0,-312,0,0,0,-100,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,-34,0,0,0,0,0,
- -185,0,0,0,0,0,0,0,0,-35,
- -469,0,0,-94,0,0,0,0,-128,0,
+ 0,0,-302,0,0,0,0,0,0,0,
+ 0,0,0,-67,0,0,0,-108,0,0,
+ 0,-101,0,0,0,0,-206,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-14,0,0,0,0,
+ 0,-322,0,0,0,0,0,0,0,0,
+ -109,-110,0,0,-204,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-36,-188,0,0,0,0,0,0,
- 0,0,-37,-38,0,0,-95,0,0,0,
- 0,-130,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -288,0,0,0,0,0,-196,0,0,0,
- 0,0,0,0,0,0,0,0,0,-96,
+ 0,0,0,0,-325,0,0,0,0,0,
+ 0,0,0,-111,0,0,0,-505,0,0,
+ 0,0,-208,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,-327,0,0,0,0,0,-345,0,0,
+ 0,0,0,0,0,0,-311,0,0,0,
+ -306,0,0,0,0,-260,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-40,-210,
+ 0,0,0,0,-178,0,0,0,0,-348,
+ 0,0,0,0,0,-234,0,0,0,-310,
+ 0,0,0,0,-362,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-97,0,0,0,0,-140,0,0,
+ 0,0,0,0,0,0,0,0,-118,0,
+ 0,0,0,0,0,0,0,0,-142,0,
+ -344,0,-143,-238,0,0,0,0,-268,-334,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-339,0,0,0,0,0,0,0,0,
- 0,-54,0,0,0,-98,0,0,0,0,
- -141,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-164,
- 0,0,0,0,-55,-223,0,0,0,0,
- 0,0,0,0,-58,-63,0,0,-99,0,
- 0,0,0,-165,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-235,-144,
+ 0,0,0,0,0,0,0,0,-357,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-224,0,0,0,0,0,-228,0,
- 0,0,0,0,0,0,0,-64,0,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,-66,0,0,0,0,
- 0,-253,0,0,0,0,0,0,0,0,
- -67,-108,0,0,-101,0,0,0,0,-198,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-272,0,
- 0,0,0,0,-279,0,0,0,0,0,
- 0,0,0,-109,0,0,0,-204,0,0,
- 0,0,-206,0,0,0,0,0,0,0,
+ 0,0,0,-339,0,0,0,-233,0,0,
+ -145,0,-240,0,0,0,0,-305,-358,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-297,0,0,0,0,0,-316,0,0,
- 0,0,0,0,0,0,-110,-111,0,0,
- -505,0,0,0,0,-283,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-322,0,0,0,0,0,
- -325,0,0,0,0,0,0,0,0,-311,
- 0,0,0,-306,0,0,0,0,-255,0,
+ 0,0,0,0,0,0,0,0,-364,0,
+ 0,0,0,0,0,0,0,-404,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,-118,0,0,0,0,-234,0,
- 0,0,-310,0,0,0,0,-142,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-227,0,0,0,
- 0,-143,0,0,0,0,0,0,0,0,
- 0,-290,0,0,0,0,-238,0,0,0,
- 0,0,-334,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-340,-146,0,0,
+ 0,0,0,0,0,0,0,-369,-147,-263,
+ -429,-18,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,-330,-327,0,0,0,0,0,0,0,
- 0,-357,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-406,0,0,0,
+ 0,0,-148,0,0,0,-90,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-144,0,0,0,0,
- -340,0,0,0,0,0,0,0,0,0,
- -230,0,0,0,-145,-208,0,0,0,0,
- -305,-358,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-146,0,0,0,0,
- 0,-345,0,0,0,0,0,0,0,0,
- -404,0,0,0,0,0,0,0,0,0,
+ -149,0,0,0,0,-308,0,0,0,0,
+ 0,-88,0,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,0,-147,
- -148,0,0,0,0,-344,0,0,0,-396,
- 0,0,-263,-429,-18,0,0,0,0,0,
- -103,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-264,0,0,0,0,
+ 0,0,0,0,0,-89,0,0,0,0,
+ -150,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-378,
+ 0,0,0,0,0,-417,0,0,-86,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-149,
- -364,0,0,0,0,0,0,0,0,-90,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,-151,0,0,0,0,-87,0,0,
+ 0,0,-397,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-150,-308,
- 0,0,0,0,-88,0,0,0,0,-284,
+ 0,0,0,0,0,0,-51,0,0,0,
+ 0,0,0,-382,0,-152,0,0,0,0,
+ 0,-226,0,0,-457,-202,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,0,0,-264,0,
- 0,0,0,0,0,0,0,0,-89,0,
- 0,0,0,-151,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-396,
+ 0,0,-80,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,-417,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,-152,0,0,0,0,
- -87,0,0,0,0,-348,0,0,0,0,
+ -153,-353,0,0,0,0,0,0,-154,0,
+ -47,0,0,0,0,-200,0,0,0,0,
+ -137,0,0,0,0,-387,0,0,0,-155,
+ -414,0,0,0,0,0,0,-385,-379,-156,
+ 0,-157,0,0,0,0,-499,0,0,0,
+ 0,-420,-318,0,0,-158,0,-328,0,0,
+ 0,0,0,0,0,-81,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-51,
- 0,0,0,0,0,0,-382,0,-153,0,
- 0,0,0,0,-369,0,-154,-233,-202,0,
- 0,0,0,-155,-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,0,
- 0,0,0,-156,0,-80,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-159,
+ 0,0,0,-82,0,0,0,0,-160,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-43,
- 0,0,0,-157,0,-1,-240,0,0,0,
- 0,-247,0,-47,0,0,0,0,-137,0,
- 0,0,0,0,-353,0,0,-480,0,0,
- 0,0,-406,-397,0,0,0,0,0,0,
- -158,0,-159,0,0,0,0,0,0,-499,
- 0,0,0,-379,-294,-160,0,0,-493,0,
- -328,0,0,0,0,0,0,-81,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,-166,0,0,0,-82,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,-242,0,0,0,0,0,0,
- 0,0,0,0,0,0,-83,0,0,0,
- 0,-169,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- -318,0,0,-317,0,0,0,0,-387,0,
- 0,0,-446,-337,0,0,0,0,-170,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,-171,-172,0,-341,0,0,0,0,0,
- 0,-286,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-414,-248,-457,0,0,
- 0,0,0,0,0,0,0,-84,0,0,
- 0,0,-249,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-250,0,0,
- 0,-385,0,0,0,-132,0,0,0,-175,
- 0,-359,0,0,0,0,-176,0,0,-504,
- 0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-177,0,0,0,0,0,0,
- 0,0,0,-186,0,-74,0,0,0,0,
- -289,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-187,
- 0,0,0,0,0,-192,0,0,0,-420,
- -415,0,0,-106,0,0,0,-475,0,-375,
- 0,0,0,0,-193,-199,0,-298,0,0,
0,0,0,0,0,0,0,0,0,0,
- -226,0,0,-370,0,0,0,0,-356,0,
- 0,-494,0,-75,0,0,0,0,-291,0,
+ 0,-242,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-83,0,0,0,0,-247,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-441,0,-221,
- 0,0,0,-386,0,0,0,-421,0,0,
- 0,-115,0,0,-207,-471,-262,0,-17,0,
- 0,0,0,0,0,0,-217,0,0,0,
- 0,0,0,0,-346,0,0,0,0,0,
- 0,-402,0,0,0,-442,0,0,0,0,
- 0,-218,0,0,0,0,0,0,0,0,
- 0,0,0,0,-220,0,0,-237,-229,0,
- 0,-241,0,0,0,0,0,0,0,0,
- 0,0,0,-243,0,0,0,0,0,-161,
- 0,0,0,0,0,0,-425,0,-235,0,
- 0,0,0,-444,0,0,0,0,0,-258,
- 0,0,0,0,0,0,0,0,0,-259,
- 0,-126,0,0,0,0,0,0,-423,0,
+ 0,0,0,0,0,0,0,0,-356,0,
+ 0,-273,0,-244,-166,0,0,0,0,0,
+ -169,-337,-229,0,0,-415,-421,0,0,0,
+ 0,0,-351,0,0,-170,-248,0,0,0,
+ 0,0,-341,0,0,0,0,0,0,-286,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-502,-269,-454,-497,-71,
- -342,0,0,0,0,-48,-448,-470,-455,-117,
- 0,0,0,0,0,0,-287,-270,-368,0,
- 0,0,0,0,0,0,-292,0,0,-319,
- 0,0,-450,0,0,0,0,0,0,0,
- 0,0,0,0,0,-274,0,0,0,0,
+ 0,0,0,-441,-401,0,0,0,0,0,
+ 0,0,0,0,0,-84,0,0,0,0,
+ -249,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-346,
+ 0,0,-442,0,0,0,0,0,0,-171,
+ -172,0,0,-175,-106,0,0,-176,-276,0,
+ 0,0,0,0,0,0,0,-423,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,0,-343,0,0,0,0,0,
+ -116,-250,0,0,0,0,0,0,0,0,
+ -209,0,0,0,0,0,0,-504,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-281,-477,0,0,0,
- 0,0,0,0,0,-478,-456,0,-116,0,
- 0,0,0,0,-376,0,0,0,0,0,
- 0,0,0,-179,0,0,0,0,0,0,
- 0,-200,0,0,0,0,0,-363,-282,0,
- -295,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-418,
- -419,0,0,-466,0,-453,0,0,0,0,
- -300,0,0,0,0,0,0,0,0,0,
+ -163,0,0,0,0,0,0,0,-231,0,
+ 0,0,0,0,0,0,0,0,-289,0,
+ 0,0,-177,-186,-187,0,-120,0,0,0,
+ 0,0,0,-192,0,0,0,0,0,0,
+ 0,0,0,-193,0,0,0,0,0,0,
+ 0,0,-1,0,0,-199,0,0,0,0,
+ 0,-207,-431,-71,0,-291,-292,0,0,0,
+ 0,0,0,0,-359,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-301,0,0,0,0,0,-323,
- 0,0,0,-267,0,-388,0,0,0,0,
- 0,0,-21,0,0,0,0,-333,0,0,
+ 0,0,0,-217,-254,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,-335,-76,0,0,
+ 0,0,0,0,0,0,0,0,0,-218,
+ 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,-298,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-77,0,0,0,0,-365,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,0,-78,0,0,0,0,
- -461,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-321,
- 0,0,0,0,-463,0,0,0,0,0,
- 0,0,-254,-465,0,0,-468,-481,0,0,
- -120,0,0,0,0,-474,0,-231,0,0,
- -484,-410,-366,-372,-503,0,0,-482,-70,0,
- -374,0,0,0,-377,-138,0,0,0,0,
- 0,0,-383,0,0,0,0,0,0,-384,
- 0,0,0,0,0,0,0,0,-119,-435,
- 0,0,0,0,0,0,0,0,0,-276,
- 0,0,0,0,0,0,-163,0,0,0,
+ 0,0,0,-386,0,0,-352,-48,0,-471,
+ 0,-320,0,-161,0,-131,0,0,-102,0,
+ 0,-293,0,0,0,0,0,0,-205,0,
+ 0,-450,0,0,0,0,0,-342,0,0,
+ -70,-402,0,0,0,0,0,0,0,0,
+ 0,-370,0,0,0,0,0,0,0,0,
+ -446,-319,0,0,-220,0,0,-237,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-454,-241,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-267,0,
+ -465,-243,0,0,0,0,0,0,0,-258,
0,0,0,0,0,0,0,0,0,0,
- -392,-483,0,0,0,0,0,-395,0,0,
- 0,0,0,-485,-488,0,-438,0,0,0,
- 0,0,-495,-403,0,-405,-510,0,0,0,
- 0,0,0,0,0,0,0,0,-500,-407,
- 0,-508,0,0,-205,0,0,0,0,-408,
- 0,-487,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-498,-409,0,
- -411,0,0,0,0,0,-121,-422,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-509,-515,-424,-426,0,0,0,0,
- 0,0,0,0,0,-492,0,0,-496,-512,
- 0,0,-14,0,-427,-428,-430,0,0,-432,
+ 0,0,-259,0,0,0,0,0,-269,0,
+ 0,-343,-179,0,0,0,0,-270,0,-470,
+ 0,-425,0,-474,0,-274,0,-317,0,0,
0,0,0,0,0,0,0,0,0,0,
- -413,0,0,-251,0,0,0,0,0,0,
- 0,0,0,-514,0,0,-517,-433,0,0,
- 0,0,0,-434,0,0,0,0,0,0,
- 0,0,0,-44,0,0,0,0,0,0,
- 0,-439,0,-443,0,0,0,0,0,0,
- 0,0,0,0,-452,-520,0,0,0,0,
- 0,0,0,0,0,0,0,-519,-518,0,
- -489,-252,0,-45,-123,0,0,-459,0,-467,
- -486,0,0,0,0,0,0,0,0,0,
- 0,0,-501,0,-506,0,0,0,0,0,
- 0,0,0,0,0,-522,0,0,0,0,
+ 0,0,0,0,0,-469,0,0,0,-190,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,-477,0,0,0,0,0,0,0,
+ 0,0,0,-43,-475,-278,-502,0,0,0,
+ -375,0,0,0,0,0,0,0,-363,0,
+ -213,-444,0,0,-281,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,
+ 0,0,-448,0,0,0,-478,0,0,0,
+ 0,0,0,0,-419,-381,-282,-117,0,-453,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,-295,-201,0,0,0,0,0,0,
+ -376,0,0,0,0,-455,-494,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-461,
+ 0,-300,0,-301,0,-456,0,0,0,-214,
0,0,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,-323,
+ 0,0,0,-76,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-20,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-77,0,0,
+ 0,0,-333,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-22,0,0,0,0,
+ 0,-78,0,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,-23,0,
+ 0,0,0,0,0,-321,0,0,0,0,
+ -365,0,0,0,0,0,0,0,-388,0,
+ 0,0,0,-368,0,0,-265,-126,0,0,
+ 0,0,0,-466,-484,-366,0,-410,0,0,
+ -464,-496,0,-463,-251,0,0,-372,0,0,
+ -222,-488,-481,0,0,0,0,0,-500,-468,
+ 0,0,0,0,0,-508,0,0,0,0,
+ 0,0,0,0,0,-435,0,0,0,0,
+ 0,0,0,0,0,-503,0,0,0,0,
+ 0,0,-374,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-482,0,-377,
+ 0,0,0,-497,0,0,0,0,0,-485,
+ 0,0,-438,0,0,-390,-119,0,-483,-383,
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,-215,0,-495,0,0,
+ 0,0,0,-498,-518,-384,-392,-487,0,0,
+ 0,0,0,0,0,0,0,-395,0,0,
+ 0,0,0,0,0,0,-510,0,0,-509,
+ -403,0,0,-512,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,-405,0,0,0,-407,0,0,0,0,
+ 0,0,-313,0,0,0,0,0,0,0,
+ 0,-408,0,0,0,-409,0,0,0,0,
+ 0,0,0,0,-490,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-20,0,0,
+ 0,0,-411,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-26,0,0,
+ -492,-422,-252,0,-424,0,-426,0,-349,-489,
+ -427,-428,-393,0,0,-430,-432,0,-433,-434,
+ -439,0,0,0,0,-443,0,0,0,0,
+ -398,0,0,-515,-452,0,0,-517,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-121,0,0,0,0,
+ -347,0,0,0,0,0,-391,-520,0,0,
+ 0,0,0,0,0,0,0,0,0,-514,
+ 0,-459,-467,-486,0,-501,0,0,-506,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,-123,0,0,0,0,0,
+ 0,0,0,0,0,-44,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-60,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,0,
- 0,0,0,0,0,0,-72,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-73,
0,0,0,0,0,0,0,0,0,0,
+ 0,-522,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-194,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-413,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-381,0,0,0,-293,
- 0,0,-309,-389,-393,0,-313,0,0,0,
- 0,-46,-349,0,0,0,0,0,0,0,
- 0,-265,-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,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-507,0,0,0,-447,0,
+ 0,0,0,0,0,0,0,0,-22,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-201,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-347,0,
- 0,-449,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-391,0,-168,
+ 0,-23,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,-24,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,-476,0,0,0,0,
+ 0,0,0,0,0,0,0,-25,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-256,
+ -26,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-27,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-331,0,0,0,
+ 0,0,0,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,-72,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-490,0,0,0,0,0,0,
- 0,0,0,0,0,0,-354,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-124,0,0,0,0,0,0,
- 0,-184,0,0,0,0,0,0,-436,0,
- 0,0,-516,0,0,0,0,0,0,-102,
+ 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,-194,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-447,0,
+ 0,-216,0,0,0,0,0,-449,0,0,
+ 0,0,0,0,-45,0,0,0,0,0,
+ 0,0,0,0,0,-211,0,0,0,0,
+ 0,0,-309,0,-389,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,-473,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-42,
- 0,0,0,0,0,0,0,-299,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,-213,0,0,0,0,0,0,0,
+ 0,-476,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-256,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,0,0,0,0,0,0,
+ -287,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-462,0,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,
- -329,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,-214,0,0,
+ 0,0,0,0,0,0,-473,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ -124,0,0,0,0,0,0,0,-138,0,
+ 0,0,0,0,0,-299,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-275,-491,
+ 0,-42,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,-222,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-331,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,-355,0,0,0,0,0,
- 0,0,0,0,0,0,0,-394,0,0,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-462,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- -209,0,0,0,-320,0,0,0,0,0,
- 0,0,0,0,-189,0,0,0,0,0,
- 0,0,0,0,0,-215,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,-285,
- 0,0,0,0,0,0,-390,0,-216,0,
+ 0,-168,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-261,0,
0,0,0,0,0,0,0,0,0,0,
- -275,-491,-195,0,0,0,0,0,0,0,
- 0,-304,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,-326,0,0,0,
+ 0,0,-329,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-355,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-332,0,0,0,0,-338,0,0,0,
- 0,0,0,0,0,0,0,0,-360,0,
- 0,0,0,-361,0,0,0,0,0,0,
- 0,0,-398,0,0,0,0,0,0,0,
+ 0,-394,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,-184,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-516,
0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-189,0,
+ 0,0,0,-285,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-65,0,0,0,
+ 0,0,0,-304,0,0,0,0,0,0,
+ 0,0,0,0,0,-326,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,-65,0,0,0,0,0,0,-373,0,
- 0,0,0,-458,0,0,0,0,0,0,
- -479,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,-440,0,
+ 0,0,0,0,0,0,0,0,-332,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,-399,0,
- 0,-400,0,0,0,-445,0,0,0,0,
+ -338,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
+ -360,0,0,0,0,-361,0,0,0,0,
+ 0,0,0,0,0,0,0,-373,0,0,
+ 0,0,0,0,0,-458,0,0,0,0,
+ 0,0,0,0,0,0,0,-479,0,0,
+ 0,0,0,0,0,0,-436,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,-440,0,0,0,0,0,0,
+ 0,0,0,-46,-195,0,0,0,0,0,
+ -399,0,0,-400,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,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0
};
};
public final static short baseCheck[] = BaseCheck.baseCheck;
@@ -547,542 +542,537 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface BaseAction {
public final static char baseAction[] = {
- 170,5,131,78,78,35,35,64,64,40,
- 40,190,190,191,191,192,192,1,1,16,
+ 171,5,132,78,78,35,35,64,64,40,
+ 40,191,191,192,192,193,193,1,1,16,
16,16,16,16,16,16,16,17,17,17,
15,11,11,9,9,9,9,9,2,65,
- 65,6,6,12,12,12,12,44,44,132,
- 132,133,54,54,43,18,18,18,18,18,
+ 65,6,6,12,12,12,12,44,44,133,
+ 133,134,54,54,43,18,18,18,18,18,
18,18,18,18,18,18,18,18,18,18,
- 18,18,18,18,18,134,134,134,114,19,
+ 18,18,18,18,18,135,135,135,114,19,
19,19,19,19,19,19,19,19,19,19,
- 19,19,20,20,171,171,172,172,173,137,
- 137,138,138,135,135,139,136,136,21,21,
+ 19,19,20,20,172,172,173,173,174,138,
+ 138,139,139,136,136,140,137,137,21,21,
22,23,23,23,25,25,25,25,26,26,
26,27,27,27,28,28,28,28,28,31,
31,31,32,32,33,33,34,34,36,36,
37,37,38,38,42,42,41,41,41,41,
41,41,41,41,41,41,41,41,41,39,
- 29,140,140,99,99,102,102,94,193,193,
+ 29,141,141,99,99,102,102,94,194,194,
69,69,69,69,69,69,69,69,69,70,
- 70,70,71,71,56,56,174,174,72,72,
+ 70,70,71,71,56,56,175,175,72,72,
72,115,115,73,73,73,73,74,74,74,
74,74,75,75,79,79,79,79,79,79,
79,49,49,49,49,49,105,105,106,106,
- 50,175,24,24,24,24,24,47,47,88,
- 88,88,88,88,147,147,142,142,142,142,
- 142,143,143,143,144,144,144,145,145,145,
- 146,146,146,89,89,89,89,89,90,90,
+ 50,176,24,24,24,24,24,47,47,88,
+ 88,88,88,88,148,148,143,143,143,143,
+ 143,144,144,144,145,145,145,146,146,146,
+ 147,147,147,89,89,89,89,89,90,90,
90,13,14,14,14,14,14,14,14,14,
14,14,14,93,119,119,119,119,119,117,
- 117,117,118,118,149,149,148,148,121,121,
- 150,83,83,84,84,86,87,85,52,46,
- 151,151,53,51,82,82,152,152,141,141,
- 122,122,77,77,153,153,62,62,62,58,
- 58,57,63,63,67,67,55,55,55,91,
- 91,101,100,100,61,61,59,59,60,60,
- 48,103,103,103,95,95,95,96,97,97,
- 97,98,98,107,107,107,109,109,108,108,
- 194,194,92,92,177,177,177,177,177,124,
- 45,45,155,176,176,125,125,125,125,178,
- 178,30,30,116,126,126,126,126,110,110,
- 120,120,120,157,158,158,158,158,158,158,
- 158,158,158,181,181,179,179,180,180,159,
- 159,159,159,160,182,112,111,111,183,183,
- 161,161,161,161,104,104,104,184,184,10,
- 185,185,186,162,154,154,163,163,164,165,
- 165,7,7,8,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,68,68,168,
- 168,127,127,128,128,128,128,128,128,3,
- 4,169,169,166,166,129,129,129,80,81,
- 76,156,156,113,113,187,187,187,130,130,
- 123,123,188,188,170,170,958,38,1841,1826,
- 1025,2572,4200,34,1112,31,35,30,32,2612,
- 261,29,27,55,1128,110,80,81,111,1137,
- 30,1370,1281,1493,1454,674,273,1540,1525,1583,
- 1573,1663,1584,1659,146,915,2934,161,147,2056,
- 38,945,36,1025,82,3436,34,1112,31,35,
- 62,32,2395,38,945,36,1025,231,2235,34,
- 1112,31,35,30,32,883,261,29,27,55,
- 1128,110,80,81,111,1137,984,1370,1281,1493,
- 1454,1330,2850,2449,234,229,230,4655,2692,274,
- 2351,38,945,36,1025,185,2235,34,1112,31,
- 35,30,32,883,261,29,27,55,1128,90,
- 80,81,241,244,247,250,3411,2165,38,945,
- 36,1025,2004,3436,34,1112,31,35,61,32,
- 327,38,500,2957,1025,1344,574,2466,3189,3090,
- 3459,3577,3705,4354,1540,38,945,36,1025,2440,
- 2235,34,1112,31,35,2797,32,883,261,29,
- 27,55,1128,110,80,81,111,1137,340,1370,
- 1281,1493,1454,66,1209,1540,1525,1583,1573,2300,
- 1584,1659,146,410,160,505,147,1856,38,945,
- 36,1025,2864,4165,34,1112,31,35,30,32,
- 660,512,498,2138,506,1540,38,945,36,1025,
- 2440,2235,34,1112,31,35,2797,32,883,261,
- 29,27,55,1128,110,80,81,111,1137,340,
- 1370,1281,1493,1454,856,1425,1540,1525,1583,1573,
- 2440,1584,1659,146,3212,1008,505,147,1972,38,
- 388,65,485,2864,1097,38,945,36,1025,2644,
- 352,34,1112,43,35,506,837,520,1870,38,
- 945,36,1025,501,2235,34,1112,31,35,30,
- 32,883,261,29,27,55,1128,110,80,81,
- 111,1137,590,1370,1281,1493,1454,1658,2534,1540,
- 1525,1583,1573,3204,1584,2945,167,327,38,2982,
- 2790,47,2876,2814,1650,38,945,36,1025,855,
- 4165,34,1112,31,35,64,32,356,508,1650,
- 38,945,36,1025,501,4165,34,1112,31,35,
- 63,32,2831,3002,3014,1071,325,1097,38,945,
- 36,1025,330,1031,34,1112,2416,35,3443,2582,
- 38,277,1893,484,2525,66,38,1755,46,1025,
- 443,2875,45,1112,2814,1805,38,945,36,1025,
- 2440,2235,34,1112,31,35,2797,32,883,261,
- 29,27,55,1128,110,80,81,111,1137,340,
- 1370,1281,1493,1454,1707,30,1540,1525,1583,1573,
- 735,1584,1659,146,1379,1853,505,147,1097,38,
- 945,36,1025,2864,2052,34,1112,2455,35,3212,
- 1606,38,945,36,1025,506,2235,34,1112,31,
- 35,30,32,883,261,29,27,55,1128,110,
- 80,81,111,1137,2507,1370,1281,1493,1454,1088,
- 1399,1540,1525,1583,1573,2440,1584,1659,146,784,
- 1237,375,147,327,38,1783,1746,1025,327,38,
- 500,276,1025,159,2644,1588,38,500,3149,1025,
- 837,327,3077,165,378,1899,49,2876,1206,1678,
- 38,945,36,1025,502,2235,34,1112,31,35,
- 30,32,883,261,29,27,55,1128,110,80,
- 81,111,1137,2196,1370,1281,1493,1454,75,1667,
- 1540,1525,1583,1573,3029,1584,1659,146,327,2928,
- 375,147,1588,38,500,276,1025,327,38,500,
- 280,1025,492,2183,1114,379,3515,2171,1979,38,
- 945,36,1025,376,2235,34,1112,31,35,30,
- 32,883,261,29,27,55,1128,110,80,81,
- 111,1137,2008,1370,1281,1493,1454,490,491,1540,
- 1525,1583,1573,2618,1584,1659,146,396,2610,161,
- 147,327,38,500,278,1025,1182,943,3699,384,
- 416,2942,285,327,38,1798,382,1025,784,1979,
- 38,945,36,1025,380,2235,34,1112,31,35,
- 30,32,883,261,29,27,55,1128,110,80,
- 81,111,1137,273,1370,1281,1493,1454,590,372,
- 1540,1525,1583,1573,4093,1584,1659,146,427,92,
- 369,147,106,1979,38,945,36,1025,508,2235,
- 34,1112,31,35,30,32,883,261,29,27,
- 55,1128,110,80,81,111,1137,590,1370,1281,
- 1493,1454,2490,4212,1540,1525,1583,1573,574,1584,
- 1659,146,97,28,369,147,275,590,1979,38,
- 945,36,1025,4757,2235,34,1112,31,35,30,
- 32,883,261,29,27,55,1128,110,80,81,
- 111,1137,30,1370,1281,1493,1454,2930,2131,1540,
- 1525,1583,1573,368,1584,1659,146,508,370,369,
- 147,235,1914,38,945,36,1025,784,2235,34,
- 1112,31,35,30,32,883,261,29,27,55,
- 1128,110,80,81,111,1137,30,1370,1281,1493,
- 1454,4586,74,1540,1525,1583,1573,367,1584,1659,
- 146,508,430,375,147,1379,1374,1740,38,945,
- 36,1025,2631,2235,34,1112,31,35,30,32,
- 883,261,29,27,55,1128,110,80,81,111,
- 1137,2066,1370,1281,1493,1454,73,4777,1540,1525,
- 1583,1573,365,1584,1659,146,30,508,145,147,
- 1207,1028,1979,38,945,36,1025,1209,2235,34,
- 1112,31,35,30,32,883,261,29,27,55,
- 1128,110,80,81,111,1137,1492,1370,1281,1493,
- 1454,2440,58,1540,1525,1583,1573,373,1584,1659,
- 146,327,3674,162,147,1979,38,945,36,1025,
- 340,2235,34,1112,31,35,30,32,883,261,
- 29,27,55,1128,110,80,81,111,1137,76,
- 1370,1281,1493,1454,1059,511,1540,1525,1583,1573,
- 1566,1584,1659,146,2421,447,158,147,1979,38,
- 945,36,1025,508,2235,34,1112,31,35,30,
- 32,883,261,29,27,55,1128,110,80,81,
- 111,1137,2724,1370,1281,1493,1454,2440,618,1540,
- 1525,1583,1573,153,1584,1659,146,1396,91,157,
- 147,1979,38,945,36,1025,340,2235,34,1112,
- 31,35,30,32,883,261,29,27,55,1128,
- 110,80,81,111,1137,1006,1370,1281,1493,1454,
- 3421,2147,1540,1525,1583,1573,2037,1584,1659,146,
- 1295,2631,156,147,1979,38,945,36,1025,1209,
- 2235,34,1112,31,35,30,32,883,261,29,
- 27,55,1128,110,80,81,111,1137,1617,1370,
- 1281,1493,1454,1092,30,1540,1525,1583,1573,2999,
- 1584,1659,146,931,155,155,147,1979,38,945,
- 36,1025,1209,2235,34,1112,31,35,30,32,
- 883,261,29,27,55,1128,110,80,81,111,
- 1137,1976,1370,1281,1493,1454,2440,30,1540,1525,
- 1583,1573,2009,1584,1659,146,311,446,154,147,
- 1979,38,945,36,1025,2644,2235,34,1112,31,
- 35,30,32,883,261,29,27,55,1128,110,
- 80,81,111,1137,511,1370,1281,1493,1454,1091,
- 30,1540,1525,1583,1573,765,1584,1659,146,3502,
- 4043,153,147,1979,38,945,36,1025,508,2235,
- 34,1112,31,35,30,32,883,261,29,27,
- 55,1128,110,80,81,111,1137,2579,1370,1281,
- 1493,1454,590,357,1540,1525,1583,1573,4789,1584,
- 1659,146,333,57,152,147,1979,38,945,36,
- 1025,1209,2235,34,1112,31,35,30,32,883,
- 261,29,27,55,1128,110,80,81,111,1137,
- 507,1370,1281,1493,1454,420,30,1540,1525,1583,
- 1573,2233,1584,1659,146,2025,1795,151,147,1979,
- 38,945,36,1025,1433,2235,34,1112,31,35,
- 30,32,883,261,29,27,55,1128,110,80,
- 81,111,1137,2360,1370,1281,1493,1454,2339,30,
- 1540,1525,1583,1573,3284,1584,1659,146,2148,56,
- 150,147,1979,38,945,36,1025,349,2235,34,
- 1112,31,35,30,32,883,261,29,27,55,
- 1128,110,80,81,111,1137,1029,1370,1281,1493,
- 1454,350,30,1540,1525,1583,1573,4070,1584,1659,
- 146,1145,154,149,147,1979,38,945,36,1025,
- 508,2235,34,1112,31,35,30,32,883,261,
- 29,27,55,1128,110,80,81,111,1137,30,
- 1370,1281,1493,1454,2310,30,1540,1525,1583,1573,
- 4077,1584,1659,146,589,94,148,147,1979,38,
- 945,36,1025,1209,2235,34,1112,31,35,30,
- 32,883,261,29,27,55,1128,110,80,81,
- 111,1137,1475,1370,1281,1493,1454,2581,30,1540,
- 1525,1583,1573,2965,1584,1659,146,1214,1347,143,
- 147,2303,38,945,36,1025,2495,2235,34,1112,
- 31,35,30,32,883,261,29,27,55,1128,
- 110,80,81,111,1137,30,1370,1281,1493,1454,
- 4179,30,1540,1525,1583,1573,4083,1584,1659,146,
- 1209,324,192,147,2395,38,945,36,1025,1314,
- 2235,34,1112,31,35,30,32,883,261,29,
- 27,55,1128,110,80,81,111,1137,1314,1370,
- 1281,1493,1454,322,691,1540,1525,1583,1573,1155,
- 1584,2945,167,2395,38,945,36,1025,2095,2235,
- 34,1112,31,35,30,32,883,261,29,27,
- 55,1128,110,80,81,111,1137,1206,1370,1281,
- 1493,1454,2488,383,1540,1525,1583,1573,101,1584,
- 2945,167,327,38,500,3280,1025,327,38,1798,
- 382,1025,282,2395,38,945,36,1025,289,2235,
- 34,1112,31,35,30,32,883,261,29,27,
- 55,1128,110,80,81,111,1137,273,1370,1281,
- 1493,1454,2708,30,1540,1525,1583,1573,2621,1584,
- 2945,167,2395,38,945,36,1025,2226,2235,34,
- 1112,31,35,30,32,883,261,29,27,55,
- 1128,110,80,81,111,1137,952,1370,1281,1493,
- 1454,590,394,1540,1525,1583,1573,4794,1584,2945,
- 167,327,38,281,1053,1333,508,3126,385,416,
- 78,1314,2395,38,945,36,1025,412,2235,34,
- 1112,31,35,30,32,883,261,29,27,55,
- 1128,110,80,81,111,1137,1769,1370,1281,1493,
- 1454,347,30,1540,1525,1583,1573,667,1584,2945,
- 167,2439,38,945,36,1025,411,2235,34,1112,
- 31,35,30,32,883,261,29,27,55,1128,
- 110,80,81,111,1137,283,1370,1281,1493,1454,
- 588,675,1540,1525,1583,1573,1209,1584,2945,167,
- 1800,3616,3615,1206,590,1522,38,1798,382,1025,
- 4854,2395,38,945,36,1025,414,2235,34,1112,
- 31,35,30,32,883,261,29,27,55,1128,
- 110,80,81,111,1137,54,1370,1281,1493,1454,
- 762,30,1540,1525,1583,1573,2574,2576,1756,934,
- 2395,38,945,36,1025,3654,2235,34,1112,31,
- 35,30,32,883,261,29,27,55,1128,110,
- 80,81,111,1137,102,1370,1281,1493,1454,849,
- 1155,1540,1525,1583,2561,2395,38,945,36,1025,
- 2080,2235,34,1112,31,35,30,32,883,261,
- 29,27,55,1128,110,80,81,111,1137,1206,
- 1370,1281,1493,1454,387,416,1540,1525,2494,2395,
- 38,945,36,1025,670,2235,34,1112,31,35,
- 30,32,883,261,29,27,55,1128,110,80,
- 81,111,1137,30,1370,1281,1493,1454,4198,2618,
- 1540,2524,2395,38,945,36,1025,323,2235,34,
- 1112,31,35,30,32,883,261,29,27,55,
- 1128,110,80,81,111,1137,757,1370,1281,1493,
- 2457,2395,38,945,36,1025,2576,2235,34,1112,
- 31,35,30,32,883,261,29,27,55,1128,
- 110,80,81,111,1137,3034,1370,1281,1493,2464,
- 2483,38,1798,382,1025,3081,3052,30,3126,1317,
- 386,416,4803,236,261,2576,398,2424,508,1259,
- 38,1798,382,1025,2544,2395,38,945,36,1025,
- 273,2235,34,1112,31,35,30,32,883,261,
- 29,27,55,1128,110,80,81,111,1137,273,
- 1370,1281,2220,1869,1297,299,2395,38,945,36,
- 1025,231,2235,34,1112,31,35,30,32,883,
- 261,29,27,55,1128,110,80,81,111,1137,
- 30,1370,1281,2221,1854,2440,1466,508,234,229,
- 230,1088,508,274,327,38,1798,382,1025,327,
- 38,1798,382,1025,340,1722,38,440,327,38,
- 290,4849,2998,2576,2164,159,241,244,247,250,
- 3411,1410,1875,45,54,524,2004,72,2864,37,
- 327,38,290,77,2466,1707,1093,1756,665,2749,
- 1842,2558,3189,3090,3459,3577,3705,4354,2395,38,
- 945,36,1025,182,2235,34,1112,31,35,30,
- 32,883,261,29,27,55,1128,110,80,81,
- 111,1137,1525,1370,1281,2270,2395,38,945,36,
- 1025,2558,2235,34,1112,31,35,30,32,883,
- 261,29,27,55,1128,110,80,81,111,1137,
- 877,1370,1281,2309,1105,38,945,36,1025,3097,
- 4680,34,1112,31,35,336,32,2395,38,945,
- 36,1025,1786,2235,34,1112,31,35,30,32,
- 883,261,29,27,55,1128,110,80,81,111,
- 1137,2681,1370,2354,327,38,1798,382,1025,1958,
- 38,440,512,2466,1851,4849,565,351,3539,1831,
- 4712,317,2320,319,520,1237,312,1936,433,3424,
- 3431,348,1864,1975,273,327,38,1798,382,1025,
- 3610,3219,1083,38,945,36,1025,4645,4680,34,
- 1112,31,35,336,32,1123,2576,508,590,341,
- 1764,1740,346,434,4861,420,784,3176,2395,38,
- 945,36,1025,508,2235,34,1112,31,35,30,
- 32,883,261,29,27,55,1128,110,80,81,
- 111,1137,71,1370,2406,2894,198,337,508,317,
- 2320,319,30,434,312,1936,30,1332,70,348,
- 1767,1088,327,38,1798,382,1025,1361,1351,3110,
- 1531,38,945,36,1025,3097,4680,34,1112,31,
- 35,336,32,69,240,1850,321,341,1764,1740,
- 346,362,423,520,1187,2146,2395,38,945,36,
- 1025,508,2235,34,1112,31,35,30,32,883,
- 261,29,27,55,1128,110,80,81,111,1137,
- 778,2018,437,3424,3431,419,1941,317,2320,319,
- 30,2576,312,1936,1968,2693,1955,348,1314,3020,
- 327,38,1798,382,1025,2142,2221,515,1219,38,
- 3298,36,1025,4297,4772,34,1112,31,35,336,
- 32,2520,38,279,2618,341,1764,1740,346,2189,
- 422,197,1314,516,2395,38,945,36,1025,508,
- 2235,34,1112,31,35,30,32,883,261,29,
- 27,55,1128,110,80,81,111,1137,2576,2042,
- 1021,348,297,329,175,317,2320,319,2733,526,
- 312,1936,1056,4139,60,2107,30,1349,3204,30,
- 372,1088,2440,4270,1088,531,1077,2050,228,341,
- 1764,1740,346,159,784,1425,304,339,201,4541,
- 2440,228,1,2553,183,3523,2576,526,159,203,
- 214,4618,2059,202,211,212,213,215,1198,2644,
- 172,3403,1087,399,4526,936,228,329,2508,1341,
- 3077,159,1442,186,170,171,173,174,175,176,
- 177,2553,183,400,430,3050,199,203,214,4618,
- 1056,202,211,212,213,215,3204,30,172,1056,
- 326,332,3078,827,30,3204,184,407,3317,1541,
- 1526,187,170,171,173,174,175,176,177,2782,
- 2193,3040,414,38,1798,382,1025,356,2092,1446,
- 38,945,36,1025,4297,4772,34,1112,31,35,
- 336,32,3218,3002,3014,329,2618,2139,2152,1314,
- 30,2196,54,2440,3470,1088,334,30,2640,30,
- 1023,1088,3088,2440,3177,1756,2856,1056,2145,1972,
- 38,388,228,3204,401,404,1143,508,2972,159,
- 508,3545,228,2576,329,163,317,2320,319,1721,
- 284,312,1936,205,214,4618,1963,204,211,212,
- 213,215,514,205,214,4618,1450,204,211,212,
- 213,215,59,296,206,320,3050,1998,3098,2589,
- 4541,231,329,220,206,508,3050,216,207,208,
- 209,210,291,292,293,294,98,216,207,208,
- 209,210,291,292,293,294,2214,2753,243,229,
- 230,306,2440,4236,2868,1367,2764,30,3390,2606,
- 105,2440,3186,4236,2902,327,38,1798,382,1025,
- 3113,228,238,261,327,38,1798,382,1025,3450,
- 228,3685,327,38,1798,382,1025,93,508,2511,
- 106,2378,205,214,4618,421,204,211,212,213,
- 215,205,214,4618,54,204,211,212,213,215,
- 508,2530,54,206,30,3050,508,1756,2995,4324,
- 231,2296,206,2373,3050,51,216,207,208,209,
- 210,291,292,293,294,216,207,208,209,210,
- 291,292,293,294,2570,438,518,239,229,230,
- 2377,3416,4236,3079,1341,3077,327,38,1798,382,
- 1025,4236,3568,2395,38,1841,1826,1025,1632,2235,
- 34,1112,31,35,30,32,883,261,29,27,
- 55,1128,110,80,81,88,439,2612,2395,38,
- 945,36,1025,37,2235,34,1112,31,35,30,
- 32,883,261,29,27,55,1128,110,80,81,
- 111,2126,2395,38,945,36,1025,1940,2235,34,
- 1112,31,35,30,32,883,261,29,27,55,
- 1128,110,80,81,111,2145,2395,38,945,36,
- 1025,508,2235,34,1112,31,35,30,32,883,
- 261,29,27,55,1128,110,80,81,111,2176,
- 1300,38,945,36,1025,508,4772,34,1112,31,
- 35,336,32,1021,2576,284,3514,508,1972,38,
- 388,1387,38,2824,1531,1025,2576,4362,2520,38,
- 277,2653,262,2543,2656,2618,2800,526,508,334,
- 3552,2686,2151,3098,1088,2690,501,38,1798,382,
- 1025,54,3606,2632,3701,330,228,317,2320,319,
- 2709,159,313,1936,1756,1003,303,348,163,1386,
- 349,2553,183,3076,3403,526,54,203,214,4618,
- 1729,202,211,212,213,215,3204,1019,172,1756,
- 1083,513,4641,1131,228,343,1764,1740,346,159,
- 2459,3672,170,171,173,174,175,176,177,2553,
- 183,2092,508,331,332,203,214,4618,2702,202,
- 211,212,213,215,436,2576,172,2507,3723,526,
- 231,1366,526,508,2703,3470,2706,508,1678,179,
- 170,171,173,174,175,176,177,3425,228,2576,
- 2704,3244,2576,159,348,1043,159,246,229,230,
- 2712,3204,523,2553,183,4135,165,526,374,203,
- 214,4618,3647,202,211,212,213,215,1314,2720,
- 172,2725,341,1764,1740,346,228,1739,2716,302,
- 2146,159,4373,190,170,171,173,174,175,176,
- 177,2553,183,2576,508,2718,2735,203,214,4618,
- 330,202,211,212,213,215,610,100,172,30,
- 2576,526,348,2024,960,2736,2729,2509,2440,3404,
- 2738,3725,170,171,173,174,175,176,177,3698,
- 228,2581,295,221,334,159,1088,340,231,1088,
- 343,1764,1740,346,697,2553,183,2576,88,526,
- 298,203,214,4618,2726,202,211,212,213,215,
- 159,1136,172,163,30,249,229,230,228,2440,
- 2976,200,2448,159,2737,193,170,171,173,174,
- 175,176,177,2553,183,2739,508,194,340,203,
- 214,4618,984,202,211,212,213,215,784,1661,
- 172,2507,334,526,30,2051,1088,1088,1328,2440,
- 2745,2743,2864,189,170,171,173,174,175,176,
- 177,3736,228,2751,1884,169,5359,159,340,5359,
- 159,163,5359,2909,5359,5359,871,2553,183,5359,
- 165,526,5359,203,214,4618,5359,202,211,212,
- 213,215,2864,5359,172,5359,5359,5359,5359,5359,
- 228,5359,5359,377,1927,159,231,196,170,171,
- 173,174,175,176,177,2553,183,5359,5359,5359,
- 443,203,214,4618,5359,202,211,212,213,215,
- 5359,5359,172,252,229,230,5359,5359,429,5359,
- 5359,3107,5359,3542,5359,195,170,171,173,174,
- 175,176,177,2395,38,945,36,1025,5359,2235,
- 34,1112,31,35,30,32,883,261,29,27,
- 55,1128,110,80,81,89,2395,38,945,36,
- 1025,5359,2235,34,1112,31,35,30,32,883,
- 261,29,27,55,1128,110,80,81,87,2395,
- 38,945,36,1025,5359,2235,34,1112,31,35,
- 30,32,883,261,29,27,55,1128,110,80,
- 81,86,2395,38,945,36,1025,5359,2235,34,
- 1112,31,35,30,32,883,261,29,27,55,
- 1128,110,80,81,85,2395,38,945,36,1025,
- 5359,2235,34,1112,31,35,30,32,883,261,
- 29,27,55,1128,110,80,81,84,2395,38,
- 945,36,1025,5359,2235,34,1112,31,35,30,
- 32,883,261,29,27,55,1128,110,80,81,
- 83,2395,38,945,36,1025,5359,2235,34,1112,
- 31,35,30,32,883,261,29,27,55,1128,
- 110,80,81,82,2252,38,945,36,1025,5359,
- 2235,34,1112,31,35,30,32,883,261,29,
- 27,55,1128,110,80,81,108,2395,38,945,
- 36,1025,5359,2235,34,1112,31,35,30,32,
- 883,261,29,27,55,1128,110,80,81,113,
- 2395,38,945,36,1025,5359,2235,34,1112,31,
- 35,30,32,883,261,29,27,55,1128,110,
- 80,81,112,2395,38,945,36,1025,5359,2235,
- 34,1112,31,35,30,32,883,261,29,27,
- 55,1128,110,80,81,109,2846,5359,5359,5359,
- 1021,2440,5359,334,334,2038,5359,1021,1088,1088,
- 2440,5359,30,1399,5359,5359,5359,2440,2440,5359,
- 228,5359,1851,327,38,1798,382,1025,4712,228,
- 5359,5359,163,163,5359,5359,340,2644,5359,5359,
- 5359,205,214,4618,5359,204,211,212,213,215,
- 205,214,4618,54,204,211,212,213,215,5359,
- 2864,3403,206,5359,3050,2507,1756,3418,3403,2856,
- 1088,206,1928,3050,2440,486,207,208,209,210,
- 291,292,293,294,508,207,208,209,210,291,
- 292,293,294,228,159,327,38,1798,382,1025,
- 328,332,3155,3240,165,492,5359,2182,332,1021,
- 5359,5359,2938,5359,205,214,4618,2440,204,211,
- 212,213,215,5359,5359,54,1351,5359,1021,5359,
- 2215,38,1798,382,1025,206,228,3050,1756,934,
- 489,491,327,38,1798,382,1025,5359,305,207,
- 208,209,210,291,292,293,294,205,214,4618,
- 54,204,211,212,213,215,2671,3594,5359,5359,
- 3403,2440,54,1756,1222,5359,5359,5359,206,5359,
- 3050,3347,5359,418,1143,1756,889,5359,5359,3403,
- 228,509,207,208,209,210,291,292,293,294,
- 327,38,1798,382,1025,3274,5359,5359,5359,2271,
- 332,205,214,4618,5359,204,211,212,213,215,
- 5359,5359,5359,5359,5359,5359,5359,1056,2860,332,
- 54,5359,206,3204,3050,5359,5359,5359,5359,5359,
- 5359,5359,5359,1756,2575,217,207,208,209,210,
- 291,292,293,294,2072,38,945,36,1025,4297,
- 4680,34,1112,31,35,336,32,1455,38,3298,
- 36,1025,4297,4680,34,1112,31,35,336,32,
- 5359,5359,329,5359,2546,38,1798,382,1025,5359,
- 3052,5359,1309,38,1798,382,1025,237,261,30,
- 5359,5359,5359,2507,526,5359,5359,5359,1088,5359,
- 30,317,2320,319,273,1088,312,1936,4605,5359,
- 5359,5359,54,340,317,2320,319,5359,159,312,
- 1936,1450,159,5359,5359,1756,52,5359,191,159,
- 5359,5359,165,5359,531,231,2891,4512,5359,2563,
- 5359,5359,5359,5359,1514,38,945,36,1025,4297,
- 4680,34,1112,31,35,336,32,5359,5359,5359,
- 30,5359,235,229,230,526,306,274,1514,38,
- 945,36,1025,4297,4680,34,1112,31,35,336,
- 32,5359,5359,30,340,3593,5359,5359,1088,159,
- 242,245,248,251,3411,3686,3685,5359,5359,1321,
- 2004,317,2320,319,3371,5359,312,1936,2864,5359,
- 5359,5359,159,5359,5359,5359,408,3317,5359,5359,
- 1277,1450,2532,5359,5359,317,2320,319,5359,5359,
- 312,1936,1514,38,945,36,1025,4297,4680,34,
- 1112,31,35,336,32,3110,1159,38,945,36,
- 1025,2878,4680,34,1112,31,35,336,32,5359,
- 5359,1173,38,945,36,1025,307,4772,34,1112,
- 31,35,336,32,5359,5359,5359,5359,30,5359,
- 5359,5359,5359,1088,5359,5359,395,5359,5359,317,
- 2320,319,5359,5359,312,1936,5359,5359,5359,5359,
- 5359,5359,5359,314,3251,319,1267,159,5359,3711,
- 5359,2440,4270,5359,5359,5359,330,2737,317,2320,
- 319,5359,5359,315,1936,1173,38,945,36,1025,
- 228,4772,34,1112,31,35,336,32,1592,38,
- 945,36,1025,3059,4680,34,1112,31,35,336,
- 32,1087,399,4526,5359,5359,5359,5359,5359,5359,
- 5359,1057,5359,5359,5359,1057,2440,3204,5359,5359,
- 2440,3204,400,5359,3050,414,38,1798,382,1025,
- 330,5359,317,2320,319,2644,30,313,1936,2644,
- 5359,1088,5359,5359,5359,314,3251,319,5359,1912,
- 1600,38,1798,382,1025,54,5359,2210,5359,30,
- 3040,5359,2440,5359,1088,159,329,5359,1756,52,
- 329,30,30,30,5359,2753,1088,1088,2440,2141,
- 54,340,1600,38,1798,382,1025,5359,159,5359,
- 5359,5359,519,1756,2681,5359,5359,340,2778,5359,
- 159,159,3545,356,2684,2864,3390,356,5359,5359,
- 1970,3527,54,401,403,5359,5359,522,2527,3002,
- 3014,2864,2527,3002,3014,1756,52,501,38,1798,
- 382,1025,5359,2458,5359,1979,2715,2947,5359,5359,
- 5359,1912,1600,38,1798,382,1025,1600,38,1798,
- 382,1025,5359,5359,5359,5359,5359,54,5359,1600,
- 38,1798,382,1025,1600,38,1798,382,1025,5359,
- 1756,52,54,2685,5359,5359,5359,54,2440,5359,
- 5359,948,5359,5359,5359,1756,2899,5359,5359,54,
- 1756,52,5359,5359,54,5359,2684,2644,5359,5359,
- 5359,2792,1756,52,5359,5359,5359,1756,52,5359,
- 5359,5359,30,2870,5359,5359,5359,526,3195,1600,
- 38,1798,382,1025,2175,38,1798,382,1025,5359,
- 5359,2347,38,1798,382,1025,340,5359,5359,5359,
- 5359,159,30,5359,5359,3241,5359,526,5359,54,
- 5359,1198,5359,5359,54,5359,5359,5359,5359,30,
- 2864,54,1756,52,526,492,340,1756,52,5359,
- 5359,159,1463,3286,1756,52,5359,5359,2548,30,
- 5359,191,30,340,2440,2570,30,2440,159,5359,
- 4512,2440,5359,5359,5359,5359,5359,5359,191,5359,
- 489,491,5359,340,5359,5359,340,4512,5359,5359,
- 340,5359,5359,5359,5359,5359,5359,5359,5359,5359,
- 5359,5359,5359,5359,5359,5359,5359,2864,5359,5359,
- 2864,5359,5359,5359,2864,5359,5359,5359,5359,496,
- 5359,3617,494,5359,5359,5359,523,5359,5359,5359,
- 5359,5359,5359,5359,5359,5359,5359,3395,5359,5359,
- 5359,5359,5359,5359,5359,5359,5359,5359,5359,5359,
- 5359,5359,5359,5359,3407,5359,0,5377,42,0,
- 5376,42,0,500,33,0,441,935,0,41,
- 5377,0,41,5376,0,129,2588,0,1,431,
- 0,42,5377,0,42,5376,0,445,1377,0,
- 444,1549,0,500,44,0,2786,95,0,500,
- 381,0,36,382,0,382,36,0,33,381,
- 0,381,33,0,500,33,381,0,2539,42,
- 0,1,822,0,1,5631,0,1,5630,0,
- 1,5629,0,1,5628,0,1,5627,0,1,
- 5626,0,1,5625,0,1,5624,0,1,5623,
- 0,1,5622,0,1,5621,0,1,5377,42,
- 0,1,5376,42,0,1,895,0,5592,240,
- 0,5591,240,0,5694,240,0,5693,240,0,
- 5619,240,0,5618,240,0,5617,240,0,5616,
- 240,0,5615,240,0,5614,240,0,5613,240,
- 0,5612,240,0,5631,240,0,5630,240,0,
- 5629,240,0,5628,240,0,5627,240,0,5626,
- 240,0,5625,240,0,5624,240,0,5623,240,
- 0,5622,240,0,5621,240,0,42,240,5377,
- 0,42,240,5376,0,240,5400,0,53,5377,
- 0,53,5376,0,48,5398,0,48,40,0,
- 5377,53,0,5376,53,0,131,2588,0,130,
- 2588,0,236,3086,0,30,507,0,5686,432,
- 0,1262,432,0,1,96,0,52,40,0,
- 1,5400,0,1,42,0,227,1,5400,0,
- 227,1,42,0,227,406,0,40,5377,0,
- 40,5376,0,5398,50,0,50,40,0,5377,
- 39,0,5376,39,0,40,5377,2,0,40,
- 5376,2,0,5369,397,0,5368,397,0,1,
- 4448,0,1,3613,0,1,2539,0,227,405,
- 0,5686,99,0,1262,99,0,1918,316,0,
- 1,5686,0,1,1262,0,278,3634,0,1,
- 778,0,1,3099,0,5367,1,0,488,4075,
- 0,227,1,0,227,1,3526,0,5369,227,
- 0,5368,227,0,3648,227,0,8,10,0,
- 227,219,0,227,218,0,188,3644,0
+ 117,117,118,118,150,150,149,149,121,121,
+ 151,83,83,84,84,86,87,85,52,46,
+ 152,152,53,51,82,82,153,153,142,142,
+ 122,123,123,77,77,154,154,62,62,62,
+ 58,58,57,63,63,67,67,55,55,55,
+ 91,91,101,100,100,61,61,59,59,60,
+ 60,48,103,103,103,95,95,95,96,97,
+ 97,97,98,98,107,107,107,109,109,108,
+ 108,195,195,92,92,178,178,178,178,178,
+ 125,45,45,156,177,177,126,126,126,126,
+ 179,179,30,30,116,127,127,127,127,110,
+ 110,120,120,120,158,159,159,159,159,159,
+ 159,159,159,159,182,182,180,180,181,181,
+ 160,160,160,160,161,183,112,111,111,184,
+ 184,162,162,162,162,104,104,104,185,185,
+ 10,186,186,187,163,155,155,164,164,165,
+ 166,166,7,7,8,168,168,168,168,168,
+ 168,168,168,168,168,168,168,168,168,168,
+ 168,168,168,168,168,168,168,168,168,168,
+ 168,168,168,168,168,168,168,168,168,168,
+ 168,168,168,168,168,168,168,66,68,68,
+ 169,169,128,128,129,129,129,129,129,129,
+ 3,4,170,170,167,167,130,130,130,80,
+ 81,76,157,157,113,113,188,188,188,131,
+ 131,124,124,189,189,171,171,958,38,1844,
+ 1763,1057,915,4522,34,1072,31,35,30,32,
+ 2695,261,29,27,55,1083,110,80,81,111,
+ 1153,30,1409,1363,1446,1418,676,273,1504,1457,
+ 1548,1538,1663,1586,1590,146,82,3044,161,147,
+ 2056,38,938,36,1057,984,4419,34,1072,31,
+ 35,62,32,2395,38,938,36,1057,231,2242,
+ 34,1072,31,35,30,32,852,261,29,27,
+ 55,1083,110,80,81,111,1153,30,1409,1363,
+ 1446,1418,737,1182,2531,234,229,230,1183,1374,
+ 274,2351,38,938,36,1057,185,2242,34,1072,
+ 31,35,30,32,852,261,29,27,55,1083,
+ 90,80,81,241,244,247,250,2877,507,2165,
+ 38,938,36,1057,2049,4419,34,1072,31,35,
+ 61,32,327,38,501,2944,1057,1344,566,1314,
+ 2821,3308,3607,3806,3855,4411,1540,38,938,36,
+ 1057,2447,2242,34,1072,31,35,2798,32,852,
+ 261,29,27,55,1083,110,80,81,111,1153,
+ 341,1409,1363,1446,1418,66,160,1504,1457,1548,
+ 1538,2300,1586,1590,146,350,856,506,147,1856,
+ 38,938,36,1057,2795,3324,34,1072,31,35,
+ 30,32,662,384,499,1008,507,1540,38,938,
+ 36,1057,2447,2242,34,1072,31,35,2798,32,
+ 852,261,29,27,55,1083,110,80,81,111,
+ 1153,341,1409,1363,1446,1418,1330,2875,1504,1457,
+ 1548,1538,4679,1586,1590,146,2546,1071,506,147,
+ 2138,1972,38,389,65,2795,1097,38,938,36,
+ 1057,3056,590,34,1072,43,35,507,2541,840,
+ 431,1870,38,938,36,1057,502,2242,34,1072,
+ 31,35,30,32,852,261,29,27,55,1083,
+ 110,80,81,111,1153,1209,1409,1363,1446,1418,
+ 1433,30,1504,1457,1548,1538,1092,1586,2912,167,
+ 327,38,2980,2794,47,2906,2873,1650,38,938,
+ 36,1057,1031,3324,34,1072,31,35,64,32,
+ 1814,508,1650,38,938,36,1057,502,3324,34,
+ 1072,31,35,63,32,327,38,281,1707,326,
+ 1097,38,938,36,1057,327,2744,34,1072,2010,
+ 35,3610,2582,38,277,1857,485,351,66,38,
+ 1719,46,1057,486,2894,45,1072,2873,1805,38,
+ 938,36,1057,2447,2242,34,1072,31,35,2798,
+ 32,852,261,29,27,55,1083,110,80,81,
+ 111,1153,341,1409,1363,1446,1418,2183,1853,1504,
+ 1457,1548,1538,786,1586,1590,146,1209,444,506,
+ 147,1097,38,938,36,1057,2795,1143,34,1072,
+ 2238,35,1021,1606,38,938,36,1057,507,2242,
+ 34,1072,31,35,30,32,852,261,29,27,
+ 55,1083,110,80,81,111,1153,30,1409,1363,
+ 1446,1418,1092,1399,1504,1457,1548,1538,2447,1586,
+ 1590,146,786,1209,376,147,327,38,1661,1624,
+ 1057,327,38,501,276,1057,159,2652,1588,38,
+ 501,3246,1057,2945,840,448,1293,379,1588,38,
+ 501,276,1057,1678,38,938,36,1057,503,2242,
+ 34,1072,31,35,30,32,852,261,29,27,
+ 55,1083,110,80,81,111,1153,1899,1409,1363,
+ 1446,1418,327,333,1504,1457,1548,1538,1667,1586,
+ 1590,146,2008,2099,376,147,327,38,501,280,
+ 1057,447,1206,2610,590,493,327,38,290,380,
+ 3220,2171,1979,38,938,36,1057,377,2242,34,
+ 1072,31,35,30,32,852,261,29,27,55,
+ 1083,110,80,81,111,1153,1206,1409,1363,1446,
+ 1418,491,492,1504,1457,1548,1538,30,1586,1590,
+ 146,397,962,161,147,327,38,501,278,1057,
+ 327,3776,3635,327,38,501,3400,1057,327,38,
+ 1762,383,1057,943,1979,38,938,36,1057,381,
+ 2242,34,1072,31,35,30,32,852,261,29,
+ 27,55,1083,110,80,81,111,1153,273,1409,
+ 1363,1446,1418,1056,2525,1504,1457,1548,1538,3183,
+ 1586,1590,146,385,417,370,147,590,1979,38,
+ 938,36,1057,4256,2242,34,1072,31,35,30,
+ 32,852,261,29,27,55,1083,110,80,81,
+ 111,1153,2490,1409,1363,1446,1418,386,417,1504,
+ 1457,1548,1538,566,1586,1590,146,3529,330,370,
+ 147,275,97,2708,1979,38,938,36,1057,2546,
+ 2242,34,1072,31,35,30,32,852,261,29,
+ 27,55,1083,110,80,81,111,1153,30,1409,
+ 1363,1446,1418,3521,2005,1504,1457,1548,1538,369,
+ 1586,1590,146,395,1566,370,147,786,1914,38,
+ 938,36,1057,508,2242,34,1072,31,35,30,
+ 32,852,261,29,27,55,1083,110,80,81,
+ 111,1153,1707,1409,1363,1446,1418,49,2906,1504,
+ 1457,1548,1538,368,1586,1590,146,590,28,376,
+ 147,327,3179,4716,1740,38,938,36,1057,508,
+ 2242,34,1072,31,35,30,32,852,261,29,
+ 27,55,1083,110,80,81,111,1153,1114,1409,
+ 1363,1446,1418,235,2572,1504,1457,1548,1538,366,
+ 1586,1590,146,30,74,145,147,880,1082,1979,
+ 38,938,36,1057,508,2242,34,1072,31,35,
+ 30,32,852,261,29,27,55,1083,110,80,
+ 81,111,1153,2724,1409,1363,1446,1418,2447,1207,
+ 1504,1457,1548,1538,374,1586,1590,146,2421,73,
+ 162,147,1979,38,938,36,1057,341,2242,34,
+ 1072,31,35,30,32,852,261,29,27,55,
+ 1083,110,80,81,111,1153,153,1409,1363,1446,
+ 1418,3505,285,1504,1457,1548,1538,1006,1586,1590,
+ 146,312,428,158,147,1979,38,938,36,1057,
+ 508,2242,34,1072,31,35,30,32,852,261,
+ 29,27,55,1083,110,80,81,111,1153,1976,
+ 1409,1363,1446,1418,2447,2147,1504,1457,1548,1538,
+ 1116,1586,1590,146,1295,58,157,147,1979,38,
+ 938,36,1057,2652,2242,34,1072,31,35,30,
+ 32,852,261,29,27,55,1083,110,80,81,
+ 111,1153,30,1409,1363,1446,1418,2703,1092,1504,
+ 1457,1548,1538,2227,1586,1590,146,411,931,156,
+ 147,1979,38,938,36,1057,1209,2242,34,1072,
+ 31,35,30,32,852,261,29,27,55,1083,
+ 110,80,81,111,1153,30,1409,1363,1446,1418,
+ 2016,358,1504,1457,1548,1538,155,1586,1590,146,
+ 1091,3609,155,147,1979,38,938,36,1057,333,
+ 2242,34,1072,31,35,30,32,852,261,29,
+ 27,55,1083,110,80,81,111,1153,30,1409,
+ 1363,1446,1418,2694,30,1504,1457,1548,1538,2240,
+ 1586,1590,146,1379,4206,154,147,1979,38,938,
+ 36,1057,508,2242,34,1072,31,35,30,32,
+ 852,261,29,27,55,1083,110,80,81,111,
+ 1153,2360,1409,1363,1446,1418,2346,30,1504,1457,
+ 1548,1538,3139,1586,1590,146,420,91,153,147,
+ 1979,38,938,36,1057,508,2242,34,1072,31,
+ 35,30,32,852,261,29,27,55,1083,110,
+ 80,81,111,1153,30,1409,1363,1446,1418,3062,
+ 30,1504,1457,1548,1538,2316,1586,1590,146,2025,
+ 57,152,147,1979,38,938,36,1057,1209,2242,
+ 34,1072,31,35,30,32,852,261,29,27,
+ 55,1083,110,80,81,111,1153,75,1409,1363,
+ 1446,1418,1795,30,1504,1457,1548,1538,3693,1586,
+ 1590,146,2148,1029,151,147,1979,38,938,36,
+ 1057,2495,2242,34,1072,31,35,30,32,852,
+ 261,29,27,55,1083,110,80,81,111,1153,
+ 1475,1409,1363,1446,1418,2588,30,1504,1457,1548,
+ 1538,2780,1586,1590,146,1379,56,150,147,1979,
+ 38,938,36,1057,508,2242,34,1072,31,35,
+ 30,32,852,261,29,27,55,1083,110,80,
+ 81,111,1153,2066,1409,1363,1446,1418,323,4751,
+ 1504,1457,1548,1538,1145,1586,1590,146,154,94,
+ 149,147,1979,38,938,36,1057,1209,2242,34,
+ 1072,31,35,30,32,852,261,29,27,55,
+ 1083,110,80,81,111,1153,2024,1409,1363,1446,
+ 1418,2447,30,1504,1457,1548,1538,3811,1586,1590,
+ 146,589,1214,148,147,1979,38,938,36,1057,
+ 341,2242,34,1072,31,35,30,32,852,261,
+ 29,27,55,1083,110,80,81,111,1153,76,
+ 1409,1363,1446,1418,613,30,1504,1457,1548,1538,
+ 3759,1586,1590,146,1347,325,143,147,2303,38,
+ 938,36,1057,508,2242,34,1072,31,35,30,
+ 32,852,261,29,27,55,1083,110,80,81,
+ 111,1153,30,1409,1363,1446,1418,2713,30,1504,
+ 1457,1548,1538,2025,1586,1590,146,1209,348,192,
+ 147,2395,38,938,36,1057,855,2242,34,1072,
+ 31,35,30,32,852,261,29,27,55,1083,
+ 110,80,81,111,1153,1658,1409,1363,1446,1418,
+ 2576,3183,1504,1457,1548,1538,1155,1586,2912,167,
+ 2395,38,938,36,1057,2466,2242,34,1072,31,
+ 35,30,32,852,261,29,27,55,1083,110,
+ 80,81,111,1153,444,1409,1363,1446,1418,691,
+ 399,1504,1457,1548,1538,101,1586,2912,167,2095,
+ 331,1209,430,2488,327,38,1762,383,1057,1314,
+ 2395,38,938,36,1057,289,2242,34,1072,31,
+ 35,30,32,852,261,29,27,55,1083,110,
+ 80,81,111,1153,273,1409,1363,1446,1418,1056,
+ 952,1504,1457,1548,1538,3183,1586,2912,167,2395,
+ 38,938,36,1057,2061,2242,34,1072,31,35,
+ 30,32,852,261,29,27,55,1083,110,80,
+ 81,111,1153,282,1409,1363,1446,1418,1327,102,
+ 1504,1457,1548,1538,590,1586,2912,167,508,353,
+ 4771,1333,2692,508,2799,3196,521,78,1314,2395,
+ 38,938,36,1057,413,2242,34,1072,31,35,
+ 30,32,852,261,29,27,55,1083,110,80,
+ 81,111,1153,1710,1409,1363,1446,1418,1753,30,
+ 1504,1457,1548,1538,2569,1586,2912,167,2439,38,
+ 938,36,1057,412,2242,34,1072,31,35,30,
+ 32,852,261,29,27,55,1083,110,80,81,
+ 111,1153,283,1409,1363,1446,1418,590,1769,1504,
+ 1457,1548,1538,4776,1586,2912,167,98,2576,588,
+ 1206,590,1522,38,1762,383,1057,4796,2395,38,
+ 938,36,1057,415,2242,34,1072,31,35,30,
+ 32,852,261,29,27,55,1083,110,80,81,
+ 111,1153,54,1409,1363,1446,1418,2576,299,1504,
+ 1457,1548,1538,675,2629,1752,878,2395,38,938,
+ 36,1057,3770,2242,34,1072,31,35,30,32,
+ 852,261,29,27,55,1083,110,80,81,111,
+ 1153,762,1409,1363,1446,1418,1155,182,1504,1457,
+ 1548,2586,2395,38,938,36,1057,2080,2242,34,
+ 1072,31,35,30,32,852,261,29,27,55,
+ 1083,110,80,81,111,1153,1206,1409,1363,1446,
+ 1418,388,417,1504,1457,2570,2395,38,938,36,
+ 1057,849,2242,34,1072,31,35,30,32,852,
+ 261,29,27,55,1083,110,80,81,111,1153,
+ 30,1409,1363,1446,1418,3817,2618,1504,2572,2395,
+ 38,938,36,1057,324,2242,34,1072,31,35,
+ 30,32,852,261,29,27,55,1083,110,80,
+ 81,111,1153,670,1409,1363,1446,2539,2395,38,
+ 938,36,1057,2164,2242,34,1072,31,35,30,
+ 32,852,261,29,27,55,1083,110,80,81,
+ 111,1153,3262,1409,1363,1446,2560,2483,38,1762,
+ 383,1057,3078,3498,30,3196,757,387,417,3781,
+ 236,261,2520,38,279,590,1259,38,1762,383,
+ 1057,4808,2395,38,938,36,1057,273,2242,34,
+ 1072,31,35,30,32,852,261,29,27,55,
+ 1083,110,80,81,111,1153,273,1409,1363,2239,
+ 1800,3762,3761,2395,38,938,36,1057,231,2242,
+ 34,1072,31,35,30,32,852,261,29,27,
+ 55,1083,110,80,81,111,1153,1076,1409,1363,
+ 2283,1317,1722,38,441,234,229,230,4788,2424,
+ 274,327,38,1762,383,1057,327,38,1762,383,
+ 1057,327,38,1762,383,1057,1958,38,441,3108,
+ 2544,2576,4788,241,244,247,250,2877,30,2466,
+ 1297,54,1854,2745,2049,1327,54,327,38,290,
+ 77,37,30,2681,1752,667,1410,3101,2558,51,
+ 2821,3308,3607,3806,3855,4411,2395,38,938,36,
+ 1057,198,2242,34,1072,31,35,30,32,852,
+ 261,29,27,55,1083,110,80,81,111,1153,
+ 45,1409,1363,2311,2395,38,938,36,1057,1093,
+ 2242,34,1072,31,35,30,32,852,261,29,
+ 27,55,1083,110,80,81,111,1153,786,1409,
+ 1363,2361,1105,38,938,36,1057,4361,4684,34,
+ 1072,31,35,337,32,2395,38,938,36,1057,
+ 508,2242,34,1072,31,35,30,32,852,261,
+ 29,27,55,1083,110,80,81,111,1153,2189,
+ 1409,2413,2196,352,1425,1525,434,3518,3563,2447,
+ 521,1786,1851,1341,3179,72,2576,2733,4704,318,
+ 2327,320,4229,2558,313,1771,1831,508,2652,349,
+ 438,3518,3563,327,38,1762,383,1057,3664,3307,
+ 1083,38,938,36,1057,3052,4684,34,1072,31,
+ 35,337,32,3047,2576,2631,197,342,830,648,
+ 347,435,71,421,786,3265,2395,38,938,36,
+ 1057,508,2242,34,1072,31,35,30,32,852,
+ 261,29,27,55,1083,110,80,81,111,1153,
+ 1425,1409,2456,2576,201,2447,357,318,2327,320,
+ 1864,1975,313,1771,1767,1968,70,349,1361,1729,
+ 3054,2869,3126,3142,2652,3183,1833,3102,1446,38,
+ 938,36,1057,4480,4739,34,1072,31,35,337,
+ 32,2606,508,199,284,342,830,648,347,92,
+ 363,1057,106,1943,238,261,2447,3183,1531,38,
+ 938,36,1057,4361,4684,34,1072,31,35,337,
+ 32,1019,2069,3188,2799,2652,2831,69,512,2520,
+ 38,277,349,330,420,318,2327,320,3092,508,
+ 313,1771,357,240,1187,778,435,1387,38,2874,
+ 1495,1057,231,4647,1941,1284,330,3259,3126,3142,
+ 342,830,648,347,2142,318,2327,320,340,4583,
+ 313,1771,2913,1466,1882,349,2221,54,1092,239,
+ 229,230,2107,2692,30,516,508,508,349,1092,
+ 1752,1006,3069,357,1135,327,38,1762,383,1057,
+ 306,310,159,342,830,648,347,100,2153,3126,
+ 3142,517,525,159,2050,1021,342,830,648,347,
+ 3072,60,59,1728,1943,424,2395,38,938,36,
+ 1057,3785,2242,34,1072,31,35,30,32,852,
+ 261,29,27,55,1083,110,80,81,111,1153,
+ 2059,2059,2395,38,938,36,1057,1373,2242,34,
+ 1072,31,35,30,32,852,261,29,27,55,
+ 1083,110,80,81,111,1153,2945,2063,1219,38,
+ 3433,36,1057,4480,4739,34,1072,31,35,337,
+ 32,2395,38,1844,1763,1057,513,2242,34,1072,
+ 31,35,30,32,852,261,29,27,55,1083,
+ 110,80,81,88,175,332,333,2618,334,527,
+ 30,37,1057,1092,1056,1092,1492,2447,3183,30,
+ 3183,2447,1021,330,1092,318,2327,320,228,1043,
+ 313,1771,2576,159,532,3183,2652,163,2196,3628,
+ 341,334,1,2277,183,1364,1092,527,159,203,
+ 214,4612,2618,202,211,212,213,215,2620,4583,
+ 172,2466,508,373,1068,936,228,330,2508,330,
+ 163,159,220,186,170,171,173,174,175,176,
+ 177,2277,183,2945,331,2152,1442,203,214,4612,
+ 2447,202,211,212,213,215,349,321,172,1341,
+ 3179,2576,430,3476,357,3069,184,1470,373,228,
+ 1526,187,170,171,173,174,175,176,177,2153,
+ 3126,3142,329,333,344,830,648,347,408,3457,
+ 205,214,4612,2193,204,211,212,213,215,2139,
+ 1685,3760,508,327,38,1762,383,1057,2145,1243,
+ 2640,206,30,3173,2576,2447,1963,3125,327,38,
+ 1762,383,1057,371,216,207,208,209,210,291,
+ 292,293,294,54,228,93,2631,105,106,3082,
+ 327,38,1762,383,1057,322,1752,3105,273,1575,
+ 4302,3245,521,2753,303,205,214,4612,2447,204,
+ 211,212,213,215,30,1314,2589,2618,2568,2447,
+ 54,327,38,1762,383,1057,206,228,3173,508,
+ 284,30,30,1752,2859,2214,1092,3216,341,216,
+ 207,208,209,210,291,292,293,294,205,214,
+ 4612,423,204,211,212,213,215,508,2158,3188,
+ 159,338,2795,30,2380,4302,3337,2764,3190,206,
+ 2670,3173,2447,515,1848,2530,2846,2511,1023,297,
+ 508,2447,216,207,208,209,210,291,292,293,
+ 294,228,439,2378,327,38,1762,383,1057,512,
+ 228,327,38,1762,383,1057,30,1314,4302,3594,
+ 519,3233,205,214,4612,3194,204,211,212,213,
+ 215,205,214,4612,54,204,211,212,213,215,
+ 508,422,2296,206,2570,3173,30,1752,878,231,
+ 30,3297,206,3394,3173,1092,216,207,208,209,
+ 210,291,292,293,294,487,207,208,209,210,
+ 291,292,293,294,2749,3600,243,229,230,159,
+ 2377,304,4302,3634,2395,38,938,36,1057,2717,
+ 2242,34,1072,31,35,30,32,852,261,29,
+ 27,55,1083,110,80,81,111,2100,2395,38,
+ 938,36,1057,1632,2242,34,1072,31,35,30,
+ 32,852,261,29,27,55,1083,110,80,81,
+ 111,2151,2395,38,938,36,1057,2612,2242,34,
+ 1072,31,35,30,32,852,261,29,27,55,
+ 1083,110,80,81,111,2228,1300,38,938,36,
+ 1057,1940,4739,34,1072,31,35,337,32,327,
+ 38,1762,383,1057,1972,38,389,1851,414,38,
+ 1762,383,1057,4704,30,2653,2543,513,262,3715,
+ 2838,2507,30,527,508,334,1092,963,2656,440,
+ 1092,1267,2576,1972,38,389,2447,4328,54,2576,
+ 508,331,228,318,2327,320,2576,159,314,1771,
+ 159,1752,2884,349,163,228,349,2277,183,3638,
+ 165,527,1148,203,214,4612,2618,202,211,212,
+ 213,215,4453,2686,172,3751,1091,400,4539,302,
+ 228,344,830,648,347,159,4660,3771,170,171,
+ 173,174,175,176,177,2277,183,401,508,3173,
+ 2690,203,214,4612,1314,202,211,212,213,215,
+ 436,1833,172,2507,3636,527,2210,1386,527,508,
+ 2632,2447,514,3522,2916,179,170,171,173,174,
+ 175,176,177,3247,228,3150,30,3504,508,159,
+ 341,1092,159,3836,1314,1661,2709,2092,523,2277,
+ 183,520,165,527,3556,203,214,4612,2702,202,
+ 211,212,213,215,2795,159,172,508,296,419,
+ 2576,2703,228,375,2576,2761,523,159,231,190,
+ 170,171,173,174,175,176,177,2277,183,402,
+ 404,3364,2706,203,214,4612,2704,202,211,212,
+ 213,215,3788,1021,172,246,229,230,295,378,
+ 221,669,2712,4628,298,3141,2720,3839,170,171,
+ 173,174,175,176,177,2072,38,938,36,1057,
+ 4480,4684,34,1072,31,35,337,32,2395,38,
+ 938,36,1057,2725,2242,34,1072,31,35,30,
+ 32,852,261,29,27,55,1083,110,80,81,
+ 89,610,2716,334,2945,2718,527,2735,1092,1399,
+ 2507,2736,2729,2038,2447,1092,2509,2738,2447,88,
+ 2726,2448,318,2327,320,228,2737,313,1771,3511,
+ 159,2685,163,2652,508,2739,2447,228,2576,159,
+ 2277,183,1284,1968,333,3305,203,214,4612,165,
+ 202,211,212,213,215,2652,1739,172,205,214,
+ 4612,1021,204,211,212,213,215,1021,508,3884,
+ 193,170,171,173,174,175,176,177,194,206,
+ 697,3173,1328,2745,2743,527,2751,306,310,169,
+ 5308,5308,509,207,208,209,210,291,292,293,
+ 294,493,2917,3922,228,2051,5308,3660,5308,159,
+ 5308,5308,3536,5308,5308,5308,30,231,3785,2277,
+ 183,2447,2945,493,5308,203,214,4612,2945,202,
+ 211,212,213,215,784,5308,172,490,492,527,
+ 341,5308,5308,5308,249,229,230,5308,5308,189,
+ 170,171,173,174,175,176,177,5308,228,490,
+ 492,2189,333,159,2795,5308,231,2582,333,5308,
+ 5308,5308,871,2277,183,5308,1891,527,3481,203,
+ 214,4612,5308,202,211,212,213,215,5308,5308,
+ 172,5308,5308,252,229,230,228,2581,5308,5308,
+ 3766,159,1092,196,170,171,173,174,175,176,
+ 177,2277,183,5308,5308,5308,5308,203,214,4612,
+ 5308,202,211,212,213,215,159,5308,172,5308,
+ 5308,5308,5308,5308,5308,5308,2783,200,5308,5308,
+ 5308,195,170,171,173,174,175,176,177,2395,
+ 38,938,36,1057,5308,2242,34,1072,31,35,
+ 30,32,852,261,29,27,55,1083,110,80,
+ 81,87,2395,38,938,36,1057,5308,2242,34,
+ 1072,31,35,30,32,852,261,29,27,55,
+ 1083,110,80,81,86,2395,38,938,36,1057,
+ 5308,2242,34,1072,31,35,30,32,852,261,
+ 29,27,55,1083,110,80,81,85,2395,38,
+ 938,36,1057,5308,2242,34,1072,31,35,30,
+ 32,852,261,29,27,55,1083,110,80,81,
+ 84,2395,38,938,36,1057,5308,2242,34,1072,
+ 31,35,30,32,852,261,29,27,55,1083,
+ 110,80,81,83,2395,38,938,36,1057,5308,
+ 2242,34,1072,31,35,30,32,852,261,29,
+ 27,55,1083,110,80,81,82,2252,38,938,
+ 36,1057,5308,2242,34,1072,31,35,30,32,
+ 852,261,29,27,55,1083,110,80,81,108,
+ 2395,38,938,36,1057,5308,2242,34,1072,31,
+ 35,30,32,852,261,29,27,55,1083,110,
+ 80,81,113,2395,38,938,36,1057,5308,2242,
+ 34,1072,31,35,30,32,852,261,29,27,
+ 55,1083,110,80,81,112,2395,38,938,36,
+ 1057,5308,2242,34,1072,31,35,30,32,852,
+ 261,29,27,55,1083,110,80,81,109,2856,
+ 5308,5308,30,5308,2447,5308,5308,1092,2938,5308,
+ 5308,5308,5308,2447,5308,30,5308,5308,5308,5308,
+ 2447,5308,5308,228,5308,5308,327,38,1762,383,
+ 1057,159,228,334,5308,334,5308,5308,1092,341,
+ 1092,2822,5308,5308,205,214,4612,5308,204,211,
+ 212,213,215,205,214,4612,54,204,211,212,
+ 213,215,163,2795,163,206,5308,3173,5308,1752,
+ 892,5308,2671,5308,206,1892,3173,2447,305,207,
+ 208,209,210,291,292,293,294,510,207,208,
+ 209,210,291,292,293,294,228,5308,327,38,
+ 1762,383,1057,1455,38,3433,36,1057,4480,4684,
+ 34,1072,31,35,337,32,5308,205,214,4612,
+ 5308,204,211,212,213,215,5308,5308,54,5308,
+ 5308,1056,3182,5308,3287,5308,5308,3183,206,5308,
+ 3173,1752,1312,5308,5308,5308,5308,5308,5308,5308,
+ 5308,217,207,208,209,210,291,292,293,294,
+ 318,2327,320,5308,5308,313,1771,1514,38,938,
+ 36,1057,4480,4684,34,1072,31,35,337,32,
+ 1364,2546,38,1762,383,1057,330,3498,5308,501,
+ 38,1762,383,1057,237,261,1514,38,938,36,
+ 1057,4480,4684,34,1072,31,35,337,32,30,
+ 30,273,30,5308,1092,1092,5308,527,5308,54,
+ 5308,5308,3476,2507,318,2327,320,5308,1092,313,
+ 1771,5308,1752,937,5308,5308,341,5308,159,159,
+ 5308,159,231,2466,1284,5308,5308,5308,1977,3657,
+ 1056,1384,159,318,2327,320,3183,5308,313,1771,
+ 2795,5308,165,409,3457,5308,5308,5308,5308,235,
+ 229,230,1339,3102,274,1514,38,938,36,1057,
+ 4480,4684,34,1072,31,35,337,32,5308,307,
+ 310,5308,2215,38,1762,383,1057,242,245,248,
+ 251,2877,5308,5308,5308,330,5308,5308,2049,1159,
+ 38,938,36,1057,3008,4684,34,1072,31,35,
+ 337,32,54,5308,5308,3784,5308,5308,5308,5308,
+ 5308,5308,318,2327,320,1752,1222,313,1771,5308,
+ 5308,4599,5308,5308,5308,5308,1148,5308,5308,396,
+ 5308,5308,3834,1173,38,938,36,1057,5308,4739,
+ 34,1072,31,35,337,32,315,3362,320,1173,
+ 38,938,36,1057,5308,4739,34,1072,31,35,
+ 337,32,1592,38,938,36,1057,2808,4684,34,
+ 1072,31,35,337,32,5308,5308,5308,1349,5308,
+ 5308,5308,5308,2447,4328,5308,5308,5308,331,5308,
+ 318,2327,320,5308,5308,316,1771,1309,38,1762,
+ 383,1057,228,5308,331,5308,318,2327,320,5308,
+ 2507,314,1771,5308,5308,1092,5308,5308,5308,315,
+ 3362,320,5308,1091,400,4539,5308,54,5308,414,
+ 38,1762,383,1057,1600,38,1762,383,1057,159,
+ 1752,52,5308,1790,401,5308,3173,30,5308,165,
+ 5308,2462,527,5308,1600,38,1762,383,1057,54,
+ 5308,5308,5308,5308,54,5308,501,38,1762,383,
+ 1057,341,1752,52,5308,5308,159,1752,2583,5308,
+ 5308,5308,3150,875,54,5308,1293,5308,3198,1600,
+ 38,1762,383,1057,5308,2795,54,1752,52,5308,
+ 5308,1600,38,1762,383,1057,5308,1642,2723,1752,
+ 52,5308,3818,5308,5308,5308,1790,5308,5308,54,
+ 951,1600,38,1762,383,1057,1600,38,1762,383,
+ 1057,54,1752,2689,5308,5308,402,405,1600,38,
+ 1762,383,1057,3198,1752,52,2175,38,1762,383,
+ 1057,54,5308,5308,5308,2925,54,5308,2347,38,
+ 1762,383,1057,5308,1752,52,5308,30,54,1752,
+ 52,5308,527,5308,30,3251,54,5308,5308,527,
+ 3331,1752,52,5308,5308,5308,5308,5308,54,1752,
+ 52,341,3489,5308,30,5308,159,5308,341,527,
+ 1086,1752,52,159,30,30,191,5308,5308,2447,
+ 2447,30,2577,191,30,4505,2447,5308,341,2447,
+ 30,5308,4505,159,5308,2447,5308,5308,341,341,
+ 5308,5308,5308,191,5308,341,5308,5308,341,5308,
+ 5308,5308,4505,5308,341,5308,5308,5308,5308,5308,
+ 5308,5308,2795,2795,5308,5308,5308,5308,5308,2795,
+ 5308,5308,2795,5308,1934,2148,5308,5308,2795,5308,
+ 5308,497,5308,5308,495,5308,5308,5308,5308,5308,
+ 524,5308,3360,5308,5308,5308,5308,5308,5308,3514,
+ 5308,5308,5308,5308,5308,5308,5308,5308,5308,5308,
+ 5308,5308,5308,5308,5308,5308,5308,5308,5308,3530,
+ 5308,0,42,5326,0,42,5325,0,501,33,
+ 0,442,607,0,41,5326,0,41,5325,0,
+ 129,2596,0,1,432,0,446,947,0,445,
+ 1003,0,501,44,0,831,95,0,501,382,
+ 0,36,383,0,383,36,0,33,382,0,
+ 382,33,0,501,33,382,0,42,2551,0,
+ 1,792,0,1,5580,0,1,5579,0,1,
+ 5578,0,1,5577,0,1,5576,0,1,5575,
+ 0,1,5574,0,1,5573,0,1,5572,0,
+ 1,5571,0,1,5570,0,42,1,5326,0,
+ 42,1,5325,0,898,1,0,5541,240,0,
+ 5540,240,0,5644,240,0,5643,240,0,5568,
+ 240,0,5567,240,0,5566,240,0,5565,240,
+ 0,5564,240,0,5563,240,0,5562,240,0,
+ 5561,240,0,5580,240,0,5579,240,0,5578,
+ 240,0,5577,240,0,5576,240,0,5575,240,
+ 0,5574,240,0,5573,240,0,5572,240,0,
+ 5571,240,0,5570,240,0,42,240,5326,0,
+ 42,240,5325,0,5349,240,0,53,5326,0,
+ 53,5325,0,48,5347,0,48,40,0,5326,
+ 53,0,5325,53,0,131,2596,0,130,2596,
+ 0,236,3048,0,30,508,0,5636,433,0,
+ 1127,433,0,1,96,0,52,40,0,5349,
+ 1,0,42,1,0,5349,227,1,0,42,
+ 227,1,0,227,407,0,40,5326,0,40,
+ 5325,0,5347,50,0,50,40,0,5326,39,
+ 0,5325,39,0,40,5326,2,0,40,5325,
+ 2,0,5318,398,0,5317,398,0,1,4426,
+ 0,1,1876,0,1,2551,0,227,406,0,
+ 5636,99,0,1127,99,0,1796,317,0,1,
+ 5636,0,1,1127,0,278,3515,0,1,781,
+ 0,1,3494,0,5316,1,0,489,3763,0,
+ 227,1,0,227,1,3682,0,5318,227,0,
+ 5317,227,0,3769,227,0,8,10,0,227,
+ 219,0,227,218,0,188,3830,0
};
};
public final static char baseAction[] = BaseAction.baseAction;
@@ -1406,308 +1396,308 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface TermAction {
public final static char termAction[] = {0,
- 5359,5334,5331,5331,5331,5331,5331,5331,5331,5344,
+ 5308,5283,5280,5280,5280,5280,5280,5280,5280,5293,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,5341,1,1,1,
+ 1,1,1,1,1,1,5290,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,5359,1,1,1,2554,1,
- 561,1,1,1,1,1,1411,1,1,1,
- 5359,3508,1,1,1,41,5022,5019,1,1,
- 1,5366,733,5537,2379,3571,2861,2191,2736,3524,
- 3422,160,3569,1068,3550,3631,3540,8,5347,5347,
- 5347,5347,5347,5347,5347,5347,5347,5347,5347,5347,
- 5347,5347,5347,5347,5347,5347,5347,5347,5347,5347,
- 5347,5347,5347,5347,5347,5347,1888,5347,5347,5347,
- 5347,5347,5347,5347,5347,5347,5347,5347,5347,5347,
- 5347,5359,5347,5347,5347,5347,5347,5347,5347,5347,
- 5347,5347,5347,5347,5347,5347,5347,1372,5347,5347,
- 5347,5347,124,5359,140,5347,5347,5347,5347,5359,
- 5347,5347,5347,5347,5347,5347,5347,5347,188,5347,
- 5347,5347,5347,5347,5359,5334,5331,5331,5331,5331,
- 5331,5331,5331,5338,1,1,1,1,1,1,
+ 1,1,1,1,5308,1,1,1,2423,1,
+ 562,1,1,1,1,1,1140,1,1,1,
+ 5308,3648,1,1,1,41,4977,4974,1,1,
+ 1,5315,780,5486,2386,3733,2706,2198,2561,3661,
+ 3508,160,3706,885,3702,3947,3686,8,5296,5296,
+ 5296,5296,5296,5296,5296,5296,5296,5296,5296,5296,
+ 5296,5296,5296,5296,5296,5296,5296,5296,5296,5296,
+ 5296,5296,5296,5296,5296,5296,1895,5296,5296,5296,
+ 5296,5296,5296,5296,5296,5296,5296,5296,5296,5296,
+ 5296,5308,5296,5296,5296,5296,5296,5296,5296,5296,
+ 5296,5296,5296,5296,5296,5296,5296,1379,5296,5296,
+ 5296,5296,124,5308,140,5296,5296,5296,5296,5308,
+ 5296,5296,5296,5296,5296,5296,5296,5296,188,5296,
+ 5296,5296,5296,5296,5308,5283,5280,5280,5280,5280,
+ 5280,5280,5280,5287,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 5341,1,1,2520,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,2662,1,
- 1,1,2554,1,561,1,1,1,1,1,
- 1411,1,1,1,121,3508,1,1,1,503,
- 2657,2748,1,1,1,2904,2826,5537,2379,3571,
- 2861,2191,2736,3524,3422,2280,3569,1068,3550,3631,
- 3540,5359,5334,5331,5331,5331,5331,5331,5331,5331,
- 5338,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,5341,1,1,
- 5356,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,905,1,1,1,2554,
- 1,561,1,1,1,1,1,1411,1,1,
- 1,5359,3508,1,1,1,5359,5376,5377,1,
- 1,1,445,1,5537,2379,3571,2861,2191,2736,
- 3524,3422,164,3569,1068,3550,3631,3540,5359,5334,
- 5331,5331,5331,5331,5331,5331,5331,5338,1,1,
+ 5290,1,1,3244,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,2701,1,
+ 1,1,2423,1,562,1,1,1,1,1,
+ 1140,1,1,1,121,3648,1,1,1,504,
+ 2665,2756,1,1,1,2982,2956,5486,2386,3733,
+ 2706,2198,2561,3661,3508,2287,3706,885,3702,3947,
+ 3686,5308,5283,5280,5280,5280,5280,5280,5280,5280,
+ 5287,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,5290,1,1,
+ 5305,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,908,1,1,1,2423,
+ 1,562,1,1,1,1,1,1140,1,1,
+ 1,5308,3648,1,1,1,5308,5325,5326,1,
+ 1,1,446,1,5486,2386,3733,2706,2198,2561,
+ 3661,3508,164,3706,885,3702,3947,3686,5308,5283,
+ 5280,5280,5280,5280,5280,5280,5280,5287,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,5341,1,1,5359,1,1,
+ 1,1,1,1,5290,1,1,5308,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,5037,1,1,1,2554,1,561,1,
- 1,1,1,1,1411,1,1,1,5359,3508,
- 1,1,1,5359,5201,5198,1,1,1,444,
- 164,5537,2379,3571,2861,2191,2736,3524,3422,358,
- 3569,1068,3550,3631,3540,5359,5334,5331,5331,5331,
- 5331,5331,5331,5331,5338,1,1,1,1,1,
+ 1,1,4986,1,1,1,2423,1,562,1,
+ 1,1,1,1,1140,1,1,1,5308,3648,
+ 1,1,1,5308,5150,5147,1,1,1,445,
+ 164,5486,2386,3733,2706,2198,2561,3661,3508,359,
+ 3706,885,3702,3947,3686,5308,5283,5280,5280,5280,
+ 5280,5280,5280,5280,5287,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,5341,1,1,5359,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,5040,
- 1,1,1,2554,1,561,1,1,1,1,
- 1,1411,1,1,1,1611,3508,1,1,1,
- 53,5213,5210,1,1,1,345,5359,5537,2379,
- 3571,2861,2191,2736,3524,3422,5365,3569,1068,3550,
- 3631,3540,5359,5334,5331,5331,5331,5331,5331,5331,
- 5331,5338,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,5341,1,
- 1,5359,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,798,1,1,1,
- 2554,1,561,1,1,1,1,1,1411,1,
- 1,1,5359,3508,1,1,1,128,5359,42,
- 1,1,1,5400,5364,5537,2379,3571,2861,2191,
- 2736,3524,3422,5359,3569,1068,3550,3631,3540,5359,
- 5334,5331,5331,5331,5331,5331,5331,5331,5338,1,
+ 1,5290,1,1,5308,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,4989,
+ 1,1,1,2423,1,562,1,1,1,1,
+ 1,1140,1,1,1,1489,3648,1,1,1,
+ 53,5162,5159,1,1,1,346,5308,5486,2386,
+ 3733,2706,2198,2561,3661,3508,5314,3706,885,3702,
+ 3947,3686,5308,5283,5280,5280,5280,5280,5280,5280,
+ 5280,5287,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,5290,1,
+ 1,5308,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,801,1,1,1,
+ 2423,1,562,1,1,1,1,1,1140,1,
+ 1,1,5308,3648,1,1,1,128,5308,42,
+ 1,1,1,5349,5313,5486,2386,3733,2706,2198,
+ 2561,3661,3508,5308,3706,885,3702,3947,3686,5308,
+ 5283,5280,5280,5280,5280,5280,5280,5280,5287,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,5341,1,1,5359,1,
+ 1,1,1,1,1,5290,1,1,5308,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,2699,1,1,1,2554,1,561,
- 1,1,1,1,1,1411,1,1,1,123,
- 3508,1,1,1,127,2657,2748,1,1,1,
- 2904,2826,5537,2379,3571,2861,2191,2736,3524,3422,
- 5359,3569,1068,3550,3631,3540,5359,5334,5331,5331,
- 5331,5331,5331,5331,5331,5338,1,1,1,1,
+ 1,1,1,2716,1,1,1,2423,1,562,
+ 1,1,1,1,1,1140,1,1,1,123,
+ 3648,1,1,1,127,2665,2756,1,1,1,
+ 2982,2956,5486,2386,3733,2706,2198,2561,3661,3508,
+ 5308,3706,885,3702,3947,3686,5308,5283,5280,5280,
+ 5280,5280,5280,5280,5280,5287,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,5341,1,1,5359,1,1,1,1,
+ 1,1,5290,1,1,5308,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1306,1,1,1,2554,1,561,1,1,1,
- 1,1,1411,1,1,1,122,3508,1,1,
- 1,126,2657,2748,1,1,1,2904,2826,5537,
- 2379,3571,2861,2191,2736,3524,3422,5359,3569,1068,
- 3550,3631,3540,5359,5334,5331,5331,5331,5331,5331,
- 5331,5331,5338,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,5341,
- 1,1,5359,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1789,1,1,
- 1,2554,1,561,1,1,1,1,1,1411,
- 1,1,1,5359,3508,1,1,1,125,2657,
- 2748,1,1,1,301,5359,5537,2379,3571,2861,
- 2191,2736,3524,3422,5659,3569,1068,3550,3631,3540,
- 5359,3526,1,1,1,1,1,1,1,5369,
+ 1268,1,1,1,2423,1,562,1,1,1,
+ 1,1,1140,1,1,1,122,3648,1,1,
+ 1,126,2665,2756,1,1,1,2982,2956,5486,
+ 2386,3733,2706,2198,2561,3661,3508,5308,3706,885,
+ 3702,3947,3686,5308,5283,5280,5280,5280,5280,5280,
+ 5280,5280,5287,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,5290,
+ 1,1,5308,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1667,1,1,
+ 1,2423,1,562,1,1,1,1,1,1140,
+ 1,1,1,5308,3648,1,1,1,125,2665,
+ 2756,1,1,1,301,5308,5486,2386,3733,2706,
+ 2198,2561,3661,3508,5608,3706,885,3702,3947,3686,
+ 5308,3682,1,1,1,1,1,1,1,5318,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,5368,1,1,3664,
+ 1,1,1,1,1,1,5317,1,1,3866,
1,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,5359,1,1,1,2554,1,
- 561,1,1,1,1,1,1411,1,1,1,
- 136,3508,1,1,1,5359,2657,2748,1,1,
- 1,1832,114,5537,2379,3571,2861,2191,2736,3524,
- 3422,117,3569,1068,3550,3631,3540,42,5034,5031,
- 2949,895,3293,3882,3613,3905,5359,1217,3859,3836,
- 5623,5621,5630,5629,5625,5626,5624,5627,5628,5631,
- 5622,3951,3928,5359,5615,5382,4440,3813,714,875,
- 5384,764,620,775,5385,5383,606,5378,5380,5381,
- 5379,5359,5618,5693,1327,134,5694,5359,5612,5619,
- 5591,5617,5616,582,5613,5614,5592,5359,1,5749,
- 333,3477,223,5359,5359,611,5750,5751,382,2349,
- 5359,5055,3997,3086,5055,5006,5055,5052,4020,5052,
- 5052,3997,342,42,42,3477,5400,4020,1262,5615,
- 5686,3704,5052,5052,5055,42,1,5243,5243,5400,
- 5240,1262,1262,5686,5686,359,5693,5618,5693,5694,
- 5359,5694,5052,5612,5619,5591,5617,5616,798,5613,
- 5614,5592,1,5111,5107,2722,5115,2539,5052,3613,
- 142,138,141,5052,5052,5052,5359,5376,5377,5052,
- 5052,2539,798,3613,363,5111,5107,2722,5115,2539,
- 1,3613,1,428,4082,5052,5052,5052,5052,5052,
- 5052,5052,5052,5052,5052,5052,5052,5052,5052,5052,
- 5052,5052,5052,5052,5052,5052,5052,5052,5052,5052,
- 5052,5052,798,359,381,5052,5052,5061,5052,5052,
- 5061,359,5061,5058,104,5058,5058,1845,1,5111,
- 5107,5289,5115,5295,798,5292,5359,5369,5058,5058,
- 5061,1149,5359,5010,5007,4448,895,2539,1262,3613,
- 5686,431,1,1,5368,1,388,5028,5064,5028,
- 381,2315,2241,2280,1802,1759,1716,1673,1630,1587,
- 1544,1501,1458,1415,5058,417,118,4380,5359,5058,
- 5058,5058,3366,5359,4701,5058,5058,5363,5359,5111,
- 5107,4448,5115,2539,5313,3613,5310,5783,5784,5785,
- 500,5058,5058,5058,5058,5058,5058,5058,5058,5058,
- 5058,5058,5058,5058,5058,5058,5058,5058,5058,5058,
- 5058,5058,5058,5058,5058,5058,5058,5058,5359,5376,
- 5377,5058,5058,2057,5058,5058,5359,5250,5250,227,
- 5246,227,227,227,227,5254,1,4092,2712,1,
+ 1,1,1,1,5308,1,1,1,2423,1,
+ 562,1,1,1,1,1,1140,1,1,1,
+ 136,3648,1,1,1,5308,2665,2756,1,1,
+ 1,1704,114,5486,2386,3733,2706,2198,2561,3661,
+ 3508,117,3706,885,3702,3947,3686,42,4965,4962,
+ 987,898,3021,4045,1876,4068,5308,1197,4022,3999,
+ 5572,5570,5579,5578,5574,5575,5573,5576,5577,5580,
+ 5571,4114,4091,5308,5564,5331,4442,3728,706,777,
+ 5333,716,621,735,5334,5332,575,5327,5329,5330,
+ 5328,5308,5567,5643,1334,134,5644,5308,5561,5568,
+ 5540,5566,5565,583,5562,5563,5541,5308,1,5699,
+ 334,2851,223,5308,5308,766,5700,5701,383,2356,
+ 5308,5004,4160,3048,5004,4961,5004,5001,4183,5001,
+ 5001,4160,343,42,42,2851,5349,4183,1127,5564,
+ 5636,4245,5001,5001,5004,42,1,5192,5192,5349,
+ 5189,1127,1127,5636,5636,360,5643,5567,5643,5644,
+ 5308,5644,5001,5561,5568,5540,5566,5565,801,5562,
+ 5563,5541,1,5060,5056,2730,5064,2551,5001,1876,
+ 142,138,141,5001,5001,5001,5308,5325,5326,5001,
+ 5001,2551,801,1876,364,5060,5056,2730,5064,2551,
+ 1,1876,1,429,4854,5001,5001,5001,5001,5001,
+ 5001,5001,5001,5001,5001,5001,5001,5001,5001,5001,
+ 5001,5001,5001,5001,5001,5001,5001,5001,5001,5001,
+ 5001,5001,801,360,382,5001,5001,5010,5001,5001,
+ 5010,360,5010,5007,104,5007,5007,1852,1,5060,
+ 5056,5238,5064,5244,801,5241,5308,5318,5007,5007,
+ 5010,1154,5308,4965,4962,4426,898,2551,1127,1876,
+ 5636,432,1,1,5317,1,389,4983,5013,4983,
+ 382,2322,2248,2287,1809,1766,1723,1680,1637,1594,
+ 1551,1508,1465,1422,5007,418,118,3059,5308,5007,
+ 5007,5007,3452,5308,4439,5007,5007,5312,5308,5060,
+ 5056,4426,5064,2551,5262,1876,5259,5733,5734,5735,
+ 501,5007,5007,5007,5007,5007,5007,5007,5007,5007,
+ 5007,5007,5007,5007,5007,5007,5007,5007,5007,5007,
+ 5007,5007,5007,5007,5007,5007,5007,5007,5308,5325,
+ 5326,5007,5007,2064,5007,5007,5308,5199,5199,227,
+ 5195,227,227,227,227,5203,1,3497,2790,1,
1,1,1,1,1,1,1,1,1,1,
- 2063,5359,227,1,132,488,137,3342,3318,342,
- 5010,5007,2722,895,2539,1262,3613,5686,53,5201,
- 5198,1,1,5359,849,1,133,1,1,1,
- 1,1,5367,1,1,1,5362,5359,1,5359,
- 5034,5031,116,5400,1,1,1,406,227,5761,
- 287,5376,5377,5359,8628,8628,5359,5846,5359,5250,
- 5250,227,5246,227,227,227,227,5298,1,798,
+ 2070,5308,227,1,132,489,137,3428,3404,343,
+ 4965,4962,2730,898,2551,1127,1876,5636,53,5150,
+ 5147,1,1,5308,1986,1,133,1,1,1,
+ 1,1,5316,1,1,1,5311,5308,1,5308,
+ 4965,4962,116,5349,1,1,1,407,227,5711,
+ 287,5325,5326,5308,8578,8578,5308,5796,5308,5199,
+ 5199,227,5195,227,227,227,227,5247,1,801,
30,1,1,1,1,1,1,1,1,1,
- 1,1,5398,95,227,1,5046,488,5359,1574,
- 5783,5784,5785,2057,5366,224,389,5034,5031,3408,
- 5400,2411,2382,1,1,2349,849,1,1,1,
- 1,1,1,1,5359,1,1,1,5319,139,
- 1,2713,5615,2411,2382,42,1,1,1,405,
- 227,5761,3997,5359,1,5225,5225,3423,4020,5846,
- 5618,5693,344,359,5694,1660,5612,5619,5591,5617,
- 5616,354,5613,5614,5592,309,5111,5107,4448,5115,
- 2539,5313,3613,5310,1,5111,5107,4448,5115,2539,
- 5322,3613,5783,5784,5785,5359,1,1,1,1,
+ 1,1,5347,95,227,1,4995,489,5308,1532,
+ 5733,5734,5735,2064,5315,224,390,4965,4962,3523,
+ 5349,2418,2389,1,1,2356,1986,1,1,1,
+ 1,1,1,1,5308,1,1,1,5268,139,
+ 1,2791,5564,2418,2389,42,1,1,1,406,
+ 227,5711,4160,5308,1,5174,5174,3506,4183,5796,
+ 5567,5643,345,360,5644,1618,5561,5568,5540,5566,
+ 5565,355,5562,5563,5541,309,5060,5056,4426,5064,
+ 2551,5262,1876,5259,1,5060,5056,4426,5064,2551,
+ 5271,1876,5733,5734,5735,5308,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
- 1,1,798,1,4703,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,2315,
- 5359,359,1,1,5111,5107,4448,5115,2539,359,
- 3613,5359,5376,5377,236,5359,2063,5222,1,1,
- 1,5111,5107,2722,5115,2539,5712,3613,5884,1,
- 5111,5107,2949,5115,3293,3882,3613,3905,2093,5071,
- 3859,3836,5098,5104,5077,5080,5092,5089,5095,5086,
- 5083,5074,5101,3951,3928,310,5359,5382,2946,3813,
- 714,875,5384,764,620,775,5385,5383,606,5378,
- 5380,5381,5379,5359,3974,1326,1327,39,5272,5269,
- 798,1,5111,5107,5289,5115,5295,5752,5292,5359,
- 5213,5210,42,42,504,42,5010,5007,2949,895,
- 3293,3882,3613,3905,5367,822,3859,3836,5623,5621,
- 5630,5629,5625,5626,5624,5627,5628,5631,5622,3951,
- 3928,33,1282,5382,5359,3813,714,875,5384,764,
- 620,775,5385,5383,606,5378,5380,5381,5379,5359,
- 5010,5007,1327,895,2539,3609,3613,432,42,42,
- 5359,5400,1,5231,5359,5228,96,1,1,5367,
- 1,5325,5234,5359,5234,500,5366,42,5010,5007,
- 2949,895,3293,3882,3613,3905,5367,822,3859,3836,
- 5623,5621,5630,5629,5625,5626,5624,5627,5628,5631,
- 5622,3951,3928,413,5359,5382,40,3813,714,875,
- 5384,764,620,775,5385,5383,606,5378,5380,5381,
- 5379,5359,5010,5007,1327,5400,1029,3609,99,42,
- 42,5366,5400,5366,5304,5398,5301,5359,225,144,
- 5010,5007,2949,895,3293,3882,3613,3905,5366,822,
- 3859,3836,5623,5621,5630,5629,5625,5626,5624,5627,
- 5628,5631,5622,3951,3928,5615,5359,5382,115,3813,
- 714,875,5384,764,620,775,5385,5383,606,5378,
- 5380,5381,5379,5618,5693,5359,1327,5694,4463,5612,
- 5619,5591,5617,5616,5359,5613,5614,5592,709,5359,
- 5376,5377,42,42,1,5111,5107,2949,5115,3293,
- 3882,3613,3905,5359,5071,3859,3836,5098,5104,5077,
- 5080,5092,5089,5095,5086,5083,5074,5101,3951,3928,
- 5359,5858,5382,4558,3813,714,875,5384,764,620,
- 775,5385,5383,606,5378,5380,5381,5379,5359,3027,
- 42,1327,33,135,5400,5359,5010,5007,3997,895,
- 2539,582,3613,5359,4020,5359,4666,42,42,42,
- 5010,5007,2949,895,3293,3882,3613,3905,5363,822,
- 3859,3836,5623,5621,5630,5629,5625,5626,5624,5627,
- 5628,5631,5622,3951,3928,1084,5013,5382,5359,3813,
- 714,875,5384,764,620,775,5385,5383,606,5378,
- 5380,5381,5379,42,5010,5007,2949,895,3293,3882,
- 3613,3905,3596,822,3859,3836,5623,5621,5630,5629,
- 5625,5626,5624,5627,5628,5631,5622,3951,3928,5359,
- 52,5382,550,3813,714,875,5384,764,620,775,
- 5385,5383,606,5378,5380,5381,5379,5359,5010,5007,
- 1327,5400,103,3609,5783,5784,5785,1,5359,1008,
- 3477,389,5376,5377,5359,1,338,4689,42,5010,
- 5007,2949,895,3293,3882,3613,3905,5362,822,3859,
- 3836,5623,5621,5630,5629,5625,5626,5624,5627,5628,
- 5631,5622,3951,3928,4066,990,5382,441,3813,714,
- 875,5384,764,620,775,5385,5383,606,5378,5380,
- 5381,5379,2013,1,44,1327,858,798,5815,5809,
- 5359,5813,338,338,5807,5808,5359,1,5331,5331,
- 227,5331,227,227,227,227,227,5838,5839,5359,
- 226,5016,3634,5816,338,5359,5010,5007,5359,895,
- 5068,3702,3613,227,8671,42,5328,5818,5043,5400,
- 5714,1,5111,5107,4448,5115,2539,5615,3613,316,
- 309,3578,5307,704,844,2554,1712,1745,5819,5840,
- 5817,5359,5359,2230,120,5618,5693,309,3508,5694,
- 3366,5612,5619,5591,5617,5616,142,5613,5614,5592,
- 1702,5829,5828,5841,5810,5811,5834,5835,5846,2938,
- 5832,5833,5812,5814,5836,5837,5842,5822,5823,5824,
- 5820,5821,5830,5831,5826,5825,5827,5359,288,798,
- 858,5359,5815,5809,286,5813,1,381,5807,5808,
- 382,1,5331,5331,227,5331,227,227,227,227,
- 5350,5838,5839,301,5359,5010,5007,5816,895,5068,
- 397,3613,5359,5659,5359,8571,8534,227,8671,5283,
- 5328,5818,40,5237,5237,3342,3318,5237,40,5237,
- 5237,5049,5359,859,1832,107,5286,704,4073,2554,
- 1712,1745,5819,5840,5817,1974,5801,2230,2241,1,
- 1021,1015,3508,366,5359,5201,5198,5398,5365,2234,
- 5359,3221,219,4380,894,5829,5828,5841,5810,5811,
- 5834,5835,5846,5359,5832,5833,5812,5814,5836,5837,
- 5842,5822,5823,5824,5820,5821,5830,5831,5826,5825,
- 5827,42,5010,5007,2949,895,3293,3882,3613,3905,
- 5359,822,3859,3836,5623,5621,5630,5629,5625,5626,
- 5624,5627,5628,5631,5622,3951,3928,3974,1326,5382,
- 1193,3813,714,875,5384,764,620,775,5385,5383,
- 606,5378,5380,5381,5379,5359,5364,5359,1918,48,
- 5207,5207,42,5010,5007,2949,895,3293,3882,3613,
- 3905,1592,822,3859,3836,5623,5621,5630,5629,5625,
- 5626,5624,5627,5628,5631,5622,3951,3928,5204,5359,
- 5382,5359,3813,714,875,5384,764,620,775,5385,
- 5383,606,5378,5380,5381,5379,5359,8571,8534,1327,
- 42,5010,5007,4842,895,3293,3882,3613,3905,1,
- 822,3859,3836,5623,5621,5630,5629,5625,5626,5624,
- 5627,5628,5631,5622,3951,3928,278,5359,5382,5316,
- 3813,714,875,5384,764,620,775,5385,5383,606,
- 5378,5380,5381,5379,42,5010,5007,2949,895,3293,
- 3882,3613,3905,500,822,3859,3836,5623,5621,5630,
- 5629,5625,5626,5624,5627,5628,5631,5622,3951,3928,
- 129,1961,5382,131,3813,714,875,5384,764,620,
- 775,5385,5383,606,5378,5380,5381,5379,42,5010,
- 5007,2949,895,3293,3882,3613,3905,5359,822,3859,
- 3836,5623,5621,5630,5629,5625,5626,5624,5627,5628,
- 5631,5622,3951,3928,2616,521,5382,2616,3813,714,
- 875,5384,764,620,775,5385,5383,606,5378,5380,
- 5381,5379,5359,5034,5031,5025,5400,119,5216,40,
- 5237,5237,1178,3366,318,5623,5621,5630,5629,5625,
- 5626,5624,5627,5628,5631,5622,1,5359,5359,5615,
- 364,944,3435,2496,2465,166,2496,2465,1072,5359,
- 5260,5257,3710,5359,50,5266,5266,5618,5693,5359,
- 5359,5694,166,5612,5619,5591,5617,5616,5365,5613,
- 5614,5592,5359,130,5749,240,5191,5187,5398,5195,
- 611,5750,5751,5263,798,1178,5359,435,5178,5184,
- 5157,5160,5172,5169,5175,5166,5163,5154,5181,415,
- 5359,409,5142,3708,990,5359,5359,1238,3342,3318,
- 1,5359,5279,5275,5369,5359,2447,2616,5359,5369,
- 5133,5127,1325,166,5124,4916,5151,5130,5121,5136,
- 5139,5368,5148,5145,5118,222,5368,5749,5219,79,
- 5398,5359,3429,611,5750,5751,5364,5359,5623,5621,
- 5630,5629,5625,5626,5624,5627,5628,5631,5622,2545,
- 5359,495,5615,5426,5427,2694,2496,2465,2152,1,
- 5331,5331,227,5331,227,227,227,227,5350,53,
- 5618,5693,1,5377,5694,436,5612,5619,5591,5617,
- 5616,517,5613,5614,5592,227,8671,561,5328,3080,
- 1,5331,5331,227,5331,227,227,227,227,5353,
- 40,5237,5237,2102,1,5359,53,2554,4074,5359,
- 5376,371,4687,5377,5319,2230,227,8671,4909,5328,
- 3508,5359,5359,5359,3595,5359,4369,5359,493,5398,
- 219,5359,569,3423,4872,5359,5369,5359,2554,5359,
- 5846,2689,3517,1,5359,5359,2230,4889,38,647,
- 5376,3508,1,5368,5359,5359,5359,5359,308,517,
- 1482,218,5359,2,5359,3246,5322,4702,510,3620,
- 497,5846,1,5331,5331,227,5331,227,227,227,
- 227,5350,5359,1,5331,5331,227,5331,227,227,
- 227,227,5350,4337,5540,4912,5359,3460,227,8671,
- 4182,5328,3087,5359,3089,3187,1,40,5359,227,
- 8671,5359,5328,5359,5359,2738,5359,5539,5359,5359,
- 2554,5359,5359,2738,4424,5359,5359,5359,2230,1931,
- 3620,2554,5359,3508,3501,5359,5359,717,3428,2230,
- 5359,5359,5359,219,3508,5359,5359,5359,5359,5359,
- 5359,5359,5359,5846,219,5359,5359,5359,5359,5359,
- 5359,5359,5359,5359,5846,1,5331,5331,227,5331,
- 227,227,227,227,227,1,5331,5331,227,5331,
- 227,227,227,227,227,5359,5359,3620,5359,5359,
- 5359,227,8671,5359,5328,5359,5359,5359,5359,5359,
- 5359,227,8671,5359,5328,5359,5359,5359,5359,5359,
- 5359,5359,5359,2554,5359,5359,5359,5359,5359,5359,
- 5359,2230,5359,2554,5359,5359,3508,5359,5359,5359,
- 5359,2230,5359,5359,5359,5359,3508,5359,5359,5359,
- 5359,5359,5359,5359,5359,5359,5846,5359,5359,5359,
- 5359,5359,5359,5359,5359,5359,5846,1,5331,5331,
- 227,5331,227,227,227,227,227,5359,5359,5359,
- 5359,5359,5359,5359,5359,5359,5359,5359,5359,5359,
- 5359,5359,5359,227,8671,5359,5328,5359,5359,5359,
- 5359,5359,5359,5359,5359,5359,5359,5359,5359,5359,
- 5359,5359,5359,5359,5359,2554,5359,5359,5359,5359,
- 5359,5359,5359,2230,5359,5359,5359,5359,3508,5359,
- 5359,5359,5359,5359,5359,5359,5359,5359,5359,5359,
- 5359,5359,5359,5359,5359,5359,5359,5359,5846
+ 1,1,801,1,4855,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,2322,
+ 5308,360,1,1,5060,5056,4426,5064,2551,360,
+ 1876,5308,5325,5326,236,5308,2070,5171,1,1,
+ 1,5060,5056,2730,5064,2551,5662,1876,5834,1,
+ 5060,5056,987,5064,3021,4045,1876,4068,1962,5020,
+ 4022,3999,5047,5053,5026,5029,5041,5038,5044,5035,
+ 5032,5023,5050,4114,4091,311,5308,5331,3050,3728,
+ 706,777,5333,716,621,735,5334,5332,575,5327,
+ 5329,5330,5328,5308,4137,619,1334,39,5221,5218,
+ 801,1,5060,5056,5238,5064,5244,5702,5241,5308,
+ 5162,5159,42,42,505,42,4965,4962,987,898,
+ 3021,4045,1876,4068,5316,792,4022,3999,5572,5570,
+ 5579,5578,5574,5575,5573,5576,5577,5580,5571,4114,
+ 4091,33,1288,5331,5308,3728,706,777,5333,716,
+ 621,735,5334,5332,575,5327,5329,5330,5328,5308,
+ 4965,4962,1334,898,2551,3512,1876,433,42,42,
+ 5308,5349,1,5180,5308,5177,96,1,1,5316,
+ 1,5274,5183,5308,5183,501,5315,42,4965,4962,
+ 987,898,3021,4045,1876,4068,5316,792,4022,3999,
+ 5572,5570,5579,5578,5574,5575,5573,5576,5577,5580,
+ 5571,4114,4091,414,5308,5331,40,3728,706,777,
+ 5333,716,621,735,5334,5332,575,5327,5329,5330,
+ 5328,5308,4965,4962,1334,5349,1033,3512,99,42,
+ 42,5315,5349,5315,5253,5347,5250,5308,225,144,
+ 4965,4962,987,898,3021,4045,1876,4068,5315,792,
+ 4022,3999,5572,5570,5579,5578,5574,5575,5573,5576,
+ 5577,5580,5571,4114,4091,5564,5308,5331,115,3728,
+ 706,777,5333,716,621,735,5334,5332,575,5327,
+ 5329,5330,5328,5567,5643,5308,1334,5644,3261,5561,
+ 5568,5540,5566,5565,5308,5562,5563,5541,711,5308,
+ 5325,5326,42,42,1,5060,5056,987,5064,3021,
+ 4045,1876,4068,5308,5020,4022,3999,5047,5053,5026,
+ 5029,5041,5038,5044,5035,5032,5023,5050,4114,4091,
+ 5308,5808,5331,3370,3728,706,777,5333,716,621,
+ 735,5334,5332,575,5327,5329,5330,5328,5308,3192,
+ 42,1334,33,135,5349,5308,4965,4962,4160,898,
+ 2551,583,1876,5308,4183,5308,3626,42,42,42,
+ 4965,4962,987,898,3021,4045,1876,4068,5312,792,
+ 4022,3999,5572,5570,5579,5578,5574,5575,5573,5576,
+ 5577,5580,5571,4114,4091,1358,4968,5331,5308,3728,
+ 706,777,5333,716,621,735,5334,5332,575,5327,
+ 5329,5330,5328,42,4965,4962,987,898,3021,4045,
+ 1876,4068,3757,792,4022,3999,5572,5570,5579,5578,
+ 5574,5575,5573,5576,5577,5580,5571,4114,4091,5308,
+ 52,5331,551,3728,706,777,5333,716,621,735,
+ 5334,5332,575,5327,5329,5330,5328,5308,4965,4962,
+ 1334,5349,103,3512,5733,5734,5735,1,5308,1011,
+ 2851,390,5325,5326,5308,1,339,4232,42,4965,
+ 4962,987,898,3021,4045,1876,4068,5311,792,4022,
+ 3999,5572,5570,5579,5578,5574,5575,5573,5576,5577,
+ 5580,5571,4114,4091,3306,993,5331,442,3728,706,
+ 777,5333,716,621,735,5334,5332,575,5327,5329,
+ 5330,5328,2020,1,44,1334,861,801,5765,5759,
+ 5308,5763,339,339,5757,5758,5308,1,5280,5280,
+ 227,5280,227,227,227,227,227,5788,5789,5308,
+ 226,4971,3515,5766,339,5308,4965,4962,5308,898,
+ 5017,3753,1876,227,8621,42,5277,5768,4992,5349,
+ 5664,1,5060,5056,4426,5064,2551,5564,1876,317,
+ 309,3752,5256,825,847,2423,1599,1676,5769,5790,
+ 5767,5308,5308,2500,120,5567,5643,309,3648,5644,
+ 3452,5561,5568,5540,5566,5565,142,5562,5563,5541,
+ 2144,5779,5778,5791,5760,5761,5784,5785,5796,2707,
+ 5782,5783,5762,5764,5786,5787,5792,5772,5773,5774,
+ 5770,5771,5780,5781,5776,5775,5777,5308,288,801,
+ 861,5308,5765,5759,286,5763,1,382,5757,5758,
+ 383,1,5280,5280,227,5280,227,227,227,227,
+ 5299,5788,5789,301,5308,4965,4962,5766,898,5017,
+ 398,1876,5308,5608,5308,8521,8484,227,8621,5232,
+ 5277,5768,40,5186,5186,3428,3404,5186,40,5186,
+ 5186,4998,5308,862,1704,107,5235,825,4263,2423,
+ 1599,1676,5769,5790,5767,1981,5751,2500,2248,1,
+ 1331,1018,3648,367,5308,5150,5147,5347,5314,2241,
+ 5308,3323,219,3059,1184,5779,5778,5791,5760,5761,
+ 5784,5785,5796,5308,5782,5783,5762,5764,5786,5787,
+ 5792,5772,5773,5774,5770,5771,5780,5781,5776,5775,
+ 5777,42,4965,4962,987,898,3021,4045,1876,4068,
+ 5308,792,4022,3999,5572,5570,5579,5578,5574,5575,
+ 5573,5576,5577,5580,5571,4114,4091,4137,619,5331,
+ 1198,3728,706,777,5333,716,621,735,5334,5332,
+ 575,5327,5329,5330,5328,5308,5313,5308,1796,48,
+ 5156,5156,42,4965,4962,987,898,3021,4045,1876,
+ 4068,1556,792,4022,3999,5572,5570,5579,5578,5574,
+ 5575,5573,5576,5577,5580,5571,4114,4091,5153,5308,
+ 5331,5308,3728,706,777,5333,716,621,735,5334,
+ 5332,575,5327,5329,5330,5328,5308,8521,8484,1334,
+ 42,4965,4962,4697,898,3021,4045,1876,4068,1,
+ 792,4022,3999,5572,5570,5579,5578,5574,5575,5573,
+ 5576,5577,5580,5571,4114,4091,278,5308,5331,5265,
+ 3728,706,777,5333,716,621,735,5334,5332,575,
+ 5327,5329,5330,5328,42,4965,4962,987,898,3021,
+ 4045,1876,4068,501,792,4022,3999,5572,5570,5579,
+ 5578,5574,5575,5573,5576,5577,5580,5571,4114,4091,
+ 129,1925,5331,131,3728,706,777,5333,716,621,
+ 735,5334,5332,575,5327,5329,5330,5328,42,4965,
+ 4962,987,898,3021,4045,1876,4068,5308,792,4022,
+ 3999,5572,5570,5579,5578,5574,5575,5573,5576,5577,
+ 5580,5571,4114,4091,2624,522,5331,2624,3728,706,
+ 777,5333,716,621,735,5334,5332,575,5327,5329,
+ 5330,5328,5308,4965,4962,4980,5349,119,5165,40,
+ 5186,5186,1084,3452,319,5572,5570,5579,5578,5574,
+ 5575,5573,5576,5577,5580,5571,1,5308,5308,5564,
+ 365,1633,3590,2503,2472,166,2503,2472,1028,5308,
+ 5209,5206,3833,5308,50,5215,5215,5567,5643,5308,
+ 5308,5644,166,5561,5568,5540,5566,5565,5314,5562,
+ 5563,5541,5308,130,5699,240,5140,5136,5347,5144,
+ 766,5700,5701,5212,801,1084,5308,436,5127,5133,
+ 5106,5109,5121,5118,5124,5115,5112,5103,5130,416,
+ 5308,410,5091,3832,993,5308,5308,1244,3428,3404,
+ 1,5308,5228,5224,5318,5308,2454,2624,5308,5318,
+ 5082,5076,1805,166,5073,4870,5100,5079,5070,5085,
+ 5088,5317,5097,5094,5067,222,5317,5699,5168,79,
+ 5347,5308,3081,766,5700,5701,5313,5308,5572,5570,
+ 5579,5578,5574,5575,5573,5576,5577,5580,5571,2532,
+ 5308,496,5564,5375,5376,2702,2503,2472,2159,1,
+ 5280,5280,227,5280,227,227,227,227,5299,53,
+ 5567,5643,1,5326,5644,437,5561,5568,5540,5566,
+ 5565,518,5562,5563,5541,227,8621,562,5277,2914,
+ 1,5280,5280,227,5280,227,227,227,227,5302,
+ 40,5186,5186,2109,1,5308,53,2423,4265,5308,
+ 5325,372,3606,5326,5268,2500,227,8621,4861,5277,
+ 3648,5308,5308,5308,3755,5308,4817,5308,494,5347,
+ 219,5308,570,3506,4824,5308,5318,5308,2423,5308,
+ 5796,2556,3603,1,5308,5308,2500,4844,38,649,
+ 5325,3648,1,5317,5308,5308,5308,5308,308,518,
+ 1403,218,5308,2,5308,3310,5271,4440,511,3767,
+ 498,5796,1,5280,5280,227,5280,227,227,227,
+ 227,5299,5308,1,5280,5280,227,5280,227,227,
+ 227,227,5299,4333,5489,4864,5308,3546,227,8621,
+ 4238,5277,3293,5308,3336,3366,1,40,5308,227,
+ 8621,5308,5277,5308,5308,2465,5308,5488,5308,5308,
+ 2423,5308,5308,2465,4397,5308,5308,5308,2500,1938,
+ 3767,2423,5308,3648,3637,5308,5308,719,3588,2500,
+ 5308,5308,5308,219,3648,5308,5308,5308,5308,5308,
+ 5308,5308,5308,5796,219,5308,5308,5308,5308,5308,
+ 5308,5308,5308,5308,5796,1,5280,5280,227,5280,
+ 227,227,227,227,227,1,5280,5280,227,5280,
+ 227,227,227,227,227,5308,5308,3767,5308,5308,
+ 5308,227,8621,5308,5277,5308,5308,5308,5308,5308,
+ 5308,227,8621,5308,5277,5308,5308,5308,5308,5308,
+ 5308,5308,5308,2423,5308,5308,5308,5308,5308,5308,
+ 5308,2500,5308,2423,5308,5308,3648,5308,5308,5308,
+ 5308,2500,5308,5308,5308,5308,3648,5308,5308,5308,
+ 5308,5308,5308,5308,5308,5308,5796,5308,5308,5308,
+ 5308,5308,5308,5308,5308,5308,5796,1,5280,5280,
+ 227,5280,227,227,227,227,227,5308,5308,5308,
+ 5308,5308,5308,5308,5308,5308,5308,5308,5308,5308,
+ 5308,5308,5308,227,8621,5308,5277,5308,5308,5308,
+ 5308,5308,5308,5308,5308,5308,5308,5308,5308,5308,
+ 5308,5308,5308,5308,5308,2423,5308,5308,5308,5308,
+ 5308,5308,5308,2500,5308,5308,5308,5308,3648,5308,
+ 5308,5308,5308,5308,5308,5308,5308,5308,5308,5308,
+ 5308,5308,5308,5308,5308,5308,5308,5308,5796
};
};
public final static char termAction[] = TermAction.termAction;
@@ -1715,59 +1705,59 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface Asb {
public final static char asb[] = {0,
- 443,67,113,61,968,737,737,737,737,57,
- 968,747,737,850,747,720,113,722,114,114,
- 114,114,114,114,114,114,114,1058,1064,1069,
- 1066,1073,1071,1078,1076,1080,1079,1081,301,1082,
- 113,97,29,29,29,29,153,682,1,744,
- 29,203,250,747,747,1,881,747,250,927,
- 28,626,59,1039,97,1041,1041,1008,1008,682,
- 113,114,114,114,114,114,114,114,114,114,
- 114,114,114,114,114,114,114,114,114,114,
- 113,113,113,113,113,113,113,113,113,113,
- 113,113,114,250,250,241,97,920,920,920,
- 920,297,250,1,348,1028,1039,802,1039,797,
- 1039,799,1039,1023,57,153,203,203,1,203,
- 28,113,151,625,250,150,153,152,150,250,
- 203,1066,1066,1064,1064,1064,1071,1071,1071,1071,
+ 580,67,668,61,1021,874,874,874,874,57,
+ 1021,719,874,336,719,807,668,809,669,669,
+ 669,669,669,669,669,669,669,1058,1064,1069,
+ 1066,1073,1071,1078,1076,1080,1079,1081,214,1082,
+ 668,652,29,29,29,29,708,769,1,716,
+ 29,116,163,719,719,1,367,719,163,980,
+ 28,521,59,1039,652,1041,1041,971,971,769,
+ 668,669,669,669,669,669,669,669,669,669,
+ 669,669,669,669,669,669,669,669,669,669,
+ 668,668,668,668,668,668,668,668,668,668,
+ 668,668,669,163,163,154,652,406,406,406,
+ 406,210,163,1,261,1028,1039,578,1039,573,
+ 1039,575,1039,1023,57,708,116,116,1,116,
+ 28,668,706,520,163,705,708,707,705,163,
+ 116,1066,1066,1064,1064,1064,1071,1071,1071,1071,
1069,1069,1076,1073,1073,1079,1078,1080,1116,1081,
- 348,162,541,531,530,487,57,722,968,968,
- 968,968,153,153,920,757,919,744,153,740,
- 253,153,584,297,354,582,802,358,153,153,
- 153,297,920,114,29,1062,206,250,59,153,
- 153,152,626,113,241,203,1097,250,543,545,
- 153,626,113,113,113,113,968,968,97,352,
- 740,253,584,583,584,297,584,358,358,153,
- 297,153,250,1062,348,625,59,153,151,250,
- 535,523,534,545,297,151,250,250,250,250,
- 682,682,740,739,679,153,253,1116,299,843,
- 1106,253,584,584,1015,153,358,679,677,678,
- 153,1062,1063,1062,113,206,848,59,396,113,
- 532,532,410,410,153,539,348,363,250,153,
- 250,250,740,626,737,150,406,1108,147,968,
- 727,56,1016,153,679,114,153,1062,682,114,
- 203,848,396,113,113,545,153,626,250,543,
- 523,396,498,151,268,151,584,584,147,1102,
- 348,153,730,114,1116,418,1015,153,57,57,
- 153,1063,250,203,435,545,396,1103,268,151,
- 584,802,57,1108,147,625,114,114,153,153,
- 153,435,250,435,919,737,156,156,1103,802,
- 77,727,153,968,153,153,968,428,435,268,
- 633,268,918,918,580,78,57,153,682,546,
- 428,485,970,343,968,423,669,268,29,29,
- 580,77,1116,114,1116,1103,968,968,968,78,
- 968,153,309,1103,1103,153,802,250,249,430,
- 587,920,343,485,632,802,802,922,57,919,
- 69,968,69,1116,78,97,97,95,925,97,
- 1103,1103,795,580,29,430,633,632,633,1103,
- 417,1102,250,632,632,632,57,153,578,363,
- 250,147,250,309,1103,343,968,250,580,632,
- 113,806,147,1103,679,632,632,632,153,153,
- 156,250,250,511,78,795,78,1103,309,343,
- 113,78,75,679,250,804,679,679,153,1103,
- 918,802,802,960,113,76,682,1103,1103,250,
- 804,1103,150,78,250,682,1103,678,78,250,
- 804,78
+ 261,75,529,438,437,446,57,809,1021,1021,
+ 1021,1021,708,708,406,729,405,716,708,712,
+ 166,708,570,210,300,568,578,304,708,708,
+ 708,210,406,669,29,1062,119,163,59,708,
+ 708,707,521,668,154,116,1097,163,531,533,
+ 708,521,668,668,668,668,1021,1021,652,265,
+ 712,166,570,569,570,210,570,304,304,708,
+ 210,708,163,1062,261,520,59,708,706,163,
+ 442,430,441,533,210,706,163,163,163,163,
+ 769,769,712,711,816,708,166,1116,212,923,
+ 1106,166,570,570,876,708,304,816,814,815,
+ 708,1062,1063,1062,668,119,928,59,309,668,
+ 439,439,319,319,708,527,261,267,163,708,
+ 163,163,712,521,874,705,332,1108,702,1021,
+ 864,56,877,708,816,669,708,1062,769,669,
+ 116,928,309,668,668,533,708,521,163,531,
+ 430,309,457,706,181,706,570,570,702,1102,
+ 261,708,867,669,1116,327,876,708,57,57,
+ 708,1063,163,116,415,533,309,1103,181,706,
+ 570,578,57,1108,702,520,669,669,708,708,
+ 708,415,163,415,405,874,69,69,1103,578,
+ 632,864,708,1021,708,708,1021,408,415,181,
+ 820,181,404,404,428,633,57,708,769,534,
+ 408,622,933,256,1021,423,856,181,29,29,
+ 428,632,1116,669,1116,1103,1021,1021,1021,633,
+ 1021,708,222,1103,1103,708,578,163,162,410,
+ 482,406,256,622,819,578,578,930,57,405,
+ 624,1021,624,1116,633,652,652,650,978,652,
+ 1103,1103,767,428,29,410,820,819,820,1103,
+ 326,1102,163,819,819,819,57,708,566,267,
+ 163,702,163,222,1103,256,1021,163,428,819,
+ 668,886,702,1103,816,819,819,819,708,708,
+ 69,163,163,470,633,767,633,1103,222,256,
+ 668,633,630,816,163,884,816,816,708,1103,
+ 404,578,578,1013,668,631,769,1103,1103,163,
+ 884,1103,705,633,163,769,1103,815,633,163,
+ 884,633
};
};
public final static char asb[] = Asb.asb;
@@ -1781,103 +1771,103 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
14,62,46,15,68,52,27,16,53,54,
17,18,55,57,19,20,58,69,59,10,
70,21,22,49,23,45,1,2,4,0,
- 9,72,118,87,26,66,121,0,81,114,
- 115,116,29,72,119,122,71,73,74,48,
- 56,61,76,78,85,83,75,80,82,84,
- 86,50,77,79,9,26,51,62,46,68,
- 52,27,53,54,55,57,58,69,59,70,
- 45,49,47,63,64,10,32,36,34,31,
- 39,14,23,13,19,17,18,20,21,16,
- 15,22,40,43,41,42,28,38,33,37,
- 24,25,11,12,30,35,8,6,3,4,
- 7,5,1,2,0,65,67,66,1,2,
- 0,63,64,10,32,36,34,31,39,14,
- 23,13,19,17,18,20,21,16,15,22,
- 40,43,41,42,28,38,33,37,5,7,
- 4,3,24,25,8,6,11,12,30,35,
- 1,2,118,9,0,96,90,11,12,91,
- 92,88,89,44,93,94,97,98,99,100,
- 101,102,117,72,95,67,104,105,106,107,
- 108,109,110,111,112,113,118,71,26,121,
- 65,1,2,8,6,4,3,60,66,87,
- 9,0,81,7,114,115,116,48,9,3,
- 8,6,5,72,71,26,73,51,13,14,
- 62,46,15,68,52,27,16,53,54,17,
- 18,55,57,19,20,58,69,59,10,70,
- 21,45,22,49,23,4,1,2,29,0,
- 65,72,95,66,118,87,71,121,13,14,
- 31,63,15,32,33,16,17,18,64,34,
- 19,20,35,36,37,47,38,39,10,21,
- 22,23,40,41,42,28,24,25,11,12,
- 30,43,9,26,5,7,3,1,2,8,
- 4,6,0,4,50,72,0,1,2,9,
- 71,0,51,13,14,62,46,15,68,52,
+ 9,72,118,87,26,66,121,0,65,67,
+ 66,1,2,0,63,64,10,32,36,34,
+ 31,39,14,23,13,19,17,18,20,21,
+ 16,15,22,40,43,41,42,28,38,33,
+ 37,5,7,4,3,24,25,8,6,11,
+ 12,30,35,1,2,118,9,0,96,90,
+ 11,12,91,92,88,89,44,93,94,97,
+ 98,99,100,101,102,117,72,95,67,104,
+ 105,106,107,108,109,110,111,112,113,118,
+ 71,26,121,65,1,2,8,6,4,3,
+ 60,66,87,9,0,81,7,114,115,116,
+ 48,9,3,8,6,5,72,71,26,73,
+ 51,13,14,62,46,15,68,52,27,16,
+ 53,54,17,18,55,57,19,20,58,69,
+ 59,10,70,21,45,22,49,23,4,1,
+ 2,29,0,65,72,95,66,118,87,71,
+ 121,13,14,31,63,15,32,33,16,17,
+ 18,64,34,19,20,35,36,37,47,38,
+ 39,10,21,22,23,40,41,42,28,24,
+ 25,11,12,30,43,9,26,5,7,3,
+ 1,2,8,4,6,0,51,13,14,62,
+ 46,15,68,52,27,16,53,54,17,18,
+ 55,57,19,20,58,69,59,10,70,21,
+ 45,22,49,23,1,2,4,95,0,4,
+ 50,72,0,1,2,9,71,0,46,47,
+ 49,9,65,95,67,66,87,0,74,50,
+ 65,72,95,87,60,3,9,66,26,67,
+ 0,50,72,74,0,51,13,14,62,46,
+ 15,68,52,27,16,53,54,17,18,55,
+ 57,19,20,58,69,59,10,70,21,45,
+ 22,49,23,1,2,4,64,63,11,12,
+ 6,91,92,99,8,100,5,30,44,107,
+ 108,104,105,106,112,111,113,89,88,109,
+ 110,97,98,93,94,101,102,24,25,90,
+ 103,3,60,67,66,65,0,46,49,74,
+ 3,50,72,26,47,9,65,95,67,66,
+ 87,0,1,2,123,50,0,119,0,8,
+ 6,7,5,4,1,2,3,60,65,67,
+ 66,9,87,95,0,13,14,15,16,17,
+ 18,19,20,21,22,23,51,46,52,27,
+ 53,54,55,57,58,59,45,49,26,9,
+ 87,7,1,2,60,3,8,6,5,4,
+ 0,61,51,13,14,62,46,15,68,52,
+ 81,27,16,53,54,17,18,55,56,57,
+ 19,20,58,69,59,10,70,21,48,45,
+ 22,49,23,9,3,8,4,26,50,6,
+ 7,1,2,5,29,0,5,7,3,60,
+ 6,8,95,51,13,14,46,15,68,52,
27,16,53,54,17,18,55,57,19,20,
58,69,59,10,70,21,45,22,49,23,
- 1,2,4,95,0,46,47,49,9,65,
- 95,67,66,87,0,50,72,74,0,74,
- 50,65,72,95,87,60,3,9,66,26,
- 67,0,1,2,123,50,0,46,49,74,
- 3,50,72,26,47,9,65,95,67,66,
- 87,0,13,14,31,63,15,32,33,16,
- 17,18,64,7,34,19,20,35,36,37,
- 47,38,39,10,21,22,23,40,41,42,
- 1,2,3,24,25,8,6,11,12,5,
- 30,4,43,73,28,0,13,14,15,16,
- 17,18,19,20,21,22,23,51,46,52,
- 27,53,54,55,57,58,59,45,49,26,
- 9,87,7,1,2,60,3,8,6,5,
- 4,0,8,6,7,5,4,1,2,3,
- 60,65,67,66,9,87,95,0,5,7,
- 3,60,6,8,95,51,13,14,46,15,
- 68,52,27,16,53,54,17,18,55,57,
- 19,20,58,69,59,10,70,21,45,22,
- 49,23,1,2,4,87,9,62,0,119,
- 0,4,44,50,72,0,61,51,13,14,
- 62,46,15,68,52,81,27,16,53,54,
- 17,18,55,56,57,19,20,58,69,59,
- 10,70,21,48,45,22,49,23,9,3,
- 8,4,26,50,6,7,1,2,5,29,
- 0,71,62,46,15,68,52,16,53,54,
- 17,18,55,57,19,20,58,69,59,70,
- 21,45,22,49,23,14,13,51,9,3,
- 8,6,26,48,61,81,27,29,7,1,
- 2,5,4,10,56,0,67,66,71,9,
- 0,9,87,13,14,31,15,32,33,16,
- 17,18,34,19,20,35,36,37,47,38,
- 39,10,21,22,23,40,41,42,28,3,
- 24,25,8,6,11,12,30,4,43,5,
- 7,1,2,64,63,0,50,66,0,72,
- 9,60,3,67,66,26,44,0,47,46,
- 7,49,5,1,2,4,74,9,50,72,
- 95,118,87,71,26,121,60,3,120,96,
- 103,90,24,25,8,6,11,12,91,92,
- 88,89,44,93,94,97,98,99,100,101,
- 102,117,104,105,106,107,108,109,110,111,
- 112,113,65,66,67,0,29,72,4,1,
- 2,50,0,9,71,63,64,47,24,25,
+ 1,2,4,87,9,62,0,4,44,50,
+ 72,0,29,72,4,1,2,50,0,13,
+ 14,31,63,15,32,33,16,17,18,64,
+ 7,34,19,20,35,36,37,47,38,39,
+ 10,21,22,23,40,41,42,1,2,3,
+ 24,25,8,6,11,12,5,30,4,43,
+ 73,28,0,81,114,115,116,29,72,119,
+ 122,71,73,74,48,56,61,76,78,85,
+ 83,75,80,82,84,86,50,77,79,9,
+ 26,51,62,46,68,52,27,53,54,55,
+ 57,58,69,59,70,45,49,47,63,64,
+ 10,32,36,34,31,39,14,23,13,19,
+ 17,18,20,21,16,15,22,40,43,41,
+ 42,28,38,33,37,24,25,11,12,30,
+ 35,8,6,3,4,7,5,1,2,0,
+ 47,46,7,49,5,1,2,4,74,9,
+ 50,72,95,118,87,71,26,121,60,3,
+ 120,96,103,90,24,25,8,6,11,12,
+ 91,92,88,89,44,93,94,97,98,99,
+ 100,101,102,117,104,105,106,107,108,109,
+ 110,111,112,113,65,66,67,0,9,87,
+ 13,14,31,15,32,33,16,17,18,34,
+ 19,20,35,36,37,47,38,39,10,21,
+ 22,23,40,41,42,28,3,24,25,8,
+ 6,11,12,30,4,43,5,7,1,2,
+ 64,63,0,67,66,71,9,0,71,62,
+ 46,15,68,52,16,53,54,17,18,55,
+ 57,19,20,58,69,59,70,21,45,22,
+ 49,23,14,13,51,9,3,8,6,26,
+ 48,61,81,27,29,7,1,2,5,4,
+ 10,56,0,50,66,0,72,9,60,3,
+ 67,66,26,44,0,45,1,2,4,114,
+ 115,116,0,9,71,63,64,47,24,25,
8,6,11,12,30,35,3,40,43,41,
42,28,38,33,37,14,23,13,19,17,
18,20,21,16,15,22,32,36,34,31,
- 39,50,7,1,2,4,10,5,0,51,
- 13,14,62,46,15,68,52,27,16,53,
- 54,17,18,55,57,19,20,58,69,59,
- 10,70,21,45,22,49,23,1,2,4,
- 64,63,11,12,6,91,92,99,8,100,
- 5,30,44,107,108,104,105,106,112,111,
- 113,89,88,109,110,97,98,93,94,101,
- 102,24,25,90,103,3,60,67,66,65,
- 0,50,67,0,75,0,63,64,24,25,
- 11,12,30,35,40,43,41,42,28,38,
- 33,37,14,23,13,19,17,18,20,21,
- 16,15,22,10,32,36,34,31,39,8,
- 6,60,5,7,1,2,4,3,0,62,
- 46,15,68,52,16,53,54,17,18,55,
- 57,19,20,58,69,59,10,70,21,45,
- 22,49,23,14,13,51,9,3,8,6,
- 26,48,56,61,81,27,44,7,4,29,
- 5,1,2,0,45,1,2,4,114,115,
- 116,0,10,68,62,69,70,14,23,13,
+ 39,50,7,1,2,4,10,5,0,50,
+ 67,0,62,46,15,68,52,16,53,54,
+ 17,18,55,57,19,20,58,69,59,10,
+ 70,21,45,22,49,23,14,13,51,9,
+ 3,8,6,26,48,56,61,81,27,44,
+ 7,4,29,5,1,2,0,75,0,63,
+ 64,24,25,11,12,30,35,40,43,41,
+ 42,28,38,33,37,14,23,13,19,17,
+ 18,20,21,16,15,22,10,32,36,34,
+ 31,39,8,6,60,5,7,1,2,4,
+ 3,0,10,68,62,69,70,14,23,13,
19,17,18,20,21,16,15,22,74,50,
4,5,2,1,49,45,59,58,57,7,
55,54,53,27,52,46,51,120,103,24,
@@ -1894,59 +1884,59 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface Nasb {
public final static char nasb[] = {0,
- 95,11,37,11,11,11,11,11,11,130,
- 11,11,11,182,11,155,142,169,37,37,
- 153,37,37,37,37,37,37,11,11,11,
- 11,11,11,11,11,11,11,11,37,11,
- 37,215,212,212,212,212,169,150,112,77,
- 4,52,240,11,11,112,184,11,240,37,
- 80,58,11,11,215,11,11,17,17,150,
- 142,37,37,37,37,37,37,37,37,37,
- 37,37,37,37,37,37,37,37,37,37,
- 37,37,37,37,37,37,37,37,37,37,
- 37,142,37,240,240,121,1,11,11,11,
- 11,30,240,35,129,205,206,11,206,167,
- 206,22,206,199,130,169,52,52,35,52,
- 212,118,164,42,240,163,10,169,163,240,
- 52,11,11,11,11,11,11,11,11,11,
+ 134,11,35,11,11,11,11,11,11,144,
+ 11,11,11,83,11,148,170,131,35,35,
+ 146,35,35,35,35,35,35,11,11,11,
+ 11,11,11,11,11,11,11,11,35,11,
+ 35,224,239,239,239,239,131,159,110,20,
+ 4,53,209,11,11,110,85,11,209,35,
+ 23,60,11,11,224,11,11,15,15,159,
+ 170,35,35,35,35,35,35,35,35,35,
+ 35,35,35,35,35,35,35,35,35,35,
+ 35,35,35,35,35,35,35,35,35,35,
+ 35,170,35,209,209,120,1,11,11,11,
+ 11,30,209,33,143,221,222,11,222,129,
+ 222,44,222,215,144,131,53,53,33,53,
+ 239,55,188,40,209,187,10,131,187,209,
+ 53,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,
- 129,48,121,86,86,11,130,169,11,11,
- 11,11,27,10,11,11,11,179,169,112,
- 112,156,112,208,112,11,11,112,208,169,
- 10,11,11,37,212,112,70,240,11,10,
- 169,92,58,37,177,52,11,240,233,112,
- 169,58,142,142,142,142,11,11,35,11,
- 132,226,112,112,66,57,66,112,23,10,
- 57,27,240,88,179,42,11,10,27,240,
- 11,106,11,235,56,27,240,240,240,240,
- 150,150,112,132,64,169,188,11,11,54,
- 219,226,66,66,195,27,23,64,11,11,
- 27,112,68,11,142,179,93,11,112,37,
- 11,11,86,86,169,106,129,235,240,27,
- 240,240,132,58,11,130,112,125,108,11,
- 11,130,73,208,64,37,23,88,150,37,
- 52,93,132,37,37,112,10,58,240,233,
- 159,112,11,164,112,208,112,104,161,188,
- 129,169,11,37,11,12,114,208,130,130,
- 10,68,240,52,112,235,132,188,235,164,
- 104,75,98,108,161,58,37,37,10,208,
- 208,33,240,112,11,11,46,46,188,75,
- 14,11,208,11,10,10,11,112,33,235,
- 190,112,11,11,112,134,98,10,150,238,
- 132,11,190,220,11,23,54,235,212,212,
- 82,139,11,37,11,188,11,11,11,140,
- 11,23,186,188,188,23,90,240,240,112,
- 112,11,125,11,112,11,11,11,130,11,
- 25,11,11,11,140,211,211,172,11,211,
- 188,188,11,112,212,33,190,112,190,188,
- 84,11,240,145,112,112,130,208,11,212,
- 240,108,240,174,188,112,11,240,82,145,
- 118,37,108,188,64,190,145,145,208,102,
- 46,240,240,112,140,11,140,188,174,108,
- 142,140,25,64,240,112,64,64,102,188,
- 11,90,90,106,37,11,174,188,188,240,
- 60,188,163,140,240,174,188,64,140,240,
- 60,140
+ 143,49,120,25,25,11,144,131,11,11,
+ 11,11,27,10,11,11,11,164,131,110,
+ 110,149,110,235,110,11,11,110,235,131,
+ 10,11,11,35,239,110,70,209,11,10,
+ 131,95,60,35,162,53,11,209,124,110,
+ 131,60,170,170,170,170,11,11,33,11,
+ 62,195,110,110,73,59,73,110,45,10,
+ 59,27,209,89,164,40,11,10,27,209,
+ 11,104,11,126,58,27,209,209,209,209,
+ 159,159,110,62,68,131,213,11,11,87,
+ 228,195,73,73,191,27,45,68,11,11,
+ 27,110,112,11,170,164,96,11,110,35,
+ 11,11,25,25,131,104,143,126,209,27,
+ 209,209,62,60,11,144,110,139,106,11,
+ 11,144,79,235,68,35,45,89,159,35,
+ 53,96,62,35,35,110,10,60,209,124,
+ 183,110,11,188,110,235,110,102,185,213,
+ 143,131,11,35,11,81,114,235,144,144,
+ 10,112,209,53,110,126,62,213,126,188,
+ 102,157,98,106,185,60,35,35,10,235,
+ 235,91,209,110,11,11,47,47,213,157,
+ 12,11,235,11,10,10,11,110,91,126,
+ 178,110,11,11,110,152,98,10,159,207,
+ 62,11,178,229,11,45,87,126,239,239,
+ 118,167,11,35,11,213,11,11,11,168,
+ 11,45,211,213,213,45,93,209,209,110,
+ 110,11,139,11,110,11,11,11,144,11,
+ 137,11,11,11,168,238,238,202,11,238,
+ 213,213,11,110,239,91,178,110,178,213,
+ 77,11,209,173,110,110,144,235,11,239,
+ 209,106,209,204,213,110,11,209,118,173,
+ 55,35,106,213,68,178,173,173,235,75,
+ 47,209,209,110,168,11,168,213,204,106,
+ 170,168,137,68,209,110,68,68,75,213,
+ 11,93,93,104,35,11,204,213,213,209,
+ 64,213,187,168,209,204,213,68,168,209,
+ 64,168
};
};
public final static char nasb[] = Nasb.nasb;
@@ -1954,30 +1944,30 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface Nasr {
public final static char nasr[] = {0,
- 3,13,8,6,147,145,120,144,143,2,
- 0,182,0,5,64,0,6,2,8,134,
- 0,6,1,0,113,0,4,3,0,131,
- 65,0,123,0,48,5,6,8,2,13,
- 0,65,133,132,0,110,0,13,2,8,
- 6,78,0,151,0,131,2,65,0,13,
- 2,8,6,64,0,111,0,136,0,5,
- 173,0,184,0,155,0,5,186,0,171,
- 0,156,0,176,0,67,0,138,0,56,
- 0,2,114,0,5,170,0,165,6,164,
- 0,150,0,154,0,97,96,63,6,2,
- 8,5,0,6,104,161,0,5,29,0,
- 96,97,5,0,2,63,8,5,91,6,
- 0,61,0,5,47,39,174,0,64,47,
- 69,5,39,0,105,5,47,68,0,5,
- 99,0,6,13,8,2,3,0,97,96,
- 63,55,6,8,2,0,3,6,2,44,
- 0,24,175,5,102,0,97,96,6,55,
- 0,5,48,167,0,5,39,40,0,5,
- 47,68,79,0,6,104,183,0,2,6,
- 120,116,117,118,13,88,0,2,54,0,
- 115,5,48,0,5,48,39,0,40,6,
- 2,8,5,153,0,5,47,68,104,45,
- 6,0,6,91,24,5,0,48,5,35,
+ 3,13,8,6,148,146,120,145,144,2,
+ 0,5,64,0,6,2,8,135,0,5,
+ 187,0,172,0,67,0,4,3,0,132,
+ 65,0,48,5,6,8,2,13,0,65,
+ 134,133,0,6,1,0,110,0,13,2,
+ 8,6,78,0,5,29,0,132,2,65,
+ 0,61,0,13,2,8,6,64,0,5,
+ 174,0,111,0,151,0,177,0,185,0,
+ 183,0,5,48,168,0,152,0,139,0,
+ 124,0,56,0,2,114,0,166,6,165,
+ 0,155,0,97,96,63,6,2,8,5,
+ 0,137,0,6,104,162,0,157,0,96,
+ 97,5,0,6,91,24,5,0,3,6,
+ 2,44,0,5,171,0,113,0,2,63,
+ 8,5,91,6,0,6,13,8,2,3,
+ 0,5,47,39,175,0,156,0,5,99,
+ 0,97,96,6,55,0,64,47,69,5,
+ 39,0,105,5,47,68,0,5,47,68,
+ 79,0,97,96,63,55,6,8,2,0,
+ 6,104,184,0,5,47,68,104,45,6,
+ 0,24,176,5,102,0,48,5,35,0,
+ 5,39,40,0,2,6,120,116,117,118,
+ 13,88,0,5,48,39,0,40,6,2,
+ 8,5,154,0,2,54,0,115,5,48,
0
};
};
@@ -2018,14 +2008,14 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
203,213,149,160,209,210,211,0,0,0,
0,0,208,221,181,0,0,0,212,0,
0,0,242,150,177,191,192,193,194,195,
- 197,200,0,215,218,220,238,0,241,0,
- 0,143,144,147,0,0,157,159,0,173,
- 0,183,184,185,186,187,190,0,196,198,
- 0,199,204,0,216,217,0,222,225,227,
- 229,0,232,233,234,0,236,237,240,126,
- 0,153,156,176,179,201,214,219,0,223,
- 224,226,228,0,230,231,243,244,0,0,
- 0,0,0,0
+ 197,200,0,0,215,218,220,238,0,241,
+ 0,0,143,144,147,0,0,157,159,0,
+ 173,0,183,184,185,186,187,190,0,196,
+ 198,0,199,204,0,216,217,0,222,225,
+ 227,229,0,232,233,234,0,236,237,240,
+ 126,0,153,156,176,179,201,214,219,0,
+ 223,224,226,228,0,230,231,243,244,0,
+ 0,0,0,0,0
};
};
public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
@@ -2073,16 +2063,16 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public final static char scopeLhs[] = {
45,18,18,73,18,18,18,18,73,82,
46,87,86,118,66,52,73,72,45,18,
- 73,20,3,7,161,161,158,116,45,85,
- 118,117,119,53,46,134,128,73,18,18,
- 128,98,57,130,76,164,161,158,125,117,
- 117,119,175,50,56,138,19,18,18,18,
- 18,18,12,113,158,125,73,72,72,38,
- 134,72,18,18,18,18,98,73,20,165,
- 161,176,96,103,59,67,58,153,77,119,
- 74,70,139,138,171,134,17,158,119,115,
- 126,126,55,134,134,73,45,158,71,132,
- 44,132,44,164,115,116,45,45,57
+ 73,20,3,7,162,162,159,116,45,85,
+ 118,117,119,53,46,135,129,73,18,18,
+ 129,98,57,131,76,165,162,159,126,117,
+ 117,119,176,50,56,139,19,18,18,18,
+ 18,18,12,113,159,126,73,72,72,38,
+ 135,72,18,18,18,18,98,73,20,166,
+ 162,177,96,103,59,67,58,154,77,119,
+ 74,70,140,139,172,135,17,159,119,115,
+ 127,127,55,135,135,73,45,159,71,133,
+ 44,133,44,165,115,116,45,45,57
};
};
public final static char scopeLhs[] = ScopeLhs.scopeLhs;
@@ -2128,25 +2118,25 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface ScopeRhs {
public final static char scopeRhs[] = {0,
- 312,3,47,0,128,0,311,3,119,0,
- 128,175,0,129,180,74,0,217,0,290,
- 129,44,128,0,21,0,292,129,44,29,
+ 313,3,47,0,128,0,312,3,119,0,
+ 128,175,0,129,180,74,0,217,0,291,
+ 129,44,128,0,21,0,293,129,44,29,
0,21,55,0,34,134,0,21,55,0,
- 0,292,129,44,29,192,0,21,131,0,
- 290,129,44,132,0,178,130,0,140,0,
- 223,3,289,0,289,0,2,0,128,0,
+ 0,293,129,44,29,192,0,21,131,0,
+ 291,129,44,132,0,178,130,0,140,0,
+ 223,3,290,0,290,0,2,0,128,0,
178,130,228,0,178,130,45,228,0,178,
- 130,308,45,0,133,189,168,130,0,130,
+ 130,309,45,0,133,189,168,130,0,130,
0,189,168,130,0,136,130,0,171,0,
- 304,129,171,0,129,171,0,223,130,0,
+ 305,129,171,0,129,171,0,223,130,0,
168,244,0,139,0,0,0,137,0,0,
- 0,303,129,50,250,0,129,0,250,0,
- 3,0,0,129,0,302,129,50,0,45,
- 129,0,153,3,0,129,279,278,129,74,
- 277,171,0,278,129,74,277,171,0,216,
- 0,217,0,277,171,0,98,0,0,216,
+ 0,304,129,50,251,0,129,0,251,0,
+ 3,0,0,129,0,303,129,50,0,45,
+ 129,0,153,3,0,129,280,279,129,74,
+ 278,171,0,279,129,74,278,171,0,216,
+ 0,217,0,278,171,0,98,0,0,216,
0,217,0,204,98,0,0,216,0,217,
- 0,278,129,277,171,0,216,0,204,0,
+ 0,279,129,278,171,0,216,0,204,0,
0,216,0,231,129,3,0,128,0,0,
0,0,0,231,129,3,220,0,227,3,
0,215,129,0,209,0,149,0,168,130,
@@ -2154,17 +2144,17 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
231,129,3,182,0,182,0,2,0,0,
128,0,0,0,0,0,201,3,0,202,
0,230,129,50,28,27,0,178,130,56,
- 48,0,198,130,0,133,178,130,275,48,
- 0,178,130,275,48,0,178,130,67,125,
+ 48,0,198,130,0,133,178,130,276,48,
+ 0,178,130,276,48,0,178,130,67,125,
56,0,230,129,50,56,0,230,129,50,
- 123,56,0,230,129,50,126,56,0,272,
- 129,50,125,68,0,272,129,50,68,0,
+ 123,56,0,230,129,50,126,56,0,273,
+ 129,50,125,68,0,273,129,50,68,0,
178,130,68,0,137,0,189,178,130,244,
0,139,0,178,130,244,0,189,168,130,
- 10,0,168,130,10,0,95,139,0,265,
- 129,148,0,265,129,171,0,163,85,0,
- 226,164,226,299,3,82,0,128,174,0,
- 226,299,3,82,0,130,0,128,174,0,
+ 10,0,168,130,10,0,95,139,0,266,
+ 129,148,0,266,129,171,0,163,85,0,
+ 226,164,226,300,3,82,0,128,174,0,
+ 226,300,3,82,0,130,0,128,174,0,
226,164,226,164,226,3,82,0,226,164,
226,3,82,0,226,3,82,0,130,0,
130,0,128,174,0,163,3,75,193,80,
@@ -2173,11 +2163,11 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
34,172,0,172,0,178,34,172,0,239,
3,86,0,193,159,239,3,84,0,64,
174,0,239,3,84,0,128,174,64,174,
- 0,298,129,50,0,163,0,218,77,0,
+ 0,299,129,50,0,163,0,218,77,0,
31,0,163,117,161,0,31,172,0,223,
- 3,0,218,60,262,0,163,60,0,184,
- 3,295,64,130,0,128,0,0,0,0,
- 295,64,130,0,2,148,128,0,0,0,
+ 3,0,218,60,263,0,163,60,0,184,
+ 3,296,64,130,0,128,0,0,0,0,
+ 296,64,130,0,2,148,128,0,0,0,
0,184,3,35,0,150,0,127,29,168,
130,0,32,150,0,95,139,32,150,0,
217,178,130,0,149,32,150,0,184,3,
@@ -2188,10 +2178,10 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
184,44,36,0,163,3,65,184,44,32,
0,184,44,32,0,223,3,127,189,168,
130,10,0,127,189,168,130,10,0,139,
- 2,0,128,0,223,3,126,255,168,130,
- 10,0,255,168,130,10,0,137,2,0,
+ 2,0,128,0,223,3,126,256,168,130,
+ 10,0,256,168,130,10,0,137,2,0,
128,0,223,3,137,0,223,3,142,0,
- 163,60,142,0,257,0,32,0,32,143,
+ 163,60,142,0,258,0,32,0,32,143,
0,167,0,136,0,163,3,0
};
};
@@ -2200,37 +2190,37 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface ScopeState {
public final static char scopeState[] = {0,
- 1450,0,3517,0,4889,4872,4369,0,2579,1541,
- 618,1332,0,2693,2574,667,0,2689,2545,0,
- 3736,3698,3644,3425,3076,3606,3552,3514,3460,2379,
- 3422,2972,2934,2894,1123,0,4803,990,4083,0,
- 3081,1053,0,2694,4092,0,4618,4526,0,4618,
- 4605,4541,3390,4526,2800,4324,4424,4512,3059,4337,
- 4448,2878,2722,2644,0,2310,2009,0,2947,4586,
- 0,2947,4586,3186,3177,4236,3088,3078,4182,4139,
- 4075,4066,3736,3698,3644,3606,3552,3514,3460,3422,
- 2972,2934,0,2947,4586,3186,3177,4236,3088,3078,
- 4182,4139,4075,4066,0,894,709,0,3059,4605,
- 4297,4541,3390,4645,2878,3097,3470,3029,4641,3545,
- 827,3020,2942,0,2320,1936,1764,1740,3390,3545,
- 2800,2722,2644,3477,2864,0,647,569,0,1326,
- 0,4354,526,2440,0,4861,4854,4849,4794,4789,
- 4777,4772,4757,4712,4680,4270,4212,4165,4093,4655,
- 4362,3204,4200,3436,3052,3411,2534,2235,0,4861,
- 4854,3286,3195,2870,4849,4794,4789,2792,2715,4777,
- 4772,4757,2684,4712,2052,4680,1131,1077,4270,1072,
- 1015,2057,1008,4212,2459,4165,3212,1143,4093,4655,
- 4362,1003,3204,660,4200,3436,2539,3052,4354,3411,
- 2440,2534,2235,948,877,784,895,717,2800,4324,
- 4424,4512,3059,4618,4605,4337,4541,3390,4448,2878,
- 2722,4526,2644,859,844,647,569,4043,2241,2280,
- 2349,2315,2411,2382,582,2748,2657,2616,2588,2496,
- 2465,3366,3342,3318,2904,2826,4020,3997,3974,3951,
- 3928,3905,3882,3859,3836,3293,3813,620,1931,2191,
- 2152,2102,2063,1238,1193,2013,1974,1149,905,1888,
- 798,735,674,526,1845,1802,1759,1716,1673,1630,
- 1587,1544,1501,1458,1415,1372,1327,1088,1029,960,
- 1282,0
+ 1284,0,3603,0,4844,4824,4817,0,3394,3216,
+ 2913,2745,0,3101,2569,2025,0,2556,2532,0,
+ 3922,3884,3830,3556,3247,3751,3638,3600,3546,2386,
+ 3508,3082,3044,3092,3047,0,3781,993,3759,0,
+ 3078,2692,0,2702,3497,0,4612,4539,0,4612,
+ 4599,4583,3476,4539,2838,3715,4397,4505,2808,4333,
+ 4426,3008,2730,2652,0,2316,2016,0,4628,3521,
+ 0,4628,3521,3297,3233,4302,3190,3125,4238,4229,
+ 3763,3306,3922,3884,3830,3751,3638,3600,3546,3508,
+ 3082,3044,0,4628,3521,3297,3233,4302,3190,3125,
+ 4238,4229,3763,3306,0,1184,711,0,2808,4599,
+ 4480,4583,3476,3052,3008,4361,2799,2099,2831,3069,
+ 2005,3054,1183,0,2327,1771,830,648,3476,3069,
+ 2838,2730,2652,2851,2795,0,649,570,0,619,
+ 0,4411,527,2447,0,4808,4796,4788,4776,4771,
+ 4751,4739,4716,4704,4684,4328,4256,3324,3220,4679,
+ 4647,3183,4522,4419,3498,2877,2541,2242,0,4808,
+ 4796,3489,3331,3251,4788,4776,4771,2925,2723,4751,
+ 4739,4716,3198,4704,1143,4684,1135,1076,4328,1028,
+ 1018,2064,1011,4256,2466,3324,2546,1148,3220,4679,
+ 4647,1006,3183,662,4522,4419,2551,3498,4411,2877,
+ 2447,2541,2242,951,880,786,898,719,2838,3715,
+ 4397,4505,2808,4612,4599,4333,4583,3476,4426,3008,
+ 2730,4539,2652,862,847,649,570,4206,2248,2287,
+ 2356,2322,2418,2389,583,2756,2665,2624,2596,2503,
+ 2472,3452,3428,3404,2982,2956,4183,4160,4137,4114,
+ 4091,4068,4045,4022,3999,3021,3728,621,1938,2198,
+ 2159,2109,2070,1244,1198,2020,1981,1154,908,1895,
+ 801,737,676,527,1852,1809,1766,1723,1680,1637,
+ 1594,1551,1508,1465,1422,1379,1334,1092,1033,963,
+ 1288,0
};
};
public final static char scopeState[] = ScopeState.scopeState;
@@ -2238,7 +2228,7 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public interface InSymb {
public final static char inSymb[] = {0,
- 0,294,129,264,39,31,34,36,32,10,
+ 0,295,129,265,39,31,34,36,32,10,
137,126,128,7,132,4,3,130,35,30,
5,12,11,6,8,25,24,142,147,150,
149,152,151,156,155,158,157,160,47,161,
@@ -2249,47 +2239,47 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
65,44,88,89,8,98,97,100,99,101,
113,112,111,110,109,108,107,106,105,104,
67,117,102,184,163,172,129,184,184,184,
- 184,168,223,129,129,266,267,250,268,244,
- 269,68,270,271,10,130,60,60,129,60,
- 295,3,189,4,184,29,5,130,29,223,
+ 184,168,223,129,129,267,268,251,269,244,
+ 270,68,271,272,10,130,60,60,129,60,
+ 296,3,189,4,184,29,5,130,29,223,
163,149,149,147,147,147,151,151,151,151,
150,150,155,152,152,157,156,158,163,160,
129,60,3,221,220,137,10,130,65,65,
- 65,65,189,255,290,135,293,215,130,6,
+ 65,65,189,256,291,135,294,215,130,6,
50,168,234,130,127,126,125,50,130,130,
- 178,168,290,202,3,296,172,153,257,189,
+ 178,168,291,202,3,297,172,153,258,189,
130,178,168,72,215,218,161,227,129,3,
130,168,3,3,3,3,127,126,66,168,
129,129,127,126,129,178,129,50,129,178,
168,29,184,129,129,4,217,5,29,231,
232,148,233,129,168,29,163,163,163,163,
- 3,3,6,185,303,130,169,228,192,48,
- 171,305,129,129,72,189,129,272,125,273,
- 189,159,259,262,60,179,4,127,159,67,
+ 3,3,6,185,304,130,169,228,192,48,
+ 171,306,129,129,72,189,129,273,125,274,
+ 189,159,260,263,60,179,4,127,159,67,
227,201,187,182,130,3,129,66,231,189,
- 223,223,129,168,29,275,277,129,3,182,
- 307,228,45,130,272,67,66,129,3,60,
+ 223,223,129,168,29,276,278,129,3,182,
+ 308,228,45,130,273,67,66,129,3,60,
163,4,129,67,67,3,178,168,201,129,
- 215,159,127,189,44,130,74,129,215,304,
- 129,130,126,72,284,201,66,130,45,308,
- 178,259,223,218,224,129,129,133,129,178,
- 129,278,72,66,215,168,72,67,178,130,
- 130,129,231,224,292,29,10,62,133,278,
- 50,288,130,289,178,178,47,159,129,66,
- 65,44,234,234,279,129,66,178,3,3,
+ 215,159,127,189,44,130,74,129,215,305,
+ 129,130,126,72,285,201,66,130,45,309,
+ 178,260,223,218,224,129,129,133,129,178,
+ 129,279,72,66,215,168,72,67,178,130,
+ 130,129,231,224,293,29,10,62,133,279,
+ 50,289,130,290,178,178,47,159,129,66,
+ 65,44,234,234,280,129,66,178,3,3,
129,27,29,171,61,56,48,129,67,67,
- 129,298,79,77,1,163,86,84,82,80,
- 75,83,85,78,76,56,74,223,312,224,
- 28,44,129,3,50,123,126,125,56,292,
- 280,119,9,218,72,3,3,3,193,3,
- 125,163,125,180,66,129,129,50,65,265,
- 201,276,28,129,50,50,67,130,65,3,
- 239,172,239,299,226,148,75,239,129,129,
+ 129,299,79,77,1,163,86,84,82,80,
+ 75,83,85,78,76,56,74,223,313,224,
+ 28,44,129,3,50,123,126,125,56,293,
+ 281,119,9,218,72,3,3,3,193,3,
+ 125,163,125,180,66,129,129,50,65,266,
+ 201,277,28,129,50,50,67,130,65,3,
+ 239,172,239,300,226,148,75,239,129,129,
3,67,66,159,230,229,129,129,130,178,
- 62,95,311,172,159,201,159,226,164,129,
- 3,159,280,230,153,50,230,230,178,274,
- 234,159,159,129,67,193,164,226,265,163,
- 129,274,67,122,226,164,159,302,159,226,
+ 62,95,312,172,159,201,159,226,164,129,
+ 3,159,281,230,153,50,230,230,178,275,
+ 234,159,159,129,67,193,164,226,266,163,
+ 129,275,67,122,226,164,159,303,159,226,
66,159
};
};
@@ -2503,7 +2493,7 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
"enumerator_definition",
"namespace_name",
"init_declarator_list",
- "init_declarator",
+ "init_declarator_complete",
"initializer",
"direct_declarator",
"ptr_operator_seq",
@@ -2569,18 +2559,18 @@ public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTab
public final static int
NUM_STATES = 522,
NT_OFFSET = 124,
- LA_STATE_OFFSET = 5884,
+ LA_STATE_OFFSET = 5834,
MAX_LA = 2147483647,
- NUM_RULES = 525,
- NUM_NONTERMINALS = 194,
- NUM_SYMBOLS = 318,
+ NUM_RULES = 526,
+ NUM_NONTERMINALS = 195,
+ NUM_SYMBOLS = 319,
SEGMENT_SIZE = 8192,
- START_STATE = 2526,
+ START_STATE = 2903,
IDENTIFIER_SYMBOL = 0,
EOFT_SYMBOL = 121,
EOLT_SYMBOL = 121,
- ACCEPT_ACTION = 5006,
- ERROR_ACTION = 5359;
+ ACCEPT_ACTION = 4961,
+ ERROR_ACTION = 5308;
public final static boolean BACKTRACK = true;
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
new file mode 100644
index 0000000000..f8c7da1a92
--- /dev/null
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParser.java
@@ -0,0 +1,2116 @@
+/*******************************************************************************
+* 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 CPPNoFunctionDeclaratorParser extends PrsStream implements RuleAction , IParserActionTokenProvider, IParser
+{
+ private static ParseTable prs = new CPPNoFunctionDeclaratorParserprs();
+ 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 CPPNoFunctionDeclaratorParser(LexStream lexStream)
+ {
+ super(lexStream);
+
+ try
+ {
+ super.remapTerminalSymbols(orderedTerminalSymbols(), CPPNoFunctionDeclaratorParserprs.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(" " + CPPNoFunctionDeclaratorParsersym.orderedTerminalSymbols[id.intValue()]);
+ }
+ System.out.println();
+ }
+ catch(UndefinedEofSymbolException e)
+ {
+ throw new Error(new UndefinedEofSymbolException
+ ("The Lexer does not implement the Eof symbol " +
+ CPPNoFunctionDeclaratorParsersym.orderedTerminalSymbols[CPPNoFunctionDeclaratorParserprs.EOFT_SYMBOL]));
+ }
+ }
+
+ public String[] orderedTerminalSymbols() { return CPPNoFunctionDeclaratorParsersym.orderedTerminalSymbols; }
+ public String getTokenKindName(int kind) { return CPPNoFunctionDeclaratorParsersym.orderedTerminalSymbols[kind]; }
+ public int getEOFTokenKind() { return CPPNoFunctionDeclaratorParserprs.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 CPPNoFunctionDeclaratorParserprs.java with -BACKTRACK option"));
+ }
+ catch (BadParseSymFileException e)
+ {
+ throw new Error(new BadParseSymFileException("Bad Parser Symbol File -- CPPNoFunctionDeclaratorParsersym.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 CPPNoFunctionDeclaratorParser() { // 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;
+}
+
+
+public int getKind(int i) {
+ int kind = super.getKind(i);
+
+ // There used to be a special token kind for zero used to parser pure virtual function declarations.
+ // But it turned out to be easier to just parse them as an init_ declarator and programaticaly check
+ // for pure virtual, see consumeMemberDeclaratorWithInitializer().
+
+ //if(kind == CPPParsersym.TK_integer && "0".equals(getTokenText(i))) { //$NON-NLS-1$
+ // kind = CPPParsersym.TK_zero;
+ //}
+
+ // lexer feedback hack!
+ //else if(kind == C99Parsersym.TK_identifier && action.resolver.isTypedef(getTokenText(i))) {
+ // kind = C99Parsersym.TK_TypedefName;
+ //}
+
+ return kind;
+}
+
+
+// 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 CPPNoFunctionDeclaratorParsersym.orderedTerminalSymbols;
+}
+
+public String getName() {
+ return "CPPNoFunctionDeclaratorParser"; //$NON-NLS-1$
+}
+
+
+
+private ITokenMap tokenMap = null;
+
+public void setTokens(List<IToken> 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, CPPNoFunctionDeclaratorParsersym.TK_EOF_TOKEN));
+}
+
+public CPPNoFunctionDeclaratorParser(String[] mapFrom) { // constructor
+ tokenMap = new TokenMap(CPPNoFunctionDeclaratorParsersym.orderedTerminalSymbols, mapFrom);
+}
+
+
+
+ public void ruleAction(int ruleNumber)
+ {
+ switch (ruleNumber)
+ {
+
+ //
+ // Rule 1: <openscope-ast> ::= $Empty
+ //
+ case 1: { action.builder.
+ openASTScope(); break;
+ }
+
+ //
+ // Rule 2: <empty> ::= $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 ::= ~ class_name
+ //
+ case 37: { action.builder.
+ consumeDestructorName(); break;
+ }
+
+ //
+ // Rule 38: identifier_name ::= identifier_token
+ //
+ case 38: { action.builder.
+ consumeIdentifierName(); break;
+ }
+
+ //
+ // Rule 39: template_opt ::= template
+ //
+ case 39: { action.builder.
+ consumePlaceHolder(); break;
+ }
+
+ //
+ // Rule 40: template_opt ::= $Empty
+ //
+ case 40: { action.builder.
+ consumeEmpty(); break;
+ }
+
+ //
+ // Rule 41: dcolon_opt ::= ::
+ //
+ case 41: { action.builder.
+ consumePlaceHolder(); break;
+ }
+
+ //
+ // Rule 42: dcolon_opt ::= $Empty
+ //
+ case 42: { action.builder.
+ consumeEmpty(); break;
+ }
+
+ //
+ // Rule 43: qualified_id_name ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name
+ //
+ case 43: { action.builder.
+ consumeQualifiedId(true); break;
+ }
+
+ //
+ // Rule 44: qualified_id_name ::= :: identifier_name
+ //
+ case 44: { action.builder.
+ consumeGlobalQualifiedId(); break;
+ }
+
+ //
+ // Rule 45: qualified_id_name ::= :: operator_function_id_name
+ //
+ case 45: { action.builder.
+ consumeGlobalQualifiedId(); break;
+ }
+
+ //
+ // Rule 46: qualified_id_name ::= :: template_id_name
+ //
+ case 46: { action.builder.
+ consumeGlobalQualifiedId(); break;
+ }
+
+ //
+ // Rule 47: nested_name_specifier ::= class_or_namespace_name :: nested_name_specifier_with_template
+ //
+ case 47: { action.builder.
+ consumeNestedNameSpecifier(true); break;
+ }
+
+ //
+ // Rule 48: nested_name_specifier ::= class_or_namespace_name ::
+ //
+ case 48: { action.builder.
+ consumeNestedNameSpecifier(false); break;
+ }
+
+ //
+ // Rule 49: nested_name_specifier_with_template ::= class_or_namespace_name_with_template :: nested_name_specifier_with_template
+ //
+ case 49: { action.builder.
+ consumeNestedNameSpecifier(true); break;
+ }
+
+ //
+ // Rule 50: nested_name_specifier_with_template ::= class_or_namespace_name_with_template ::
+ //
+ case 50: { action.builder.
+ consumeNestedNameSpecifier(false); break;
+ }
+
+ //
+ // Rule 51: class_or_namespace_name_with_template ::= template_opt class_or_namespace_name
+ //
+ case 51: { action.builder.
+ consumeNameWithTemplateKeyword(); break;
+ }
+
+ //
+ // Rule 53: nested_name_specifier_opt ::= $Empty
+ //
+ case 53: { action.builder.
+ consumeNestedNameSpecifierEmpty(); break;
+ }
+
+ //
+ // Rule 56: postfix_expression ::= postfix_expression [ expression ]
+ //
+ case 56: { action.builder.
+ consumeExpressionArraySubscript(); break;
+ }
+
+ //
+ // Rule 57: postfix_expression ::= postfix_expression ( expression_list_opt )
+ //
+ case 57: { action.builder.
+ consumeExpressionFunctionCall(); break;
+ }
+
+ //
+ // Rule 58: postfix_expression ::= simple_type_specifier ( expression_list_opt )
+ //
+ case 58: { action.builder.
+ consumeExpressionSimpleTypeConstructor(); break;
+ }
+
+ //
+ // Rule 59: postfix_expression ::= typename dcolon_opt nested_name_specifier <empty> identifier_name ( expression_list_opt )
+ //
+ case 59: { action.builder.
+ consumeExpressionTypeName(); break;
+ }
+
+ //
+ // Rule 60: postfix_expression ::= typename dcolon_opt nested_name_specifier template_opt template_id_name ( expression_list_opt )
+ //
+ case 60: { action.builder.
+ consumeExpressionTypeName(); break;
+ }
+
+ //
+ // Rule 61: postfix_expression ::= postfix_expression . qualified_or_unqualified_name
+ //
+ case 61: { action.builder.
+ consumeExpressionFieldReference(false, false); break;
+ }
+
+ //
+ // Rule 62: postfix_expression ::= postfix_expression -> qualified_or_unqualified_name
+ //
+ case 62: { action.builder.
+ consumeExpressionFieldReference(true, false); break;
+ }
+
+ //
+ // Rule 63: postfix_expression ::= postfix_expression . template qualified_or_unqualified_name
+ //
+ case 63: { action.builder.
+ consumeExpressionFieldReference(false, true); break;
+ }
+
+ //
+ // Rule 64: postfix_expression ::= postfix_expression -> template qualified_or_unqualified_name
+ //
+ case 64: { action.builder.
+ consumeExpressionFieldReference(true, true); break;
+ }
+
+ //
+ // Rule 65: postfix_expression ::= postfix_expression . pseudo_destructor_name
+ //
+ case 65: { action.builder.
+ consumeExpressionFieldReference(false, false); break;
+ }
+
+ //
+ // Rule 66: postfix_expression ::= postfix_expression -> pseudo_destructor_name
+ //
+ case 66: { action.builder.
+ consumeExpressionFieldReference(true, false); break;
+ }
+
+ //
+ // Rule 67: postfix_expression ::= postfix_expression ++
+ //
+ case 67: { action.builder.
+ consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixIncr); break;
+ }
+
+ //
+ // Rule 68: postfix_expression ::= postfix_expression --
+ //
+ case 68: { action.builder.
+ consumeExpressionUnaryOperator(IASTUnaryExpression.op_postFixDecr); break;
+ }
+
+ //
+ // Rule 69: postfix_expression ::= dynamic_cast < type_id > ( expression )
+ //
+ case 69: { action.builder.
+ consumeExpressionCast(ICPPASTCastExpression.op_dynamic_cast); break;
+ }
+
+ //
+ // Rule 70: postfix_expression ::= static_cast < type_id > ( expression )
+ //
+ case 70: { action.builder.
+ consumeExpressionCast(ICPPASTCastExpression.op_static_cast); break;
+ }
+
+ //
+ // Rule 71: postfix_expression ::= reinterpret_cast < type_id > ( expression )
+ //
+ case 71: { action.builder.
+ consumeExpressionCast(ICPPASTCastExpression.op_reinterpret_cast); break;
+ }
+
+ //
+ // Rule 72: postfix_expression ::= const_cast < type_id > ( expression )
+ //
+ case 72: { action.builder.
+ consumeExpressionCast(ICPPASTCastExpression.op_const_cast); break;
+ }
+
+ //
+ // Rule 73: postfix_expression ::= typeid ( expression )
+ //
+ case 73: { action.builder.
+ consumeExpressionUnaryOperator(ICPPASTUnaryExpression.op_typeid); break;
+ }
+
+ //
+ // Rule 74: postfix_expression ::= typeid ( type_id )
+ //
+ case 74: { action.builder.
+ consumeExpressionTypeId(ICPPASTTypeIdExpression.op_typeid); break;
+ }
+
+ //
+ // Rule 75: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt type_name :: destructor_type_name
+ //
+ case 75: { action.builder.
+ consumePsudoDestructorName(true); break;
+ }
+
+ //
+ // Rule 76: pseudo_destructor_name ::= dcolon_opt nested_name_specifier template template_id_name :: destructor_type_name
+ //
+ case 76: { action.builder.
+ consumePsudoDestructorName(true); break;
+ }
+
+ //
+ // Rule 77: pseudo_destructor_name ::= dcolon_opt nested_name_specifier_opt destructor_type_name
+ //
+ case 77: { action.builder.
+ consumePsudoDestructorName(false); break;
+ }
+
+ //
+ // Rule 78: destructor_type_name ::= ~ type_name
+ //
+ case 78: { action.builder.
+ consumeDestructorName(); break;
+ }
+
+ //
+ // Rule 82: unary_expression ::= ++ cast_expression
+ //
+ case 82: { action.builder.
+ consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixIncr); break;
+ }
+
+ //
+ // Rule 83: unary_expression ::= -- cast_expression
+ //
+ case 83: { action.builder.
+ consumeExpressionUnaryOperator(IASTUnaryExpression.op_prefixDecr); break;
+ }
+
+ //
+ // Rule 84: unary_expression ::= & cast_expression
+ //
+ case 84: { action.builder.
+ consumeExpressionUnaryOperator(IASTUnaryExpression.op_amper); break;
+ }
+
+ //
+ // Rule 85: unary_expression ::= * cast_expression
+ //
+ case 85: { action.builder.
+ consumeExpressionUnaryOperator(IASTUnaryExpression.op_star); break;
+ }
+
+ //
+ // Rule 86: unary_expression ::= + cast_expression
+ //
+ case 86: { action.builder.
+ consumeExpressionUnaryOperator(IASTUnaryExpression.op_plus); break;
+ }
+
+ //
+ // Rule 87: unary_expression ::= - cast_expression
+ //
+ case 87: { action.builder.
+ consumeExpressionUnaryOperator(IASTUnaryExpression.op_minus); break;
+ }
+
+ //
+ // Rule 88: unary_expression ::= ~ cast_expression
+ //
+ case 88: { action.builder.
+ consumeExpressionUnaryOperator(IASTUnaryExpression.op_tilde); break;
+ }
+
+ //
+ // Rule 89: unary_expression ::= ! cast_expression
+ //
+ case 89: { action.builder.
+ consumeExpressionUnaryOperator(IASTUnaryExpression.op_not); break;
+ }
+
+ //
+ // Rule 90: unary_expression ::= sizeof unary_expression
+ //
+ case 90: { action.builder.
+ consumeExpressionUnaryOperator(IASTUnaryExpression.op_sizeof); break;
+ }
+
+ //
+ // Rule 91: unary_expression ::= sizeof ( type_id )
+ //
+ case 91: { action.builder.
+ consumeExpressionTypeId(ICPPASTTypeIdExpression.op_sizeof); break;
+ }
+
+ //
+ // Rule 92: new_expression ::= dcolon_opt new new_placement_opt new_type_id <openscope-ast> new_array_expressions_opt new_initializer_opt
+ //
+ case 92: { action.builder.
+ consumeExpressionNew(true); break;
+ }
+
+ //
+ // Rule 93: new_expression ::= dcolon_opt new new_placement_opt ( type_id ) <openscope-ast> new_array_expressions_opt new_initializer_opt
+ //
+ case 93: { action.builder.
+ consumeExpressionNew(false); break;
+ }
+
+ //
+ // Rule 95: new_placement_opt ::= $Empty
+ //
+ case 95: { action.builder.
+ consumeEmpty(); break;
+ }
+
+ //
+ // Rule 96: new_type_id ::= type_specifier_seq
+ //
+ case 96: { action.builder.
+ consumeTypeId(false); break;
+ }
+
+ //
+ // Rule 97: new_type_id ::= type_specifier_seq new_declarator
+ //
+ case 97: { action.builder.
+ consumeTypeId(true); break;
+ }
+
+ //
+ // Rule 98: new_declarator ::= <openscope-ast> new_pointer_operators
+ //
+ case 98: { action.builder.
+ consumeNewDeclarator(); break;
+ }
+
+ //
+ // Rule 107: new_initializer_opt ::= $Empty
+ //
+ case 107: { action.builder.
+ consumeEmpty(); break;
+ }
+
+ //
+ // Rule 108: delete_expression ::= dcolon_opt delete cast_expression
+ //
+ case 108: { action.builder.
+ consumeExpressionDelete(false); break;
+ }
+
+ //
+ // Rule 109: delete_expression ::= dcolon_opt delete [ ] cast_expression
+ //
+ case 109: { action.builder.
+ consumeExpressionDelete(true); break;
+ }
+
+ //
+ // Rule 111: cast_expression ::= ( type_id ) cast_expression
+ //
+ case 111: { action.builder.
+ consumeExpressionCast(ICPPASTCastExpression.op_cast); break;
+ }
+
+ //
+ // Rule 113: pm_expression ::= pm_expression .* cast_expression
+ //
+ case 113: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmdot); break;
+ }
+
+ //
+ // Rule 114: pm_expression ::= pm_expression ->* cast_expression
+ //
+ case 114: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_pmarrow); break;
+ }
+
+ //
+ // Rule 116: multiplicative_expression ::= multiplicative_expression * pm_expression
+ //
+ case 116: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiply); break;
+ }
+
+ //
+ // Rule 117: multiplicative_expression ::= multiplicative_expression / pm_expression
+ //
+ case 117: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divide); break;
+ }
+
+ //
+ // Rule 118: multiplicative_expression ::= multiplicative_expression % pm_expression
+ //
+ case 118: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_modulo); break;
+ }
+
+ //
+ // Rule 120: additive_expression ::= additive_expression + multiplicative_expression
+ //
+ case 120: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plus); break;
+ }
+
+ //
+ // Rule 121: additive_expression ::= additive_expression - multiplicative_expression
+ //
+ case 121: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minus); break;
+ }
+
+ //
+ // Rule 123: shift_expression ::= shift_expression << additive_expression
+ //
+ case 123: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeft); break;
+ }
+
+ //
+ // Rule 124: shift_expression ::= shift_expression >> additive_expression
+ //
+ case 124: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRight); break;
+ }
+
+ //
+ // Rule 126: relational_expression ::= relational_expression < shift_expression
+ //
+ case 126: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessThan); break;
+ }
+
+ //
+ // Rule 127: relational_expression ::= relational_expression > shift_expression
+ //
+ case 127: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterThan); break;
+ }
+
+ //
+ // Rule 128: relational_expression ::= relational_expression <= shift_expression
+ //
+ case 128: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_lessEqual); break;
+ }
+
+ //
+ // Rule 129: relational_expression ::= relational_expression >= shift_expression
+ //
+ case 129: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_greaterEqual); break;
+ }
+
+ //
+ // Rule 131: equality_expression ::= equality_expression == relational_expression
+ //
+ case 131: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_equals); break;
+ }
+
+ //
+ // Rule 132: equality_expression ::= equality_expression != relational_expression
+ //
+ case 132: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_notequals); break;
+ }
+
+ //
+ // Rule 134: and_expression ::= and_expression & equality_expression
+ //
+ case 134: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAnd); break;
+ }
+
+ //
+ // Rule 136: exclusive_or_expression ::= exclusive_or_expression ^ and_expression
+ //
+ case 136: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXor); break;
+ }
+
+ //
+ // Rule 138: inclusive_or_expression ::= inclusive_or_expression | exclusive_or_expression
+ //
+ case 138: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOr); break;
+ }
+
+ //
+ // Rule 140: logical_and_expression ::= logical_and_expression && inclusive_or_expression
+ //
+ case 140: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalAnd); break;
+ }
+
+ //
+ // Rule 142: logical_or_expression ::= logical_or_expression || logical_and_expression
+ //
+ case 142: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_logicalOr); break;
+ }
+
+ //
+ // Rule 144: conditional_expression ::= logical_or_expression ? expression : assignment_expression
+ //
+ case 144: { action.builder.
+ consumeExpressionConditional(); break;
+ }
+
+ //
+ // Rule 145: throw_expression ::= throw
+ //
+ case 145: { action.builder.
+ consumeExpressionThrow(false); break;
+ }
+
+ //
+ // Rule 146: throw_expression ::= throw assignment_expression
+ //
+ case 146: { action.builder.
+ consumeExpressionThrow(true); break;
+ }
+
+ //
+ // Rule 149: assignment_expression ::= logical_or_expression = assignment_expression
+ //
+ case 149: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_assign); break;
+ }
+
+ //
+ // Rule 150: assignment_expression ::= logical_or_expression *= assignment_expression
+ //
+ case 150: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_multiplyAssign); break;
+ }
+
+ //
+ // Rule 151: assignment_expression ::= logical_or_expression /= assignment_expression
+ //
+ case 151: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_divideAssign); break;
+ }
+
+ //
+ // Rule 152: assignment_expression ::= logical_or_expression %= assignment_expression
+ //
+ case 152: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_moduloAssign); break;
+ }
+
+ //
+ // Rule 153: assignment_expression ::= logical_or_expression += assignment_expression
+ //
+ case 153: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_plusAssign); break;
+ }
+
+ //
+ // Rule 154: assignment_expression ::= logical_or_expression -= assignment_expression
+ //
+ case 154: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_minusAssign); break;
+ }
+
+ //
+ // Rule 155: assignment_expression ::= logical_or_expression >>= assignment_expression
+ //
+ case 155: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftRightAssign); break;
+ }
+
+ //
+ // Rule 156: assignment_expression ::= logical_or_expression <<= assignment_expression
+ //
+ case 156: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_shiftLeftAssign); break;
+ }
+
+ //
+ // Rule 157: assignment_expression ::= logical_or_expression &= assignment_expression
+ //
+ case 157: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryAndAssign); break;
+ }
+
+ //
+ // Rule 158: assignment_expression ::= logical_or_expression ^= assignment_expression
+ //
+ case 158: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryXorAssign); break;
+ }
+
+ //
+ // Rule 159: assignment_expression ::= logical_or_expression |= assignment_expression
+ //
+ case 159: { action.builder.
+ consumeExpressionBinaryOperator(ICPPASTBinaryExpression.op_binaryOrAssign); break;
+ }
+
+ //
+ // Rule 161: expression_list ::= <openscope-ast> expression_list_actual
+ //
+ case 161: { action.builder.
+ consumeExpressionList(); break;
+ }
+
+ //
+ // Rule 165: expression_list_opt ::= $Empty
+ //
+ case 165: { action.builder.
+ consumeEmpty(); break;
+ }
+
+ //
+ // Rule 167: expression_opt ::= $Empty
+ //
+ case 167: { action.builder.
+ consumeEmpty(); break;
+ }
+
+ //
+ // Rule 170: constant_expression_opt ::= $Empty
+ //
+ case 170: { action.builder.
+ consumeEmpty(); break;
+ }
+
+ //
+ // Rule 179: statement ::= ERROR_TOKEN
+ //
+ case 179: { action.builder.
+ consumeStatementProblem(); break;
+ }
+
+ //
+ // Rule 180: labeled_statement ::= identifier : statement
+ //
+ case 180: { action.builder.
+ consumeStatementLabeled(); break;
+ }
+
+ //
+ // Rule 181: labeled_statement ::= case constant_expression :
+ //
+ case 181: { action.builder.
+ consumeStatementCase(); break;
+ }
+
+ //
+ // Rule 182: labeled_statement ::= default :
+ //
+ case 182: { action.builder.
+ consumeStatementDefault(); break;
+ }
+
+ //
+ // Rule 183: expression_statement ::= expression ;
+ //
+ case 183: { action.builder.
+ consumeStatementExpression(); break;
+ }
+
+ //
+ // Rule 184: expression_statement ::= ;
+ //
+ case 184: { action.builder.
+ consumeStatementNull(); break;
+ }
+
+ //
+ // Rule 185: compound_statement ::= { <openscope-ast> statement_seq }
+ //
+ case 185: { action.builder.
+ consumeStatementCompoundStatement(true); break;
+ }
+
+ //
+ // Rule 186: compound_statement ::= { }
+ //
+ case 186: { action.builder.
+ consumeStatementCompoundStatement(false); break;
+ }
+
+ //
+ // Rule 189: selection_statement ::= if ( condition ) statement
+ //
+ case 189: { action.builder.
+ consumeStatementIf(false); break;
+ }
+
+ //
+ // Rule 190: selection_statement ::= if ( condition ) statement else statement
+ //
+ case 190: { action.builder.
+ consumeStatementIf(true); break;
+ }
+
+ //
+ // Rule 191: selection_statement ::= switch ( condition ) statement
+ //
+ case 191: { action.builder.
+ consumeStatementSwitch(); break;
+ }
+
+ //
+ // Rule 193: condition ::= type_specifier_seq declarator = assignment_expression
+ //
+ case 193: { action.builder.
+ consumeConditionDeclaration(); break;
+ }
+
+ //
+ // Rule 194: iteration_statement ::= while ( condition ) statement
+ //
+ case 194: { action.builder.
+ consumeStatementWhileLoop(); break;
+ }
+
+ //
+ // Rule 195: iteration_statement ::= do statement while ( expression ) ;
+ //
+ case 195: { action.builder.
+ consumeStatementDoLoop(); break;
+ }
+
+ //
+ // Rule 196: iteration_statement ::= for ( expression_opt ; expression_opt ; expression_opt ) statement
+ //
+ case 196: { action.builder.
+ consumeStatementForLoop(); break;
+ }
+
+ //
+ // Rule 197: iteration_statement ::= for ( simple_declaration_with_declspec expression_opt ; expression_opt ) statement
+ //
+ case 197: { action.builder.
+ consumeStatementForLoop(); break;
+ }
+
+ //
+ // Rule 198: jump_statement ::= break ;
+ //
+ case 198: { action.builder.
+ consumeStatementBreak(); break;
+ }
+
+ //
+ // Rule 199: jump_statement ::= continue ;
+ //
+ case 199: { action.builder.
+ consumeStatementContinue(); break;
+ }
+
+ //
+ // Rule 200: jump_statement ::= return expression ;
+ //
+ case 200: { action.builder.
+ consumeStatementReturn(true); break;
+ }
+
+ //
+ // Rule 201: jump_statement ::= return ;
+ //
+ case 201: { action.builder.
+ consumeStatementReturn(false); break;
+ }
+
+ //
+ // Rule 202: jump_statement ::= goto identifier_token ;
+ //
+ case 202: { action.builder.
+ consumeStatementGoto(); break;
+ }
+
+ //
+ // Rule 203: declaration_statement ::= block_declaration
+ //
+ case 203: { action.builder.
+ consumeStatementDeclaration(); break;
+ }
+
+ //
+ // Rule 204: declaration_statement ::= function_definition
+ //
+ case 204: { action.builder.
+ consumeStatementDeclaration(); break;
+ }
+
+ //
+ // Rule 221: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
+ //
+ case 221: { action.builder.
+ consumeDeclarationSimple(true, true); break;
+ }
+
+ //
+ // Rule 222: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
+ //
+ case 222: { action.builder.
+ consumeDeclarationSimple(true, false); break;
+ }
+
+ //
+ // Rule 223: declaration_specifiers ::= <openscope-ast> simple_declaration_specifiers
+ //
+ case 223: { action.builder.
+ consumeDeclarationSpecifiersSimple(); break;
+ }
+
+ //
+ // Rule 224: declaration_specifiers ::= <openscope-ast> class_declaration_specifiers
+ //
+ case 224: { action.builder.
+ consumeDeclarationSpecifiersComposite(); break;
+ }
+
+ //
+ // Rule 225: declaration_specifiers ::= <openscope-ast> elaborated_declaration_specifiers
+ //
+ case 225: { action.builder.
+ consumeDeclarationSpecifiersComposite(); break;
+ }
+
+ //
+ // Rule 226: declaration_specifiers ::= <openscope-ast> enum_declaration_specifiers
+ //
+ case 226: { action.builder.
+ consumeDeclarationSpecifiersComposite(); break;
+ }
+
+ //
+ // Rule 227: declaration_specifiers ::= <openscope-ast> type_name_declaration_specifiers
+ //
+ case 227: { action.builder.
+ consumeDeclarationSpecifiersTypeName(); break;
+ }
+
+ //
+ // Rule 228: declaration_specifiers_opt ::= $Empty
+ //
+ case 228: { action.builder.
+ consumeEmpty(); break;
+ }
+
+ //
+ // Rule 233: no_type_declaration_specifier ::= friend
+ //
+ case 233: { action.builder.
+ consumeDeclSpecToken(); break;
+ }
+
+ //
+ // Rule 234: no_type_declaration_specifier ::= typedef
+ //
+ case 234: { action.builder.
+ consumeDeclSpecToken(); break;
+ }
+
+ //
+ // Rule 262: simple_type_specifier ::= simple_type_specifier_token
+ //
+ case 262: { action.builder.
+ consumeDeclSpecToken(); break;
+ }
+
+ //
+ // Rule 276: type_name_specifier ::= dcolon_opt nested_name_specifier_opt type_name
+ //
+ case 276: { action.builder.
+ consumeQualifiedId(false); break;
+ }
+
+ //
+ // Rule 277: type_name_specifier ::= dcolon_opt nested_name_specifier template template_id_name
+ //
+ case 277: { action.builder.
+ consumeQualifiedId(false); break;
+ }
+
+ //
+ // Rule 278: type_name_specifier ::= typename dcolon_opt nested_name_specifier identifier_name
+ //
+ case 278: { action.builder.
+ consumeQualifiedId(false); break;
+ }
+
+ //
+ // Rule 279: type_name_specifier ::= typename dcolon_opt nested_name_specifier template_opt template_id_name
+ //
+ case 279: { action.builder.
+ consumeQualifiedId(true); break;
+ }
+
+ //
+ // Rule 280: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt identifier_name
+ //
+ case 280: { action.builder.
+ consumeTypeSpecifierElaborated(false); break;
+ }
+
+ //
+ // Rule 281: elaborated_type_specifier ::= class_keyword dcolon_opt nested_name_specifier_opt template_opt template_id_name
+ //
+ case 281: { action.builder.
+ consumeTypeSpecifierElaborated(true); break;
+ }
+
+ //
+ // Rule 282: elaborated_type_specifier ::= enum dcolon_opt nested_name_specifier_opt identifier_name
+ //
+ case 282: { action.builder.
+ consumeTypeSpecifierElaborated(false); break;
+ }
+
+ //
+ // Rule 283: enum_specifier ::= enum { <openscope-ast> enumerator_list_opt }
+ //
+ case 283: { action.builder.
+ consumeTypeSpecifierEnumeration(false); break;
+ }
+
+ //
+ // Rule 284: enum_specifier ::= enum identifier_token { <openscope-ast> enumerator_list_opt }
+ //
+ case 284: { action.builder.
+ consumeTypeSpecifierEnumeration(true); break;
+ }
+
+ //
+ // Rule 289: enumerator_definition ::= identifier_token
+ //
+ case 289: { action.builder.
+ consumeEnumerator(false); break;
+ }
+
+ //
+ // Rule 290: enumerator_definition ::= identifier_token = constant_expression
+ //
+ case 290: { action.builder.
+ consumeEnumerator(true); break;
+ }
+
+ //
+ // Rule 296: original_namespace_definition ::= namespace identifier_name { <openscope-ast> declaration_seq_opt }
+ //
+ case 296: { action.builder.
+ consumeNamespaceDefinition(true); break;
+ }
+
+ //
+ // Rule 297: extension_namespace_definition ::= namespace original_namespace_name { <openscope-ast> declaration_seq_opt }
+ //
+ case 297: { action.builder.
+ consumeNamespaceDefinition(true); break;
+ }
+
+ //
+ // Rule 298: unnamed_namespace_definition ::= namespace { <openscope-ast> declaration_seq_opt }
+ //
+ case 298: { action.builder.
+ consumeNamespaceDefinition(false); break;
+ }
+
+ //
+ // Rule 299: namespace_alias_definition ::= namespace identifier_token = dcolon_opt nested_name_specifier_opt namespace_name ;
+ //
+ case 299: { action.builder.
+ consumeNamespaceAliasDefinition(); break;
+ }
+
+ //
+ // Rule 300: using_declaration ::= using typename_opt dcolon_opt nested_name_specifier_opt unqualified_id_name ;
+ //
+ case 300: { action.builder.
+ consumeUsingDeclaration(); break;
+ }
+
+ //
+ // Rule 301: typename_opt ::= typename
+ //
+ case 301: { action.builder.
+ consumePlaceHolder(); break;
+ }
+
+ //
+ // Rule 302: typename_opt ::= $Empty
+ //
+ case 302: { action.builder.
+ consumeEmpty(); break;
+ }
+
+ //
+ // Rule 303: using_directive ::= using namespace dcolon_opt nested_name_specifier_opt namespace_name ;
+ //
+ case 303: { action.builder.
+ consumeUsingDirective(); break;
+ }
+
+ //
+ // Rule 304: asm_definition ::= asm ( stringlit ) ;
+ //
+ case 304: { action.builder.
+ consumeDeclarationASM(); break;
+ }
+
+ //
+ // Rule 305: linkage_specification ::= extern stringlit { <openscope-ast> declaration_seq_opt }
+ //
+ case 305: { action.builder.
+ consumeLinkageSpecification(); break;
+ }
+
+ //
+ // Rule 306: linkage_specification ::= extern stringlit <openscope-ast> declaration
+ //
+ case 306: { action.builder.
+ consumeLinkageSpecification(); break;
+ }
+
+ //
+ // Rule 312: init_declarator ::= declarator initializer
+ //
+ case 312: { action.builder.
+ consumeDeclaratorWithInitializer(true); break;
+ }
+
+ //
+ // Rule 314: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
+ //
+ case 314: { action.builder.
+ consumeDeclaratorWithPointer(true); break;
+ }
+
+ //
+ // Rule 316: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
+ //
+ case 316: { action.builder.
+ consumeDeclaratorWithPointer(true); break;
+ }
+
+ //
+ // Rule 319: basic_direct_declarator ::= declarator_id_name
+ //
+ case 319: { action.builder.
+ consumeDirectDeclaratorIdentifier(); break;
+ }
+
+ //
+ // Rule 320: basic_direct_declarator ::= ( declarator )
+ //
+ case 320: { action.builder.
+ consumeDirectDeclaratorBracketed(); break;
+ }
+
+ //
+ // Rule 321: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ //
+ case 321: { action.builder.
+ consumeDirectDeclaratorFunctionDeclarator(true); break;
+ }
+
+ //
+ // Rule 322: array_direct_declarator ::= array_direct_declarator array_modifier
+ //
+ case 322: { action.builder.
+ consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
+ //
+ // Rule 323: array_direct_declarator ::= basic_direct_declarator array_modifier
+ //
+ case 323: { action.builder.
+ consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
+ //
+ // Rule 324: array_modifier ::= [ constant_expression ]
+ //
+ case 324: { action.builder.
+ consumeDirectDeclaratorArrayModifier(true); break;
+ }
+
+ //
+ // Rule 325: array_modifier ::= [ ]
+ //
+ case 325: { action.builder.
+ consumeDirectDeclaratorArrayModifier(false); break;
+ }
+
+ //
+ // Rule 326: ptr_operator ::= * <openscope-ast> cv_qualifier_seq_opt
+ //
+ case 326: { action.builder.
+ consumePointer(); break;
+ }
+
+ //
+ // Rule 327: ptr_operator ::= &
+ //
+ case 327: { action.builder.
+ consumeReferenceOperator(); break;
+ }
+
+ //
+ // Rule 328: ptr_operator ::= dcolon_opt nested_name_specifier * <openscope-ast> cv_qualifier_seq_opt
+ //
+ case 328: { action.builder.
+ consumePointerToMember(); break;
+ }
+
+ //
+ // Rule 334: cv_qualifier ::= const
+ //
+ case 334: { action.builder.
+ consumeDeclSpecToken(); break;
+ }
+
+ //
+ // Rule 335: cv_qualifier ::= volatile
+ //
+ case 335: { action.builder.
+ consumeDeclSpecToken(); break;
+ }
+
+ //
+ // Rule 337: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
+ //
+ case 337: { action.builder.
+ consumeQualifiedId(false); break;
+ }
+
+ //
+ // Rule 338: type_id ::= type_specifier_seq
+ //
+ case 338: { action.builder.
+ consumeTypeId(false); break;
+ }
+
+ //
+ // Rule 339: type_id ::= type_specifier_seq abstract_declarator
+ //
+ case 339: { action.builder.
+ consumeTypeId(true); break;
+ }
+
+ //
+ // Rule 342: abstract_declarator ::= <openscope-ast> ptr_operator_seq
+ //
+ case 342: { action.builder.
+ consumeDeclaratorWithPointer(false); break;
+ }
+
+ //
+ // Rule 343: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
+ //
+ case 343: { action.builder.
+ consumeDeclaratorWithPointer(true); break;
+ }
+
+ //
+ // Rule 347: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ //
+ case 347: { action.builder.
+ consumeDirectDeclaratorBracketed(); break;
+ }
+
+ //
+ // Rule 348: array_direct_abstract_declarator ::= array_modifier
+ //
+ case 348: { action.builder.
+ consumeDirectDeclaratorArrayDeclarator(false); break;
+ }
+
+ //
+ // Rule 349: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ //
+ case 349: { action.builder.
+ consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
+ //
+ // Rule 350: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ //
+ case 350: { action.builder.
+ consumeDirectDeclaratorArrayDeclarator(true); break;
+ }
+
+ //
+ // Rule 351: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ //
+ case 351: { action.builder.
+ consumeDirectDeclaratorFunctionDeclarator(true); break;
+ }
+
+ //
+ // Rule 352: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ //
+ case 352: { action.builder.
+ consumeDirectDeclaratorFunctionDeclarator(false); break;
+ }
+
+ //
+ // Rule 353: parameter_declaration_clause ::= parameter_declaration_list_opt ...
+ //
+ case 353: { action.builder.
+ consumePlaceHolder(); break;
+ }
+
+ //
+ // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt
+ //
+ case 354: { action.builder.
+ consumeEmpty(); break;
+ }
+
+ //
+ // Rule 355: parameter_declaration_clause ::= parameter_declaration_list , ...
+ //
+ case 355: { action.builder.
+ consumePlaceHolder(); break;
+ }
+
+ //
+ // Rule 361: abstract_declarator_opt ::= $Empty
+ //
+ case 361: { action.builder.
+ consumeEmpty(); break;
+ }
+
+ //
+ // Rule 362: parameter_declaration ::= declaration_specifiers parameter_init_declarator
+ //
+ case 362: { action.builder.
+ consumeParameterDeclaration(); break;
+ }
+
+ //
+ // Rule 363: parameter_declaration ::= declaration_specifiers
+ //
+ case 363: { action.builder.
+ consumeParameterDeclarationWithoutDeclarator(); break;
+ }
+
+ //
+ // Rule 365: parameter_init_declarator ::= declarator = parameter_initializer
+ //
+ case 365: { action.builder.
+ consumeDeclaratorWithInitializer(true); break;
+ }
+
+ //
+ // Rule 367: parameter_init_declarator ::= abstract_declarator = parameter_initializer
+ //
+ case 367: { action.builder.
+ consumeDeclaratorWithInitializer(true); break;
+ }
+
+ //
+ // Rule 368: parameter_init_declarator ::= = parameter_initializer
+ //
+ case 368: { action.builder.
+ consumeDeclaratorWithInitializer(false); break;
+ }
+
+ //
+ // Rule 369: parameter_initializer ::= assignment_expression
+ //
+ case 369: { action.builder.
+ consumeInitializer(); break;
+ }
+
+ //
+ // Rule 370: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
+ //
+ case 370: { action.builder.
+ consumeFunctionDefinition(false); break;
+ }
+
+ //
+ // Rule 371: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
+ //
+ case 371: { action.builder.
+ consumeFunctionDefinition(true); break;
+ }
+
+ //
+ // Rule 374: initializer ::= ( expression_list )
+ //
+ case 374: { action.builder.
+ consumeInitializerConstructor(); break;
+ }
+
+ //
+ // Rule 375: initializer_clause ::= assignment_expression
+ //
+ case 375: { action.builder.
+ consumeInitializer(); break;
+ }
+
+ //
+ // Rule 376: initializer_clause ::= { <openscope-ast> initializer_list , }
+ //
+ case 376: { action.builder.
+ consumeInitializerList(); break;
+ }
+
+ //
+ // Rule 377: initializer_clause ::= { <openscope-ast> initializer_list }
+ //
+ case 377: { action.builder.
+ consumeInitializerList(); break;
+ }
+
+ //
+ // Rule 378: initializer_clause ::= { <openscope-ast> }
+ //
+ case 378: { action.builder.
+ consumeInitializerList(); break;
+ }
+
+ //
+ // Rule 383: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
+ //
+ case 383: { action.builder.
+ consumeClassSpecifier(); break;
+ }
+
+ //
+ // Rule 384: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
+ //
+ case 384: { action.builder.
+ consumeClassHead(false); break;
+ }
+
+ //
+ // Rule 385: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt
+ //
+ case 385: { action.builder.
+ consumeClassHead(false); break;
+ }
+
+ //
+ // Rule 386: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
+ //
+ case 386: { action.builder.
+ consumeClassHead(true); break;
+ }
+
+ //
+ // Rule 387: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt
+ //
+ case 387: { action.builder.
+ consumeClassHead(true); break;
+ }
+
+ //
+ // Rule 389: identifier_name_opt ::= $Empty
+ //
+ case 389: { action.builder.
+ consumeEmpty(); break;
+ }
+
+ //
+ // Rule 393: visibility_label ::= access_specifier_keyword :
+ //
+ case 393: { action.builder.
+ consumeVisibilityLabel(); break;
+ }
+
+ //
+ // Rule 394: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
+ //
+ case 394: { action.builder.
+ consumeDeclarationSimple(true, true); break;
+ }
+
+ //
+ // Rule 395: member_declaration ::= declaration_specifiers_opt ;
+ //
+ case 395: { action.builder.
+ consumeDeclarationSimple(false, false); break;
+ }
+
+ //
+ // Rule 398: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
+ //
+ case 398: { action.builder.
+ consumeMemberDeclarationQualifiedId(); break;
+ }
+
+ //
+ // Rule 402: member_declaration ::= ERROR_TOKEN
+ //
+ case 402: { action.builder.
+ consumeDeclarationProblem(); break;
+ }
+
+ //
+ // Rule 410: member_declarator ::= declarator constant_initializer
+ //
+ case 410: { action.builder.
+ consumeMemberDeclaratorWithInitializer(); break;
+ }
+
+ //
+ // Rule 411: member_declarator ::= bit_field_declarator : constant_expression
+ //
+ case 411: { action.builder.
+ consumeBitField(true); break;
+ }
+
+ //
+ // Rule 412: member_declarator ::= : constant_expression
+ //
+ case 412: { action.builder.
+ consumeBitField(false); break;
+ }
+
+ //
+ // Rule 413: bit_field_declarator ::= identifier_name
+ //
+ case 413: { action.builder.
+ consumeDirectDeclaratorIdentifier(); break;
+ }
+
+ //
+ // Rule 414: constant_initializer ::= = constant_expression
+ //
+ case 414: { action.builder.
+ consumeInitializer(); break;
+ }
+
+ //
+ // Rule 420: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
+ //
+ case 420: { action.builder.
+ consumeBaseSpecifier(false, false); break;
+ }
+
+ //
+ // Rule 421: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
+ //
+ case 421: { action.builder.
+ consumeBaseSpecifier(true, true); break;
+ }
+
+ //
+ // Rule 422: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
+ //
+ case 422: { action.builder.
+ consumeBaseSpecifier(true, true); break;
+ }
+
+ //
+ // Rule 423: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
+ //
+ case 423: { action.builder.
+ consumeBaseSpecifier(true, false); break;
+ }
+
+ //
+ // Rule 424: access_specifier_keyword ::= private
+ //
+ case 424: { action.builder.
+ consumeAccessKeywordToken(); break;
+ }
+
+ //
+ // Rule 425: access_specifier_keyword ::= protected
+ //
+ case 425: { action.builder.
+ consumeAccessKeywordToken(); break;
+ }
+
+ //
+ // Rule 426: access_specifier_keyword ::= public
+ //
+ case 426: { action.builder.
+ consumeAccessKeywordToken(); break;
+ }
+
+ //
+ // Rule 428: access_specifier_keyword_opt ::= $Empty
+ //
+ case 428: { action.builder.
+ consumeEmpty(); break;
+ }
+
+ //
+ // Rule 429: conversion_function_id_name ::= operator conversion_type_id
+ //
+ case 429: { action.builder.
+ consumeConversionName(); break;
+ }
+
+ //
+ // Rule 430: conversion_type_id ::= type_specifier_seq conversion_declarator
+ //
+ case 430: { action.builder.
+ consumeTypeId(true); break;
+ }
+
+ //
+ // Rule 431: conversion_type_id ::= type_specifier_seq
+ //
+ case 431: { action.builder.
+ consumeTypeId(false); break;
+ }
+
+ //
+ // Rule 432: conversion_declarator ::= <openscope-ast> ptr_operator_seq
+ //
+ case 432: { action.builder.
+ consumeDeclaratorWithPointer(false); break;
+ }
+
+ //
+ // Rule 438: mem_initializer ::= mem_initializer_name ( expression_list_opt )
+ //
+ case 438: { action.builder.
+ consumeConstructorChainInitializer(); break;
+ }
+
+ //
+ // Rule 439: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
+ //
+ case 439: { action.builder.
+ consumeQualifiedId(false); break;
+ }
+
+ //
+ // Rule 442: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
+ //
+ case 442: { action.builder.
+ consumeTemplateId(); break;
+ }
+
+ //
+ // Rule 443: operator_id_name ::= operator overloadable_operator
+ //
+ case 443: { action.builder.
+ consumeOperatorName(); break;
+ }
+
+ //
+ // Rule 486: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
+ //
+ case 486: { action.builder.
+ consumeTemplateDeclaration(); break;
+ }
+
+ //
+ // Rule 487: export_opt ::= export
+ //
+ case 487: { action.builder.
+ consumePlaceHolder(); break;
+ }
+
+ //
+ // Rule 488: export_opt ::= $Empty
+ //
+ case 488: { action.builder.
+ consumeEmpty(); break;
+ }
+
+ //
+ // Rule 493: type_parameter ::= class identifier_name_opt
+ //
+ case 493: { action.builder.
+ consumeSimpleTypeTemplateParameter(false); break;
+ }
+
+ //
+ // Rule 494: type_parameter ::= class identifier_name_opt = type_id
+ //
+ case 494: { action.builder.
+ consumeSimpleTypeTemplateParameter(true); break;
+ }
+
+ //
+ // Rule 495: type_parameter ::= typename identifier_name_opt
+ //
+ case 495: { action.builder.
+ consumeSimpleTypeTemplateParameter(false); break;
+ }
+
+ //
+ // Rule 496: type_parameter ::= typename identifier_name_opt = type_id
+ //
+ case 496: { action.builder.
+ consumeSimpleTypeTemplateParameter(true); break;
+ }
+
+ //
+ // Rule 497: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
+ //
+ case 497: { action.builder.
+ consumeTemplatedTypeTemplateParameter(false); break;
+ }
+
+ //
+ // Rule 498: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
+ //
+ case 498: { action.builder.
+ consumeTemplatedTypeTemplateParameter(true); break;
+ }
+
+ //
+ // Rule 499: template_id_name ::= template_identifier < <openscope-ast> template_argument_list_opt >
+ //
+ case 499: { action.builder.
+ consumeTemplateId(); break;
+ }
+
+ //
+ // Rule 508: explicit_instantiation ::= template declaration
+ //
+ case 508: { action.builder.
+ consumeTemplateExplicitInstantiation(); break;
+ }
+
+ //
+ // Rule 509: explicit_specialization ::= template < > declaration
+ //
+ case 509: { action.builder.
+ consumeTemplateExplicitSpecialization(); break;
+ }
+
+ //
+ // Rule 510: try_block ::= try compound_statement <openscope-ast> handler_seq
+ //
+ case 510: { action.builder.
+ consumeStatementTryBlock(); break;
+ }
+
+ //
+ // Rule 513: handler ::= catch ( exception_declaration ) compound_statement
+ //
+ case 513: { action.builder.
+ consumeStatementCatchHandler(false); break;
+ }
+
+ //
+ // Rule 514: handler ::= catch ( ... ) compound_statement
+ //
+ case 514: { action.builder.
+ consumeStatementCatchHandler(true); break;
+ }
+
+ //
+ // Rule 515: exception_declaration ::= type_specifier_seq <openscope-ast> declarator
+ //
+ case 515: { action.builder.
+ consumeDeclarationSimple(true, false); break;
+ }
+
+ //
+ // Rule 516: exception_declaration ::= type_specifier_seq <openscope-ast> abstract_declarator
+ //
+ case 516: { action.builder.
+ consumeDeclarationSimple(true, false); break;
+ }
+
+ //
+ // Rule 517: exception_declaration ::= type_specifier_seq
+ //
+ case 517: { action.builder.
+ consumeDeclarationSimple(false, false); break;
+ }
+
+ //
+ // Rule 525: no_function_declarator_start ::= ERROR_TOKEN
+ //
+ case 525: { action.builder.
+ consumeDeclarationProblem(); break;
+ }
+
+
+ default:
+ break;
+ }
+ return;
+ }
+}
+
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
new file mode 100644
index 0000000000..bfc7e344d7
--- /dev/null
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParserprs.java
@@ -0,0 +1,2639 @@
+/*******************************************************************************
+* 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 CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.ParseTable, CPPNoFunctionDeclaratorParsersym {
+
+ 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,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,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,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,5,7,9,8,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,1,3,4,4,5,4,
+ 5,4,5,6,1,3,1,0,1,3,
+ 1,1,1,1,1,6,6,5,7,6,
+ 1,0,6,5,6,4,1,3,1,0,
+ 1,2,1,3,1,3,1,1,1,3,
+ 9,2,2,3,2,3,1,5,1,2,
+ 2,1,0,1,1,1,3,1,2,1,
+ 1,2,3,1,1,1,3,1,2,2,
+ 9,8,2,1,3,1,3,1,0,1,
+ 0,2,1,1,3,1,3,2,1,5,
+ 8,1,2,3,1,5,4,3,1,3,
+ 1,1,5,4,4,5,5,1,0,1,
+ 1,1,2,4,2,2,1,5,1,1,
+ 1,1,1,2,1,0,1,3,1,2,
+ 3,2,1,2,2,1,0,1,3,3,
+ 5,5,4,1,1,1,1,0,2,2,
+ 1,2,2,1,0,1,3,4,3,1,
+ 1,5,2,1,1,3,3,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,2,2,7,1,0,1,3,
+ 1,1,2,4,2,4,7,9,5,1,
+ 1,3,1,0,1,1,1,2,4,4,
+ 1,2,5,5,3,3,1,4,3,1,
+ 0,1,3,1,1,1,-105,0,0,0,
+ 0,-107,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -92,0,0,0,0,0,-2,0,0,0,
+ -19,0,0,0,0,0,-257,0,0,-89,
+ 0,0,0,0,-7,-15,0,0,0,0,
+ 0,-129,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,-26,0,0,0,0,0,-8,0,-50,
+ 0,0,0,0,-10,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-18,0,0,0,0,0,0,0,
+ 0,-3,0,-192,0,0,0,0,-4,0,
+ 0,0,0,0,0,0,0,-425,0,0,
+ 0,0,0,0,-72,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-317,0,0,0,-151,0,
+ 0,0,0,-20,0,0,0,0,0,0,
+ -323,0,0,0,0,0,0,0,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,0,0,0,0,0,
+ 0,-220,-24,0,0,0,0,0,0,0,
+ 0,-35,-25,0,0,-30,0,0,-153,0,
+ 0,0,0,-5,-346,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-28,-17,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-190,0,0,0,0,0,0,0,
+ 0,0,-409,0,0,0,0,-29,0,0,
+ 0,0,0,0,0,0,0,-359,0,0,
+ 0,0,0,0,-420,0,-517,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-108,
+ -31,0,-222,0,0,0,-80,0,0,0,
+ 0,0,0,-280,0,0,-112,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-216,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-378,0,0,0,0,0,0,0,
+ 0,0,-321,0,0,0,0,0,0,-39,
+ -6,0,0,0,0,-94,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-22,0,0,0,-113,0,
+ 0,0,0,-88,0,0,0,0,0,0,
+ 0,0,0,0,0,-221,0,0,0,-476,
+ 0,-333,-249,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,0,
+ 0,0,0,0,0,0,-38,0,0,0,
+ 0,0,0,0,0,0,-284,0,0,0,
+ -40,0,0,-439,-356,0,0,0,0,0,
+ 0,0,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,-23,
+ 0,0,0,0,0,-41,0,0,0,-44,
+ 0,0,0,0,0,0,0,0,-374,0,
+ 0,-500,0,0,0,0,0,0,-12,0,
+ 0,0,0,0,-42,0,0,-37,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,-83,0,0,0,0,0,0,0,0,
+ 0,-152,0,0,0,0,0,0,0,0,
+ -194,0,0,0,0,-32,0,0,0,0,
+ 0,0,0,0,0,-308,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-424,0,0,0,0,0,
+ 0,0,0,0,-36,0,0,0,-343,0,
+ 0,0,0,-353,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,-186,0,0,0,0,0,0,0,
+ 0,-225,0,0,-43,-344,0,0,0,0,
+ -102,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-14,
+ 0,0,0,0,-45,0,0,0,0,0,
+ 0,0,0,0,0,-57,0,0,-68,0,
+ 0,0,0,-58,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-156,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-290,0,
+ 0,-236,0,0,0,-135,0,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,-59,-60,0,0,0,0,
+ 0,0,0,0,-85,-61,0,0,-136,0,
+ 0,0,0,-86,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-313,0,0,0,0,0,-62,0,
+ 0,0,-295,0,0,0,0,0,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,-159,0,0,0,0,
+ 0,0,0,0,0,-254,0,0,0,0,
+ 0,-63,0,0,-138,0,0,0,0,-103,
+ 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,-329,0,
+ 0,0,0,0,-65,0,0,-139,0,0,
+ 0,0,-172,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,-337,0,0,0,0,0,0,0,0,
+ -140,0,0,0,0,-173,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-183,0,0,0,0,-218,
+ -66,0,0,0,0,0,0,0,0,0,
+ -67,0,0,-141,0,0,0,0,-179,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-184,0,0,
+ 0,0,-219,-69,0,0,0,0,0,0,
+ 0,0,0,-71,0,0,-142,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -223,0,0,0,0,0,-76,0,0,0,
+ -338,0,0,0,0,-188,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,-240,0,0,0,0,0,-91,
+ 0,0,0,-437,0,0,0,0,-196,0,
+ 0,0,-144,0,0,0,0,-191,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,0,0,-464,0,0,0,
+ 0,0,0,0,0,-145,0,0,0,0,
+ -195,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-291,
+ 0,0,0,0,0,0,0,0,0,-354,
+ 0,0,0,0,0,-93,0,0,-170,0,
+ 0,0,0,-238,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-246,0,0,0,0,0,0,0,
+ 0,0,-376,0,0,0,0,0,-110,0,
+ 0,-251,0,0,0,0,-247,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-307,0,0,0,0,
+ 0,0,0,0,0,-414,0,0,0,0,
+ 0,-111,0,0,-510,0,0,0,0,-275,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-316,0,
+ 0,0,0,0,0,0,0,0,-148,0,
+ 0,0,0,0,-149,0,0,-299,0,0,
+ 0,0,-260,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,-422,0,0,0,0,-300,0,0,0,
+ 0,-282,0,0,0,0,-331,0,0,0,
+ 0,-261,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -150,0,0,0,0,-227,0,0,0,0,
+ -27,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,0,0,
+ 0,0,0,0,0,0,0,0,0,-423,
+ 0,0,0,0,-361,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-235,0,0,0,0,-385,-404,
+ 0,0,0,-362,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-157,0,0,
+ 0,0,-301,-449,0,0,0,-302,0,0,
+ 0,0,-412,0,0,0,0,0,0,0,
+ 0,0,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,-263,0,0,0,0,-166,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,0,0,0,0,0,0,
+ -303,0,0,0,0,-304,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,0,0,0,0,0,0,0,0,
+ -167,0,0,0,-163,0,-132,0,0,0,
+ 0,-314,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -324,0,0,0,0,0,-340,0,0,0,
+ -133,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-164,
+ 0,0,0,-130,0,0,0,0,-369,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-450,0,0,
+ 0,0,-131,0,0,0,0,-352,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-507,0,0,0,
+ 0,-21,0,0,0,0,0,0,-268,0,
+ 0,0,0,-165,0,0,-226,0,0,-341,
+ -339,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,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,0,-458,-472,0,0,0,
+ 0,-171,-370,0,-120,0,0,0,0,-174,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-508,0,0,0,0,-281,0,
+ 0,0,0,-326,-394,0,0,-242,0,-175,
+ 0,-176,-177,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,-250,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,-127,0,0,0,0,
+ -185,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-197,
+ 0,0,-128,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-296,0,0,-277,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-118,0,0,0,0,-481,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-288,0,0,0,
+ 0,-198,-199,-364,0,0,0,0,-287,0,
+ 0,0,0,0,0,-75,0,-375,0,0,
+ 0,0,-200,-371,0,-283,0,-119,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,-252,0,0,0,0,0,-201,-265,0,
+ 0,0,-311,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-258,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-78,
+ 0,0,0,0,-104,0,-393,-202,-203,0,
+ 0,0,0,0,0,-488,0,0,-204,-34,
+ 0,0,0,0,0,0,0,0,0,-205,
+ 0,0,-206,0,0,-405,0,0,0,0,
+ 0,0,0,0,-228,0,0,0,0,-298,
+ -207,0,0,0,0,0,0,0,0,0,
+ -178,-77,0,0,-208,0,0,0,0,0,
+ 0,0,-209,0,0,0,0,0,0,0,
+ 0,0,0,-410,-334,-169,-210,-211,0,0,
+ -212,-82,0,0,0,0,-213,0,0,0,
+ 0,0,-214,-382,0,0,0,0,0,-215,
+ 0,-349,0,0,-74,-162,0,0,0,0,
+ 0,0,0,0,0,-482,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-347,0,
+ 0,-426,0,0,0,0,0,-231,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -431,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-232,0,0,0,0,0,0,
+ 0,0,-189,0,0,0,0,0,0,-259,
+ -262,0,-461,-73,0,0,0,0,-233,0,
+ -387,0,0,0,-234,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-229,
+ -454,0,0,-239,0,0,-495,0,0,0,
+ -383,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-460,0,
+ 0,0,-255,-399,0,0,-479,0,0,0,
+ 0,0,-256,-327,-101,0,0,0,-266,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-358,-267,-47,0,0,0,
+ 0,0,0,0,0,-367,0,0,-273,-377,
+ 0,0,0,0,0,0,0,0,0,0,
+ -274,-386,0,0,0,0,0,-276,0,0,
+ -484,-389,0,-278,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-392,-285,0,0,-182,
+ 0,-345,0,-468,0,0,0,0,0,-181,
+ 0,0,0,-470,-501,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-289,-100,0,
+ 0,0,0,0,-485,-475,0,0,0,0,
+ -237,-384,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -161,0,0,0,0,-293,0,0,0,0,
+ 0,0,0,-397,0,0,0,0,0,-294,
+ 0,0,0,0,0,0,0,0,-309,0,
+ 0,0,0,0,0,0,0,-310,0,0,
+ 0,0,0,0,0,0,-505,0,-318,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,-509,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,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,-322,-286,0,0,0,0,
+ -315,0,0,0,0,0,0,-330,-332,-320,
+ -348,-513,0,0,-372,0,0,-373,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,-379,-355,0,0,0,0,0,
+ 0,-224,0,0,-292,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-489,
+ -11,0,0,0,0,-395,0,0,0,0,
+ -114,-418,-502,-429,-312,0,0,0,0,-381,
+ 0,-390,-391,-398,-241,0,0,0,0,0,
+ -514,-217,-342,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-357,-400,0,
+ 0,0,-403,0,-411,0,0,0,0,0,
+ 0,0,0,0,0,0,-443,0,0,0,
+ 0,0,0,-490,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-368,-433,
+ 0,-79,0,-452,0,-453,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-413,
+ -516,-477,0,0,0,0,0,0,0,0,
+ -415,-456,-492,-279,-521,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,
+ -416,0,0,-417,-264,0,-84,0,0,0,
+ 0,0,0,0,-419,0,-430,0,0,0,
+ 0,0,0,0,0,0,-432,-494,0,0,
+ 0,0,0,-427,-81,0,-434,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-335,-519,-435,-436,0,-438,0,
+ 0,0,0,0,0,-499,0,0,-503,-440,
+ 0,-441,-523,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-428,0,-462,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-442,-447,0,
+ -451,0,0,0,0,0,0,0,0,0,
+ -518,0,0,0,0,0,0,-487,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-463,0,-459,-421,-466,0,-473,
+ 0,0,0,0,0,-474,0,-96,-522,0,
+ 0,-493,0,0,-506,-511,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,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-524,0,0,-115,0,0,0,
+ -305,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-146,
+ -471,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -49,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-51,0,0,0,0,0,0,
+ 0,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,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-53,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-54,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,-55,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-56,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,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,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,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -180,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-243,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-388,0,-496,0,
+ 0,0,-363,0,-306,-401,-350,0,0,0,
+ 0,0,-504,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -512,0,0,0,0,0,0,0,0,0,
+ 0,0,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,0,0,
+ 0,0,-455,0,0,0,0,0,0,0,
+ 0,-457,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-483,0,
+ 0,0,0,0,0,0,-497,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,-248,0,0,0,
+ 0,-1,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-269,-396,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-360,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-48,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,-480,0,0,0,0,0,
+ 0,0,0,0,0,0,0,-13,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,-253,0,0,0,0,0,0,0,0,
+ -446,0,0,0,-406,0,0,0,0,0,
+ 0,0,-9,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,-469,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ -270,0,-444,-271,0,0,0,0,0,0,
+ 0,0,-33,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,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,0,0,0,-402,0,0,0,0,
+ 0,0,0,0,0,0,0,0,-155,0,
+ 0,0,0,-160,0,0,0,0,-187,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,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,0,0,0,0,
+ -297,0,0,0,0,-325,0,0,0,0,
+ 0,-336,0,0,0,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,0,0,0,0,0,-97,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,-366,0,0,0,0,0,0,0,
+ 0,0,0,-380,0,0,0,0,-465,0,
+ 0,0,0,-486,0,0,0,0,0,0,
+ -46,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,-109,
+ 0,0,0,0,0,0,0,0,-445,0,
+ 0,0,0,0,0,0,-98,-448,0,0,
+ 0,0,0,0,0,-99,-244,0,0,0,
+ 0,0,0,0,0,0,0,-520,0,0,
+ 0,0,0,0,0,0,-272,0,0,0,
+ 0,0,0,0,-407,-408,0,0,0,0,
+ 0,0,0,-467,-478,0,0,0,0,0,
+ 0,0,0,0,0,-319,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,-498,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,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[] = {
+ 171,5,131,77,77,34,34,63,63,39,
+ 39,191,191,192,192,193,193,1,1,16,
+ 16,16,16,16,16,16,16,17,17,17,
+ 15,11,11,9,9,9,9,9,2,64,
+ 64,6,6,12,12,12,12,44,44,132,
+ 132,133,56,56,43,18,18,18,18,18,
+ 18,18,18,18,18,18,18,18,18,18,
+ 18,18,18,18,18,134,134,134,115,19,
+ 19,19,19,19,19,19,19,19,19,19,
+ 19,19,20,20,172,172,173,173,174,137,
+ 137,138,138,135,135,139,136,136,21,21,
+ 22,22,23,23,23,25,25,25,25,26,
+ 26,26,27,27,27,28,28,28,28,28,
+ 31,31,31,32,32,33,33,35,35,36,
+ 36,37,37,38,38,42,42,41,41,41,
+ 41,41,41,41,41,41,41,41,41,41,
+ 40,30,140,140,98,98,101,101,93,194,
+ 194,69,69,69,69,69,69,69,69,69,
+ 70,70,70,71,71,59,59,175,175,72,
+ 72,72,116,116,73,73,73,73,74,74,
+ 74,74,74,75,75,78,78,78,78,78,
+ 78,78,49,49,49,49,49,104,104,105,
+ 105,50,176,24,24,24,24,24,48,48,
+ 87,87,87,87,87,147,147,142,142,142,
+ 142,142,143,143,143,144,144,144,145,145,
+ 145,146,146,146,88,88,88,88,88,89,
+ 89,89,13,14,14,14,14,14,14,14,
+ 14,14,14,14,92,120,120,120,120,120,
+ 118,118,118,119,119,149,149,148,148,122,
+ 122,150,82,82,83,83,85,86,84,52,
+ 47,151,151,53,51,81,81,152,152,141,
+ 141,107,107,65,65,153,153,61,61,54,
+ 54,154,62,62,67,67,58,58,58,90,
+ 90,100,99,99,60,60,55,55,57,57,
+ 45,102,102,102,94,94,94,95,96,96,
+ 96,97,97,108,108,108,110,110,109,109,
+ 195,195,91,91,178,178,178,178,178,124,
+ 46,46,156,177,177,125,125,125,125,179,
+ 179,29,29,117,126,126,126,126,111,111,
+ 121,121,121,158,159,159,159,159,159,159,
+ 159,159,159,182,182,180,180,181,181,160,
+ 160,160,160,161,183,113,112,112,184,184,
+ 162,162,162,162,103,103,103,185,185,10,
+ 186,186,187,163,155,155,164,164,165,166,
+ 166,7,7,8,168,168,168,168,168,168,
+ 168,168,168,168,168,168,168,168,168,168,
+ 168,168,168,168,168,168,168,168,168,168,
+ 168,168,168,168,168,168,168,168,168,168,
+ 168,168,168,168,168,168,66,68,68,169,
+ 169,127,127,128,128,128,128,128,128,3,
+ 4,170,170,167,167,129,129,129,79,80,
+ 76,157,157,114,114,188,188,188,130,130,
+ 123,123,189,189,171,171,106,958,38,1942,
+ 1899,618,1018,4699,34,625,31,35,30,32,
+ 2661,262,29,27,55,1336,110,80,81,112,
+ 1344,1296,1416,1415,1459,1426,274,82,1539,1512,
+ 1631,29,1555,1641,1674,147,675,1087,162,148,
+ 2049,38,575,36,618,73,29,34,625,43,
+ 35,1148,2310,38,575,36,618,232,3127,34,
+ 625,31,35,30,32,1325,262,29,27,55,
+ 1336,110,80,81,112,1344,1245,1416,1415,1459,
+ 1426,2926,29,2905,235,230,231,733,290,275,
+ 2310,38,1942,1899,618,377,3127,34,625,31,
+ 35,30,32,1325,262,29,27,55,1336,110,
+ 80,81,88,551,242,245,248,251,2840,37,
+ 326,332,64,1717,1199,38,575,36,618,1115,
+ 4367,34,625,31,35,64,32,1856,589,2955,
+ 2766,2902,3522,3615,2932,1466,38,575,36,618,
+ 2452,3127,34,625,31,35,1985,32,1325,262,
+ 29,27,55,1336,110,80,81,112,1344,340,
+ 1416,1415,1459,1426,3023,2628,1539,1512,1631,1787,
+ 1555,1641,1674,147,1777,2860,505,148,1379,3034,
+ 2845,2049,38,575,36,618,323,3524,34,625,
+ 1850,35,506,1466,38,575,36,618,2452,3127,
+ 34,625,31,35,1985,32,1325,262,29,27,
+ 55,1336,110,80,81,112,1344,340,1416,1415,
+ 1459,1426,691,1434,1539,1512,1631,330,1555,1641,
+ 1674,147,29,1849,505,148,2014,551,2845,1112,
+ 38,1673,1630,618,1155,1300,38,575,36,618,
+ 506,4216,34,625,31,35,336,32,412,1857,
+ 38,575,36,618,501,3127,34,625,31,35,
+ 30,32,1325,262,29,27,55,1336,110,80,
+ 81,112,1344,29,1416,1415,1459,1426,1148,312,
+ 1539,1512,1631,1392,1555,1641,1684,168,1052,659,
+ 319,92,1979,330,106,2061,314,784,2436,38,
+ 440,322,348,1907,4834,1112,2194,1933,38,575,
+ 36,618,501,4367,34,625,31,35,30,32,
+ 1683,812,498,691,384,416,325,2027,2237,343,
+ 1668,1625,346,4694,2430,38,278,1713,38,575,
+ 36,618,1391,4756,34,625,31,35,62,32,
+ 2390,430,570,2061,1732,38,575,36,618,2452,
+ 3127,34,625,31,35,1985,32,1325,262,29,
+ 27,55,1336,110,80,81,112,1344,340,1416,
+ 1415,1459,1426,2584,570,1539,1512,1631,2847,1555,
+ 1641,1674,147,1597,443,505,148,511,3361,2845,
+ 499,1112,38,643,382,618,1532,38,575,36,
+ 618,506,3127,34,625,31,35,30,32,1325,
+ 262,29,27,55,1336,110,80,81,112,1344,
+ 37,1416,1415,1459,1426,385,416,1539,1512,1631,
+ 1074,1555,1641,1674,147,1209,186,375,148,1721,
+ 38,575,36,618,1414,4756,34,625,31,35,
+ 61,32,433,3404,3450,1382,2406,38,280,378,
+ 1392,66,2594,1076,38,643,382,618,1604,38,
+ 575,36,618,502,3127,34,625,31,35,30,
+ 32,1325,262,29,27,55,1336,110,80,81,
+ 112,1344,274,1416,1415,1459,1426,29,75,1539,
+ 1512,1631,956,1555,1641,1674,147,2086,2247,375,
+ 148,1031,485,2860,2687,2049,38,575,36,618,
+ 2242,379,34,625,1893,35,1798,38,575,36,
+ 618,376,3127,34,625,31,35,30,32,1325,
+ 262,29,27,55,1336,110,80,81,112,1344,
+ 247,1416,1415,1459,1426,3187,1279,1539,1512,1631,
+ 760,1555,1641,1674,147,3370,3219,375,148,2606,
+ 38,388,2690,65,511,2542,47,2464,77,1023,
+ 38,871,46,618,484,2042,45,625,2128,38,
+ 575,36,618,380,3127,34,625,31,35,30,
+ 32,1325,262,29,27,55,1336,110,80,81,
+ 112,1344,760,1416,1415,1459,1426,1132,3251,1539,
+ 1512,1631,29,1555,1641,1674,147,3462,512,162,
+ 148,1199,38,575,36,618,247,4367,34,625,
+ 31,35,63,32,98,410,2128,38,575,36,
+ 618,373,3127,34,625,31,35,30,32,1325,
+ 262,29,27,55,1336,110,80,81,112,1344,
+ 320,1416,1415,1459,1426,1112,3691,1539,1512,1631,
+ 3452,1555,1641,1674,147,247,512,369,148,2128,
+ 38,575,36,618,1597,3127,34,625,31,35,
+ 30,32,1325,262,29,27,55,1336,110,80,
+ 81,112,1344,29,1416,1415,1459,1426,762,374,
+ 1539,1512,1631,760,1555,1641,1674,147,1856,3455,
+ 369,148,1112,38,282,2052,2128,38,575,36,
+ 618,247,3127,34,625,31,35,30,32,1325,
+ 262,29,27,55,1336,110,80,81,112,1344,
+ 2086,1416,1415,1459,1426,931,2860,1539,1512,1631,
+ 368,1555,1641,1674,147,4101,2502,369,148,1666,
+ 38,575,36,618,325,3127,34,625,31,35,
+ 30,32,1325,262,29,27,55,1336,110,80,
+ 81,112,1344,1475,1416,1415,1459,1426,873,76,
+ 1539,1512,1631,367,1555,1641,1674,147,329,760,
+ 146,148,1112,38,3151,4766,2128,38,575,36,
+ 618,1209,3127,34,625,31,35,30,32,1325,
+ 262,29,27,55,1336,110,80,81,112,1344,
+ 4613,1416,1415,1459,1426,496,1007,1539,1512,1631,
+ 365,1555,1641,1674,147,1209,1995,159,148,2128,
+ 38,575,36,618,1209,3127,34,625,31,35,
+ 30,32,1325,262,29,27,55,1336,110,80,
+ 81,112,1344,2405,1416,1415,1459,1426,2452,1005,
+ 1539,1512,1631,2137,1555,1641,1674,147,324,4772,
+ 158,148,2128,38,575,36,618,2710,3127,34,
+ 625,31,35,30,32,1325,262,29,27,55,
+ 1336,110,80,81,112,1344,29,1416,1415,1459,
+ 1426,3412,447,1539,1512,1631,1380,1555,1641,1674,
+ 147,446,1333,157,148,2128,38,575,36,618,
+ 247,3127,34,625,31,35,30,32,1325,262,
+ 29,27,55,1336,110,80,81,112,1344,1278,
+ 1416,1415,1459,1426,357,396,1539,1512,1631,1512,
+ 1555,1641,1674,147,28,1261,156,148,2128,38,
+ 575,36,618,247,3127,34,625,31,35,30,
+ 32,1325,262,29,27,55,1336,110,80,81,
+ 112,1344,29,1416,1415,1459,1426,3060,394,1539,
+ 1512,1631,760,1555,1641,1674,147,74,4777,155,
+ 148,2128,38,575,36,618,247,3127,34,625,
+ 31,35,30,32,1325,262,29,27,55,1336,
+ 110,80,81,112,1344,2156,1416,1415,1459,1426,
+ 29,1461,1539,1512,1631,1993,1555,1641,1674,147,
+ 73,68,154,148,2128,38,575,36,618,247,
+ 3127,34,625,31,35,30,32,1325,262,29,
+ 27,55,1336,110,80,81,112,1344,1649,1416,
+ 1415,1459,1426,2447,1085,1539,1512,1631,2032,1555,
+ 1641,1674,147,58,850,153,148,2128,38,575,
+ 36,618,349,3127,34,625,31,35,30,32,
+ 1325,262,29,27,55,1336,110,80,81,112,
+ 1344,29,1416,1415,1459,1426,3585,343,1539,1512,
+ 1631,760,1555,1641,1674,147,1209,4823,152,148,
+ 2128,38,575,36,618,350,3127,34,625,31,
+ 35,30,32,1325,262,29,27,55,1336,110,
+ 80,81,112,1344,29,1416,1415,1459,1426,3554,
+ 148,1539,1512,1631,760,1555,1641,1674,147,1209,
+ 4839,151,148,2128,38,575,36,618,247,3127,
+ 34,625,31,35,30,32,1325,262,29,27,
+ 55,1336,110,80,81,112,1344,29,1416,1415,
+ 1459,1426,2776,4124,1539,1512,1631,760,1555,1641,
+ 1674,147,91,4844,150,148,2128,38,575,36,
+ 618,247,3127,34,625,31,35,30,32,1325,
+ 262,29,27,55,1336,110,80,81,112,1344,
+ 2071,1416,1415,1459,1426,3104,56,1539,1512,1631,
+ 1904,1555,1641,1674,147,57,517,149,148,2128,
+ 38,575,36,618,247,3127,34,625,31,35,
+ 30,32,1325,262,29,27,55,1336,110,80,
+ 81,112,1344,1844,1416,1415,1459,1426,1067,398,
+ 1539,1512,1631,1904,1555,1641,1674,147,347,1029,
+ 163,148,2128,38,575,36,618,247,3127,34,
+ 625,31,35,30,32,1325,262,29,27,55,
+ 1336,110,80,81,112,1344,29,1416,1415,1459,
+ 1426,3463,300,1539,1512,1631,1904,1555,1641,1674,
+ 147,94,1145,144,148,2220,38,575,36,618,
+ 247,3127,34,625,31,35,30,32,1325,262,
+ 29,27,55,1336,110,80,81,112,1344,29,
+ 1416,1415,1459,1426,2952,183,1539,1512,1631,155,
+ 1555,1641,1674,147,1926,1514,193,148,2310,38,
+ 575,36,618,691,3127,34,625,31,35,30,
+ 32,1325,262,29,27,55,1336,110,80,81,
+ 112,1344,1904,1416,1415,1459,1426,1112,3109,1539,
+ 1512,1631,247,1555,1641,1684,168,2310,38,575,
+ 36,618,691,3127,34,625,31,35,30,32,
+ 1325,262,29,27,55,1336,110,80,81,112,
+ 1344,199,1416,1415,1459,1426,1969,97,1539,1512,
+ 1631,778,1555,1641,1684,168,1112,38,500,277,
+ 618,1112,38,643,382,618,2310,38,575,36,
+ 618,290,3127,34,625,31,35,30,32,1325,
+ 262,29,27,55,1336,110,80,81,112,1344,
+ 274,1416,1415,1459,1426,387,416,1539,1512,1631,
+ 1904,1555,1641,1684,168,2310,38,575,36,618,
+ 412,3127,34,625,31,35,30,32,1325,262,
+ 29,27,55,1336,110,80,81,112,1344,286,
+ 1416,1415,1459,1426,386,416,1539,1512,1631,198,
+ 1555,1641,1684,168,1112,38,500,3139,618,2368,
+ 1330,3637,3636,337,2310,38,575,36,618,2774,
+ 3127,34,625,31,35,30,32,1325,262,29,
+ 27,55,1336,110,80,81,112,1344,1545,1416,
+ 1415,1459,1426,247,1904,1539,1512,1631,247,1555,
+ 1641,1684,168,2355,38,575,36,618,411,3127,
+ 34,625,31,35,30,32,1325,262,29,27,
+ 55,1336,110,80,81,112,1344,72,1416,1415,
+ 1459,1426,71,202,1539,1512,1631,430,1555,1641,
+ 1684,168,1112,38,500,281,618,1112,38,643,
+ 382,618,2310,38,575,36,618,414,3127,34,
+ 625,31,35,30,32,1325,262,29,27,55,
+ 1336,110,80,81,112,1344,54,1416,1415,1459,
+ 1426,247,352,1539,1512,1631,247,1555,2950,520,
+ 51,2310,38,575,36,618,3688,3127,34,625,
+ 31,35,30,32,1325,262,29,27,55,1336,
+ 110,80,81,112,1344,70,1416,1415,1459,1426,
+ 69,1923,1539,1512,1631,1815,2937,2310,38,575,
+ 36,618,247,3127,34,625,31,35,30,32,
+ 1325,262,29,27,55,1336,110,80,81,112,
+ 1344,29,1416,1415,1459,1426,3405,247,1539,1512,
+ 2928,2310,38,575,36,618,2979,3127,34,625,
+ 31,35,30,32,1325,262,29,27,55,1336,
+ 110,80,81,112,1344,570,1416,1415,1459,1426,
+ 242,60,1539,2931,2310,38,575,36,618,2628,
+ 3127,34,625,31,35,30,32,1325,262,29,
+ 27,55,1336,110,80,81,112,1344,1904,1416,
+ 1415,1459,2913,2310,38,575,36,618,1209,3127,
+ 34,625,31,35,30,32,1325,262,29,27,
+ 55,1336,110,80,81,112,1344,589,1416,1415,
+ 1459,2927,2400,38,643,382,618,200,3587,1112,
+ 38,500,279,618,1509,237,262,2406,38,278,
+ 247,1112,38,643,382,618,2310,38,575,36,
+ 618,274,3127,34,625,31,35,30,32,1325,
+ 262,29,27,55,1336,110,80,81,112,1344,
+ 420,1416,1415,2848,59,101,514,2310,38,575,
+ 36,618,232,3127,34,625,31,35,30,32,
+ 1325,262,29,27,55,1336,110,80,81,112,
+ 1344,2459,1416,1415,2849,93,1904,1904,106,235,
+ 230,231,2030,247,275,2310,38,575,36,618,
+ 503,3127,34,625,31,35,30,32,1325,262,
+ 29,27,55,1336,110,80,81,112,2753,242,
+ 245,248,251,2840,589,221,4149,105,1717,2598,
+ 38,500,277,618,29,2493,38,440,2427,3478,
+ 590,4834,677,851,2955,2766,2902,3522,3615,2932,
+ 2310,38,575,36,618,377,3127,34,625,31,
+ 35,30,32,1325,262,29,27,55,1336,110,
+ 80,81,112,1344,2082,1416,1415,2859,2310,38,
+ 575,36,618,513,3127,34,625,31,35,30,
+ 32,1325,262,29,27,55,1336,110,80,81,
+ 112,1344,570,1416,1415,2870,2310,38,575,36,
+ 618,1019,3127,34,625,31,35,30,32,1325,
+ 262,29,27,55,1336,110,80,81,112,1344,
+ 1168,1416,2873,2310,38,575,36,618,570,3127,
+ 34,625,31,35,30,32,1325,262,29,27,
+ 55,1336,110,80,81,112,1344,1343,1416,2891,
+ 1043,38,575,36,618,3445,3431,34,625,31,
+ 35,336,32,2310,38,575,36,618,1904,3127,
+ 34,625,31,35,30,32,1325,262,29,27,
+ 55,1336,110,80,81,112,1344,1683,2680,437,
+ 3404,3450,1207,847,1112,38,643,382,618,2598,
+ 38,500,3355,618,659,319,1387,304,2606,38,
+ 388,313,784,1294,1209,3288,2248,348,2310,38,
+ 575,36,618,423,3127,34,625,31,35,30,
+ 32,1325,262,29,27,55,1336,110,80,81,
+ 112,1344,2100,2752,341,1668,1625,346,2353,2100,
+ 427,721,3279,1515,38,575,36,618,3192,3431,
+ 34,625,31,35,336,32,232,1066,38,575,
+ 36,618,3415,3431,34,625,31,35,336,32,
+ 1968,38,2188,1363,618,1325,4689,175,1971,2383,
+ 3200,102,527,244,230,231,2606,38,388,2435,
+ 1112,38,643,382,618,383,395,659,319,54,
+ 2501,229,283,670,313,784,2219,160,1196,3453,
+ 348,3256,319,798,779,2411,184,1936,362,54,
+ 2100,757,1721,204,215,4676,203,212,213,214,
+ 216,2035,1902,798,1760,2499,173,341,1668,1625,
+ 346,705,348,2398,3299,1864,187,171,172,174,
+ 175,176,177,178,1,29,1296,2433,1712,527,
+ 4153,1378,2463,38,643,382,618,1579,3587,341,
+ 1668,1625,346,604,247,238,262,339,229,2247,
+ 938,1273,2248,284,160,2521,1112,38,643,382,
+ 618,274,232,184,1936,2154,2100,3745,239,262,
+ 204,215,4676,203,212,213,214,216,3264,29,
+ 1840,315,247,173,3519,274,2926,185,1647,247,
+ 230,231,232,188,171,172,174,175,176,177,
+ 178,1178,38,575,36,618,1320,4216,34,625,
+ 31,35,336,32,1716,232,438,49,2464,236,
+ 230,231,2924,1033,275,331,332,1379,2452,298,
+ 1349,1932,1382,2610,2086,2452,4532,4761,2452,1907,
+ 2860,1921,240,230,231,1939,2452,340,276,243,
+ 246,249,252,2840,229,659,319,229,1717,329,
+ 1296,2498,313,784,1082,2710,652,1904,1883,2452,
+ 2860,1112,38,643,382,618,1506,399,2827,206,
+ 215,4676,205,212,213,214,216,2399,2710,247,
+ 3299,4650,329,1874,2368,518,400,2639,3103,207,
+ 422,3103,2452,2015,1962,586,4181,307,526,1727,
+ 1148,217,208,209,210,211,292,293,294,295,
+ 2926,229,329,2728,709,589,1694,1345,38,643,
+ 382,618,492,3093,1463,164,29,4339,2966,1941,
+ 589,2159,2536,206,215,4676,205,212,213,214,
+ 216,2018,29,3726,3231,356,54,3094,1775,328,
+ 332,2739,29,207,1957,3103,2452,4545,490,491,
+ 798,870,1950,3158,3164,217,208,209,210,211,
+ 292,293,294,295,372,229,29,1780,401,404,
+ 1170,833,1082,418,247,3064,1797,2452,2860,372,
+ 2086,4339,3205,1649,247,2100,2860,206,215,4676,
+ 205,212,213,214,216,3270,2710,351,2460,1112,
+ 38,643,382,618,520,2757,247,207,3553,3103,
+ 2452,1423,1112,38,643,382,618,2860,3608,217,
+ 208,209,210,211,292,293,294,295,54,229,
+ 329,1112,38,643,382,618,2601,348,329,3125,
+ 3646,421,798,2901,29,4339,3443,434,305,3614,
+ 2409,206,215,4676,205,212,213,214,216,1986,
+ 54,370,785,356,341,1668,1625,346,2024,330,
+ 3231,207,1864,3103,798,2467,3186,1904,348,2263,
+ 1950,3158,3164,217,208,209,210,211,292,293,
+ 294,295,1591,38,575,36,618,3445,3431,34,
+ 625,31,35,336,32,343,1668,1625,346,4339,
+ 3649,2310,38,575,36,618,303,3127,34,625,
+ 31,35,30,32,1325,262,29,27,55,1336,
+ 110,80,81,112,2773,1782,1112,38,643,382,
+ 618,1112,38,500,3371,618,659,319,899,2372,
+ 1914,2632,1904,313,784,2570,2860,515,2504,348,
+ 2310,38,575,36,618,274,3127,34,625,31,
+ 35,30,32,1325,262,29,27,55,1336,110,
+ 80,81,112,2808,2637,1921,341,1668,1625,346,
+ 2452,4918,2581,3109,516,1159,38,3368,36,618,
+ 1320,4216,34,625,31,35,336,32,3370,2710,
+ 247,1309,38,643,382,618,1112,38,643,382,
+ 618,586,262,2100,1413,2086,1148,527,78,4243,
+ 2651,2860,2649,2664,2669,1112,38,643,382,618,
+ 54,1904,1267,1296,2447,439,229,2452,4532,659,
+ 319,164,160,329,798,838,313,784,1962,827,
+ 1022,184,1936,2670,54,2663,229,2071,204,215,
+ 4676,203,212,213,214,216,492,349,798,884,
+ 222,173,527,329,247,4650,297,100,1506,399,
+ 2827,3689,171,172,174,175,176,177,178,1296,
+ 29,229,1928,2926,29,3033,29,160,400,1020,
+ 3103,3542,489,491,285,785,184,1936,2574,1821,
+ 2678,1904,2368,204,215,4676,203,212,213,214,
+ 216,2674,29,436,151,1904,173,3097,527,2452,
+ 2809,3126,3136,332,247,3093,180,171,172,174,
+ 175,176,177,178,3375,407,3369,229,2710,2926,
+ 299,2676,232,160,2680,2581,3109,1526,38,643,
+ 382,618,184,1936,195,2682,1549,1729,3555,204,
+ 215,4676,203,212,213,214,216,2489,523,250,
+ 230,231,173,527,1296,2016,54,2662,3152,332,
+ 401,403,191,171,172,174,175,176,177,178,
+ 798,2325,229,3140,1932,247,2668,2684,160,2587,
+ 4761,434,2802,2956,3030,356,610,184,1936,2100,
+ 2689,527,88,247,204,215,4676,203,212,213,
+ 214,216,2332,3158,3164,321,1210,173,29,3739,
+ 229,2452,520,3161,2926,232,160,3746,171,172,
+ 174,175,176,177,178,184,1936,3794,2697,2218,
+ 340,2688,204,215,4676,203,212,213,214,216,
+ 519,697,253,230,231,173,527,285,1112,38,
+ 291,2845,296,3526,332,194,171,172,174,175,
+ 176,177,178,522,29,229,2705,2621,1745,3225,
+ 29,160,1148,2890,3126,4347,2695,1463,29,784,
+ 184,1936,2706,2452,527,2708,2675,204,215,4676,
+ 203,212,213,214,216,5478,1436,160,5478,5478,
+ 173,3312,340,229,5478,5478,201,2418,5478,160,
+ 190,171,172,174,175,176,177,178,184,1936,
+ 5478,5478,5478,2845,5478,204,215,4676,203,212,
+ 213,214,216,5478,871,2550,419,29,173,527,
+ 5478,586,1148,5478,5478,5478,1148,5478,197,171,
+ 172,174,175,176,177,178,5478,5478,229,5478,
+ 29,2579,5478,5478,160,1148,1148,160,5478,5478,
+ 5478,164,5478,184,1936,5478,5478,1769,5478,5478,
+ 204,215,4676,203,212,213,214,216,5478,5478,
+ 160,160,5478,173,5478,3061,5478,5478,3297,5478,
+ 2943,166,5478,196,171,172,174,175,176,177,
+ 178,2310,38,575,36,618,5478,3127,34,625,
+ 31,35,30,32,1325,262,29,27,55,1336,
+ 110,80,81,89,2310,38,575,36,618,2357,
+ 3127,34,625,31,35,30,32,1325,262,29,
+ 27,55,1336,110,80,81,87,2310,38,575,
+ 36,618,3067,3127,34,625,31,35,30,32,
+ 1325,262,29,27,55,1336,110,80,81,86,
+ 2310,38,575,36,618,5478,3127,34,625,31,
+ 35,30,32,1325,262,29,27,55,1336,110,
+ 80,81,85,2310,38,575,36,618,5478,3127,
+ 34,625,31,35,30,32,1325,262,29,27,
+ 55,1336,110,80,81,84,2310,38,575,36,
+ 618,5478,3127,34,625,31,35,30,32,1325,
+ 262,29,27,55,1336,110,80,81,83,2310,
+ 38,575,36,618,5478,3127,34,625,31,35,
+ 30,32,1325,262,29,27,55,1336,110,80,
+ 81,82,2173,38,575,36,618,5478,3127,34,
+ 625,31,35,30,32,1325,262,29,27,55,
+ 1336,110,80,81,108,2310,38,575,36,618,
+ 5478,3127,34,625,31,35,30,32,1325,262,
+ 29,27,55,1336,110,80,81,114,2310,38,
+ 575,36,618,5478,3127,34,625,31,35,30,
+ 32,1325,262,29,27,55,1336,110,80,81,
+ 113,2310,38,575,36,618,5478,3127,34,625,
+ 31,35,30,32,1325,262,29,27,55,1336,
+ 110,80,81,111,2310,38,575,36,618,5478,
+ 3127,34,625,31,35,30,32,1325,262,29,
+ 27,55,1336,110,80,81,109,2839,5478,2579,
+ 5478,5478,2452,151,1148,586,2548,586,2452,5478,
+ 1148,2452,1148,1112,38,291,5478,5478,5478,5478,
+ 5478,229,5478,5478,5478,5478,5478,2710,5478,160,
+ 229,2579,5478,5478,5478,164,1148,164,5478,166,
+ 5478,5478,5478,206,215,4676,205,212,213,214,
+ 216,5478,206,215,4676,205,212,213,214,216,
+ 5478,160,5478,207,5478,3103,1309,38,643,382,
+ 618,166,207,5478,3103,486,208,209,210,211,
+ 292,293,294,295,508,208,209,210,211,292,
+ 293,294,295,2857,356,54,5478,5478,2452,5478,
+ 3372,5478,2875,2470,5478,2543,5478,2452,5478,798,
+ 2321,2944,3158,3164,5478,5478,5478,229,5478,5478,
+ 5478,5478,2071,5478,5478,5478,229,5478,5478,5478,
+ 5478,5478,3635,5478,5478,5478,5478,5478,5478,206,
+ 215,4676,205,212,213,214,216,5478,206,215,
+ 4676,205,212,213,214,216,5478,5478,5478,207,
+ 5478,3103,5478,3541,5478,5478,5478,5478,207,5478,
+ 3103,306,208,209,210,211,292,293,294,295,
+ 509,208,209,210,211,292,293,294,295,2721,
+ 5478,5478,5478,5478,2452,5478,5478,1447,38,575,
+ 36,618,1320,3431,34,625,31,35,336,32,
+ 5478,5478,5478,229,5478,5478,5478,1112,38,643,
+ 382,618,1220,38,575,36,618,1320,3431,34,
+ 625,31,35,336,32,206,215,4676,205,212,
+ 213,214,216,5478,5478,5478,54,5478,29,586,
+ 5478,659,319,1148,1148,207,5478,3103,313,784,
+ 798,870,652,5478,5478,5478,5478,218,208,209,
+ 210,211,292,293,294,295,659,319,160,164,
+ 5478,5478,5478,313,784,5478,5478,652,2193,1104,
+ 38,3368,36,618,1320,3431,34,625,31,35,
+ 336,32,5478,307,526,2265,38,575,36,618,
+ 5478,3127,34,625,31,35,30,32,1325,262,
+ 29,27,55,1336,90,80,81,5478,524,526,
+ 5478,5478,5478,5478,5478,5478,5478,5478,3461,5478,
+ 5478,5478,5478,659,319,5478,5478,2982,5478,3726,
+ 313,784,5478,5478,1022,1582,38,575,36,618,
+ 1320,3431,34,625,31,35,336,32,1582,38,
+ 575,36,618,1320,3431,34,625,31,35,336,
+ 32,5478,1112,38,643,382,618,5478,5478,5478,
+ 5478,2579,5478,557,5478,2558,527,5478,5478,5478,
+ 2452,5478,5478,1900,5478,5478,5478,5478,2452,659,
+ 319,54,5478,5478,5478,3730,313,784,5478,2710,
+ 652,160,659,319,5478,798,2747,340,5478,313,
+ 784,166,5478,1196,1582,38,575,36,618,1320,
+ 3431,34,625,31,35,336,32,5478,714,408,
+ 3369,29,5478,29,29,5478,1148,5478,527,1148,
+ 5478,308,526,1057,38,575,36,618,5478,4216,
+ 34,625,31,35,336,32,5478,340,5478,5478,
+ 5478,160,5478,160,160,5478,492,5478,659,319,
+ 5478,2198,2537,192,2281,313,784,5478,4584,3742,
+ 1057,38,575,36,618,5478,4216,34,625,31,
+ 35,336,32,5478,5478,5478,5478,659,319,5478,
+ 5478,330,489,491,314,784,1654,38,575,36,
+ 618,3001,3431,34,625,31,35,336,32,1853,
+ 38,643,382,618,1526,38,643,382,618,1599,
+ 38,643,382,618,659,319,5478,5478,330,5478,
+ 5478,316,784,5478,3639,5478,5478,3821,54,3194,
+ 5478,443,5478,54,5478,5478,5478,5478,54,5478,
+ 3256,319,798,52,5478,5478,5478,798,52,429,
+ 5478,5478,798,2588,5478,1016,5478,5478,5478,5478,
+ 1292,5478,5478,5478,5478,2956,2097,38,643,382,
+ 618,1309,38,643,382,618,2097,38,643,382,
+ 618,5478,1309,38,643,382,618,1309,38,643,
+ 382,618,5478,5478,5478,54,5478,5478,5478,5478,
+ 54,5478,5478,5478,5478,54,5478,5478,5478,798,
+ 2624,54,5478,5478,798,52,54,5478,29,798,
+ 52,5478,1023,2452,5478,798,52,2471,5478,5478,
+ 798,52,1075,1309,38,643,382,618,2754,1840,
+ 315,5478,340,3071,1309,38,643,382,618,2624,
+ 38,643,382,618,2658,38,643,382,618,5478,
+ 5478,29,54,2845,5478,5478,527,5478,5478,5478,
+ 5478,5478,5478,54,5478,2590,798,52,54,29,
+ 5478,5478,5478,54,527,340,5478,798,52,3232,
+ 29,160,798,52,5478,527,5478,798,52,29,
+ 3436,1520,5478,340,527,3708,2845,29,29,160,
+ 4163,5478,2452,527,340,5478,29,29,1301,1606,
+ 160,2452,2452,340,2845,5478,5478,5478,2579,160,
+ 1520,340,340,1148,5478,2845,1563,29,160,192,
+ 340,340,1148,5478,4584,29,29,1778,192,5478,
+ 2452,2452,2845,4584,2693,29,5478,5478,160,2452,
+ 2452,2845,2845,5478,2592,5478,29,160,166,340,
+ 340,1148,5478,2593,2022,5478,5478,2286,340,340,
+ 29,5478,5478,5478,5478,1148,5478,5478,5478,5478,
+ 2845,2845,5478,5478,5478,5478,160,5478,5478,3756,
+ 2845,5478,496,494,5478,5478,2428,5478,5478,5478,
+ 160,5478,523,5478,5478,3204,5478,5478,5478,5478,
+ 3564,5478,5478,5478,3226,5478,5478,5478,5478,3653,
+ 5478,5478,5478,5478,5478,5478,5478,5478,5478,5478,
+ 5478,5478,5478,5478,5478,5478,5478,5478,5478,5478,
+ 5478,5478,5478,5478,5478,5478,5478,5478,5478,5478,
+ 5478,5478,5478,5478,5478,5478,5478,5478,5478,5478,
+ 5478,5478,5478,5478,5478,5478,5478,5478,5478,5478,
+ 5478,5478,5478,5478,5478,5478,5478,5478,5478,5478,
+ 5478,5478,5478,5478,5478,5478,5478,5478,5478,5478,
+ 5478,5478,5478,5478,5478,5478,5478,5478,5478,5478,
+ 5478,5478,5478,5478,5478,5478,5478,5478,5478,5478,
+ 5478,5478,5478,5478,5478,5478,5478,5478,5478,5478,
+ 5478,5478,5478,5478,5478,5478,5478,5478,5478,5478,
+ 5478,5478,3504,5478,0,42,5496,1,0,42,
+ 5495,1,0,1139,1,0,500,33,0,441,
+ 612,0,5496,53,0,5495,53,0,41,5496,
+ 0,41,5495,0,42,5496,0,42,5495,0,
+ 500,381,0,1,431,0,445,1425,0,444,
+ 1434,0,52,40,0,500,44,0,130,2600,
+ 0,1,1120,0,1,5751,0,1,5750,0,
+ 1,5749,0,1,5748,0,1,5747,0,1,
+ 5746,0,1,5745,0,1,5744,0,1,5743,
+ 0,1,5742,0,1,5741,0,5712,241,0,
+ 5711,241,0,5813,241,0,5812,241,0,5739,
+ 241,0,5738,241,0,5737,241,0,5736,241,
+ 0,5735,241,0,5734,241,0,5733,241,0,
+ 5732,241,0,5751,241,0,5750,241,0,5749,
+ 241,0,5748,241,0,5747,241,0,5746,241,
+ 0,5745,241,0,5744,241,0,5743,241,0,
+ 5742,241,0,5741,241,0,42,241,5496,0,
+ 42,241,5495,0,5519,241,0,53,5496,0,
+ 53,5495,0,48,5517,0,48,40,0,823,
+ 95,0,36,382,0,382,36,0,33,381,
+ 0,381,33,0,500,33,381,0,42,951,
+ 0,30,507,0,5805,432,0,772,432,0,
+ 237,3105,0,132,2600,0,131,2600,0,5519,
+ 228,1,0,42,228,1,0,228,406,0,
+ 40,5496,0,40,5495,0,5517,50,0,50,
+ 40,0,5519,1,0,42,1,0,1,96,
+ 0,5488,397,0,5487,397,0,4518,1,0,
+ 4553,1,0,951,1,0,228,405,0,40,
+ 5496,2,0,40,5495,2,0,5496,39,0,
+ 5495,39,0,1,5805,0,1,772,0,5805,
+ 99,0,772,99,0,279,3801,0,1,1129,
+ 0,1,2768,0,5486,1,0,488,4156,0,
+ 228,1,0,228,1,3540,0,5488,228,0,
+ 5487,228,0,3652,228,0,8,10,0,228,
+ 220,0,228,219,0,189,3701,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,31,32,33,34,35,36,37,38,39,
+ 40,41,42,0,44,45,46,47,48,49,
+ 50,51,52,53,54,55,56,57,58,59,
+ 0,61,62,0,64,65,3,0,68,69,
+ 70,71,0,73,74,75,76,77,78,79,
+ 80,0,82,83,84,85,86,0,1,2,
+ 3,4,5,6,7,8,9,10,11,12,
+ 13,14,15,16,17,18,19,20,21,22,
+ 23,24,25,26,27,43,29,30,31,32,
+ 33,34,35,36,37,38,39,40,41,42,
+ 67,44,45,46,47,48,49,50,51,52,
+ 53,54,55,56,57,58,59,0,61,62,
+ 0,64,65,6,0,68,69,70,71,9,
+ 73,74,75,76,77,78,79,80,101,82,
+ 83,84,85,86,0,1,2,3,4,5,
+ 6,7,8,9,10,11,12,13,14,15,
+ 16,17,18,19,20,21,22,23,24,25,
+ 26,27,121,29,30,31,32,33,34,35,
+ 36,37,38,39,40,41,42,63,44,45,
+ 46,47,48,49,50,51,52,53,54,55,
+ 56,57,58,59,0,61,62,87,64,65,
+ 0,0,68,69,70,95,0,73,74,75,
+ 76,77,78,79,80,9,82,83,84,85,
+ 86,0,1,2,3,4,5,6,7,8,
+ 9,10,11,12,13,14,15,16,17,18,
+ 19,20,21,22,23,24,25,26,27,0,
+ 29,30,31,32,33,34,35,36,37,38,
+ 39,40,41,42,63,44,45,46,47,48,
+ 49,50,51,52,53,54,55,56,57,58,
+ 59,0,61,62,0,64,65,0,0,68,
+ 69,70,43,87,73,74,75,76,77,78,
+ 79,80,0,82,83,84,85,86,0,1,
+ 2,3,4,5,6,7,8,9,10,11,
+ 12,13,14,15,16,17,18,19,20,21,
+ 22,23,24,25,26,27,0,29,30,31,
+ 32,33,34,35,36,37,38,39,40,41,
+ 42,49,44,45,46,47,48,49,50,51,
+ 52,53,54,55,56,57,58,59,0,61,
+ 62,0,64,65,90,4,68,69,70,43,
+ 96,73,74,75,76,77,78,79,80,0,
+ 82,83,84,85,86,0,1,2,3,4,
+ 5,6,7,8,9,10,11,12,13,14,
+ 15,16,17,18,19,20,21,22,23,24,
+ 25,26,27,0,29,30,31,32,33,34,
+ 35,36,37,38,39,40,41,42,49,44,
+ 45,46,47,48,49,50,51,52,53,54,
+ 55,56,57,58,59,0,61,62,0,64,
+ 65,3,0,68,69,70,11,12,73,74,
+ 75,76,77,78,79,80,0,82,83,84,
+ 85,86,0,1,2,3,4,5,6,7,
+ 8,9,10,11,12,13,14,15,16,17,
+ 18,19,20,21,22,23,24,25,26,27,
+ 0,29,30,31,32,33,34,35,36,37,
+ 38,39,40,41,42,63,44,45,46,47,
+ 48,49,50,51,52,53,54,55,56,57,
+ 58,59,66,61,62,0,64,65,0,0,
+ 68,69,70,43,9,73,74,75,76,77,
+ 78,79,80,0,82,83,84,85,86,0,
+ 1,2,3,4,5,6,7,8,9,10,
+ 11,12,13,14,15,16,17,18,19,20,
+ 21,22,23,24,25,26,27,49,29,30,
+ 31,32,33,34,35,36,37,38,39,40,
+ 41,42,63,44,45,46,47,48,49,50,
+ 51,52,53,54,55,56,57,58,59,0,
+ 61,62,87,64,65,72,0,68,69,70,
+ 11,12,73,74,75,76,77,78,79,80,
+ 0,82,83,84,85,86,0,1,2,3,
+ 4,5,6,7,8,9,10,11,12,13,
+ 14,15,16,17,18,19,20,21,22,23,
+ 24,25,26,27,0,29,30,31,32,33,
+ 34,35,36,37,38,39,40,41,42,63,
+ 44,45,46,47,48,49,50,51,52,53,
+ 54,55,56,57,58,59,0,61,62,0,
+ 64,65,72,4,68,69,70,11,12,73,
+ 74,75,76,77,78,79,80,0,82,83,
+ 84,85,86,0,1,2,3,4,5,6,
+ 7,8,9,10,11,12,13,14,15,16,
+ 17,18,19,20,21,22,23,24,25,26,
+ 27,0,29,30,31,32,33,34,35,36,
+ 37,38,39,40,41,42,0,44,45,46,
+ 47,48,49,50,51,52,53,54,55,56,
+ 57,58,59,66,61,62,0,64,65,0,
+ 0,68,69,70,43,29,73,74,75,76,
+ 77,78,79,80,0,82,83,84,85,86,
+ 0,1,2,3,4,5,6,7,8,9,
+ 10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,25,26,27,0,29,
+ 30,31,32,33,34,35,36,37,38,39,
+ 40,41,42,63,44,45,46,47,48,49,
+ 50,51,52,53,54,55,56,57,58,59,
+ 0,61,62,3,64,65,90,0,68,69,
+ 70,43,96,73,74,75,76,77,78,79,
+ 80,102,82,83,84,85,86,0,1,2,
+ 3,4,5,6,7,8,117,10,11,12,
+ 72,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,41,42,
+ 0,44,45,46,0,48,0,50,51,52,
+ 53,54,6,56,57,58,59,0,0,62,
+ 3,3,0,1,2,68,69,70,0,7,
+ 0,3,0,0,6,3,8,9,101,11,
+ 12,13,0,1,2,3,4,5,6,7,
+ 8,0,1,2,26,27,0,1,2,3,
+ 4,5,6,7,8,0,1,2,3,4,
+ 5,43,7,43,9,0,1,2,13,28,
+ 5,0,1,2,0,4,0,6,60,8,
+ 9,63,88,89,66,67,10,91,92,71,
+ 72,0,60,0,1,2,3,4,5,67,
+ 7,0,1,2,0,87,88,89,90,91,
+ 92,93,94,95,96,97,98,99,100,101,
+ 102,103,104,105,106,107,108,109,110,111,
+ 112,113,0,0,0,117,118,3,120,121,
+ 6,67,8,9,0,11,12,13,0,1,
+ 2,3,4,5,6,7,8,0,87,0,
+ 26,27,3,6,60,72,95,0,1,2,
+ 3,4,5,6,7,8,102,43,104,105,
+ 106,107,108,109,110,111,112,113,0,1,
+ 2,117,4,5,60,7,0,63,0,0,
+ 66,67,6,0,60,71,72,9,9,0,
+ 1,2,3,4,5,6,7,8,0,60,
+ 72,87,88,89,90,91,92,93,94,95,
+ 96,97,98,99,100,101,102,103,104,105,
+ 106,107,108,109,110,111,112,113,91,92,
+ 0,117,118,0,120,121,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,73,0,28,0,87,91,92,0,
+ 1,2,3,4,5,6,7,8,0,1,
+ 2,45,46,47,48,0,50,51,52,53,
+ 54,43,56,57,0,59,118,3,62,0,
+ 1,2,0,9,68,69,70,71,72,73,
+ 8,46,0,48,0,1,2,81,0,1,
+ 2,3,4,5,6,7,8,9,10,60,
+ 100,13,14,15,16,17,18,19,20,21,
+ 22,23,24,25,97,98,28,0,49,0,
+ 114,115,116,90,60,8,0,63,9,96,
+ 66,0,13,45,46,47,48,0,50,51,
+ 52,53,54,17,56,57,0,59,64,65,
+ 62,87,0,0,1,2,68,69,70,71,
+ 72,73,0,1,2,3,4,0,6,81,
+ 8,45,46,0,48,0,50,51,52,53,
+ 54,28,56,57,9,59,0,1,2,3,
+ 4,5,123,7,0,9,114,115,116,13,
+ 0,49,114,115,116,0,1,2,3,4,
+ 5,6,7,8,0,10,11,12,4,14,
+ 15,16,60,18,19,20,21,22,23,24,
+ 25,26,27,60,29,30,31,32,33,34,
+ 35,36,37,38,39,40,41,42,0,44,
+ 119,0,4,0,0,1,2,3,4,5,
+ 9,7,87,58,13,0,1,2,63,64,
+ 65,0,1,2,3,4,5,6,7,8,
+ 9,10,11,12,0,14,15,16,4,18,
+ 19,20,21,22,23,24,25,26,27,99,
+ 29,30,31,32,33,34,35,36,37,38,
+ 39,40,41,42,60,44,63,66,0,66,
+ 49,0,1,2,3,4,5,43,7,58,
+ 0,1,2,3,4,5,0,7,0,1,
+ 2,5,71,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,31,32,33,34,35,36,
+ 37,38,39,40,41,42,0,44,0,3,
+ 60,3,49,0,1,2,3,4,5,43,
+ 7,58,64,65,0,0,1,2,3,4,
+ 5,6,7,8,71,10,11,12,100,14,
+ 15,16,0,18,19,20,21,22,23,24,
+ 25,26,27,0,29,30,31,32,33,34,
+ 35,36,37,38,39,40,41,42,60,44,
+ 28,0,0,1,2,0,4,5,3,7,
+ 0,1,2,58,4,5,0,7,0,64,
+ 65,0,1,2,3,4,5,6,7,8,
+ 28,10,11,12,0,14,15,16,28,18,
+ 19,20,21,22,23,24,25,26,27,66,
+ 29,30,31,32,33,34,35,36,37,38,
+ 39,40,41,42,0,44,0,1,2,0,
+ 4,0,6,4,8,4,0,1,2,58,
+ 4,63,6,67,8,64,65,0,1,2,
+ 3,4,5,6,7,8,62,10,11,12,
+ 99,14,15,16,0,18,19,20,21,22,
+ 23,24,25,26,27,0,29,30,31,32,
+ 33,34,35,36,37,38,39,40,41,42,
+ 0,44,28,0,1,2,49,4,0,6,
+ 0,8,0,1,2,58,0,1,2,3,
+ 4,5,6,7,8,9,10,11,12,95,
+ 14,15,16,0,18,19,20,21,22,23,
+ 24,25,26,27,0,29,30,31,32,33,
+ 34,35,36,37,38,39,40,41,42,0,
+ 44,0,3,0,5,6,0,8,60,3,
+ 11,12,9,0,1,2,13,4,17,6,
+ 0,8,0,1,2,26,27,0,6,30,
+ 10,0,0,1,2,4,4,5,0,7,
+ 0,3,43,3,17,72,45,46,28,48,
+ 28,50,51,52,53,54,0,56,57,60,
+ 59,0,63,64,65,66,67,0,1,2,
+ 0,4,45,46,118,48,45,50,51,52,
+ 53,54,62,56,57,0,59,88,89,90,
+ 91,92,93,94,0,28,97,98,99,100,
+ 101,102,103,104,105,106,107,108,109,110,
+ 111,112,113,0,0,0,3,0,5,6,
+ 3,8,66,0,11,12,0,1,2,0,
+ 4,0,17,72,0,1,2,43,9,26,
+ 27,0,28,30,0,114,115,116,0,1,
+ 2,0,67,5,0,7,43,63,88,89,
+ 45,46,28,48,0,50,51,52,53,54,
+ 0,56,57,60,59,49,63,64,65,66,
+ 67,0,1,2,43,0,5,93,94,4,
+ 67,6,0,8,43,66,0,1,2,0,
+ 71,88,89,90,91,92,93,94,9,28,
+ 97,98,99,100,101,102,103,104,105,106,
+ 107,108,109,110,111,112,113,0,1,2,
+ 3,4,5,6,7,8,0,10,11,12,
+ 4,14,15,16,74,18,19,20,21,22,
+ 23,24,25,26,27,0,29,30,31,32,
+ 33,34,35,36,37,38,39,40,41,42,
+ 71,44,0,1,2,3,4,5,6,7,
+ 8,45,10,11,12,58,14,15,16,0,
+ 18,19,20,21,22,23,24,25,26,27,
+ 0,29,30,31,32,33,34,35,36,37,
+ 38,39,40,41,42,60,44,0,0,0,
+ 1,2,3,4,5,6,7,8,10,10,
+ 11,12,60,14,15,16,0,18,19,20,
+ 21,22,23,24,25,26,27,0,29,30,
+ 31,32,33,34,35,36,37,38,39,40,
+ 41,42,0,44,0,1,2,3,4,5,
+ 6,7,8,55,10,11,12,58,14,15,
+ 16,0,18,19,20,21,22,23,24,25,
+ 26,27,75,29,30,31,32,33,34,35,
+ 36,37,38,39,40,41,42,60,44,0,
+ 1,2,3,4,5,6,7,8,0,10,
+ 11,12,60,14,15,16,0,18,19,20,
+ 21,22,23,24,25,26,27,0,29,30,
+ 31,32,33,34,35,36,37,38,39,40,
+ 41,42,0,44,0,1,2,3,4,5,
+ 6,7,8,0,10,11,12,0,14,15,
+ 16,0,18,19,20,21,22,23,24,25,
+ 26,27,0,29,30,31,32,33,34,35,
+ 36,37,38,39,40,41,42,0,44,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,58,0,1,2,0,
+ 1,2,0,28,0,0,1,2,28,4,
+ 43,0,90,72,45,46,0,48,96,50,
+ 51,52,53,54,28,56,57,28,59,0,
+ 63,62,0,1,2,0,4,68,69,70,
+ 88,89,10,0,66,43,14,15,16,17,
+ 18,19,20,21,22,23,24,25,0,43,
+ 93,94,0,1,2,63,4,0,0,95,
+ 0,0,43,0,3,0,9,45,46,0,
+ 48,0,50,51,52,53,54,29,56,57,
+ 0,59,88,89,62,93,94,26,27,0,
+ 68,69,70,0,14,15,16,17,18,19,
+ 20,21,22,23,24,25,43,0,1,2,
+ 3,4,5,6,7,8,9,0,0,0,
+ 13,60,4,66,17,45,46,10,48,0,
+ 50,51,52,53,54,28,56,57,0,59,
+ 0,1,2,0,87,28,0,9,88,89,
+ 43,13,9,0,47,97,98,0,1,2,
+ 0,43,55,3,103,0,1,2,61,0,
+ 1,2,3,4,5,6,7,8,9,62,
+ 0,120,13,0,1,2,17,0,81,9,
+ 3,0,63,13,3,66,0,28,0,1,
+ 2,3,4,5,6,7,8,9,0,63,
+ 0,13,66,3,71,17,47,0,1,2,
+ 67,0,0,0,55,87,28,0,0,0,
+ 61,3,3,0,0,0,3,0,3,0,
+ 71,0,3,0,3,47,0,0,0,0,
+ 81,3,0,55,0,0,0,3,0,61,
+ 0,0,66,0,0,0,0,0,0,71,
+ 49,0,0,0,0,67,49,0,0,81,
+ 0,1,2,3,4,5,6,7,8,9,
+ 67,0,29,13,72,0,0,17,0,1,
+ 2,3,4,5,6,7,8,9,28,72,
+ 67,13,0,0,67,17,0,1,2,3,
+ 4,5,6,7,8,9,28,47,72,13,
+ 66,0,67,17,67,55,0,0,43,0,
+ 0,61,0,0,28,47,0,95,0,0,
+ 0,71,0,55,0,0,122,0,0,61,
+ 0,81,0,47,0,119,0,0,119,71,
+ 0,55,0,0,0,0,0,61,0,81,
+ 0,0,0,0,0,0,0,71,0,0,
+ 0,0,0,0,0,0,0,81,0,1,
+ 2,3,4,5,6,7,8,9,0,0,
+ 0,13,0,0,0,17,0,1,2,3,
+ 4,5,6,7,8,9,28,0,0,13,
+ 0,0,0,17,0,1,2,3,4,5,
+ 6,7,8,9,28,47,0,13,0,0,
+ 0,17,0,55,0,0,0,0,0,61,
+ 0,0,28,47,0,0,0,0,0,0,
+ 0,55,0,0,0,0,0,61,0,81,
+ 0,47,0,0,0,0,0,0,0,55,
+ 0,0,0,0,0,61,0,81,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,81,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,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,
+ 5478,5453,5450,5450,5450,5450,5450,5450,5450,5463,
+ 1,1,1,5460,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,5478,1,1,1,2876,1,933,
+ 1,1,1,1,1,1235,1,1,1,1,
+ 5478,3483,1,311,1,1,576,141,1,1,
+ 1,5485,33,5657,668,3595,2110,2203,2012,3485,
+ 3442,5478,3584,855,3581,3727,3551,8,5466,5466,
+ 5466,5466,5466,5466,5466,5466,5466,5466,5466,5466,
+ 5466,5466,5466,5466,5466,5466,5466,5466,5466,5466,
+ 5466,5466,5466,5466,5466,5146,5466,5466,5466,5466,
+ 5466,5466,5466,5466,5466,5466,5466,5466,5466,5466,
+ 1086,5466,5466,5466,5466,5466,5466,5466,5466,5466,
+ 5466,5466,5466,5466,5466,5466,5466,5478,5466,5466,
+ 1,5466,5466,1582,5478,5466,5466,5466,5466,359,
+ 5466,5466,5466,5466,5466,5466,5466,5466,2291,5466,
+ 5466,5466,5466,5466,5478,5453,5450,5450,5450,5450,
+ 5450,5450,5450,5457,1,1,1,5460,1,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1,5134,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,5977,1,1,
+ 1,2876,1,933,1,1,1,1,1,1235,
+ 1,1,1,1,5478,3483,1,359,1,1,
+ 5478,5478,1,1,1,359,5478,5657,668,3595,
+ 2110,2203,2012,3485,3442,5484,3584,855,3581,3727,
+ 3551,5478,5453,5450,5450,5450,5450,5450,5450,5450,
+ 5457,1,1,1,5460,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,5478,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,5920,1,1,1,2876,1,
+ 933,1,1,1,1,1,1235,1,1,1,
+ 1,5478,3483,1,115,1,1,5478,5478,1,
+ 1,1,561,5483,5657,668,3595,2110,2203,2012,
+ 3485,3442,5478,3584,855,3581,3727,3551,5478,5453,
+ 5450,5450,5450,5450,5450,5450,5450,5457,1,1,
+ 1,5460,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,441,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1182,1,1,1,2876,1,933,1,1,
+ 1,1,1,1235,1,1,1,1,5478,3483,
+ 1,5478,1,1,4055,1004,1,1,1,5149,
+ 4078,5657,668,3595,2110,2203,2012,3485,3442,5478,
+ 3584,855,3581,3727,3551,5478,5453,5450,5450,5450,
+ 5450,5450,5450,5450,5457,1,1,1,5460,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,5478,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1711,1,
+ 1,1,2876,1,933,1,1,1,1,1,
+ 1235,1,1,1,1,122,3483,1,5478,1,
+ 1,4869,5478,1,1,1,2778,2723,5657,668,
+ 3595,2110,2203,2012,3485,3442,161,3584,855,3581,
+ 3727,3551,5478,5453,5450,5450,5450,5450,5450,5450,
+ 5450,5457,1,1,1,5460,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 381,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,2988,1,1,1,2876,
+ 1,933,1,1,1,1,1,1235,1,1,
+ 1,1,1859,3483,1,1,1,1,5478,5478,
+ 1,1,1,5170,165,5657,668,3595,2110,2203,
+ 2012,3485,3442,5478,3584,855,3581,3727,3551,5478,
+ 5453,5450,5450,5450,5450,5450,5450,5450,5457,1,
+ 1,1,5460,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,933,1,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1,3014,1,1,1,2876,1,933,1,
+ 1,1,1,1,1235,1,1,1,1,124,
+ 3483,1,165,1,1,1902,5478,1,1,1,
+ 2778,2723,5657,668,3595,2110,2203,2012,3485,3442,
+ 417,3584,855,3581,3727,3551,5478,5453,5450,5450,
+ 5450,5450,5450,5450,5450,5457,1,1,1,5460,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,1,5478,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,1,3039,
+ 1,1,1,2876,1,933,1,1,1,1,
+ 1,1235,1,1,1,1,123,3483,1,42,
+ 1,1,3031,5519,1,1,1,2778,2723,5657,
+ 668,3595,2110,2203,2012,3485,3442,503,3584,855,
+ 3581,3727,3551,5478,5453,5450,5450,5450,5450,5450,
+ 5450,5450,5457,1,1,1,5460,1,1,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,44,1,1,1,1,1,1,1,1,
+ 1,1,1,1,1,1,5478,1,1,1,
+ 2876,1,933,1,1,1,1,1,1235,1,
+ 1,1,1,904,3483,1,118,1,1,143,
+ 5478,1,1,1,5185,3444,5657,668,3595,2110,
+ 2203,2012,3485,3442,5478,3584,855,3581,3727,3551,
+ 5478,3540,1,1,1,1,1,1,1,5488,
+ 1,1,1,5487,1,1,1,1,1,1,
+ 1,1,1,1,1,1,1,1,33,1,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1,1,3045,1,1,1,2876,1,933,
+ 1,1,1,1,1,1235,1,1,1,1,
+ 5478,3483,1,3105,1,1,4055,142,1,1,
+ 1,500,4078,5657,668,3595,2110,2203,2012,3485,
+ 3442,2252,3584,855,3581,3727,3551,42,5167,5164,
+ 4851,1139,620,3940,4553,3963,3820,1283,3917,3894,
+ 413,5743,5741,5750,5735,5749,5745,5746,5744,5747,
+ 5748,5751,5742,4009,3986,5478,5501,3871,1071,1295,
+ 5503,1116,4455,1145,5504,5502,950,5497,5499,5500,
+ 5478,5498,5738,5812,125,5813,119,5732,5739,5711,
+ 5737,5736,3380,5733,5734,1339,5712,95,237,5868,
+ 5319,5350,41,5161,5158,877,5869,5870,382,776,
+ 5478,5325,1,5478,5325,4907,5325,5322,2291,5322,
+ 5322,5325,363,5139,5135,2813,5143,951,1,4553,
+ 1,40,5182,5182,5322,5322,5478,5167,5164,4518,
+ 1139,951,772,4553,5805,1,5139,5135,5397,5143,
+ 5403,5322,5400,3738,5488,5478,5495,5496,5487,5517,
+ 3356,1,5385,5385,143,5382,302,772,5322,5805,
+ 359,5322,2656,2683,5322,5322,5779,3331,2545,5322,
+ 5322,5478,799,1,5139,5135,4518,5143,951,1206,
+ 4553,5478,5495,5496,317,5322,5322,5322,5322,5322,
+ 5322,5322,5322,5322,5322,5322,5322,5322,5322,5322,
+ 5322,5322,5322,5322,5322,5322,5322,5322,5322,5322,
+ 5322,5322,5478,5478,381,5322,5322,5331,5322,5322,
+ 5331,1816,5331,5328,318,5328,5328,5331,5478,5139,
+ 5135,4518,5143,951,5426,4553,5423,121,359,1,
+ 5328,5328,3190,3380,799,2027,359,310,5139,5135,
+ 4518,5143,951,5426,4553,5423,2252,5334,1773,1730,
+ 1687,1644,1601,1558,1515,1472,1429,1386,5478,5167,
+ 5164,3820,1139,951,5328,4553,120,5328,5478,1,
+ 5328,5328,3380,5478,799,5328,5328,5482,5484,5478,
+ 5139,5135,4518,5143,951,1,4553,1,5478,799,
+ 2027,5328,5328,5328,5328,5328,5328,5328,5328,5328,
+ 5328,5328,5328,5328,5328,5328,5328,5328,5328,5328,
+ 5328,5328,5328,5328,5328,5328,5328,5328,3331,2545,
+ 139,5328,5328,5478,5328,5328,5478,5363,5363,228,
+ 5359,228,228,228,228,5367,1,133,5478,228,
+ 1,1,1,1,1,1,1,1,1,1,
+ 1,1,6003,117,488,333,5483,3331,2545,342,
+ 5167,5164,2813,1139,951,772,4553,5805,5478,5155,
+ 5152,1,1,567,1,5478,1,1,1,1,
+ 1,4808,1,1,1,1,5481,3190,1,5478,
+ 5495,5496,135,338,1,1,1,406,228,5880,
+ 582,5812,428,5813,5478,5495,5496,5965,5478,5363,
+ 5363,228,5359,228,228,228,228,5406,1,799,
+ 2327,228,1,1,1,1,1,1,1,1,
+ 1,1,1,1,2423,2394,488,136,3520,397,
+ 5902,5903,5904,4055,799,582,224,338,5391,4078,
+ 338,5478,5394,1,1,567,1,5478,1,1,
+ 1,1,1,5735,1,1,5478,1,4032,532,
+ 1,338,1,48,5316,5316,1,1,1,405,
+ 228,5880,342,42,42,3190,5519,5478,772,5965,
+ 5805,5738,5812,445,5813,1,5732,5739,5711,5737,
+ 5736,5313,5733,5734,517,5712,1,5139,5135,4518,
+ 5143,951,3617,4553,5478,310,5902,5903,5904,310,
+ 137,3552,5902,5903,5904,1,5139,5135,4851,5143,
+ 620,3940,4553,3963,1,5191,3917,3894,382,5218,
+ 5224,5197,799,5200,5212,5209,5215,5206,5203,5194,
+ 5221,4009,3986,5176,5501,3871,1071,1295,5503,1116,
+ 4455,1145,5504,5502,950,5497,5499,5500,5478,5498,
+ 3650,5478,2885,30,1,5139,5135,2813,5143,951,
+ 5488,4553,517,1339,5487,5478,5310,5307,504,42,
+ 42,42,5167,5164,4851,1139,620,3940,4553,3963,
+ 5486,1120,3917,3894,388,5743,5741,5750,381,5749,
+ 5745,5746,5744,5747,5748,5751,5742,4009,3986,2361,
+ 5501,3871,1071,1295,5503,1116,4455,1145,5504,5502,
+ 950,5497,5499,5500,799,5498,5341,4439,140,5341,
+ 1057,1,5139,5135,4518,5143,951,500,4553,1339,
+ 1,5139,5135,2813,5143,951,5478,4553,5478,5310,
+ 5307,3356,5485,42,5167,5164,4851,1139,620,3940,
+ 4553,3963,5486,1120,3917,3894,53,5743,5741,5750,
+ 5496,5749,5745,5746,5744,5747,5748,5751,5742,4009,
+ 3986,5478,5501,3871,1071,1295,5503,1116,4455,1145,
+ 5504,5502,950,5497,5499,5500,5478,5498,344,4398,
+ 799,1754,1057,1,5139,5135,5397,5143,5403,5496,
+ 5400,1339,4032,532,5478,145,5167,5164,4851,1139,
+ 620,3940,4553,3963,5485,1120,3917,3894,2327,5743,
+ 5741,5750,40,5749,5745,5746,5744,5747,5748,5751,
+ 5742,4009,3986,287,5501,3871,1071,1295,5503,1116,
+ 4455,1145,5504,5502,950,5497,5499,5500,799,5498,
+ 5517,138,5478,5167,5164,5478,1139,5338,4601,4553,
+ 5478,5167,5164,1339,1139,5338,289,4553,5478,42,
+ 42,1,5139,5135,4851,5143,620,3940,4553,3963,
+ 654,5191,3917,3894,5478,5218,5224,5197,1191,5200,
+ 5212,5209,5215,5206,5203,5194,5221,4009,3986,2017,
+ 5501,3871,1071,1295,5503,1116,4455,1145,5504,5502,
+ 950,5497,5499,5500,354,5498,431,1,1,5478,
+ 1,5478,5173,943,5173,1254,432,42,42,1339,
+ 5519,4252,5347,1988,5344,42,42,42,5167,5164,
+ 4851,1139,620,3940,4553,3963,2856,1120,3917,3894,
+ 2361,5743,5741,5750,52,5749,5745,5746,5744,5747,
+ 5748,5751,5742,4009,3986,5478,5501,3871,1071,1295,
+ 5503,1116,4455,1145,5504,5502,950,5497,5499,5500,
+ 5478,5498,2066,96,1,1,1057,1,444,5388,
+ 5478,5388,53,5310,5307,1339,42,5167,5164,4851,
+ 1139,620,3940,4553,3963,5482,1120,3917,3894,5831,
+ 5743,5741,5750,5478,5749,5745,5746,5744,5747,5748,
+ 5751,5742,4009,3986,5478,5501,3871,1071,1295,5503,
+ 1116,4455,1145,5504,5502,950,5497,5499,5500,1,
+ 5498,225,1110,5478,5934,5928,5478,5932,5179,4604,
+ 5926,5927,5488,99,42,42,5487,5519,5735,5432,
+ 1,5429,40,5182,5182,5957,5958,226,1582,5935,
+ 5438,42,5478,5167,5164,5519,1139,951,5478,4553,
+ 5478,4927,5937,3801,5735,5871,5738,5812,3378,5813,
+ 5517,5732,5739,5711,5737,5736,358,5733,5734,995,
+ 5712,435,5938,763,773,5959,5936,389,5167,5164,
+ 129,5519,5738,5812,5481,5813,2707,5732,5739,5711,
+ 5737,5736,5441,5733,5734,366,5712,5948,5947,5960,
+ 5929,5930,5953,5954,130,42,5951,5952,5931,5933,
+ 5955,5956,5961,5941,5942,5943,5939,5940,5949,5950,
+ 5945,5944,5946,5478,5478,227,1110,5478,5934,5928,
+ 4155,5932,1453,364,5926,5927,5478,5167,5164,5478,
+ 5519,5478,5735,848,5478,8740,8740,2628,5486,5957,
+ 5958,5478,3218,5935,5478,5902,5903,5904,5478,5495,
+ 5496,5478,1249,951,5478,4553,5937,5188,2656,2683,
+ 5738,5812,5517,5813,5478,5732,5739,5711,5737,5736,
+ 1,5733,5734,995,5712,1496,5938,763,773,5959,
+ 5936,40,5182,5182,4897,42,5182,2507,2476,5519,
+ 1296,772,5478,5805,4906,1028,53,5155,5152,5478,
+ 5485,5948,5947,5960,5929,5930,5953,5954,5486,2759,
+ 5951,5952,5931,5933,5955,5956,5961,5941,5942,5943,
+ 5939,5940,5949,5950,5945,5944,5946,42,5167,5164,
+ 4851,1139,620,3940,4553,3963,42,1120,3917,3894,
+ 5519,5743,5741,5750,2584,5749,5745,5746,5744,5747,
+ 5748,5751,5742,4009,3986,345,5501,3871,1071,1295,
+ 5503,1116,4455,1145,5504,5502,950,5497,5499,5500,
+ 5485,5498,42,5167,5164,4851,1139,620,3940,4553,
+ 3963,1592,1120,3917,3894,1339,5743,5741,5750,5478,
+ 5749,5745,5746,5744,5747,5748,5751,5742,4009,3986,
+ 5478,5501,3871,1071,1295,5503,1116,4455,1145,5504,
+ 5502,950,5497,5499,5500,799,5498,5478,302,42,
+ 5167,5164,4851,1139,620,3940,4553,3963,5779,1120,
+ 3917,3894,1726,5743,5741,5750,5478,5749,5745,5746,
+ 5744,5747,5748,5751,5742,4009,3986,104,5501,3871,
+ 1071,1295,5503,1116,4455,1145,5504,5502,950,5497,
+ 5499,5500,103,5498,42,5167,5164,4880,1139,620,
+ 3940,4553,3963,1764,1120,3917,3894,1339,5743,5741,
+ 5750,5478,5749,5745,5746,5744,5747,5748,5751,5742,
+ 4009,3986,3736,5501,3871,1071,1295,5503,1116,4455,
+ 1145,5504,5502,950,5497,5499,5500,4956,5498,42,
+ 5167,5164,4851,1139,620,3940,4553,3963,5478,1120,
+ 3917,3894,2076,5743,5741,5750,5478,5749,5745,5746,
+ 5744,5747,5748,5751,5742,4009,3986,5478,5501,3871,
+ 1071,1295,5503,1116,4455,1145,5504,5502,950,5497,
+ 5499,5500,116,5498,42,5167,5164,4851,1139,620,
+ 3940,4553,3963,5478,1120,3917,3894,521,5743,5741,
+ 5750,5478,5749,5745,5746,5744,5747,5748,5751,5742,
+ 4009,3986,128,5501,3871,1071,1295,5503,1116,4455,
+ 1145,5504,5502,950,5497,5499,5500,132,5498,5478,
+ 5167,5164,5478,5519,1,5478,5373,5370,415,1172,
+ 50,5379,5379,5743,5741,5750,5735,5749,5745,5746,
+ 5744,5747,5748,5751,5742,3454,40,5182,5182,5478,
+ 5413,5409,131,5517,127,5478,5167,5164,5376,5519,
+ 2628,5478,4055,2115,5738,5812,1,5813,4078,5732,
+ 5739,5711,5737,5736,2579,5733,5734,5517,5712,5478,
+ 5353,5868,241,5300,5296,5478,5304,877,5869,5870,
+ 2656,2683,1172,5478,3634,2628,5287,5293,5266,5251,
+ 5269,5281,5278,5284,5275,5272,5263,5290,5478,500,
+ 2507,2476,5478,5167,5164,5356,5519,5478,134,5833,
+ 126,79,2351,5478,3441,5478,5484,5242,5236,5478,
+ 5233,5478,5260,5239,5230,5245,5248,3089,5257,5254,
+ 223,5227,2656,2683,5868,2507,2476,5545,5546,5478,
+ 877,5869,5870,5478,5743,5741,5750,5735,5749,5745,
+ 5746,5744,5747,5748,5751,5742,3162,1,5450,5450,
+ 228,5450,228,228,228,228,228,1,53,5478,
+ 228,3797,5495,4945,8708,5738,5812,5438,5813,5478,
+ 5732,5739,5711,5737,5736,5447,5733,5734,1,5712,
+ 288,5495,5496,1,5483,3378,5478,167,2656,2683,
+ 3597,167,5444,409,2876,2423,2394,39,5420,5417,
+ 5478,5495,2160,2925,887,389,5495,5496,3483,1,
+ 5450,5450,228,5450,228,228,228,228,5469,5441,
+ 1,999,228,5478,8563,7621,8708,107,5965,5488,
+ 4157,279,4147,5487,5435,3041,436,5447,1,5450,
+ 5450,228,5450,228,228,228,228,5469,495,3728,
+ 5478,228,3041,4399,5485,8708,2876,5478,8563,7621,
+ 2164,5478,5478,493,2160,167,5447,5478,5478,5478,
+ 3483,3666,3607,5478,189,5478,4603,5478,4889,5478,
+ 220,5478,4541,38,4898,2876,371,5478,5478,510,
+ 5965,4944,1,2160,5478,5478,5478,4970,5478,3483,
+ 5478,5478,2585,1,309,5478,5478,497,5478,220,
+ 3668,5478,5478,5478,5478,4935,3724,5478,5478,5965,
+ 1,5450,5450,228,5450,228,228,228,228,5472,
+ 4936,5478,3479,228,5660,2,5478,8708,1,5450,
+ 5450,228,5450,228,228,228,228,5469,5447,3497,
+ 1807,228,5478,5478,1807,8708,1,5450,5450,228,
+ 5450,228,228,228,228,5469,5447,2876,5659,228,
+ 4505,5478,1945,8708,857,2160,5478,5478,40,5478,
+ 5478,3483,5478,5478,5447,2876,5478,3430,5478,5478,
+ 5478,219,5478,2160,5478,5478,5475,5478,5478,3483,
+ 5478,5965,5478,2876,5478,3650,5478,5478,3650,220,
+ 5478,2160,5478,5478,5478,5478,5478,3483,5478,5965,
+ 5478,5478,5478,5478,5478,5478,5478,220,5478,5478,
+ 5478,5478,5478,5478,5478,5478,5478,5965,1,5450,
+ 5450,228,5450,228,228,228,228,228,5478,5478,
+ 5478,228,5478,5478,5478,8708,1,5450,5450,228,
+ 5450,228,228,228,228,228,5447,5478,5478,228,
+ 5478,5478,5478,8708,1,5450,5450,228,5450,228,
+ 228,228,228,228,5447,2876,5478,228,5478,5478,
+ 5478,8708,5478,2160,5478,5478,5478,5478,5478,3483,
+ 5478,5478,5447,2876,5478,5478,5478,5478,5478,5478,
+ 5478,2160,5478,5478,5478,5478,5478,3483,5478,5965,
+ 5478,2876,5478,5478,5478,5478,5478,5478,5478,2160,
+ 5478,5478,5478,5478,5478,3483,5478,5965,5478,5478,
+ 5478,5478,5478,5478,5478,5478,5478,5478,5478,5478,
+ 5478,5478,5478,5478,5478,5965
+ };
+ };
+ 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,
+ 993,1,70,63,63,251,597,806,1003,597,
+ 251,776,245,355,211,123,77,663,3,594,
+ 31,118,454,597,597,3,251,61,847,1034,
+ 597,454,245,251,590,454,211,121,946,806,
+ 806,806,806,59,946,195,778,212,212,212,
+ 212,212,212,212,212,212,682,688,693,690,
+ 697,695,702,700,704,703,705,308,706,118,
+ 721,3,355,652,663,795,663,582,663,584,
+ 663,647,59,251,118,118,3,986,249,251,
+ 359,590,403,121,195,31,31,31,31,251,
+ 738,454,454,445,195,905,30,847,195,665,
+ 665,846,846,738,211,212,212,212,212,212,
+ 212,212,212,212,212,212,212,212,212,212,
+ 212,212,212,212,211,211,211,211,211,211,
+ 211,211,211,211,211,211,212,1073,607,1072,
+ 594,260,251,794,304,361,472,795,398,251,
+ 251,251,304,1073,61,251,986,590,589,211,
+ 784,454,454,1073,1073,1073,1073,304,454,212,
+ 355,531,521,520,477,59,778,118,30,211,
+ 454,248,250,248,454,118,690,690,688,688,
+ 688,695,695,695,695,693,693,700,697,697,
+ 703,702,704,580,705,195,260,794,473,794,
+ 304,794,398,398,251,304,251,986,590,121,
+ 946,946,946,946,251,251,445,454,533,535,
+ 251,847,212,31,686,410,454,251,250,847,
+ 211,785,251,260,580,306,160,570,260,794,
+ 794,730,251,398,785,783,784,251,211,211,
+ 211,211,946,946,454,525,513,524,535,304,
+ 249,454,686,355,61,251,249,847,806,248,
+ 793,572,946,797,58,731,251,785,212,251,
+ 454,454,454,454,738,738,457,211,522,522,
+ 529,355,365,454,251,686,687,686,211,410,
+ 165,61,249,275,249,794,794,245,726,800,
+ 212,580,72,535,730,251,59,59,251,454,
+ 454,457,211,211,533,513,457,488,686,738,
+ 212,118,165,727,275,249,794,795,59,572,
+ 212,212,535,251,251,251,459,457,687,454,
+ 118,1072,806,254,254,727,795,175,797,251,
+ 946,454,251,251,459,459,275,856,275,1071,
+ 1071,788,176,59,251,738,790,946,459,853,
+ 948,350,946,467,892,275,31,31,788,175,
+ 580,212,580,727,946,946,946,176,946,251,
+ 316,727,727,251,795,454,790,536,808,1073,
+ 350,853,855,795,795,900,59,1072,167,946,
+ 167,580,176,195,195,193,903,195,727,727,
+ 645,788,792,453,856,855,856,727,726,454,
+ 855,855,855,59,251,568,365,454,245,454,
+ 316,727,350,946,454,788,792,31,855,245,
+ 727,785,855,855,855,251,251,254,454,454,
+ 501,176,645,176,727,316,350,211,176,173,
+ 785,785,785,251,727,1071,795,795,938,211,
+ 174,738,727,727,454,727,248,176,454,738,
+ 727,176,454,176
+ };
+ };
+ 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,
+ 121,0,31,64,32,33,65,7,34,35,
+ 36,37,58,38,39,40,41,42,29,26,
+ 27,8,6,11,12,5,30,63,44,3,
+ 10,68,62,69,70,15,25,14,21,19,
+ 20,22,23,18,16,24,50,56,57,17,
+ 54,53,51,46,48,52,59,45,1,2,
+ 4,0,74,49,63,72,95,87,60,121,
+ 3,9,66,13,67,0,64,65,3,10,
+ 32,36,34,31,39,15,25,14,21,19,
+ 20,22,23,18,16,24,40,44,41,42,
+ 29,38,33,37,5,7,4,26,27,8,
+ 6,11,12,30,35,1,2,118,9,0,
+ 9,71,64,65,58,26,27,8,6,11,
+ 12,30,35,3,40,44,41,42,29,38,
+ 33,37,15,25,14,21,19,20,22,23,
+ 18,16,24,32,36,34,31,39,49,7,
+ 1,2,4,10,5,0,81,114,115,116,
+ 28,72,119,122,71,73,74,47,55,61,
+ 76,78,85,83,75,80,82,84,86,49,
+ 77,79,9,13,50,62,46,68,51,17,
+ 52,53,54,56,57,69,59,70,45,48,
+ 58,64,65,10,32,36,34,31,39,15,
+ 25,14,21,19,20,22,23,18,16,24,
+ 40,44,41,42,29,38,33,37,26,27,
+ 11,12,30,35,8,6,3,4,7,5,
+ 1,2,0,63,67,66,1,2,0,81,
+ 7,114,115,116,47,9,3,8,6,5,
+ 72,71,13,73,50,14,15,62,46,16,
+ 68,51,17,18,52,53,19,20,54,56,
+ 21,22,57,69,59,10,70,23,45,24,
+ 48,25,4,1,2,28,0,63,72,95,
+ 66,118,87,71,121,14,15,31,64,16,
+ 32,33,18,19,20,65,34,21,22,35,
+ 36,37,58,38,39,10,23,24,25,40,
+ 41,42,29,26,27,11,12,30,44,9,
+ 13,5,7,3,1,2,8,4,6,0,
+ 4,49,72,0,50,14,15,62,46,16,
+ 68,51,17,18,52,53,19,20,54,56,
+ 21,22,57,69,59,10,70,23,45,24,
+ 48,25,1,2,4,95,0,1,2,9,
+ 71,0,9,72,118,87,13,66,0,96,
+ 90,11,12,91,92,88,89,43,93,94,
+ 97,98,99,100,101,102,117,72,95,67,
+ 104,105,106,107,108,109,110,111,112,113,
+ 118,71,13,121,63,1,2,8,6,4,
+ 3,60,66,87,9,0,46,48,58,9,
+ 63,95,67,66,87,0,1,2,123,49,
+ 0,4,43,49,72,0,14,15,16,18,
+ 19,20,21,22,23,24,25,50,46,51,
+ 17,52,53,54,56,57,59,45,48,13,
+ 9,87,7,1,2,60,3,8,6,5,
+ 4,0,8,6,7,5,4,1,2,3,
+ 60,63,67,66,9,87,95,0,5,7,
+ 3,60,6,8,95,50,14,15,46,16,
+ 68,51,17,18,52,53,19,20,54,56,
+ 21,22,57,69,59,10,70,23,45,24,
+ 48,25,1,2,4,87,9,62,0,13,
+ 9,5,7,3,1,2,4,6,8,72,
+ 0,28,72,4,49,1,2,0,58,46,
+ 7,48,5,1,2,4,74,9,49,72,
+ 95,118,87,71,13,121,60,3,120,96,
+ 103,90,26,27,8,6,11,12,91,92,
+ 88,89,43,93,94,97,98,99,100,101,
+ 102,117,104,105,106,107,108,109,110,111,
+ 112,113,63,66,67,0,10,68,62,69,
+ 70,15,25,14,21,19,20,22,23,18,
+ 16,24,74,49,4,5,2,1,48,45,
+ 59,57,56,7,54,53,52,17,51,46,
+ 50,120,103,26,27,60,3,96,90,6,
+ 91,92,11,12,89,88,43,93,94,97,
+ 98,8,99,100,101,63,95,87,121,67,
+ 104,105,106,107,108,109,110,111,112,113,
+ 72,118,71,102,117,66,13,9,0,45,
+ 1,2,4,114,115,116,0,9,87,14,
+ 15,31,16,32,33,18,19,20,34,21,
+ 22,35,36,37,58,38,39,10,23,24,
+ 25,40,41,42,29,3,26,27,8,6,
+ 11,12,30,4,44,5,7,1,2,65,
+ 64,0,67,66,71,9,0,119,0,46,
+ 48,58,74,72,49,0,49,66,0,72,
+ 9,60,67,66,13,43,0,61,50,14,
+ 15,62,46,16,68,51,81,17,18,52,
+ 53,19,20,54,55,56,21,22,57,69,
+ 59,10,70,23,47,45,24,48,25,9,
+ 3,8,6,13,49,4,7,5,28,1,
+ 2,0,29,0,71,62,46,16,68,51,
+ 18,52,53,19,20,54,56,21,22,57,
+ 69,59,70,23,45,24,48,25,15,14,
+ 50,9,3,8,6,13,47,61,81,17,
+ 28,7,1,2,5,4,10,55,0,49,
+ 67,0,75,0,64,65,26,27,11,12,
+ 30,35,40,44,41,42,29,38,33,37,
+ 15,25,14,21,19,20,22,23,18,16,
+ 24,10,32,36,34,31,39,8,6,60,
+ 5,7,1,2,4,3,0,62,46,16,
+ 68,51,18,52,53,19,20,54,56,21,
+ 22,57,69,59,10,70,23,45,24,48,
+ 25,15,14,50,9,3,8,13,47,55,
+ 61,81,17,43,4,7,6,5,1,2,
+ 28,0,8,6,3,7,5,73,4,1,
+ 2,0,50,14,15,62,46,16,68,51,
+ 17,18,52,53,19,20,54,56,21,22,
+ 57,69,59,10,70,23,45,24,48,25,
+ 1,2,4,65,64,11,12,6,91,92,
+ 99,8,100,5,30,43,107,108,104,105,
+ 106,112,111,113,89,88,109,110,97,98,
+ 93,94,101,102,26,27,90,103,3,60,
+ 67,66,63,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,
+ 113,11,27,29,29,53,11,11,224,11,
+ 130,23,113,190,18,35,55,11,117,42,
+ 4,59,206,11,11,117,53,11,72,226,
+ 11,206,49,130,117,206,35,117,11,11,
+ 11,11,11,10,11,235,130,35,35,21,
+ 35,35,35,35,35,35,11,11,11,11,
+ 11,11,11,11,11,11,11,35,11,59,
+ 11,33,190,157,158,11,158,128,158,67,
+ 158,151,10,130,59,59,33,88,52,130,
+ 11,14,11,82,235,229,229,229,229,130,
+ 176,206,206,133,1,35,12,72,235,11,
+ 11,74,74,176,148,35,35,35,35,35,
+ 35,35,35,35,35,35,35,35,35,35,
+ 35,35,35,35,35,35,35,35,35,35,
+ 35,35,35,35,35,148,35,11,11,11,
+ 183,117,24,117,232,117,11,11,117,232,
+ 130,53,11,11,11,53,72,117,14,35,
+ 86,206,206,11,11,11,11,142,206,35,
+ 190,133,29,29,11,10,130,59,229,18,
+ 206,51,130,51,206,59,11,11,11,11,
+ 11,11,11,11,11,11,11,11,11,11,
+ 11,11,11,11,11,33,193,117,117,45,
+ 71,45,117,68,53,71,104,88,14,82,
+ 11,11,11,11,104,53,181,206,169,117,
+ 130,72,35,229,117,101,206,130,94,72,
+ 35,86,130,212,11,11,16,121,193,45,
+ 45,160,104,68,86,11,11,104,148,148,
+ 148,148,11,11,206,11,111,11,171,70,
+ 104,206,119,183,11,53,104,72,11,10,
+ 117,186,11,11,10,109,232,86,35,68,
+ 206,206,206,206,176,176,117,35,11,11,
+ 111,190,171,206,104,117,40,11,148,183,
+ 95,11,52,117,232,117,174,49,212,11,
+ 35,11,92,117,200,232,10,10,53,206,
+ 206,14,35,35,169,47,117,11,119,176,
+ 35,59,95,212,171,52,174,179,63,113,
+ 35,35,171,53,232,232,117,14,40,206,
+ 59,11,11,99,99,212,179,79,11,232,
+ 11,206,53,53,107,117,171,214,117,11,
+ 11,117,137,63,53,176,117,11,107,11,
+ 214,122,11,68,16,171,229,229,61,145,
+ 11,35,11,212,11,11,11,146,11,68,
+ 210,212,212,68,31,206,14,204,117,11,
+ 186,11,117,11,11,11,10,11,97,11,
+ 11,11,146,228,228,219,11,228,212,212,
+ 11,117,117,206,214,117,214,212,11,206,
+ 164,117,117,10,232,11,229,206,113,206,
+ 221,212,117,11,206,61,107,229,164,113,
+ 212,86,214,164,164,232,208,99,206,206,
+ 117,146,11,146,212,221,113,148,146,97,
+ 86,86,86,208,212,11,31,31,111,35,
+ 11,221,212,212,206,212,51,146,206,221,
+ 212,146,206,146
+ };
+ };
+ 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,8,2,147,145,121,144,143,6,
+ 0,172,0,60,0,151,0,5,30,0,
+ 6,13,8,2,3,0,177,0,67,0,
+ 59,0,45,5,6,8,2,13,0,136,
+ 0,5,187,0,112,0,96,95,62,58,
+ 6,8,2,0,13,2,8,6,77,0,
+ 157,0,166,6,165,0,6,1,0,131,
+ 2,64,0,6,2,8,134,0,5,63,
+ 0,13,2,8,6,63,0,64,133,132,
+ 0,183,0,2,115,0,114,0,111,0,
+ 5,174,0,4,3,0,123,0,185,0,
+ 96,95,6,8,2,62,5,0,138,0,
+ 39,6,2,8,5,153,0,3,6,44,
+ 2,0,95,96,5,0,5,48,40,175,
+ 0,131,64,0,63,48,69,5,40,0,
+ 2,6,121,117,118,119,13,87,0,6,
+ 103,184,0,104,5,48,68,0,6,90,
+ 24,5,0,155,0,5,98,0,156,0,
+ 96,95,6,58,0,2,62,8,5,6,
+ 90,0,5,48,68,103,46,6,0,6,
+ 103,162,0,45,5,34,0,150,0,5,
+ 40,39,0,5,48,68,78,0,24,176,
+ 5,101,0,5,45,168,0,116,5,45,
+ 0,2,56,0,5,45,40,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,2,32,14,11,81,10,117,102,
+ 12,13,122,50,54,62,68,70,76,77,
+ 88,89,104,107,109,8,9,95,114,15,
+ 57,63,69,86,90,92,96,99,101,111,
+ 112,113,20,46,106,56,105,108,3,49,
+ 66,72,75,78,79,85,91,97,100,1,
+ 48,55,21,60,80,45,34,65,93,103,
+ 121,31,123,98,110,51,52,58,59,61,
+ 67,71,73,74,87,94,120,18,19,7,
+ 16,17,22,23,33,5,24,25,26,27,
+ 28,29,6,35,36,37,38,39,40,41,
+ 42,43,44,82,83,84,30,119,53,4,
+ 125,64,124,118
+ };
+ };
+ 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,
+ 132,137,139,239,0,0,138,235,136,0,
+ 135,0,146,0,134,0,0,145,151,0,
+ 0,152,161,182,162,163,164,165,140,154,
+ 166,167,168,128,169,170,171,0,130,133,
+ 172,0,142,141,155,180,0,0,0,0,
+ 0,0,0,205,0,0,148,158,175,189,
+ 202,206,129,0,178,0,207,0,174,0,
+ 0,0,0,0,0,0,127,131,0,0,
+ 0,0,0,0,0,0,188,0,0,203,
+ 213,149,160,209,210,211,0,0,0,0,
+ 0,208,221,181,0,200,0,0,0,212,
+ 0,0,0,242,150,177,191,192,193,194,
+ 195,197,0,215,218,220,238,0,241,0,
+ 0,143,144,147,0,0,157,159,0,173,
+ 0,183,184,185,186,187,190,0,196,198,
+ 0,199,204,0,0,216,217,0,222,225,
+ 227,229,0,232,233,234,0,236,237,240,
+ 126,0,153,156,176,179,201,214,219,0,
+ 223,224,226,228,0,230,231,243,244,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[] = {
+ 146,592,611,371,543,559,570,581,351,252,
+ 266,288,294,300,42,277,396,434,154,600,
+ 379,486,20,51,75,80,85,122,182,283,
+ 306,317,328,258,272,514,27,361,328,619,
+ 27,204,231,1,14,61,71,101,136,311,
+ 324,333,340,344,452,479,508,535,539,629,
+ 633,637,92,7,92,136,414,430,443,463,
+ 527,443,550,566,577,588,194,385,497,56,
+ 56,143,209,212,56,226,247,212,212,56,
+ 348,458,476,483,143,56,652,105,219,418,
+ 470,111,111,219,56,219,405,164,99,456,
+ 641,648,641,648,65,424,129,99,99,236
+ };
+ };
+ 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,358,5,5,5,5,358,127,
+ 90,127,127,127,48,263,402,440,160,67,
+ 366,492,25,25,59,59,90,127,187,127,
+ 127,322,322,263,96,519,38,366,606,624,
+ 32,198,198,5,18,5,59,90,127,315,
+ 315,315,90,90,127,229,5,5,5,5,
+ 5,229,650,11,96,140,358,358,358,467,
+ 519,447,554,554,554,554,198,389,501,59,
+ 59,5,5,215,217,229,5,250,250,217,
+ 90,461,5,229,5,512,5,108,337,421,
+ 473,114,118,222,531,522,408,167,90,90,
+ 643,643,645,645,67,426,131,189,174,238
+ };
+ };
+ public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
+ public final int scopeSuffix(int index) { return scopeSuffix[index]; }
+
+ public interface ScopeLhs {
+ public final static char scopeLhs[] = {
+ 46,18,18,73,18,18,18,18,73,81,
+ 47,86,85,119,66,52,73,72,46,18,
+ 73,20,3,7,162,162,159,117,46,84,
+ 119,118,120,53,47,134,128,73,18,18,
+ 128,97,154,130,76,165,162,159,125,118,
+ 118,120,176,50,59,138,19,18,18,18,
+ 18,18,12,114,159,125,73,72,72,38,
+ 134,72,18,18,18,18,97,73,20,166,
+ 162,177,95,102,55,67,54,153,65,120,
+ 74,70,139,138,172,134,17,159,120,116,
+ 22,126,126,58,134,134,73,46,159,71,
+ 132,44,132,44,165,116,117,46,46,154
+ };
+ };
+ 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,87,87,87,87,87,87,87,87,71,
+ 13,71,71,71,63,1,87,122,49,3,
+ 13,87,63,63,1,1,13,71,49,71,
+ 71,1,1,1,1,4,63,13,1,1,
+ 63,87,87,87,119,87,1,13,71,1,
+ 1,1,13,13,71,118,87,87,87,87,
+ 87,118,1,87,1,66,87,87,87,72,
+ 4,87,63,63,63,63,87,13,3,1,
+ 1,87,87,3,1,118,87,1,1,1,
+ 13,72,87,118,87,5,87,1,28,67,
+ 87,1,1,6,1,28,75,74,13,13,
+ 4,4,4,4,3,1,49,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[] = {
+ 54,240,240,65,240,240,240,240,65,78,
+ 54,78,78,96,76,56,65,65,54,240,
+ 65,240,171,215,45,45,51,96,54,78,
+ 96,96,96,56,54,88,35,65,240,240,
+ 35,144,48,12,65,16,45,51,302,96,
+ 96,96,1,56,19,42,240,240,240,240,
+ 240,240,219,7,51,302,65,65,65,272,
+ 88,65,240,240,240,240,144,65,240,16,
+ 45,152,144,146,154,140,154,48,159,96,
+ 65,65,39,42,91,88,240,51,96,3,
+ 241,96,96,100,88,88,65,54,51,65,
+ 93,116,93,116,16,3,96,54,54,48
+ };
+ };
+ 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,
+ 313,3,58,0,128,0,312,3,119,0,
+ 128,175,0,129,183,74,0,217,0,291,
+ 129,43,128,0,21,0,293,129,43,28,
+ 0,21,55,0,34,134,0,21,55,0,
+ 0,293,129,43,28,192,0,21,131,0,
+ 291,129,43,132,0,180,130,0,140,0,
+ 222,3,290,0,290,0,2,0,128,0,
+ 180,130,227,0,180,130,45,227,0,180,
+ 130,309,45,0,133,188,168,130,0,130,
+ 0,188,168,130,0,136,130,0,172,0,
+ 305,129,172,0,129,172,0,223,130,0,
+ 168,245,0,139,0,0,0,137,0,0,
+ 0,304,129,49,250,0,129,0,250,0,
+ 3,0,0,129,0,303,129,49,0,45,
+ 129,0,154,3,0,129,280,279,129,74,
+ 277,172,0,279,129,74,277,172,0,216,
+ 0,217,0,277,172,0,98,0,0,216,
+ 0,217,0,204,98,0,0,216,0,217,
+ 0,279,129,277,172,0,216,0,204,0,
+ 0,216,0,232,129,3,0,128,0,0,
+ 0,0,0,232,129,3,219,0,226,3,
+ 0,214,129,0,209,0,149,0,168,130,
+ 0,11,0,0,0,217,60,0,127,0,
+ 232,129,3,178,0,178,0,2,0,0,
+ 128,0,0,0,0,0,189,3,0,202,
+ 0,229,129,49,29,17,0,180,130,55,
+ 47,0,198,130,0,133,180,130,275,47,
+ 0,180,130,275,47,0,180,130,67,125,
+ 55,0,229,129,49,55,0,229,129,49,
+ 123,55,0,229,129,49,126,55,0,272,
+ 129,49,125,68,0,272,129,49,68,0,
+ 180,130,68,0,137,0,188,180,130,245,
+ 0,139,0,180,130,245,0,188,168,130,
+ 10,0,168,130,10,0,95,139,0,265,
+ 129,148,0,265,129,172,0,164,85,0,
+ 225,163,225,300,3,82,0,128,174,0,
+ 225,300,3,82,0,130,0,128,174,0,
+ 225,163,225,163,225,3,82,0,225,163,
+ 225,3,82,0,225,3,82,0,130,0,
+ 130,0,128,174,0,164,3,75,193,80,
+ 0,128,130,0,193,80,0,110,2,133,
+ 128,130,0,240,3,75,0,189,169,0,
+ 34,172,0,169,0,178,34,172,0,240,
+ 3,86,0,193,158,240,3,84,0,64,
+ 174,0,240,3,84,0,128,174,64,174,
+ 0,299,129,49,0,164,0,217,77,0,
+ 31,0,164,117,161,0,31,172,0,181,
+ 3,0,128,152,0,222,3,0,217,60,
+ 262,0,164,60,0,181,3,296,65,130,
+ 0,128,0,0,0,0,296,65,130,0,
+ 2,148,128,0,0,0,0,181,3,35,
+ 0,150,0,127,28,168,130,0,32,150,
+ 0,95,139,32,150,0,216,180,130,0,
+ 149,32,150,0,181,3,39,0,164,3,
+ 39,0,164,3,63,181,43,31,0,181,
+ 43,31,0,21,2,133,128,0,164,3,
+ 63,181,43,34,0,181,43,34,0,164,
+ 3,63,181,43,36,0,181,43,36,0,
+ 164,3,63,181,43,32,0,181,43,32,
+ 0,222,3,127,188,168,130,10,0,127,
+ 188,168,130,10,0,139,2,0,128,0,
+ 222,3,126,255,168,130,10,0,255,168,
+ 130,10,0,137,2,0,128,0,222,3,
+ 137,0,222,3,142,0,164,60,142,0,
+ 257,0,32,0,32,143,0,167,0,136,
+ 0,164,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,
+ 4541,0,4898,4889,4603,0,1132,1020,1074,833,
+ 0,3542,3094,2159,0,2585,848,0,3794,3739,
+ 3701,2574,2447,3646,3608,3553,3497,668,3442,2924,
+ 2847,3140,3125,0,4545,3041,3405,0,2399,705,
+ 0,2952,2776,0,3634,3031,0,4676,2827,0,
+ 3030,3462,0,3030,3462,3225,3161,4339,3097,3033,
+ 4252,4243,4156,4147,3794,3739,3701,3646,3608,3553,
+ 3497,3442,2924,2847,0,3030,3462,3225,3161,4339,
+ 3097,3033,4252,4243,4156,4147,0,999,887,0,
+ 532,0,2885,1004,0,527,2932,2452,0,3001,
+ 785,3192,4650,3370,3445,3415,1067,3064,3231,3200,
+ 709,3034,4613,1320,0,4844,4839,4834,4823,4777,
+ 4772,4766,4761,4532,4367,3455,4756,4699,3251,4694,
+ 4689,3219,4216,3587,2840,3127,2860,3431,0,1668,
+ 1625,784,659,785,3231,3312,2813,2710,3190,2845,
+ 0,652,0,4676,785,4650,2827,4613,3312,4347,
+ 4505,4584,3001,4439,2813,3415,2710,4518,4372,0,
+ 4844,4839,3436,3232,3071,4834,4823,4777,2754,2471,
+ 4772,4766,3361,4761,2759,3356,2579,2459,2242,4532,
+ 1023,4367,3455,2154,2066,4756,4699,2247,2956,3251,
+ 4694,4689,779,3219,4216,3587,2932,2840,3127,2860,
+ 2071,2452,3431,951,1075,721,570,1139,857,3312,
+ 4347,4505,4584,3001,4676,4439,785,4650,2813,3415,
+ 2710,2827,1191,654,999,887,4613,4518,4372,4455,
+ 4124,4101,2252,2291,2361,2327,2423,2394,582,2683,
+ 2656,2628,2600,2507,2476,3380,3331,2545,2778,2723,
+ 4078,4055,4032,4009,3986,3963,3940,3917,3894,620,
+ 3871,1945,2203,2164,2115,2076,1296,1249,2027,1206,
+ 1988,1902,904,1859,1816,1773,1730,1687,1644,1601,
+ 1558,1515,1472,1429,1386,527,733,675,1339,1148,
+ 799,1028,956,1086,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,295,189,178,186,5,126,128,7,132,
+ 130,4,3,129,3,67,60,126,43,169,
+ 129,60,3,64,65,43,180,167,168,7,
+ 126,189,214,130,6,154,129,49,39,31,
+ 34,36,32,10,137,3,130,35,30,5,
+ 12,11,6,8,27,26,142,147,150,149,
+ 152,151,156,155,159,157,160,58,161,217,
+ 161,129,129,266,267,250,268,245,269,68,
+ 270,271,10,130,60,60,129,4,188,130,
+ 168,129,264,129,3,43,43,43,43,130,
+ 3,181,164,169,129,64,65,168,3,127,
+ 126,103,120,3,60,90,96,12,11,92,
+ 91,6,94,93,63,43,88,89,8,98,
+ 97,100,99,101,113,112,111,110,109,108,
+ 107,106,105,104,67,117,102,291,135,294,
+ 214,49,168,235,130,127,126,125,49,130,
+ 130,180,168,291,257,188,168,6,184,66,
+ 303,181,164,181,181,181,181,168,222,158,
+ 129,3,220,219,137,10,130,60,296,3,
+ 181,28,130,28,222,164,149,149,147,147,
+ 147,151,151,151,151,150,150,155,152,152,
+ 157,156,159,164,160,66,129,127,126,129,
+ 180,129,49,129,180,168,28,4,129,66,
+ 63,63,63,63,188,255,214,226,129,3,
+ 130,168,201,3,297,169,154,130,180,168,
+ 72,304,130,170,227,192,47,172,306,129,
+ 129,72,188,129,272,125,273,188,3,3,
+ 3,3,127,126,232,233,148,234,129,168,
+ 28,181,129,129,216,5,28,168,28,275,
+ 277,129,178,308,227,45,130,272,67,66,
+ 164,164,164,164,3,3,158,67,226,189,
+ 3,129,66,232,188,158,259,262,60,182,
+ 4,127,188,43,130,74,129,214,305,126,
+ 72,285,189,3,66,130,45,309,180,222,
+ 222,129,67,67,129,214,158,127,129,3,
+ 60,164,4,133,129,180,129,279,72,66,
+ 72,67,129,180,130,130,223,129,259,222,
+ 217,293,28,10,62,133,279,49,289,130,
+ 290,232,180,180,129,223,66,63,43,235,
+ 235,280,129,66,180,3,158,58,129,17,
+ 28,172,61,55,47,129,67,67,129,299,
+ 79,77,1,164,86,84,82,80,75,83,
+ 85,78,76,55,74,222,129,3,29,43,
+ 129,3,49,123,126,125,55,293,281,119,
+ 9,217,72,3,3,3,193,3,125,164,
+ 125,183,223,313,129,49,63,265,276,29,
+ 129,49,49,67,130,63,3,240,169,240,
+ 300,225,148,75,240,129,129,66,129,66,
+ 158,229,228,129,129,130,180,62,95,312,
+ 169,158,189,158,225,163,129,3,158,281,
+ 229,229,229,180,274,235,158,158,129,67,
+ 193,163,225,265,164,274,67,122,225,163,
+ 158,158,225,158
+ };
+ };
+ public final static char inSymb[] = InSymb.inSymb;
+ public final int inSymb(int index) { return inSymb[index]; }
+
+ public interface Name {
+ public final static String name[] = {
+ "",
+ "[",
+ "(",
+ "{",
+ ".",
+ ".*",
+ "->",
+ "->*",
+ "++",
+ "--",
+ "&",
+ "*",
+ "+",
+ "-",
+ "~",
+ "!",
+ "/",
+ "%",
+ ">>",
+ "<<",
+ "<",
+ ">",
+ "<=",
+ ">=",
+ "==",
+ "!=",
+ "^",
+ "|",
+ "&&",
+ "||",
+ "?",
+ ":",
+ "::",
+ "...",
+ "=",
+ "*=",
+ "/=",
+ "%=",
+ "+=",
+ "-=",
+ ">>=",
+ "<<=",
+ "&=",
+ "^=",
+ "|=",
+ ",",
+ "0",
+ "$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",
+ "EndOfCompletion",
+ "Invalid",
+ "RightBracket",
+ "RightParen",
+ "RightBrace",
+ "SemiColon",
+ "ERROR_TOKEN",
+ "original_namespace_name",
+ "EOF_TOKEN",
+ "no_function_declarator_start",
+ "]",
+ ")",
+ "}",
+ ";",
+ "declaration",
+ "identifier_token",
+ "expression",
+ "id_expression",
+ "qualified_or_unqualified_name",
+ "unqualified_id_name",
+ "identifier_name",
+ "operator_function_id_name",
+ "template_id_name",
+ "class_name",
+ "nested_name_specifier",
+ "class_or_namespace_name",
+ "nested_name_specifier_with_tem" +
+ "plate",
+ "class_or_namespace_name_with_t" +
+ "emplate",
+ "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",
+ "simple_declaration_with_declsp" +
+ "ec",
+ "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_type_id",
+ "conversion_declarator",
+ "mem_initializer_list",
+ "mem_initializer",
+ "mem_initializer_name",
+ "operator_id_name",
+ "overloadable_operator",
+ "template_parameter_list",
+ "template_parameter",
+ "template_identifier",
+ "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 = 73,
+ SCOPE_UBOUND = 119,
+ SCOPE_SIZE = 120,
+ 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 = 524,
+ NT_OFFSET = 124,
+ LA_STATE_OFFSET = 6004,
+ MAX_LA = 2147483647,
+ NUM_RULES = 526,
+ NUM_NONTERMINALS = 195,
+ NUM_SYMBOLS = 319,
+ SEGMENT_SIZE = 8192,
+ START_STATE = 4372,
+ IDENTIFIER_SYMBOL = 0,
+ EOFT_SYMBOL = 121,
+ EOLT_SYMBOL = 121,
+ ACCEPT_ACTION = 5134,
+ ERROR_ACTION = 5478;
+
+ 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/CPPNoFunctionDeclaratorParsersym.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java
new file mode 100644
index 0000000000..2f5e05c089
--- /dev/null
+++ b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPNoFunctionDeclaratorParsersym.java
@@ -0,0 +1,272 @@
+/*******************************************************************************
+* 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 CPPNoFunctionDeclaratorParsersym {
+ public final static int
+ TK_asm = 61,
+ TK_auto = 50,
+ TK_bool = 14,
+ TK_break = 76,
+ TK_case = 77,
+ TK_catch = 119,
+ TK_char = 15,
+ TK_class = 62,
+ TK_const = 46,
+ TK_const_cast = 31,
+ TK_continue = 78,
+ TK_default = 79,
+ TK_delete = 64,
+ TK_do = 80,
+ TK_double = 16,
+ TK_dynamic_cast = 32,
+ TK_else = 122,
+ TK_enum = 68,
+ TK_explicit = 51,
+ TK_export = 81,
+ TK_extern = 17,
+ TK_false = 33,
+ TK_float = 18,
+ TK_for = 82,
+ TK_friend = 52,
+ TK_goto = 83,
+ TK_if = 84,
+ TK_inline = 53,
+ TK_int = 19,
+ TK_long = 20,
+ TK_mutable = 54,
+ TK_namespace = 55,
+ TK_new = 65,
+ TK_operator = 7,
+ TK_private = 114,
+ TK_protected = 115,
+ TK_public = 116,
+ TK_register = 56,
+ TK_reinterpret_cast = 34,
+ TK_return = 85,
+ TK_short = 21,
+ TK_signed = 22,
+ TK_sizeof = 35,
+ TK_static = 57,
+ TK_static_cast = 36,
+ TK_struct = 69,
+ TK_switch = 86,
+ TK_template = 28,
+ TK_this = 37,
+ TK_throw = 58,
+ TK_try = 74,
+ TK_true = 38,
+ TK_typedef = 59,
+ TK_typeid = 39,
+ TK_typename = 10,
+ TK_union = 70,
+ TK_unsigned = 23,
+ TK_using = 47,
+ TK_virtual = 45,
+ TK_void = 24,
+ TK_volatile = 48,
+ TK_wchar_t = 25,
+ TK_while = 75,
+ TK_integer = 40,
+ TK_floating = 41,
+ TK_charconst = 42,
+ TK_stringlit = 29,
+ TK_identifier = 1,
+ TK_Completion = 2,
+ TK_EndOfCompletion = 9,
+ TK_Invalid = 124,
+ TK_LeftBracket = 60,
+ TK_LeftParen = 3,
+ TK_LeftBrace = 49,
+ TK_Dot = 120,
+ TK_DotStar = 96,
+ TK_Arrow = 103,
+ 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 = 43,
+ TK_GT = 63,
+ 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 = 72,
+ TK_ColonColon = 4,
+ TK_DotDotDot = 95,
+ TK_Assign = 67,
+ TK_StarAssign = 104,
+ TK_SlashAssign = 105,
+ TK_PercentAssign = 106,
+ TK_PlusAssign = 107,
+ TK_MinusAssign = 108,
+ TK_RightShiftAssign = 109,
+ TK_LeftShiftAssign = 110,
+ TK_AndAssign = 111,
+ TK_CaretAssign = 112,
+ TK_OrAssign = 113,
+ TK_Comma = 66,
+ TK_zero = 44,
+ TK_RightBracket = 118,
+ TK_RightParen = 87,
+ TK_RightBrace = 71,
+ TK_SemiColon = 13,
+ TK_ERROR_TOKEN = 73,
+ TK_original_namespace_name = 123,
+ 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",
+ "template",
+ "stringlit",
+ "Bang",
+ "const_cast",
+ "dynamic_cast",
+ "false",
+ "reinterpret_cast",
+ "sizeof",
+ "static_cast",
+ "this",
+ "true",
+ "typeid",
+ "integer",
+ "floating",
+ "charconst",
+ "LT",
+ "zero",
+ "virtual",
+ "const",
+ "using",
+ "volatile",
+ "LeftBrace",
+ "auto",
+ "explicit",
+ "friend",
+ "inline",
+ "mutable",
+ "namespace",
+ "register",
+ "static",
+ "throw",
+ "typedef",
+ "LeftBracket",
+ "asm",
+ "class",
+ "GT",
+ "delete",
+ "new",
+ "Comma",
+ "Assign",
+ "enum",
+ "struct",
+ "union",
+ "RightBrace",
+ "Colon",
+ "ERROR_TOKEN",
+ "try",
+ "while",
+ "break",
+ "case",
+ "continue",
+ "default",
+ "do",
+ "export",
+ "for",
+ "goto",
+ "if",
+ "return",
+ "switch",
+ "RightParen",
+ "RightShift",
+ "LeftShift",
+ "ArrowStar",
+ "Slash",
+ "Percent",
+ "LE",
+ "GE",
+ "DotDotDot",
+ "DotStar",
+ "EQ",
+ "NE",
+ "Caret",
+ "Or",
+ "AndAnd",
+ "OrOr",
+ "Arrow",
+ "StarAssign",
+ "SlashAssign",
+ "PercentAssign",
+ "PlusAssign",
+ "MinusAssign",
+ "RightShiftAssign",
+ "LeftShiftAssign",
+ "AndAssign",
+ "CaretAssign",
+ "OrAssign",
+ "private",
+ "protected",
+ "public",
+ "Question",
+ "RightBracket",
+ "catch",
+ "Dot",
+ "EOF_TOKEN",
+ "else",
+ "original_namespace_name",
+ "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/CPPParser.java b/lrparser/org.eclipse.cdt.core.lrparser/src/org/eclipse/cdt/internal/core/dom/lrparser/cpp/CPPParser.java
index 5c839d7952..4377a7597b 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
@@ -213,7 +213,7 @@ public int getKind(int i) {
int kind = super.getKind(i);
// There used to be a special token kind for zero used to parser pure virtual function declarations.
- // But it turned out to be easier to just parse them as an init_declarator and programaticaly check
+ // But it turned out to be easier to just parse them as an init_ declarator and programaticaly check
// for pure virtual, see consumeMemberDeclaratorWithInitializer().
//if(kind == CPPParsersym.TK_integer && "0".equals(getTokenText(i))) { //$NON-NLS-1$
@@ -1221,14 +1221,14 @@ public CPPParser(String[] mapFrom) { // constructor
// Rule 221: simple_declaration ::= declaration_specifiers_opt <openscope-ast> init_declarator_list_opt ;
//
case 221: { action.builder.
- consumeDeclarationSimple(true); break;
+ consumeDeclarationSimple(true, true); break;
}
//
// Rule 222: simple_declaration_with_declspec ::= declaration_specifiers <openscope-ast> init_declarator_list_opt ;
//
case 222: { action.builder.
- consumeDeclarationSimple(true); break;
+ consumeDeclarationSimple(true, false); break;
}
//
@@ -1449,654 +1449,661 @@ public CPPParser(String[] mapFrom) { // constructor
}
//
- // Rule 312: init_declarator ::= declarator initializer
+ // Rule 311: init_declarator_complete ::= init_declarator
//
- case 312: { action.builder.
+ case 311: { action.builder.
+ consumeInitDeclaratorComplete(); break;
+ }
+
+ //
+ // Rule 313: init_declarator ::= declarator initializer
+ //
+ case 313: { action.builder.
consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 314: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
+ // Rule 315: declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
//
- case 314: { action.builder.
+ case 315: { action.builder.
consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 316: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
+ // Rule 317: function_declarator ::= <openscope-ast> ptr_operator_seq direct_declarator
//
- case 316: { action.builder.
+ case 317: { action.builder.
consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 320: basic_direct_declarator ::= declarator_id_name
+ // Rule 321: basic_direct_declarator ::= declarator_id_name
//
- case 320: { action.builder.
+ case 321: { action.builder.
consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 321: basic_direct_declarator ::= ( declarator )
+ // Rule 322: basic_direct_declarator ::= ( declarator )
//
- case 321: { action.builder.
+ case 322: { action.builder.
consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 322: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ // Rule 323: function_direct_declarator ::= basic_direct_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
- case 322: { action.builder.
+ case 323: { action.builder.
consumeDirectDeclaratorFunctionDeclarator(true); break;
}
//
- // Rule 323: array_direct_declarator ::= array_direct_declarator array_modifier
+ // Rule 324: array_direct_declarator ::= array_direct_declarator array_modifier
//
- case 323: { action.builder.
+ case 324: { action.builder.
consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 324: array_direct_declarator ::= basic_direct_declarator array_modifier
+ // Rule 325: array_direct_declarator ::= basic_direct_declarator array_modifier
//
- case 324: { action.builder.
+ case 325: { action.builder.
consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 325: array_modifier ::= [ constant_expression ]
+ // Rule 326: array_modifier ::= [ constant_expression ]
//
- case 325: { action.builder.
+ case 326: { action.builder.
consumeDirectDeclaratorArrayModifier(true); break;
}
//
- // Rule 326: array_modifier ::= [ ]
+ // Rule 327: array_modifier ::= [ ]
//
- case 326: { action.builder.
+ case 327: { action.builder.
consumeDirectDeclaratorArrayModifier(false); break;
}
//
- // Rule 327: ptr_operator ::= * <openscope-ast> cv_qualifier_seq_opt
+ // Rule 328: ptr_operator ::= * <openscope-ast> cv_qualifier_seq_opt
//
- case 327: { action.builder.
+ case 328: { action.builder.
consumePointer(); break;
}
//
- // Rule 328: ptr_operator ::= &
+ // Rule 329: ptr_operator ::= &
//
- case 328: { action.builder.
+ case 329: { action.builder.
consumeReferenceOperator(); break;
}
//
- // Rule 329: ptr_operator ::= dcolon_opt nested_name_specifier * <openscope-ast> cv_qualifier_seq_opt
+ // Rule 330: ptr_operator ::= dcolon_opt nested_name_specifier * <openscope-ast> cv_qualifier_seq_opt
//
- case 329: { action.builder.
+ case 330: { action.builder.
consumePointerToMember(); break;
}
//
- // Rule 335: cv_qualifier ::= const
+ // Rule 336: cv_qualifier ::= const
//
- case 335: { action.builder.
+ case 336: { action.builder.
consumeDeclSpecToken(); break;
}
//
- // Rule 336: cv_qualifier ::= volatile
+ // Rule 337: cv_qualifier ::= volatile
//
- case 336: { action.builder.
+ case 337: { action.builder.
consumeDeclSpecToken(); break;
}
//
- // Rule 338: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
+ // Rule 339: declarator_id_name ::= dcolon_opt nested_name_specifier_opt type_name
//
- case 338: { action.builder.
+ case 339: { action.builder.
consumeQualifiedId(false); break;
}
//
- // Rule 339: type_id ::= type_specifier_seq
+ // Rule 340: type_id ::= type_specifier_seq
//
- case 339: { action.builder.
+ case 340: { action.builder.
consumeTypeId(false); break;
}
//
- // Rule 340: type_id ::= type_specifier_seq abstract_declarator
+ // Rule 341: type_id ::= type_specifier_seq abstract_declarator
//
- case 340: { action.builder.
+ case 341: { action.builder.
consumeTypeId(true); break;
}
//
- // Rule 343: abstract_declarator ::= <openscope-ast> ptr_operator_seq
+ // Rule 344: abstract_declarator ::= <openscope-ast> ptr_operator_seq
//
- case 343: { action.builder.
+ case 344: { action.builder.
consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 344: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
+ // Rule 345: abstract_declarator ::= <openscope-ast> ptr_operator_seq direct_abstract_declarator
//
- case 344: { action.builder.
+ case 345: { action.builder.
consumeDeclaratorWithPointer(true); break;
}
//
- // Rule 348: basic_direct_abstract_declarator ::= ( abstract_declarator )
+ // Rule 349: basic_direct_abstract_declarator ::= ( abstract_declarator )
//
- case 348: { action.builder.
+ case 349: { action.builder.
consumeDirectDeclaratorBracketed(); break;
}
//
- // Rule 349: array_direct_abstract_declarator ::= array_modifier
+ // Rule 350: array_direct_abstract_declarator ::= array_modifier
//
- case 349: { action.builder.
+ case 350: { action.builder.
consumeDirectDeclaratorArrayDeclarator(false); break;
}
//
- // Rule 350: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
+ // Rule 351: array_direct_abstract_declarator ::= array_direct_abstract_declarator array_modifier
//
- case 350: { action.builder.
+ case 351: { action.builder.
consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 351: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
+ // Rule 352: array_direct_abstract_declarator ::= basic_direct_abstract_declarator array_modifier
//
- case 351: { action.builder.
+ case 352: { action.builder.
consumeDirectDeclaratorArrayDeclarator(true); break;
}
//
- // Rule 352: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ // Rule 353: function_direct_abstract_declarator ::= basic_direct_abstract_declarator ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
- case 352: { action.builder.
+ case 353: { action.builder.
consumeDirectDeclaratorFunctionDeclarator(true); break;
}
//
- // Rule 353: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
+ // Rule 354: function_direct_abstract_declarator ::= ( <openscope-ast> parameter_declaration_clause ) <openscope-ast> cv_qualifier_seq_opt <openscope-ast> exception_specification_opt
//
- case 353: { action.builder.
+ case 354: { action.builder.
consumeDirectDeclaratorFunctionDeclarator(false); break;
}
//
- // Rule 354: parameter_declaration_clause ::= parameter_declaration_list_opt ...
+ // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt ...
//
- case 354: { action.builder.
+ case 355: { action.builder.
consumePlaceHolder(); break;
}
//
- // Rule 355: parameter_declaration_clause ::= parameter_declaration_list_opt
+ // Rule 356: parameter_declaration_clause ::= parameter_declaration_list_opt
//
- case 355: { action.builder.
+ case 356: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 356: parameter_declaration_clause ::= parameter_declaration_list , ...
+ // Rule 357: parameter_declaration_clause ::= parameter_declaration_list , ...
//
- case 356: { action.builder.
+ case 357: { action.builder.
consumePlaceHolder(); break;
}
//
- // Rule 362: abstract_declarator_opt ::= $Empty
+ // Rule 363: abstract_declarator_opt ::= $Empty
//
- case 362: { action.builder.
+ case 363: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 363: parameter_declaration ::= declaration_specifiers parameter_init_declarator
+ // Rule 364: parameter_declaration ::= declaration_specifiers parameter_init_declarator
//
- case 363: { action.builder.
+ case 364: { action.builder.
consumeParameterDeclaration(); break;
}
//
- // Rule 364: parameter_declaration ::= declaration_specifiers
+ // Rule 365: parameter_declaration ::= declaration_specifiers
//
- case 364: { action.builder.
+ case 365: { action.builder.
consumeParameterDeclarationWithoutDeclarator(); break;
}
//
- // Rule 366: parameter_init_declarator ::= declarator = parameter_initializer
+ // Rule 367: parameter_init_declarator ::= declarator = parameter_initializer
//
- case 366: { action.builder.
+ case 367: { action.builder.
consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 368: parameter_init_declarator ::= abstract_declarator = parameter_initializer
+ // Rule 369: parameter_init_declarator ::= abstract_declarator = parameter_initializer
//
- case 368: { action.builder.
+ case 369: { action.builder.
consumeDeclaratorWithInitializer(true); break;
}
//
- // Rule 369: parameter_init_declarator ::= = parameter_initializer
+ // Rule 370: parameter_init_declarator ::= = parameter_initializer
//
- case 369: { action.builder.
+ case 370: { action.builder.
consumeDeclaratorWithInitializer(false); break;
}
//
- // Rule 370: parameter_initializer ::= assignment_expression
+ // Rule 371: parameter_initializer ::= assignment_expression
//
- case 370: { action.builder.
+ case 371: { action.builder.
consumeInitializer(); break;
}
//
- // Rule 371: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
+ // Rule 372: function_definition ::= declaration_specifiers_opt function_declarator <openscope-ast> ctor_initializer_list_opt function_body
//
- case 371: { action.builder.
+ case 372: { action.builder.
consumeFunctionDefinition(false); break;
}
//
- // Rule 372: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
+ // Rule 373: function_definition ::= declaration_specifiers_opt function_declarator try <openscope-ast> ctor_initializer_list_opt function_body <openscope-ast> handler_seq
//
- case 372: { action.builder.
+ case 373: { action.builder.
consumeFunctionDefinition(true); break;
}
//
- // Rule 375: initializer ::= ( expression_list )
+ // Rule 376: initializer ::= ( expression_list )
//
- case 375: { action.builder.
+ case 376: { action.builder.
consumeInitializerConstructor(); break;
}
//
- // Rule 376: initializer_clause ::= assignment_expression
+ // Rule 377: initializer_clause ::= assignment_expression
//
- case 376: { action.builder.
+ case 377: { action.builder.
consumeInitializer(); break;
}
//
- // Rule 377: initializer_clause ::= { <openscope-ast> initializer_list , }
+ // Rule 378: initializer_clause ::= { <openscope-ast> initializer_list , }
//
- case 377: { action.builder.
+ case 378: { action.builder.
consumeInitializerList(); break;
}
//
- // Rule 378: initializer_clause ::= { <openscope-ast> initializer_list }
+ // Rule 379: initializer_clause ::= { <openscope-ast> initializer_list }
//
- case 378: { action.builder.
+ case 379: { action.builder.
consumeInitializerList(); break;
}
//
- // Rule 379: initializer_clause ::= { <openscope-ast> }
+ // Rule 380: initializer_clause ::= { <openscope-ast> }
//
- case 379: { action.builder.
+ case 380: { action.builder.
consumeInitializerList(); break;
}
//
- // Rule 384: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
+ // Rule 385: class_specifier ::= class_head { <openscope-ast> member_declaration_list_opt }
//
- case 384: { action.builder.
+ case 385: { action.builder.
consumeClassSpecifier(); break;
}
//
- // Rule 385: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
+ // Rule 386: class_head ::= class_keyword identifier_name_opt <openscope-ast> base_clause_opt
//
- case 385: { action.builder.
+ case 386: { action.builder.
consumeClassHead(false); break;
}
//
- // Rule 386: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt
+ // Rule 387: class_head ::= class_keyword template_id_name <openscope-ast> base_clause_opt
//
- case 386: { action.builder.
+ case 387: { action.builder.
consumeClassHead(false); break;
}
//
- // Rule 387: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
+ // Rule 388: class_head ::= class_keyword nested_name_specifier identifier_name <openscope-ast> base_clause_opt
//
- case 387: { action.builder.
+ case 388: { action.builder.
consumeClassHead(true); break;
}
//
- // Rule 388: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt
+ // Rule 389: class_head ::= class_keyword nested_name_specifier template_id_name <openscope-ast> base_clause_opt
//
- case 388: { action.builder.
+ case 389: { action.builder.
consumeClassHead(true); break;
}
//
- // Rule 390: identifier_name_opt ::= $Empty
+ // Rule 391: identifier_name_opt ::= $Empty
//
- case 390: { action.builder.
+ case 391: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 394: visibility_label ::= access_specifier_keyword :
+ // Rule 395: visibility_label ::= access_specifier_keyword :
//
- case 394: { action.builder.
+ case 395: { action.builder.
consumeVisibilityLabel(); break;
}
//
- // Rule 395: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
+ // Rule 396: member_declaration ::= declaration_specifiers_opt <openscope-ast> member_declarator_list ;
//
- case 395: { action.builder.
- consumeDeclarationSimple(true); break;
+ case 396: { action.builder.
+ consumeDeclarationSimple(true, true); break;
}
//
- // Rule 396: member_declaration ::= declaration_specifiers_opt ;
+ // Rule 397: member_declaration ::= declaration_specifiers_opt ;
//
- case 396: { action.builder.
- consumeDeclarationSimple(false); break;
+ case 397: { action.builder.
+ consumeDeclarationSimple(false, false); break;
}
//
- // Rule 399: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
+ // Rule 400: member_declaration ::= dcolon_opt nested_name_specifier template_opt unqualified_id_name ;
//
- case 399: { action.builder.
+ case 400: { action.builder.
consumeMemberDeclarationQualifiedId(); break;
}
//
- // Rule 403: member_declaration ::= ERROR_TOKEN
+ // Rule 404: member_declaration ::= ERROR_TOKEN
//
- case 403: { action.builder.
+ case 404: { action.builder.
consumeDeclarationProblem(); break;
}
//
- // Rule 411: member_declarator ::= declarator constant_initializer
+ // Rule 412: member_declarator ::= declarator constant_initializer
//
- case 411: { action.builder.
+ case 412: { action.builder.
consumeMemberDeclaratorWithInitializer(); break;
}
//
- // Rule 412: member_declarator ::= bit_field_declarator : constant_expression
+ // Rule 413: member_declarator ::= bit_field_declarator : constant_expression
//
- case 412: { action.builder.
+ case 413: { action.builder.
consumeBitField(true); break;
}
//
- // Rule 413: member_declarator ::= : constant_expression
+ // Rule 414: member_declarator ::= : constant_expression
//
- case 413: { action.builder.
+ case 414: { action.builder.
consumeBitField(false); break;
}
//
- // Rule 414: bit_field_declarator ::= identifier_name
+ // Rule 415: bit_field_declarator ::= identifier_name
//
- case 414: { action.builder.
+ case 415: { action.builder.
consumeDirectDeclaratorIdentifier(); break;
}
//
- // Rule 415: constant_initializer ::= = constant_expression
+ // Rule 416: constant_initializer ::= = constant_expression
//
- case 415: { action.builder.
+ case 416: { action.builder.
consumeInitializer(); break;
}
//
- // Rule 421: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
+ // Rule 422: base_specifier ::= dcolon_opt nested_name_specifier_opt class_name
//
- case 421: { action.builder.
+ case 422: { action.builder.
consumeBaseSpecifier(false, false); break;
}
//
- // Rule 422: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
+ // Rule 423: base_specifier ::= virtual access_specifier_keyword_opt dcolon_opt nested_name_specifier_opt class_name
//
- case 422: { action.builder.
+ case 423: { action.builder.
consumeBaseSpecifier(true, true); break;
}
//
- // Rule 423: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
+ // Rule 424: base_specifier ::= access_specifier_keyword virtual dcolon_opt nested_name_specifier_opt class_name
//
- case 423: { action.builder.
+ case 424: { action.builder.
consumeBaseSpecifier(true, true); break;
}
//
- // Rule 424: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
+ // Rule 425: base_specifier ::= access_specifier_keyword dcolon_opt nested_name_specifier_opt class_name
//
- case 424: { action.builder.
+ case 425: { action.builder.
consumeBaseSpecifier(true, false); break;
}
//
- // Rule 425: access_specifier_keyword ::= private
+ // Rule 426: access_specifier_keyword ::= private
//
- case 425: { action.builder.
+ case 426: { action.builder.
consumeAccessKeywordToken(); break;
}
//
- // Rule 426: access_specifier_keyword ::= protected
+ // Rule 427: access_specifier_keyword ::= protected
//
- case 426: { action.builder.
+ case 427: { action.builder.
consumeAccessKeywordToken(); break;
}
//
- // Rule 427: access_specifier_keyword ::= public
+ // Rule 428: access_specifier_keyword ::= public
//
- case 427: { action.builder.
+ case 428: { action.builder.
consumeAccessKeywordToken(); break;
}
//
- // Rule 429: access_specifier_keyword_opt ::= $Empty
+ // Rule 430: access_specifier_keyword_opt ::= $Empty
//
- case 429: { action.builder.
+ case 430: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 430: conversion_function_id_name ::= operator conversion_type_id
+ // Rule 431: conversion_function_id_name ::= operator conversion_type_id
//
- case 430: { action.builder.
+ case 431: { action.builder.
consumeConversionName(); break;
}
//
- // Rule 431: conversion_type_id ::= type_specifier_seq conversion_declarator
+ // Rule 432: conversion_type_id ::= type_specifier_seq conversion_declarator
//
- case 431: { action.builder.
+ case 432: { action.builder.
consumeTypeId(true); break;
}
//
- // Rule 432: conversion_type_id ::= type_specifier_seq
+ // Rule 433: conversion_type_id ::= type_specifier_seq
//
- case 432: { action.builder.
+ case 433: { action.builder.
consumeTypeId(false); break;
}
//
- // Rule 433: conversion_declarator ::= <openscope-ast> ptr_operator_seq
+ // Rule 434: conversion_declarator ::= <openscope-ast> ptr_operator_seq
//
- case 433: { action.builder.
+ case 434: { action.builder.
consumeDeclaratorWithPointer(false); break;
}
//
- // Rule 439: mem_initializer ::= mem_initializer_name ( expression_list_opt )
+ // Rule 440: mem_initializer ::= mem_initializer_name ( expression_list_opt )
//
- case 439: { action.builder.
+ case 440: { action.builder.
consumeConstructorChainInitializer(); break;
}
//
- // Rule 440: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
+ // Rule 441: mem_initializer_name ::= dcolon_opt nested_name_specifier_opt class_name
//
- case 440: { action.builder.
+ case 441: { action.builder.
consumeQualifiedId(false); break;
}
//
- // Rule 443: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
+ // Rule 444: operator_function_id_name ::= operator_id_name < <openscope-ast> template_argument_list_opt >
//
- case 443: { action.builder.
+ case 444: { action.builder.
consumeTemplateId(); break;
}
//
- // Rule 444: operator_id_name ::= operator overloadable_operator
+ // Rule 445: operator_id_name ::= operator overloadable_operator
//
- case 444: { action.builder.
+ case 445: { action.builder.
consumeOperatorName(); break;
}
//
- // Rule 487: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
+ // Rule 488: template_declaration ::= export_opt template < <openscope-ast> template_parameter_list > declaration
//
- case 487: { action.builder.
+ case 488: { action.builder.
consumeTemplateDeclaration(); break;
}
//
- // Rule 488: export_opt ::= export
+ // Rule 489: export_opt ::= export
//
- case 488: { action.builder.
+ case 489: { action.builder.
consumePlaceHolder(); break;
}
//
- // Rule 489: export_opt ::= $Empty
+ // Rule 490: export_opt ::= $Empty
//
- case 489: { action.builder.
+ case 490: { action.builder.
consumeEmpty(); break;
}
//
- // Rule 494: type_parameter ::= class identifier_name_opt
+ // Rule 495: type_parameter ::= class identifier_name_opt
//
- case 494: { action.builder.
+ case 495: { action.builder.
consumeSimpleTypeTemplateParameter(false); break;
}
//
- // Rule 495: type_parameter ::= class identifier_name_opt = type_id
+ // Rule 496: type_parameter ::= class identifier_name_opt = type_id
//
- case 495: { action.builder.
+ case 496: { action.builder.
consumeSimpleTypeTemplateParameter(true); break;
}
//
- // Rule 496: type_parameter ::= typename identifier_name_opt
+ // Rule 497: type_parameter ::= typename identifier_name_opt
//
- case 496: { action.builder.
+ case 497: { action.builder.
consumeSimpleTypeTemplateParameter(false); break;
}
//
- // Rule 497: type_parameter ::= typename identifier_name_opt = type_id
+ // Rule 498: type_parameter ::= typename identifier_name_opt = type_id
//
- case 497: { action.builder.
+ case 498: { action.builder.
consumeSimpleTypeTemplateParameter(true); break;
}
//
- // Rule 498: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
+ // Rule 499: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt
//
- case 498: { action.builder.
+ case 499: { action.builder.
consumeTemplatedTypeTemplateParameter(false); break;
}
//
- // Rule 499: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
+ // Rule 500: type_parameter ::= template < <openscope-ast> template_parameter_list > class identifier_name_opt = id_expression
//
- case 499: { action.builder.
+ case 500: { action.builder.
consumeTemplatedTypeTemplateParameter(true); break;
}
//
- // Rule 500: template_id_name ::= template_identifier < <openscope-ast> template_argument_list_opt >
+ // Rule 501: template_id_name ::= template_identifier < <openscope-ast> template_argument_list_opt >
//
- case 500: { action.builder.
+ case 501: { action.builder.
consumeTemplateId(); break;
}
//
- // Rule 509: explicit_instantiation ::= template declaration
+ // Rule 510: explicit_instantiation ::= template declaration
//
- case 509: { action.builder.
+ case 510: { action.builder.
consumeTemplateExplicitInstantiation(); break;
}
//
- // Rule 510: explicit_specialization ::= template < > declaration
+ // Rule 511: explicit_specialization ::= template < > declaration
//
- case 510: { action.builder.
+ case 511: { action.builder.
consumeTemplateExplicitSpecialization(); break;
}
//
- // Rule 511: try_block ::= try compound_statement <openscope-ast> handler_seq
+ // Rule 512: try_block ::= try compound_statement <openscope-ast> handler_seq
//
- case 511: { action.builder.
+ case 512: { action.builder.
consumeStatementTryBlock(); break;
}
//
- // Rule 514: handler ::= catch ( exception_declaration ) compound_statement
+ // Rule 515: handler ::= catch ( exception_declaration ) compound_statement
//
- case 514: { action.builder.
+ case 515: { action.builder.
consumeStatementCatchHandler(false); break;
}
//
- // Rule 515: handler ::= catch ( ... ) compound_statement
+ // Rule 516: handler ::= catch ( ... ) compound_statement
//
- case 515: { action.builder.